Solved

Unable to validate data- ASP.Net

Posted on 2007-03-28
8
1,538 Views
Last Modified: 2008-01-09
Hi Everyone,

I did session handling on my pages. it work fine. after 15 or 20 minutes, it will redirect to my index page.

But if my pages stay open longer e.g. for half an hour or more, then I am getting the following error.
any Idea how to fix this.
Please I need your expert help, I am woking on this problem for long time, but no luck.
[code]
Unable to validate data.
Exception Details: System.Web.HttpException: Unable to validate data.
Stack Trace:

[HttpException (0x80004005): Unable to validate data.]
   System.Web.Configuration.MachineKey.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) +196
   System.Web.UI.LosFormatter.Deserialize(String input) +60

[HttpException (0x80004005): Authentication of viewstate failed.  1) If this is a cluster, edit <machineKey> configuration so all servers use the same validationKey and validation algorithm.  AutoGenerate cannot be used in a cluster.  2) Viewstate can only be posted back to the same page.  3) The viewstate for this page might be corrupted.]
   System.Web.UI.LosFormatter.Deserialize(String input) +118
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +102

[HttpException (0x80004005): Invalid_Viewstate
      Client IP: 216.232.130.192
      Port: 1554
      User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
      ViewState: dDwyMzI5NzMzMDE7dDxwPGw8ZGV0YWlsSG90ZWxJRDtteUhvdTUFnQUFBRkZUZVhOMFpXMHVSR0YwWVN3Z1ZtVnljMmx2YmoweExqQXVOVEF3TUM0d0xDQkRkV3gwZFhKbFBXNWxkWFJ5WVd3GxiR1Z0Wlc1MElHNWhiV1U5SW5Od1pXTnBZV3hIY21sa01pSWdk5Ed3ZiV0Y0VDJOamRYQmhibU41UGcwS0lDQWdJRHd2VkdGaWJHVXhQZzBLSUNBZ0lEeFVZV0pzWlRFZ1pHbG1abWR5T21sa1BTSlVZV0pzWlRFeklpQnRjMlJoZEdFNmNtOTNUM0prWlhJOUlqSWlQZzBLSUNBZ0lDQWdQR2h2ZEdWc1VtOXZiVWxFUGpZd1BDOW9iM1JsYkZKdmIyMUpSRDROQ2lBZ0lDQWdJRHhvYjNSbGJFbEVQalUxUEM5b2IzUmxiRWxFUGcwS0lDQWdJQ0FnUEhKdmIyMU9ZVzFsUGtSbGJIVjRaU0IzYVhSb0lFdHBkR05vWlc1bGRIUmxJRHd2Y205dmJVNWhiV1UrRFFvZ0lDQWdJQ0E4YldGNFFXUjFiSFJ6UGpROEwyMWhlRUZrZFd4MGN6NE5DaUFnSUNBZ0lEeHRZWGhQWTJOMWNHRnVZM2srTkR3dmJXRjRUMk5qZFhCaGJtTjVQZzBLSUNBZ0lEd3ZWR0ZpYkdVeFBnMEtJQ0E4TDJScFptWm5janBpWldadmNtVStEUW84TDJScFptWm5janBrYVdabVozSmhiVDRMPjtiPEFBRUFBQUQvLy8vL0FRQUFBQUFBQUFBTUFnQUFBRkZUZVhOMFpXMHVSR0YwWVN3Z1ZtVnljMmx2YmoweExqQXVOVEF3TUM0d0xDQkRkV3gwZFhKbFBXNWxkWFJ5WVd3c0lGQjFZbXhwWTB0bGVWUnZhMlZ1UFdJM04yRTFZelUyTVRrek5HVXdPRGtGQVFBQUFCVlRlWE4wWlcwdVJHRjBZUzVFWVhSaFZHRmliR1VDQUFBQUNWaHRiRk5qYUdWdFlRdFliV3hFYVdabVIzSmhiUUVCQWdBQUFBWURBQUFBeWdROFAzaHRiQ0IyWlhKemFXOXVQU0l4TGpBaUlHVnVZMjlrYVc1blBTSjFkR1l0TVRZaVB6NE5Dang0Y3pwelkyaGxiV0VnYVdROUluUnRjRVJoZEdGVFpYUWlJSGh0Ykc1elBTSWlJSGh0Ykc1ek9uaHpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBeEwxaE5URk5qYUdWdFlTSWdlRzFzYm5NNmJYTmtZWFJoUFNKMWNtNDZjMk5vWlcxaGN5MXRhV055YjNOdlpuUXRZMjl0T25odGJDMXRjMlJoZEdFaVBnMEtJQ0E4ZUhNNlpXeGxiV1Z1ZENCdVlXMWxQU0pVWVdKc1pURWlQZzBLSUNBZ0lEeDRjenBqYjIxd2JHVjRWSGx3WlQ0TkNpQWdJQ0FnSUR4NGN6cHpaWEYxWlc1alpUNE5DaUFnSUNBZ0lDQWdQSGh6T21Wc1pXMWxiblFnYm1GdFpUMGlhRzkwWld4QmJXVnVhWFI1SWlCMGVYQmxQU0o0Y3pwemRISnBibWNpSUcxelpHRjBZVHAwWVhKblpYUk9ZVzFsYzNCaFkyVTlJaUlnYldsdVQyTmpkWEp6UFNJd0lpQXZQZzBLSUNBZ0lDQWdQQzk0Y3pwelpYRjFaVzVqWlQ0TkNpQWdJQ0E4TDNoek9tTnZiWEJzWlhoVWVYQmxQZzBLSUNBOEwzaHpPbVZzWlcxbGJuUStEUW9nSUR4NGN6cGxiR1Z0Wlc1MElHNWhiV1U5SW5SdGNFUmhkR0ZUWlhRaUlHMXpaR0YwWVRwSmMwUmhkR0ZUWlhROUluUnlkV1VpUGcwS0lDQWdJRHg0Y3pwamIyMXdiR1Y0Vkhsd1pUNE5DaUFnSUNBZ0lEeDRjenBqYUc5cFkyVWdiV0Y0VDJOamRYSnpQU0oxYm1KdmRXNWtaV1FpSUM4K0RRb2dJQ0FnUEM5NGN6cGpiMjF3YkdWNFZIbHdaVDROQ2lBZ1BDOTRjenBsYkdWdFpXNTBQZzBLUEM5NGN6cHpZMmhsYldFK0JnUUFBQUNBQVR4a2FXWm1aM0k2WkdsbVptZHlZVzBnZUcxc2JuTTZiWE5rWVhSaFBTSjFjbTQ2YzJOb1pXMWhjeTF0YVdOeWIzTnZablF0WTI5dE9uaHRiQzF0YzJSaGRHRWlJSGh0Ykc1ek9tUnBabVpuY2owaWRYSnVPbk5qYUdWdFlYTXRiV2xqY205emIyWjBMV052YlRwNGJXd3RaR2xtWm1keVlXMHRkakVpSUM4K0N3PT0+O2I8QUFFQUFBRC8vLy8vQVFBQUFBQUFBQUFNQWdBQUFGRlRlWE4wWlcwdVJHRjBZU3dnVm1WeWMybHZiajB4TGpBdU5UQXdNQzR3TENCRGRXeDBkWEpsUFc1bGRYUnlZV3dzSUZCMVlteHBZMHRsZVZSdmEyVnVQV0kzTjJFMVl6VTJNVGt6TkdVd09Ea0ZBUUFBQUJWVGVYTjBaVzB1UkdGMFlTNUVZWFJoVkdGaWJHVUNBQUFBQ1ZodGJGTmphR1Z0WVF0WWJXeEVhV1ptUjNKaGJRRUJBZ0FBQUFZREFBQUFsQmc4UDNodGJDQjJaWEp6YVc5dVBTSXhMakFpSUdWdVkyOWthVzVuUFNKMWRHWXRNVFlpUHo0TkNqeDRjenB6WTJobGJXRWdhV1E5SW5SdGNFUmhkR0ZUWlhRaUlIaHRiRzV6UFNJaUlIaHRiRzV6T25oelBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF4TDFoTlRGTmphR1Z0WVNJZ2VHMXNibk02YlhOa1lYUmhQU0oxY200NmMyTm9aVzFoY3kxdGFXTnliM052Wm5RdFkyOXRPbmh0YkMxdGMyUmhkR0VpUGcwS0lDQThlSE02Wld4bGJXVnVkQ0J1WVcxbFBTSlVZV0pzWlRFaVBnMEtJQ0FnSUR4NGN6cGpiMjF3YkdWNFZIbHdaVDROQ2lBZ0lDQWdJRHg0Y3pwelpYRjFaVzVqWlQ0TkNpQWdJQ0FnSUNBZ1BIaHpPbVZzWlcxbGJuUWdibUZ0WlQwaWFHOTBaV3hPWVcxbElpQjBlWEJsUFNKNGN6cHpkSEpwYm1jaUlHMXpaR0YwWVRwMFlYSm5aWFJPWVcxbGMzQmhZMlU5SWlJZ2JXbHVUMk5qZFhKelBTSXdJaUF2UGcwS0lDQWdJQ0FnSUNBOGVITTZaV3hsYldWdWRDQnVZVzFsUFNKemRHRnljeUlnZEhsd1pUMGllSE02Wm14dllYUWlJRzF6WkdGMFlUcDBZWEpuWlhST1lXMWxjM0JoWTJVOUlpSWdiV2x1VDJOamRYSnpQU0l3SWlBdlBnMEtJQ0FnSUNBZ0lDQThlSE02Wld4bGJXVnVkQ0J1WVcxbFBTSm9iM1JsYkVGa1pISmxjM01pSUhSNWNHVTlJbmh6T25OMGNtbHVaeUlnYlhOa1lYUmhPblJoY21kbGRFNWhiV1Z6Y0dGalpUMGlJaUJ0YVc1UFkyTjFjbk05SWpBaUlDOCtEUW9nSUNBZ0lDQWdJRHg0Y3pwbGJHVnRaVzUwSUc1aGJXVTlJbWh2ZEdWc1dtbHdRMjlrWlNJZ2RIbHdaVDBpZUhNNmMzUnlhVzVuSWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJQ0FnUEhoek9tVnNaVzFsYm5RZ2JtRnRaVDBpUTJsMGVVNWhiV1VpSUhSNWNHVTlJbmh6T25OMGNtbHVaeUlnYlhOa1lYUmhPblJoY21kbGRFNWhiV1Z6Y0dGalpUMGlJaUJ0YVc1UFkyTjFjbk05SWpBaUlDOCtEUW9nSUNBZ0lDQWdJRHg0Y3pwbGJHVnRaVzUwSUc1aGJXVTlJa05wZEhsSlJDSWdkSGx3WlQwaWVITTZhVzUwSWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJQ0FnUEhoek9tVnNaVzFsYm5RZ2JtRnRaVDBpY0hKdmRtbHVZMlZPWVcxbElpQjBlWEJsUFNKNGN6cHpkSEpwYm1jaUlHMXpaR0YwWVRwMFlYSm5aWFJPWVcxbGMzQmhZMlU5SWlJZ2JXbHVUMk5qZFhKelBTSXdJaUF2UGcwS0lDQWdJQ0FnSUNBOGVITTZaV3hsYldWdWRDQnVZVzFsUFNKd2NtOTJhVzVqWlVsRUlpQjBlWEJsUFNKNGN6cHBiblFpSUcxelpHRjBZVHAwWVhKblpYUk9ZVzFsYzNCaFkyVTlJaUlnYldsdVQyTmpkWEp6UFNJd0lpQXZQZzBLSUNBZ0lDQWdJQ0E4ZUhNNlpXeGxiV1Z1ZENCdVlXMWxQU0pqYjNWdWRISjVUbUZ0WlNJZ2RIbHdaVDBpZUhNNmMzUnlhVzVuSWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJQ0FnUEhoek9tVnNaVzFsYm5RZ2JtRnRaVDBpWTI5MWJuUnllVWxFSWlCMGVYQmxQU0o0Y3pwcGJuUWlJRzF6WkdGMFlUcDBZWEpuWlhST1lXMWxjM0JoWTJVOUlpSWdiV2x1VDJOamRYSnpQU0l3SWlBdlBnMEtJQ0FnSUNBZ0lDQThlSE02Wld4bGJXVnVkQ0J1WVcxbFBTSnNiMk5oZEdsdmJrNWhiV1VpSUhSNWNHVTlJbmh6T25OMGNtbHVaeUlnYlhOa1lYUmhPblJoY21kbGRFNWhiV1Z6Y0dGalpUMGlJaUJ0YVc1UFkyTjFjbk05SWpBaUlDOCtEUW9nSUNBZ0lDQWdJRHg0Y3pwbGJHVnRaVzUwSUc1aGJXVTlJbWh2ZEdWc1EyRjBaV2R2Y25sT1lXMWxJaUIwZVhCbFBTSjRjenB6ZEhKcGJtY2lJRzF6WkdGMFlUcDBZWEpuWlhST1lXMWxjM0JoWTJVOUlpSWdiV2x1VDJOamRYSnpQU0l3SWlBdlBnMEtJQ0FnSUNBZ0lDQThlSE02Wld4bGJXVnVkQ0J1WVcxbFBTSm9iM1JsYkZSNWNHVWlJSFI1Y0dVOUluaHpPbk4wY21sdVp5SWdiWE5rWVhSaE9uUmhjbWRsZEU1aGJXVnpjR0ZqWlQwaUlpQnRhVzVQWTJOMWNuTTlJakFpSUM4K0RRb2dJQ0FnSUNBZ0lEeDRjenBsYkdWdFpXNTBJRzVoYldVOUltaHZkR1ZzVUc5c2FXTnBaWE1pSUhSNWNHVTlJbmh6T25OMGNtbHVaeUlnYlhOa1lYUmhPblJoY21kbGRFNWhiV1Z6Y0dGalpUMGlJaUJ0YVc1UFkyTjFjbk05SWpBaUlDOCtEUW9nSUNBZ0lDQWdJRHg0Y3pwbGJHVnRaVzUwSUc1aGJXVTlJbmxsWVhKQ2RXbHNaQ0lnZEhsd1pUMGllSE02YzJodmNuUWlJRzF6WkdGMFlUcDBZWEpuWlhST1lXMWxjM0JoWTJVOUlpSWdiV2x1VDJOamRYSnpQU0l3SWlBdlBnMEtJQ0FnSUNBZ0lDQThlSE02Wld4bGJXVnVkQ0J1WVcxbFBTSnViMDltUm14dmIzSWlJSFI1Y0dVOUluaHpPblZ1YzJsbmJtVmtRbmwwWlNJZ2JYTmtZWFJoT25SaGNtZGxkRTVoYldWemNHRmpaVDBpSWlCdGFXNVBZMk4xY25NOUlqQWlJQzgrRFFvZ0lDQWdJQ0FnSUR4NGN6cGxiR1Z0Wlc1MElHNWhiV1U5SW5admJIUmhaMlVpSUhSNWNHVTlJbmh6T25Ob2IzSjBJaUJ0YzJSaGRHRTZkR0Z5WjJWMFRtRnRaWE53WVdObFBTSWlJRzFwYms5alkzVnljejBpTUNJZ0x6NE5DaUFnSUNBZ0lDQWdQSGh6T21Wc1pXMWxiblFnYm1GdFpUMGlhRzkwWld4RVpYTmpjbWx3ZEdsdmJpSWdkSGx3WlQwaWVITTZjM1J5YVc1bklpQnRjMlJoZEdFNmRHRnlaMlYwVG1GdFpYTndZV05sUFNJaUlHMXBiazlqWTNWeWN6MGlNQ0lnTHo0TkNpQWdJQ0FnSUNBZ1BIaHpPbVZzWlcxbGJuUWdibUZ0WlQwaVpISnBkbWx1WjBScGNtVmpkR2x2Ym5NaUlIUjVjR1U5SW5oek9uTjBjbWx1WnlJZ2JYTmtZWFJoT25SaGNtZGxkRTVoYldWemNHRmpaVDBpSWlCdGFXNVBZMk4xY25NOUlqQWlJQzgrRFFvZ0lDQWdJQ0FnSUR4NGN6cGxiR1Z0Wlc1MElHNWhiV1U5SW1odmRHVnNUV0Z3SWlCMGVYQmxQU0o0Y3pwemRISnBibWNpSUcxelpHRjBZVHAwWVhKblpYUk9ZVzFsYzNCaFkyVTlJaUlnYldsdVQyTmpkWEp6UFNJd0lpQXZQZzBLSUNBZ0lDQWdJQ0E4ZUhNNlpXeGxiV1Z1ZENCdVlXMWxQU0pqYUdWamEwbHVWR2x0WlNJZ2RIbHdaVDBpZUhNNmMzUnlhVzVuSWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJQ0FnUEhoek9tVnNaVzFsYm5RZ2JtRnRaVDBpWTJobFkydFBkWFJVYVcxbElpQjBlWEJsUFNKNGN6cHpkSEpwYm1jaUlHMXpaR0YwWVRwMFlYSm5aWFJPWVcxbGMzQmhZMlU5SWlJZ2JXbHVUMk5qZFhKelBTSXdJaUF2UGcwS0lDQWdJQ0FnSUNBOGVITTZaV3hsYldWdWRDQnVZVzFsUFNKcmFXUnpRV2RsSWlCMGVYQmxQU0o0Y3pwMWJuTnBaMjVsWkVKNWRHVWlJRzF6WkdGMFlUcDBZWEpuWlhST1lXMWxjM0JoWTJVOUlpSWdiV2x1VDJOamRYSnpQU0l3SWlBdlBnMEtJQ0FnSUNBZ0lDQThlSE02Wld4bGJXVnVkQ0J1WVcxbFBTSmhaSFZzZEVGblpTSWdkSGx3WlQwaWVITTZkVzV6YVdkdVpXUkNlWFJsSWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJQ0FnUEhoek9tVnNaVzFsYm5RZ2JtRnRaVDBpU1c1a2FYWnBaSFZoYkVodmRHVkRVRzlzYVdONUlpQjBlWEJsUFNKNGN6cGliMjlzWldGdUlpQnRjMlJoZEdFNmRHRnlaMlYwVG1GdFpYTndZV05sUFNJaUlHMXBiazlqWTNWeWN6MGlNQ0lnTHo0TkNpQWdJQ0FnSUNBZ1BIaHpPbVZzWlcxbGJuUWdibUZ0WlQwaVEybDBlWGRwYzJWRFVHOXNhV041SWlCMGVYQmxQU0o0Y3pwaWIyOXNaV0Z1SWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJRHd2ZUhNNmMyVnhkV1Z1WTJVK0RRb2dJQ0FnUEM5NGN6cGpiMjF3YkdWNFZIbHdaVDROQ2lBZ1BDOTRjenBsYkdWdFpXNTBQZzBLSUNBOGVITTZaV3hsYldWdWRDQnVZVzFsUFNKMGJYQkVZWFJoVTJWMElpQnRjMlJoZEdFNlNYTkVZWFJoVTJWMFBTSjBjblZsSWo0TkNpQWdJQ0E4ZUhNNlkyOXRjR3hsZUZSNWNHVStEUW9nSUNBZ0lDQThlSE02WTJodmFXTmxJRzFoZUU5alkzVnljejBpZFc1aWIzVnVaR1ZrSWlBdlBnMEtJQ0FnSUR3dmVITTZZMjl0Y0d4bGVGUjVjR1UrRFFvZ0lEd3ZlSE02Wld4bGJXVnVkRDROQ2p3dmVITTZjMk5vWlcxaFBnWUVBQUFBNkJzOFpHbG1abWR5T21ScFptWm5jbUZ0SUhodGJHNXpPbTF6WkdGMFlUMGlkWEp1T25OamFHVnRZWE10YldsamNtOXpiMlowTFdOdmJUcDRiV3d0YlhOa1lYUmhJaUI0Yld4dWN6cGthV1ptWjNJOUluVnlianB6WTJobGJXRnpMVzFwWTNKdmMyOW1kQzFqYjIwNmVHMXNMV1JwWm1abmNtRnRMWFl4SWo0TkNpQWdQSFJ0Y0VSaGRHRlRaWFErRFFvZ0lDQWdQRlJoWW14bE1TQmthV1ptWjNJNmFXUTlJbFJoWW14bE1URWlJRzF6WkdGMFlUcHliM2RQY21SbGNqMGlNQ0krRFFvZ0lDQWdJQ0E4YUc5MFpXeE9ZVzFsUGtKbGMzUWdWMlZ6ZEdWeWJpQkViM2R1ZEc5M2JpQldZVzVqYjNWMlpYSThMMmh2ZEdWc1RtRnRaVDROQ2lBZ0lDQWdJRHh6ZEdGeWN6NHpQQzl6ZEdGeWN6NE5DaUFnSUNBZ0lEeG9iM1JsYkVGa1pISmxjM00rTnpFNElFUnlZV3RsSUZOMGNtVmxkRHd2YUc5MFpXeEJaR1J5WlhOelBnMEtJQ0FnSUNBZ1BHaHZkR1ZzV21sd1EyOWtaVDVXTmxvZ01sYzJQQzlvYjNSbGJGcHBjRU52WkdVK0RRb2dJQ0FnSUNBOFEybDBlVTVoYldVK1ZtRnVZMjkxZG1WeVBDOURhWFI1VG1GdFpUNE5DaUFnSUNBZ0lEeERhWFI1U1VRK01USXhQQzlEYVhSNVNVUStEUW9nSUNBZ0lDQThjSEp2ZG1sdVkyVk9ZVzFsUGtKeWFYUnBjMmdnUTI5c2RXMWlhV0U4TDNCeWIzWnBibU5sVG1GdFpUNE5DaUFnSUNBZ0lEeHdjbTkyYVc1alpVbEVQakV5TUR3dmNISnZkbWx1WTJWSlJENE5DaUFnSUNBZ0lEeGpiM1Z1ZEhKNVRtRnRaVDVEWVc1aFpHRThMMk52ZFc1MGNubE9ZVzFsUGcwS0lDQWdJQ0FnUEdOdmRXNTBjbmxKUkQ0eE1UazhMMk52ZFc1MGNubEpSRDROQ2lBZ0lDQWdJRHhzYjJOaGRHbHZiazVoYldVK1JHOTNiblJ2ZDI0OEwyeHZZMkYwYVc5dVRtRnRaVDROQ2lBZ0lDQWdJRHhvYjNSbGJFTmhkR1ZuYjNKNVRtRnRaVDVOYjJSbGNtRjBaVHd2YUc5MFpXeERZWFJsWjI5eWVVNWhiV1UrRFFvZ0lDQWdJQ0E4YUc5MFpXeFVlWEJsUGtodmRHVnNQQzlvYjNSbGJGUjVjR1UrRFFvZ0lDQWdJQ0E4YUc5MFpXeFFiMnhwWTJsbGN6NUNiMjlyYVc1bklHMWhlU0JpWlNCamFHRnVaMlZrSUc5eUlHTmhibU5sYkd4bFpDQjNhWFJvYjNWMElIQmxibUZzZEhrZ2RYQWdkRzhnTnpJZ2FHOTFjbk1nY0hKcGIzSWdkRzhnWVhKeWFYWmhiQzRnUVc1NUlISmxaSFZqZEdsdmJpQnZjaUJqWVc1alpXeHNZWFJwYjI0Z2QybDBhR2x1SURjeUlHaHZkWEp6SUc5bUlHRnljbWwyWVd3Z2FYTWdjM1ZpYW1WamRDQjBieUJ3Wlc1aGJIUjVJRzltSURFZ2NtOXZiU0J1YVdkb2RDQndiSFZ6SUhSaGVDQm1iM0lnWlhabGNua2djbTl2YlNCaWIyOXJaV1F1UEM5b2IzUmxiRkJ2YkdsamFXVnpQZzBLSUNBZ0lDQWdQSGxsWVhKQ2RXbHNaRDR4T1RrM1BDOTVaV0Z5UW5WcGJHUStEUW9nSUNBZ0lDQThibTlQWmtac2IyOXlQakV5UEM5dWIwOW1SbXh2YjNJK0RRb2dJQ0FnSUNBOGRtOXNkR0ZuWlQ0eE1UQThMM1p2YkhSaFoyVStEUW9nSUNBZ0lDQThhRzkwWld4RVpYTmpjbWx3ZEdsdmJqNG1iSFE3WWlabmREdFVhR1VnUW1WemRDQlhaWE4wWlhKdUlFUnZkMjUwYjNkdUpteDBPeTlpSm1kME95QnBjeUJzYjJOaGRHVmtJR2x1SUhSb1pTQm9aV0Z5ZENCdlppQW1iSFE3YVNabmREdGtiM2R1ZEc5M2JpQldZVzVqYjNWMlpYSW1iSFE3TDJrbVozUTdMQ0JqYkc5elpTQjBieUJaWVd4bElGUnZkMjRnS0RFd0lHMXBiblYwWlNCM1lXeHJLU3dnUjNKaGJuWnBiR3hsSUVsemJHRnVaQ0FvTlNCdGFXNTFkR1Z6SUdSeWFYWmxLU3dnWVc1a0lGTjBZVzVzWlhrZ1VHRnlheUFvTlNCdGFXNTFkR1VnWkhKcGRtVXBMaUFtYkhRN1lpWm5kRHRDWlhOMElGZGxjM1JsY200Z1JHOTNiblJ2ZDI0bWJIUTdMMkltWjNRN0lHbHpJRzl1WlNCdlppQldZVzVqYjNWMlpYTGlnSmx6SUc1bGQyVnpkQ0FtYkhRN2FTWm5kRHRvYjNSbGJITW1iSFE3TDJrbVozUTdMQ0J2ZG1WeWJHOXZhMmx1WnlCMGFHVWdSbUZzYzJVZ1EzSmxaV3NnWVhKbFlTQmhibVFnYjI1c2VTQXlOU0J0YVc1MWRHVnpJR1J5YVhabElHWnliMjBnVm1GdVkyOTFkbVZ5SUVsdWRHVnlibUYwYVc5dVlXd2dRV2x5Y0c5eWRDNGdXVzkxSUhkcGJHd2daVzVxYjNrZ1lTQndaV0ZqWldaMWJDQnVhV2RvZENCemJHVmxjQ0JwYmlCdmJtVWdiMllnSm14ME8ya21aM1E3UW1WemRDQlhaWE4wWlhKdUlFUnZkMjUwYjNkdTRvQ1pjeVpzZERzdmFTWm5kRHNnWTI5NmVTQm5kV1Z6ZEhKdmIyMXpJR0Z1WkNCMGFHVnBjaUIzWVhKdElHRnVaQ0JqYUdWbGNtWjFiQ0J6WlhKMmFXTmxJSGRwYkd3Z2JXRnJaU0I1YjNWeUlHaHZkR1ZzSUhOMFlYa2diVzl6ZENCd2JHVmhjMkZ1ZENCaGJtUWdiV1Z0YjNKaFlteGxMaUFnVkdocGN5Qm1ZV0oxYkc5MWN5QkNaWE4wSUZkbGMzUmxjbTRnYUc5MFpXd2dhR0Z6SURFME15QmpiMjFtYjNKMFlXSnNaU0JuZFdWemRISnZiMjF6TGlCRllXTm9JRzltSUhSb1pYTmxJR0ZqWTI5dGJXOWtZWFJwYjI1eklHWmxZWFIxY21WeklHbHVZMngxWkdWeklHbHVaR2wyYVdSMVlXeHNlU0JqYjI1MGNtOXNiR1ZrSUdGcGNpQmpiMjVrYVhScGIyNXBibWNzSUdsdVpHbDJhV1IxWVd4c2VTQmpiMjUwY205c2JHVmtJR05sYm5SeVlXd2dhR1ZoZEdsdVp5d2dZVzVrSUdocFoyZ2djM0JsWldRZ2FXNTBaWEp1WlhRdURRb21iSFE3WW5JbVozUTdKbXgwTzJKeUptZDBPdzBLVkdobElHTm9ZWEp0YVc1bklDWnNkRHRpSm1kME8wSmxjM1FnVjJWemRHVnliaUJFYjNkdWRHOTNiaUJXWVc1amIzVjJaWElnU0c5MFpXd21iSFE3TDJJbVozUTdJR2x6SUcxMWJIUnBjR3hsSUhKbFkybHdhV1Z1ZENCdlppQW1iSFE3YVNabmREdFVhR1VnUW1WemRDQlhaWE4wWlhKdTRvQ1pjeUJEYUdGcGNtMWhidUtBbVhNZ1FYZGhjbVFnWm05eUlHOTFkSE4wWVc1a2FXNW5JR05zWldGdWJHbHVaWE56SUdGdVpDQnhkV0ZzYVhSNUxpQW1iSFE3TDJrbVozUTdEUW9tYkhRN1luSW1aM1E3Sm14ME8ySnlKbWQwT3cwS0pteDBPMkltWjNRN1ZHaGxJRUpsYzNRZ1YyVnpkR1Z5YmlCRWIzZHVkRzkzYmlCSWIzUmxiQ1pzZERzdllpWm5kRHNnYVhNZ2QyRnNhMmx1WnlCa2FYTjBZVzVqWlNCMGJ5QnphRzl3Y0dsdVp5d2dibWxuYUhSc2FXWmxMQ0IwYUdWaGRISmxMQ0J5WlhOMFlYVnlZVzUwY3lCaGJtUWdiMllnVm1GdVkyOTFkbVZ5NG9DWmN5QnRZV3B2Y2lCaGRIUnlZV04wYVc5dWN5NGdWMmwwYUNCMWJtUmxjbWR5YjNWdVpDQndZWEpyYVc1bkxDQmhJR1pwZEc1bGMzTWdZMlZ1ZEhKbElIZHBkR2dnYzJGMWJtRWdZVzVrSUhkb2FYSnNjRzl2YkN3Z2MyaDFkSFJzWlNCelpYSjJhV05sSUdGdVpDQnZiaURpZ0pOemFYUmxJRmRvYVhSbElGTndiM1FnVW1WemRHRjFjbUZ1ZENBbVlXMXdPeUJNYjNWdVoyVXNJQ1pzZER0aUptZDBPMVJvWlNCQ1pYTjBJRmRsYzNSbGNtNGdSRzkzYm5SdmQyNGdhRzkwWld3bWJIUTdMMkltWjNRN0lHaGhjeUJsZG1WeWVYUm9hVzVuSUhsdmRTQnVaV1ZrSUhSdklHMWhhMlVnZVc5MWNpQldZVzVqYjNWMlpYSWdaWE5qWVhCbElIQmxjbVpsWTNRdURRbzhMMmh2ZEdWc1JHVnpZM0pwY0hScGIyNCtEUW9nSUNBZ0lDQThaSEpwZG1sdVowUnBjbVZqZEdsdmJuTStSM0poYm5acGJHeGxJRWx6YkdGdVpDQXRJRFVnYldsdWRYUmxjeUJrY21sMlpTQU5DaVpzZER0aWNpWm5kRHRXWVc1amIzVjJaWElnVTNSaGJteGxlU0JRWVhKcklDMGdOU0J0YVc1MWRHVnpJR1J5YVhabElBMEtKbXgwTzJKeUptZDBPME5oYm1Ga1lTZHpJR3hoY21kbGMzUWdZWEYxWVhKcGRXMHNJRlpoYm1OdmRYWmxjaUJCY1hWaGNtbDFiU0JzYjJOaGRHVmtJR2x1SUhSb1pTQldZVzVqYjNWMlpYSWdVM1JoYm14bGVTQndZWEpySUEwS0pteDBPMkp5Sm1kME8xbGhiR1VnVkc5M2JpQXRJREV3SUcxcGJuVjBaWE1nWkhKcGRtVWdEUW9tYkhRN1luSW1aM1E3UjJGeklIUnZkMjRnTFNBeExqWWdhMjBnRFFvbWJIUTdZbkltWjNRN1IwMGdVR3hoWTJVZ0xTQXhMallnYTIwZ0RRb21iSFE3WW5JbVozUTdTR0Z5WW05MWNpQkRaVzUwY21VZ1ZHOTNaWElnTFNCV1lXNWpiM1YyWlhJbmN5QXpOakF0WkdWbmNtVmxJSFpwWlhjZ0xTQXhMallnYTIwZ0RRb21iSFE3WW5JbVozUTdRMkZ1WVdSaElGQnNZV05sSUMwZ1EzSjFhWE5sSUZOb2FYQWdWR1Z5YldsdVlXd2dKbUZ0Y0RzZ1ZtRnVZMjkxZG1WeUlGUnlZV1JsSUdGdVpDQkRiMjUyWlc1MGFXOXVJRU5sYm5SeVpTQXRJREl1TlNCcmJTQU5DaVpzZER0aWNpWm5kRHRFY2k0Z1UzVnVJRmxsZEMxVFlXNGdSMkZ5WkdWdWN5QXRJREl1TlNCcmJTQU5DaVpzZER0aWNpWm5kRHRUWTJsbGJtTmxJRmR2Y214a0lDMGdNaTQxSUEwS0pteDBPMkp5Sm1kME8wTmhjR2xzWVc1dklGTjFjM0JsYm5OcFBDOWtjbWwyYVc1blJHbHlaV04wYVc5dWN6NE5DaUFnSUNBZ0lEeG9iM1JsYkUxaGNDQXZQZzBLSUNBZ0lDQWdQR05vWldOclNXNVVhVzFsUGpNNk1EQWdVRTA4TDJOb1pXTnJTVzVVYVcxbFBnMEtJQ0FnSUNBZ1BHTm9aV05yVDNWMFZHbHRaVDR4TVRvd01DQkJUVHd2WTJobFkydFBkWFJVYVcxbFBnMEtJQ0FnSUNBZ1BHdHBaSE5CWjJVK01UZzhMMnRwWkhOQloyVStEUW9nSUNBZ0lDQThZV1IxYkhSQloyVStNVEk4TDJGa2RXeDBRV2RsUGcwS0lDQWdJQ0FnUEVsdVpHbDJhV1IxWVd4SWIzUmxRMUJ2YkdsamVUNTBjblZsUEM5SmJtUnBkbWxrZFdGc1NHOTBaVU5RYjJ4cFkzaytEUW9nSUNBZ0lDQThRMmwwZVhkcGMyVkRVRzlzYVdONVBtWmhiSE5sUEM5RGFYUjVkMmx6WlVOUWIyeHBZM2srRFFvZ0lDQWdQQzlVWVdKc1pURStEUW9nSUR3dmRHMXdSR0YwWVZObGRENE5Dand2WkdsbVptZHlPbVJwWm1abmNtRnRQZ3M9PjtiPEFBRUFBQUQvLy8vL0FRQUFBQUFBQUFBTUFnQUFBRkZUZVhOMFpXMHVSR0YwWVN3Z1ZtVnljMmx2YmoweExqQXVOVEF3TUM0d0xDQkRkV3gwZFhKbFBXNWxkWFJ5WVd3c0lGQjFZbXhwWTB0bGVWUnZhMlZ1UFdJM04yRTFZelUyTVRrek5HVXdPRGtGQVFBQUFCVlRlWE4wWlcwdVJHRjBZUzVFWVhSaFZHRmliR1VDQUFBQUNWaHRiRk5qYUdWdFlRdFliV3hFYVdabVIzSmhiUUVCQWdBQUFBWURBQUFBd3dnOFAzaHRiQ0IyWlhKemFXOXVQU0l4TGpBaUlHVnVZMjlrYVc1blBTSjFkR1l0TVRZaVB6NE5Dang0Y3pwelkyaGxiV0VnYVdROUluUnRjRVJoZEdGVFpYUWlJSGh0Ykc1elBTSWlJSGh0Ykc1ek9uaHpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBeEwxaE5URk5qYUdWdFlTSWdlRzFzYm5NNmJYTmtZWFJoUFNKMWNtNDZjMk5vWlcxaGN5MXRhV055YjNOdlpuUXRZMjl0T25odGJDMXRjMlJoZEdFaVBnMEtJQ0E4ZUhNNlpXeGxiV1Z1ZENCdVlXMWxQU0pVWVdKc1pURWlQZzBLSUNBZ0lEeDRjenBqYjIxd2JHVjRWSGx3WlQ0TkNpQWdJQ0FnSUR4NGN6cHpaWEYxWlc1alpUNE5DaUFnSUNBZ0lDQWdQSGh6T21Wc1pXMWxiblFnYm1GdFpUMGlhRzkwWld4U2IyOXRTVVFpSUhSNWNHVTlJbmh6T21sdWRDSWdiWE5rWVhSaE9uUmhjbWRsZEU1aGJXVnpjR0ZqWlQwaUlpQnRhVzVQWTJOMWNuTTlJakFpSUM4K0RRb2dJQ0FnSUNBZ0lEeDRjenBsYkdWdFpXNTBJRzVoYldVOUltaHZkR1ZzU1VRaUlIUjVjR1U5SW5oek9tbHVkQ0lnYlhOa1lYUmhPblJoY21kbGRFNWhiV1Z6Y0dGalpUMGlJaUJ0YVc1UFkyTjFjbk05SWpBaUlDOCtEUW9nSUNBZ0lDQWdJRHg0Y3pwbGJHVnRaVzUwSUc1aGJXVTlJbkp2YjIxRVpYTmpjbWx3ZEdsdmJpSWdkSGx3WlQwaWVITTZjM1J5YVc1bklpQnRjMlJoZEdFNmRHRnlaMlYwVG1GdFpYTndZV05sUFNJaUlHMXBiazlqWTNWeWN6MGlNQ0lnTHo0TkNpQWdJQ0FnSUNBZ1BIaHpPbVZzWlcxbGJuUWdibUZ0WlQwaVltRnpaVkpoZEdWR2IzSkhkV1Z6ZENJZ2RIbHdaVDBpZUhNNmRXNXphV2R1WldSQ2VYUmxJaUJ0YzJSaGRHRTZkR0Z5WjJWMFRtRnRaWE53WVdObFBTSWlJRzFwYms5alkzVnljejBpTUNJZ0x6NE5DaUFnSUNBZ0lDQWdQSGh6T21Wc1pXMWxiblFnYm1GdFpUMGlhWE5UYlc5cmFXNW5JaUIwZVhCbFBTSjRjenBpYjI5c1pXRnVJaUJ0YzJSaGRHRTZkR0Z5WjJWMFRtRnRaWE53WVdObFBTSWlJRzFwYms5alkzVnljejBpTUNJZ0x6NE5DaUFnSUNBZ0lDQWdQSGh6T21Wc1pXMWxiblFnYm1GdFpUMGlhWE5PYjI1VGJXOXJhVzVuSWlCMGVYQmxQU0o0Y3pwaWIyOXNaV0Z1SWlCdGMyUmhkR0U2ZEdGeVoyVjBUbUZ0WlhOd1lXTmxQU0lpSUcxcGJrOWpZM1Z5Y3owaU1DSWdMejROQ2lBZ0lDQWdJRHd2ZUhNNmMyVnhkV1Z1WTJVK0RRb2dJQ0FnUEM5NGN6cGpiMjF3YkdWNFZIbHdaVDROQ2lBZ1BDOTRjenBsYkdWdFpXNTBQZzBLSUNBOGVITTZaV3hsYldWdWRDQnVZVzFsUFNKMGJYQkVZWFJoVTJWMElpQnRjMlJoZEdFNlNYTkVZWFJoVTJWMFBTSjBjblZsSWo0TkNpQWdJQ0E4ZUhNNlkyOXRjR3hsZUZSNWNHVStEUW9nSUNBZ0lDQThlSE02WTJodmFXTmxJRzFoZUU5alkzVnljejBpZFc1aWIzVnVaR1ZrSWlBdlBnMEtJQ0FnSUR3dmVITTZZMjl0Y0d4bGVGUjVjR1UrRFFvZ0lEd3ZlSE02Wld4bGJXVnVkRDROQ2p3dmVITTZjMk5vWlcxaFBnWUVBQUFBdXdrOFpHbG1abWR5T21ScFptWm5jbUZ0SUhodGJHNXpPbTF6WkdGMFlUMGlkWEp1T25OamFHVnRZWE10YldsamNtOXpiMlowTFdOdmJUcDRiV3d0YlhOa1lYUmhJaUI0Yld4dWN6cGthV1ptWjNJOUluVnlianB6WTJobGJXRnpMVzFwWTNKdmMyOW1kQzFqYjIwNmVHMXNMV1JwWm1abmNtRnRMWFl4SWo0TkNpQWdQSFJ0Y0VSaGRHRlRaWFErRFFvZ0lDQWdQRlJoWW14bE1TQmthV1ptWjNJNmFXUTlJbFJoWW14bE1URWlJRzF6WkdGMFlUcHliM2RQY21SbGNqMGlNQ0krRFFvZ0lDQWdJQ0E4YUc5MFpXeFNiMjl0U1VRK05UZzhMMmh2ZEdWc1VtOXZiVWxFUGcwS0lDQWdJQ0FnUEdodmRHVnNTVVErTlRVOEwyaHZkR1ZzU1VRK0RRb2dJQ0FnSUNBOGNtOXZiVVJsYzJOeWFYQjBhVzl1UGtWaFkyZ2dkVzVwZENCb1lYTWdiMjVsSUdKaGRHaHliMjl0SUdGdVpDQmlaV1JrYVc1bklHbHVJSFJvWlNCMWJtbDBQQzl5YjI5dFJHVnpZM0pwY0hScGIyNCtEUW9nSUNBZ0lDQThZbUZ6WlZKaGRHVkdiM0pIZFdWemRENHlQQzlpWVhObFVtRjBaVVp2Y2tkMVpYTjBQZzBLSUNBZ0lDQWdQR2x6VTIxdmEybHVaejUwY25WbFBDOXBjMU50YjJ0cGJtYytEUW9nSUNBZ0lDQThhWE5PYjI1VGJXOXJhVzVuUG5SeWRXVThMMmx6VG05dVUyMXZhMmx1Wno0TkNpQWdJQ0E4TDFSaFlteGxNVDROQ2lBZ0lDQThWR0ZpYkdVeElHUnBabVpuY2pwcFpEMGlWR0ZpYkdVeE1pSWdiWE5rWVhSaE9uSnZkMDl5WkdWeVBTSXhJajROQ2lBZ0lDQWdJRHhvYjNSbGJGSnZiMjFKUkQ0MU9Ud3ZhRzkwWld4U2IyOXRTVVErRFFvZ0lDQWdJQ0E4YUc5MFpXeEpSRDQxTlR3dmFHOTBaV3hKUkQ0TkNpQWdJQ0FnSUR4eWIyOXRSR1Z6WTNKcGNIUnBiMjQrUldGamFDQjFibWwwSUdoaGN5QnZibVVnWW1GMGFISnZiMjBnWVc1a0lHSmxaR1JwYm1jdVBDOXliMjl0UkdWelkzSnBjSFJwYjI0K0RRb2dJQ0FnSUNBOFltRnpaVkpoZEdWR2IzSkhkV1Z6ZEQ0eVBDOWlZWE5sVW1GMFpVWnZja2QxWlhOMFBnMEtJQ0FnSUNBZ1BHbHpVMjF2YTJsdVp6NTBjblZsUEM5cGMxTnRiMnRwYm1jK0RRb2dJQ0FnSUNBOGFYTk9iMjVUYlc5cmFXNW5QblJ5ZFdVOEwybHpUbTl1VTIxdmEybHVaejROQ2lBZ0lDQThMMVJoWW14bE1UNE5DaUFnSUNBOFZHRmliR1V4SUdScFptWm5janBwWkQwaVZHRmliR1V4TXlJZ2JYTmtZWFJoT25KdmQwOXlaR1Z5UFNJeUlqNE5DaUFnSUNBZ0lEeG9iM1JsYkZKdmIyMUpSRDQyTUR3dmFHOTBaV3hTYjI5dFNVUStEUW9nSUNBZ0lDQThhRzkwWld4SlJENDFOVHd2YUc5MFpXeEpSRDROQ2lBZ0lDQWdJRHh5YjI5dFJHVnpZM0pwY0hScGIyNCtSV0ZqYUNCRVpXeDFlR1VnZDJsMGFDQkxhWFJqYUdWdVpYUjBaU0JTYjI5dElHMWxZWE4xY21WeklEd3ZjbTl2YlVSbGMyTnlhWEIwYVc5dVBnMEtJQ0FnSUNBZ1BHSmhjMlZTWVhSbFJtOXlSM1ZsYzNRK01qd3ZZbUZ6WlZKaGRHVkdiM0pIZFdWemRENE5DaUFnSUNBZ0lEeHBjMU50YjJ0cGJtYytkSEoxWlR3dmFYTlRiVzlyYVc1blBnMEtJQ0FnSUNBZ1BHbHpUbTl1VTIxdmEybHVaejUwY25WbFBDOXBjMDV2YmxOdGIydHBibWMrRFFvZ0lDQWdQQzlVWVdKc1pURStEUW9nSUR3dmRHMXdSR0YwWVZObGRENE5Dand2WkdsbVptZHlPbVJwWm1abmNtRnRQZ3M9PjtiPEFBRUFBQUQvLy8vL0FRQUFBQUFBQUFBTUFnQUFBRkZUZVhOMFpXMHVSR0YwWVN3Z1ZtVnljMmx2YmoweExqQXVOVEF3TUM0d0xDQkRkV3gwZFhKbFBXNWxkWFJ5WVd3c0lGQjFZbXhwWTB0bGVWUnZhMlZ1UFdJM04yRTFZelUyTVRrek5HVXdPRGtGQVFBQUFCVlRlWE4wWlcwdVJHRjBZUzVFWVhSaFZHRmliR1VDQUFBQUNWaHRiRk5qYUdWdFlRdFliV3hFYVdabVIzSmhiUUVCQWdBQUFBWURBQUFBa3dZOFAzaHRiQ0IyWlhKemFXOXVQU0l4TGpBaUlHVnVZMjlrYVc1blBTSjFkR1l0TVRZaVB6NE5Dang0Y3pwelkyaGxiV0VnYVdROUluUnRjRVJoZEdGVFpYUWlJSGh0Ykc1elBTSWlJSGh0Ykc1ek9uaHpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBeEwxaE5URk5qYUdWdFlTSWdlRzFzYm5NNmJYTmtZWFJoUFNKMWNtNDZjMk5vWlcxaGN5MXRhV055YjNOdlpuUXRZMjl0T25odGJDMXRjMlJoZEdFaVBnMEtJQ0E4ZUhNNlpXeGxiV1Z1ZENCdVlXMWxQU0pVWVdKc1pURWlQZzBLSUNBZ0lEeDRjenBqYjIxd2JHVjRWSGx3WlQ0TkNpQWdJQ0FnSUR4NGN6cHpaWEYxWlc1alpUNE5DaUFnSUNBZ0lDQWdQSGh6T21Wc1pXMWxiblFnYm1GdFpUMGlZMjl6ZENJZ2RIbHdaVDBpZUhNNlltOXZiR1ZoYmlJZ2JYTmtZWFJoT25SaGNtZGxkRTVoYldWemNHRmpaVDBpSWlCdGFXNVBZMk4xY25NOUlqQWlJQzgrRFFvZ0lDQWdJQ0FnSUR4NGN6cGxiR1Z0Wlc1MElHNWhiV1U5SW1odmRHVnNRVzFsYm1sMGVTSWdkSGx3WlQwaWVITTZjM1J5YVc1bklpQnRjMlJoZEdFNmRHRnlaMlYwVG1GdFpYTndZV05sUFNJaUlHMXBiazlqWTNWeWN6MGlNQ0lnTHo0TkNpQWdJQ0FnSUNBZ1BIaHpPbVZzWlcxbGJuUWdibUZ0WlQwaVlXMWxibWwwZVVSbGMyTnlhWEIwYVc5dUlpQjBlWEJsUFNKNGN6cHpkSEpwYm1jaUlHMXpaR0YwWVRwMFlYSm5aWFJPWVcxbGMzQmhZMlU5SWlJZ2JXbHVUMk5qZFhKelBTSXdJaUF2UGcwS0lDQWdJQ0FnUEM5NGN6cHpaWEYxWlc1alpUNE5DaUFnSUNBOEwzaHpPbU52YlhCc1pYaFVlWEJsUGcwS0lDQThMM2h6T21Wc1pXMWxiblErRFFvZ0lEeDRjenBsYkdWdFpXNTBJRzVoYldVOUluUnRjRVJoZEdGVFpYUWlJRzF6WkdGMFlUcEpjMFJoZEdGVFpYUTlJblJ5ZFdVaVBnMEtJQ0FnSUR4NGN6cGpiMjF3YkdWNFZIbHdaVDROQ2lBZ0lDQWdJRHg0Y3pwamFHOXBZMlVnYldGNFQyTmpkWEp6UFNKMWJtSnZkVzVrWldRaUlDOCtEUW9nSUNBZ1BDOTRjenBqYjIxd2JHVjRWSGx3WlQ0TkNpQWdQQzk0Y3pwbGJHVnRaVzUwUGcwS1BDOTRjenB6WTJobGJXRStCZ1FBQUFEVkx6eGthV1ptWjNJNlpHbG1abWR5WVcwZ2VHMXNibk02YlhOa1lYUmhQU0oxY200NmMyTm9aVzFoY3kxdGFXTnliM052Wm5RdFkyOXRPbmh0YkMxdGMyUmhkR0VpSUhodGJHNXpPbVJwWm1abmNqMGlkWEp1T25OamFHVnRZWE10YldsamNtOXpiMlowTFdOdmJUcDRiV3d0WkdsbVptZHlZVzB0ZGpFaVBnMEtJQ0E4ZEcxd1JHRjBZVk5sZEQ0TkNpQWdJQ0E4VkdGaWJHVXhJR1JwWm1abmNqcHBaRDBpVkdGaWJHVXhNU0lnYlhOa1lYUmhPbkp2ZDA5eVpHVnlQU0l3SWo0TkNpQWdJQ0FnSUR4amIzTjBQbVpoYkhObFBDOWpiM04wUGcwS0lDQWdJQ0FnUEdodmRHVnNRVzFsYm1sMGVUNURkWEp5Wlc1amVTQmxlR05vWVc1blpUd3ZhRzkwWld4QmJXVnVhWFI1UGcwS0lDQWdJQ0FnUEdGdFpXNXBkSGxFWlhOamNtbHdkR2x2YmlBdlBnMEtJQ0FnSUR3dlZHRmliR1V4UGcwS0lDQWdJRHhVWVdKc1pURWdaR2xtWm1keU9tbGtQU0pVWVdKc1pURXlJaUJ0YzJSaGRHRTZjbTkzVDNKa1pYSTlJakVpUGcwS0lDQWdJQ0FnUEdOdmMzUStabUZzYzJVOEwyTnZjM1ErRFFvZ0lDQWdJQ0E4YUc5MFpXeEJiV1Z1YVhSNVBrVjRjSEpsYzNNZ1kyaGxZMnN0YVc0OEwyaHZkR1ZzUVcxbGJtbDBlVDROQ2lBZ0lDQWdJRHhoYldWdWFYUjVSR1Z6WTNKcGNIUnBiMjRnTHo0TkNpQWdJQ0E4TDFSaFlteGxNVDROQ2lBZ0lDQThWR0ZpYkdVeElHUnBabVpuY2pwcFpEMGlWR0ZpYkdVeE15SWdiWE5rWVhSaE9uSnZkMDl5WkdWeVBTSXlJajROQ2lBZ0lDQWdJRHhqYjNOMFBtWmhiSE5sUEM5amIzTjBQZzBLSUNBZ0lDQWdQR2h2ZEdWc1FXMWxibWwwZVQ1RmVIQnlaWE56SUdOb1pXTnJMVzkxZER3dmFHOTBaV3hCYldWdWFYUjVQZzBLSUNBZ0lDQWdQR0Z0Wlc1cGRIbEVaWE5qY21sd2RHbHZiaUF2UGcwS0lDQWdJRHd2VkdGaWJHVXhQZzBLSUNBZ0lEeFVZV0pzWlRFZ1pHbG1abWR5T21sa1BTSlVZV0pzWlRFMElpQnRjMlJoZEdFNmNtOTNUM0prWlhJOUlqTWlQZzBLSUNBZ0lDQWdQR052YzNRK1ptRnNjMlU4TDJOdmMzUStEUW9nSUNBZ0lDQThhRzkwWld4QmJXVnVhWFI1UGxOaFptVWdaR1Z3YjNOcGRDQmliM2c4TDJodmRHVnNRVzFsYm1sMGVUNE5DaUFnSUNBZ0lEeGhiV1Z1YVhSNVJHVnpZM0pwY0hScGIyNGdMejROQ2lBZ0lDQThMMVJoWW14bE1UNE5DaUFnSUNBOFZHRmliR1V4SUdScFptWm5janBwWkQwaVZHRmliR1V4TlNJZ2JYTmtZWFJoT25KdmQwOXlaR1Z5UFNJMElqNE5DaUFnSUNBZ0lEeGpiM04wUG5SeWRXVThMMk52YzNRK0RRb2dJQ0FnSUNBOGFHOTBaV3hCYldWdWFYUjVQbE4zYVcxdGFXNW5JSEJ2YjJ3OEwyaHZkR1ZzUVcxbGJtbDBlVDROQ2lBZ0lDQWdJRHhoYldWdWFYUjVSR1Z6WTNKcGNIUnBiMjRnTHo0TkNpQWdJQ0E4TDFSaFlteGxNVDROQ2lBZ0lDQThWR0ZpYkdVeElHUnBabVpuY2pwcFpEMGlWR0ZpYkdVeE5pSWdiWE5rWVhSaE9uSnZkMDl5WkdWeVBTSTFJajROQ2lBZ0lDQWdJRHhqYjNOMFBtWmhiSE5sUEM5amIzTjBQZzBLSUNBZ0lDQWdQR2h2ZEdWc1FXMWxibWwwZVQ1WGFHVmxiR05vWVdseUlHRmpZMlZ6YzJsaWJHVThMMmh2ZEdWc1FXMWxibWwwZVQ0TkNpQWdJQ0FnSUR4aGJXVnVhWFI1UkdWelkzSnBjSFJwYjI0Z0x6NE5DaUFnSUNBOEwxUmhZbXhsTVQ0TkNpQWdJQ0E4VkdGaWJHVXhJR1JwWm1abmNqcHBaRDBpVkdGaWJHVXhOeUlnYlhOa1lYUmhPbkp2ZDA5eVpHVnlQU0kySWo0TkNpQWdJQ0FnSUR4amIzTjBQbVpoYkhObFBDOWpiM04wUGcwS0lDQWdJQ0FnUEdodmRHVnNRVzFsYm1sMGVUNU1ZWFZ1WkhKNUlHWmhZMmxzYVhSNVBDOW9iM1JsYkVGdFpXNXBkSGsrRFFvZ0lDQWdJQ0E4WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1SUM4K0RRb2dJQ0FnUEM5VVlXSnNaVEUrRFFvZ0lDQWdQRlJoWW14bE1TQmthV1ptWjNJNmFXUTlJbFJoWW14bE1UZ2lJRzF6WkdGMFlUcHliM2RQY21SbGNqMGlOeUkrRFFvZ0lDQWdJQ0E4WTI5emRENW1ZV3h6WlR3dlkyOXpkRDROQ2lBZ0lDQWdJRHhvYjNSbGJFRnRaVzVwZEhrK1JISjVJR05zWldGdWFXNW5JSE5sY25acFkyVThMMmh2ZEdWc1FXMWxibWwwZVQ0TkNpQWdJQ0FnSUR4aGJXVnVhWFI1UkdWelkzSnBjSFJwYjI0Z0x6NE5DaUFnSUNBOEwxUmhZbXhsTVQ0TkNpQWdJQ0E4VkdGaWJHVXhJR1JwWm1abmNqcHBaRDBpVkdGaWJHVXhPU0lnYlhOa1lYUmhPbkp2ZDA5eVpHVnlQU0k0SWo0TkNpQWdJQ0FnSUR4amIzTjBQbVpoYkhObFBDOWpiM04wUGcwS0lDQWdJQ0FnUEdodmRHVnNRVzFsYm1sMGVUNUJhWElnWTI5dVpHbDBhVzl1YVc1blBDOW9iM1JsYkVGdFpXNXBkSGsrRFFvZ0lDQWdJQ0E4WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1SUM4K0RRb2dJQ0FnUEM5VVlXSnNaVEUrRFFvZ0lDQWdQRlJoWW14bE1TQmthV1ptWjNJNmFXUTlJbFJoWW14bE1URXdJaUJ0YzJSaGRHRTZjbTkzVDNKa1pYSTlJamtpUGcwS0lDQWdJQ0FnUEdOdmMzUStkSEoxWlR3dlkyOXpkRDROQ2lBZ0lDQWdJRHhvYjNSbGJFRnRaVzVwZEhrK1VHVjBjeUJoYkd4dmQyVmtQQzlvYjNSbGJFRnRaVzVwZEhrK0RRb2dJQ0FnSUNBOFlXMWxibWwwZVVSbGMyTnlhWEIwYVc5dUlDOCtEUW9nSUNBZ1BDOVVZV0pzWlRFK0RRb2dJQ0FnUEZSaFlteGxNU0JrYVdabVozSTZhV1E5SWxSaFlteGxNVEV4SWlCdGMyUmhkR0U2Y205M1QzSmtaWEk5SWpFd0lqNE5DaUFnSUNBZ0lEeGpiM04wUG1aaGJITmxQQzlqYjNOMFBnMEtJQ0FnSUNBZ1BHaHZkR1ZzUVcxbGJtbDBlVDVOWldWMGFXNW5JSEp2YjIxelBDOW9iM1JsYkVGdFpXNXBkSGsrRFFvZ0lDQWdJQ0E4WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1SUM4K0RRb2dJQ0FnUEM5VVlXSnNaVEUrRFFvZ0lDQWdQRlJoWW14bE1TQmthV1ptWjNJNmFXUTlJbFJoWW14bE1URXlJaUJ0YzJSaGRHRTZjbTkzVDNKa1pYSTlJakV4SWo0TkNpQWdJQ0FnSUR4amIzTjBQbVpoYkhObFBDOWpiM04wUGcwS0lDQWdJQ0FnUEdodmRHVnNRVzFsYm1sMGVUNUNZVzV4ZFdWMElHWmhZMmxzYVhScFpYTThMMmh2ZEdWc1FXMWxibWwwZVQ0TkNpQWdJQ0FnSUR4aGJXVnVhWFI1UkdWelkzSnBjSFJwYjI0K1EyRjBaWEpwYm1jZ1ptOXlJRzFsWlhScGJtZHpQQzloYldWdWFYUjVSR1Z6WTNKcGNIUnBiMjQrRFFvZ0lDQWdQQzlVWVdKc1pURStEUW9nSUNBZ1BGUmhZbXhsTVNCa2FXWm1aM0k2YVdROUlsUmhZbXhsTVRFeklpQnRjMlJoZEdFNmNtOTNUM0prWlhJOUlqRXlJajROQ2lBZ0lDQWdJRHhqYjNOMFBtWmhiSE5sUEM5amIzTjBQZzBLSUNBZ0lDQWdQR2h2ZEdWc1FXMWxibWwwZVQ1Q1lXSjVJSE5wZEhSbGNpQnpaWEoyYVdObFBDOW9iM1JsYkVGdFpXNXBkSGsrRFFvZ0lDQWdJQ0E4WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1UG05dUlISmxjWFZsYzNRZ2IyNXNlVHd2WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1UGcwS0lDQWdJRHd2VkdGaWJHVXhQZzBLSUNBZ0lEeFVZV0pzWlRFZ1pHbG1abWR5T21sa1BTSlVZV0pzWlRFeE5DSWdiWE5rWVhSaE9uSnZkMDl5WkdWeVBTSXhNeUkrRFFvZ0lDQWdJQ0E4WTI5emRENW1ZV3h6WlR3dlkyOXpkRDROQ2lBZ0lDQWdJRHhvYjNSbGJFRnRaVzVwZEhrK1EzSnBZbk1zSUhKdmJHeDNZWGtnWW1Wa1BDOW9iM1JsYkVGdFpXNXBkSGsrRFFvZ0lDQWdJQ0E4WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1UG05dUlISmxjWFZsYzNRZ2IyNXNlVHd2WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1UGcwS0lDQWdJRHd2VkdGaWJHVXhQZzBLSUNBZ0lEeFVZV0pzWlRFZ1pHbG1abWR5T21sa1BTSlVZV0pzWlRFeE5TSWdiWE5rWVhSaE9uSnZkMDl5WkdWeVBTSXhOQ0krRFFvZ0lDQWdJQ0E4WTI5emRENTBjblZsUEM5amIzTjBQZzBLSUNBZ0lDQWdQR2h2ZEdWc1FXMWxibWwwZVQ1VGFHOWxJSE5vYVc1bFBDOW9iM1JsYkVGdFpXNXBkSGsrRFFvZ0lDQWdJQ0E4WVcxbGJtbDBlVVJsYzJOeWFYQjBhVzl1SUM4K0RRb2dJQ0FnUEM5VVlXSnNaVEUrRFFvZ0lDQWdQRlJoWW14bE1TQmthV1ptWjNJNmFXUTlJbFJoWW14bE1URTJJaUJ0YzJSaGRHRTZjbTkzVDNKa1pYSTlJakUxSWo0TkNpQWdJQ0FnSUR4amIzTjBQbVpoYkhObFBDOWpiM04wUGcwS0lDQWdJQ0FnUEdodmRHVnNRVzFsYm1sMGVUNUpZMlV2ZG1WdVpHbHVaeUJ0WVdOb2FXNWxjend2YUc5MFpXeEJiV1Z1YVhSNVBnMEtJQ0FnSUNBZ1BHRnRaVzVwZEhsRVpYTmpjbWx3ZEdsdmJpQXZQZzBLSUNBZ0lEd3ZWR0ZpYkdVeFBnMEtJQ0FnSUR4VVlXSnNaVEVnWkdsbVptZHlPbWxrUFNKVVlXSnNaVEV4TnlJZ2JYTmtZWFJoT25KdmQwOXlaR1Z5UFNJeE5pSStEUW9nSUNBZ0lDQThZMjl6ZEQ1bVlXeHpaVHd2WTI5emRENE5DaUFnSUNBZ0lEeG9iM1JsYkVGdFpXNXBkSGsrUTI5dGNHeHBiV1Z1ZEdGeWVTQnVaWGR6Y0dGd1pYSThMMmh2ZEdWc1FXMWxibWwwZVQ0TkNpQWdJQ0FnSUR4aGJXVnVhWFI1UkdWelkzSnBjSFJwYjI0Z0x6NE5DaUFnSUNBOEwxUmhZbXhsTVQ0TkNpQWdJQ0E4VkdGaWJHVXhJR1JwWm1abmNqcHBaRDBpVkdGaWJHVXhNVGdpSUcxelpHRjBZVHB5YjNkUGNtUmxjajBpTVRjaVBnMEtJQ0FnSUNBZ1BHTnZjM1ErWm1Gc2MyVThMMk52YzNRK0RRb2dJQ0FnSUNBOGFHOTBaV3hCYldWdWFYUjVQbE5vZFhSMGJHVWdjMlZ5ZG1salpUd3ZhRzkwWld4QmJXVnVhWFI1UGcwS0lDQWdJQ0FnUEdGdFpXNXBkSGxFWlhOamNtbHdkR2x2Ymo1amIyMXdiR2x0Wlc1MFlYSjVJR1J2ZDI1MGIzZHVJR1J5YjNBZ2IyWm1JRzl1YkhrOEwyRnRaVzVwZEhsRVpYTmpjbWx3ZEdsdmJqNE5DaUFnSUNBOEwxUmhZbXhsTVQ0TkNpQWdJQ0E4VkdGaWJHVXhJR1JwWm1abmNqcHBaGcwS1BDOWthV1ptWjNJNlpHbG1abWR5WVcwK0N3PT0+Oz4+O2w8aTwxPjs+O2w8dDw7bDxpPDc+O2k8OT47aTwxMT47aTwxMz47aTwxNT47aTwxNz47aTwxOT47aTwyMT47aTwyMz47aTwyNz47aTwyOT47aTwzMT47aTwzMz47aTwzNT47aTwzNz47aTwzOT47aTw0MT47aTw0Mz47aTw0NT47aTw0OT47PjtsPHQ8cDxwPGw8VGV4dDs++Pjs+Pjs+Pjt0PDtsPGk8MT47aTwzPjs+O2w8dDxAMDw7Ozs7Ozs7Oz47Oz47dDxAMDw7Ozs7Ozs7Oz47Oz47Pj47dDw7bDxpPDE+Oz47bDx0PDtsPGk8MT47PjtsPHQ8QDA8Ozs7Ozs7Ozs+Ozs+Oz4+Oz4+O3Q8O2w8aTwxPjtpPDM+Oz47bDx0PEAwPDs7Ozs7Ozs7Ozs+Ozs+O3Q8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47dDw7bDxpPDExPjs+O2w8dDxAMDw7Ozs7Ozs7Oz47Oz47Pj47Pj47Pj47Pt9nQMho+ChKwOtInNkQ6e386JcF

   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +448
   System.Web.UI.Page.LoadPageViewState() +18
   System.Web.UI.Page.ProcessRequestMain() +447

[/code]
thanks in advance
0
Comment
Question by:skystar
  • 4
  • 3
8 Comments
 
LVL 12

Expert Comment

by:ShazbotOK
ID: 18810148
That is not  a problem with the page being open to long... that is a problem with you load balancer services (IE: like a router) that is pushing you to a differnent server from the one you origionated from.

To stop this from happening you will need to set the MachineKey attribute in the config file (If .NET 2.0 you can do this in the web.config instead of the machine.config)

This is a security feature to keep the viewstate secure.  Below is an EXAMPLE ONLY of what you could use to sync your machines:

<machineKey validationKey='96EAB9DAE6672A7D320B0D2B9FD82EF47F184B8A9745D2DF424671607C11F115FDAF27D25F7B2B68DB8348A9A8F2B0BF858E64A076ACAAEEB176938AFF8511A4'   decryptionKey='D99306C85C612BFE4FE5177D47EE07FCEA3B8ED11BEECDD4'   validation='SHA1'/>

EggHeadCafe has an example of how to create an app that can autogen this for you...
http://www.eggheadcafe.com/articles/20030514.asp

0
 
LVL 14

Expert Comment

by:steveberzins
ID: 18810164
wow, that's a lotta viewstate...

anyway,

is this occuring on the same server? like your development machine? I'd guess not...
or in a load balanced/server farm type environment? probably...

my first guess would be your in a server farm, and sessions are 'sticky', for some amount of time in the 15-20 minute range, after that, chances are good the user, if not actively using the application is ending up on a different server when they do again become active, within the same 'browser session'.

If this is the case, you will have to do what the error information says, and have you're servers all use the same key and algorithm.

see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfmachinekeysection.asp

that, or, I suppose, you could have them change the load balancing to ensure users don't change servers 'EVER', but I don't think anyone would actually do that for you, or recommend it as a real solution to the problem. (except me I guess...) :)
0
 

Author Comment

by:skystar
ID: 18812778
Thanks  both of you for your reply.

ShazbotOK, I am try to understand, but still it is hard for me.
On server where I am hosting my site and on my local computer, I have ASP.NET 1.1
When I put <machineKey validationKey ---> in my web.config, I got error.
Then I created machine.config and added the code into machine.config, but same error.

I do not know that I did right or wrong, I went to
http://www.eggheadcafe.com/articles/20030514.asp
then I use Pete's Nifty Machine Key Generator
http://www.eggheadcafe.com/articles/GenerateMachineKey/GenerateMachineKey.aspx

I added following code in machine.config, but same error

<machineKey validationKey='7AA532B866B1E3E2B23E46C0C1E9D631A5ABC51659DECD2BF46A6D09009C29910F4305BDBF8BA72B1AC13AF47697383C4A053C77B6FF685676DE362D458BA252'   decryptionKey='86270F5674D8E9C7DF4E717039F2563DD6532759C0C2C3BA'   validation='SHA1'/>

thanks again for your time
0
 
LVL 12

Expert Comment

by:ShazbotOK
ID: 18813053
Ok... don't create a Machine.Config that already exists in the servers Microsoft.NET directory... also if you modify that one it will not take affect until the server's are rebooted.

Using the Web.Config is your best option as it does not require a reboot - however this section has to be properly placed or the Web.Config interpreter will not understand:
note that in the Web.Config there is
                 <System.Web>  
                                           [Stuff here]
                 </System.Web>
to make this work, you will need to insert the machineKey node inside the <System.Web> section
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:skystar
ID: 18865070
Hi ShazbotOK,
Thanks for your reply.

I was away for few days. I just copy and paste in web.config and it works fine.
But I have few questions for you, Please if you can clear these.

What is the difference if I use as follow:
OR What should I use autogenerate or ..?

<machineKey validationKey="AutoGenerate,IsolateApps"
            decryptionKey="AutoGenerate,IsolateApps"
            validation="SHA1"/>

Another thing It also work if I use enableViewStateMac="false" on each page. ?????

thanks agian for your help!
0
 
LVL 12

Accepted Solution

by:
ShazbotOK earned 500 total points
ID: 18865108
The AutoGenerate flag will work just fine as long as the Client Browser is returned to that specific server page - HOWEVER in the context of using a server Web Farm - you would have to:

(A)  set the static encryption key - as in my above example OR;
(B) turn of ViewState - which is !!Not!! recommended as it presents a high level opening for hijacking

Although some instances may be stated that "this is not a app in need of security" we all need to remember that 90% of all security breaches come from internal... if a low-risk app is comprimised it may provide the avenue for the entire server to be comprimised.

With that said my reccomendation is choice (A) all the time every-time...
0
 

Author Comment

by:skystar
ID: 18866980
thanks again,
How about the following error:
System.FormatException: Invalid length for a Base-64 char array.

Is this one also relates to the view state or it is totally different?
Thanks
skystar
0
 
LVL 12

Expert Comment

by:ShazbotOK
ID: 18867340
I would have to say it is related to the machineKey unless you are doing some custom encryption... possibly the encryption key did not get entirely copied?

I attempted using the one I generated (above) and it worked with no problems....  It would also be important to be sure your using the same validation value as the one that generated the key...
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Foolproof security solutions has become one of the key necessities of every e-commerce or Internet banking website. If you too own an online shopping site then its vital for you to equip your web portal with customer security features that can allow…
What is Node.js? Node.js is a server side scripting language much like PHP or ASP but is used to implement the complete package of HTTP webserver and application framework. The difference is that Node.js’s execution engine is asynchronous and event…
This video teaches viewers how to create their own website using cPanel and Wordpress. Tutorial walks users through how to set up their own domain name from tools like Domain Registrar, Hosting Account, and Wordpress. More specifically, the order in…
Use Wufoo, an online form creation tool, to make powerful forms. Learn how to choose which pages of your form are visible to your users based on their inputs. The page rules feature provides you with an opportunity to create if:then statements for y…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now