MZ@ !L!This program cannot be run in DOS mode. $=\\\$u\\\\\Y\\\Ě\\\Rich\PELi[! ,p6 @@A0nH@E8#@.text `.data @.idataP%&@@.didat0@.rsrc@@@.relocEF@B(`$;$` @ $B@ <%B@ :<,:<-ٓ>@p/*@*pEpFEF EHpEpFE0G EHBBBK@K0KPKKpBPB0BBBBBK@K0KPKKpBPB0BB@D`2@`Cp2H[p[`[DH[@IDDDDDDDDT[p[`[pSH[@IPNQR@R`RRR0SM]p__`^ ^]DD^^ ^]^^^^ ^]_ _^^ ^`` Ёf0ggh@iijkk Ё0PipPDDDDDDDD\\\ ]@]]]^_`^^@____`bdPddeffYгZ@Z&жжжgpZ [p[0`g0ж\\\ ]@]]]^_`^^@____`bdPddйef0Y@Z &PPжgpZ [p[pg\\\ ]@]]]^_`^^@____`bdPdd efpYZ@Z&жжжgg#p[fg@`gж&\\\ ]@]]]^_`^^@____`bdPdd@'ef)))Z+ж&+ ,ж,g j Up[,fg-p1'`P@ e\\\ ]@]]]^_`^^@____`bdPdd5ef777Z:ж&:жж;g j Up[;0<fp<<=5\\\ ]@]]]^_`^^@____`bdPddBefEFFZ+ж&HIжIg j Up[Ifg@JLPCpd\\\ ]@]]]^_`^^@____`bdPddPefR0YRZ &PPжTgpZ Up[@UpUP\\\ ]@]]]^_`^^@____`bdPdd0YeffYZ@Z&жжжggpZ [p[DfgDDDDDDDDDDDDDDDDDDDDDDDDDDDD0 D`P@DpDDDDDDDDDDDDDDDDDDDDDpm\\\ ]@]]]^_`^^@____`bdPdd\effDfж&жжжgg j U@jDfgDD0 `e\\\ ]@]]]^_`^^@____`bdPdd0effZж&жжжgg j Up[DfgDDDP[p[`[pSH[@IQR@R`RRR0SDDDDDDЁ``ЁPкgpi`P  Ёpi`PP Ё` @ @ DDpi`PD$# Pp `0_@p"0#p#``f0pж&жжж& Upg@ Pp `0_@p"0#p#ppf4pж&жжж& j Upp@  Pp `0_@p"0#p#p@$@%f0pж&жжжg& UpDg@DDDDDDDDDDDDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDDDDD* Pp `0_@p"0#p#@$@%fD%ж&жжжg& j U(DgDD Pp `0_@p"0#p#`4@$@%f4pж&жжжg& j UpDgDDD0PDD0MMz jMMz jXMM j`@ ` @ 0I0IIIIpI`IPI@I22@ %5pt$$$p@t$$$$@$%% %$@%P%`%p% %$@P%` P@2 3` P@ @ ` &&P'@**+, ,P,, :`@p@@AB0BPBpBBBB`C@D EpEEpFF0GHH@I0K@KPKKKMMMPNQR@R`RRR0SpST`[p[[[]^ ^^^^_ _p__`f0ggh@iijkkPl0yЁ `0PpP0г0`ж 0@P`pй0@ PPp p@`#&@'')))++ ,,,-p155777::;;0<p<<=BPCEFFHIII@JLPPRRT U@UU0YYZ@ZpZ [p[\\\\ ]@]]]^`^^_@____`bdPddd e`eefffg j@jpm0PкP` P p`P @``pp p0ppPp `0@p"0#p##$@$@%%&(*`440P`P 00+222 3P3p66;@@@ BpBBBDE F`FFFFFFFF G0G`GGG HHHHHII I0I@IPI`IpIIIII{{{|| |bad allocationbad array new lengthext-ms-win-storage-sense-l1-1-0.dllext-ms-win-ntuser-draw-l1-1-1ext-ms-win-ntuser-draw-l1-1-2ext-ms-win-ntuser-draw-l1-1-1.dllcryptngc.dllDeviceLockHelpers.dllngckeyenum.dllext-ms-win-security-credui-l1-1-0ext-ms-win-security-credui-l1-1-1ext-ms-win-security-credui-l1-1-0.dllwkscli.dllnetutils.dllext-ms-win-devmgmt-policy-l1-1-0ext-ms-win-devmgmt-policy-l1-1-0.dllext-ms-win-session-usertoken-l1-1-0ext-ms-onecore-phoneinfo-l1-1-0\Unknown exceptionExceptionReturnHrLogHrFailFast%hs(%d)\%hs!%p: %hs!%p: (caller: %p) %hs(%d) tid(%x) %08X %ws Msg:[%ws] CallContext:[%hs] [%hs(%hs)] [%hs] ntdll.dllRtlDllShutdownInProgress%wswilstd::exception: %hsinternal\sdk\inc\wil\ResultMacros.hinternal\sdk\inc\wil\Resource.h_p0WilError_01Local\SM0:%d:%d:%hs4|ZE"\ CmPaFFABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/AVF3nf/Ngqkonecore\ds\security\ngc\inc\ec_HResult.hSOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UpdatePasswordStuffergenericiostreamiostream stream errorsystemunknown errorinvalid string positionstring too longAVF3nf/Ngqku8# AQR9G\0dvector too longTJӨF̰}dcCA8\ ڼT,g@nMIϱP{ד:c@H@rp0CIEW>o9Dji͉nAI6f=͈xM^{,ESinternal\sdk\inc\wil\resource.hNegotiateNgcDomainNameNgcTenantDomainNameMicrosoft Passport Key Storage ProviderNgcDeviceWipeRetryCountNgcGestureRetryCountNgcGestureCharacteristicsSQsEMZ^Q"mjnq$mjnq$mo^mr_m^`m[am`m`m`mbm4cmmmdmemfmm!gmhmimjmkmlm om ommmqmm$mmpnm ompmkmlm hmqm<mnmrmmm<,mn-mr.mmSOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\NgcPinPinBlockProtectionValidated/SƣF?槆PߩD Ihn[AllowPrebootAuthSOFTWARE\Policies\Microsoft\PassportForWorkSOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\PreBoot\AccountInfoProvisioningRequiredSOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\PreBoot\MailboxMailboxAlreadyCheckedINMessageMicrosoft Platform Crypto ProviderRSAPCP_KEY_USAGE_POLICYSmartCardPinOpaqueKeyBlobOUTUserNameDomainAzureADlsC ӧ}KD;J|)3onecore\ds\security\ngc\inc\ec_Void.h<,n-r.o^r_^`[a```b4cdef!ghijkl o omqm$mpn opkl hqNegotiateDsrFreeJoinInfo%s startedDsrFreeJoinInfoEx%s: The specified level "%lu" is not supported.ppJoinInfoDsrGetJoinInfo%s: "%s" should not be null.DsrGetJoinInfoEx%s: %s failed with error code: 0x%08x.%s: Out of memory. Allocation failed.pInputArgDeviceRegistrationStateApi::GetDeviceJoinInfo%s: No device cert is found. Checking workplace cert...DeviceRegistrationStateApi::GetWorkplaceJoinInfo%s: No device cert or workplace cert is found.%s - hr: 0x%08xDeviceRegistrationStateApi::IsJoinedDsrIsDeviceJoinedpJoinedpCertContextDeviceRegistrationStateApi::CompareTenantIdtenantIdequalRegistrationCertStatus::GetTenantIdCompareStringDeviceRegistrationStateApi::GetJoinCertificate%s: DeviceRegistrationStateApi::GetJoinCertificate returned NULL certificate.%s: DeviceRegistrationStateApi::PopulateJoinInfo failed with error code: 0x%08xDeviceRegistrationStateApi::PopulateJoinInfoppCertContext%s: Invalid join type %d. Only DEVICE and WORKPLACE are allowed.%s: RegistrationCertStatus::GetDeviceCertificate returned CRYPT_E_NOT_FOUND. Returning S_FALSE.RegistrationCertStatus::GetDeviceCertificate%s: RegistrationCertStatus::GetWorkplaceCertificate returned CRYPT_E_NOT_FOUND. Returning S_FALSE.RegistrationCertStatus::GetWorkplaceCertificate%s: The returned join certificate is NULL. Returning S_FALSE.%s: The specified tenant ID is empty. Returning the default account certificate...%s: There is no device join account that matches the specified tenant ID "%s". Returning S_FALSE.%s: There is no workplace join account that matches the specified tenant ID "%s". Returning S_FALSE.RegistrationCertStatus::GetDeviceIdJoinStatusStorage::ReadDeviceJoinStatusJoinStatusStorage::ReadWorkplaceJoinStatusRegistrationCertStatus::GetCertificate%s: CertDuplicateCertificateContext failed with error code: 0x%08x383a3889-5bc9-47a3-846c-2b70f0b7fe0eCopyStringWNgcStatusStorage::LoadCopyStringNullSafeW%s: UuidToStringW failed with RPC_STATUS error code: 0x%08xNULLEventWriteNullOrEmptyParameterFailureEventLogger::WriteNullOrEmptyParameterFailureEvent%s: %s failed with win32 error code: 0x%08x.EventWriteRegistryFailureEventLogger::WriteRegistryFailureEvent@@@@@destStringDupStringCchLengthWStringCchCopyWStringLenStringCatStringCchCatWCompareStringWCompareStringExppszOutBufferpszSourceCopyStringSafeWppszOut%s: wmemcpy_s failed with error code: 0x%08x.GetDomainFromEmailpszEmail@%s: The email does not contain the @ sign.%s: The email does not have any characters after the @ sign.pDataRegReadDwordValue%s: The registry key value "%s@%s" does not exist. Using default value 0. Error code: 0x%08x.%s: The registry key value "%s@%s" is not of type DWORD. Using default value 0. Error code: 0x%08x.%s: Cannot read registry key value "%s@%s". Error code: 0x%08x.RegReadStringValue%s: The registry key value "%s@%s" does not exist. Using default value NULL. Error code: 0x%08x.%s: The registry key value "%s@%s" is not of type DWORD. Using default value NULL. Error code: 0x%08x.%s: Failed to set registry value "%s@%s". Error code: 0x%08x.RegSaveStringValueRegOpenCurrentUserKey%s: RegOpenCurrentUser failed with win32 error code: 0x%08x. samDesired = %lu.SYSTEM\CurrentControlSet\Control\MiniNTHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNTIsWinPEHost%s: Cannot open reg key %s. Assuming the host is NOT WinPE. RegOpenKeyExW error code: 0x%08x.SOFTWARE\Microsoft\RecoveryEnvironmentHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironmentGetWindowsDirectoryWinPE%s: Cannot open registry key %s. Error code: 0x%08x.TargetOSGetwinDirectoryWinPERegLoadKeyWinPE%s: GetWindowsDirectoryWinPE returns an empty path.%s: Cannot load file "%s" into registry key "%s". RegLoadKeyW error code: 0x%08x.%s: File "%s" loaded into registry key "%s".SYSTEM\CurrentControlSet\Control\CloudDomainJoin\JoinInfo\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CloudDomainJoin\JoinInfo\SYSTEM\CurrentControlSet\Control\CloudDomainJoin\TenantInfo\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CloudDomainJoin\TenantInfo\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WorkplaceJoin\JoinInfo\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WorkplaceJoin\JoinInfo\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WorkplaceJoin\TenantInfo\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WorkplaceJoin\TenantInfo\%s: Failed to create or open registry key "%s". Error code: 0x%08x.IdpDomainTenantIdUserEmailAttestationLevelAikCertStatusTransportKeyStatusJoinStatusStorage::ReadDeviceKey%s: Failed to open registry key "%s". Error code: 0x%08x.%s failed to read one or more join status entries from the registry.JoinStatusStorage::SaveTenantKeyDisplayNameMdmEnrollmentUrlMdmTermsOfUseUrlMdmComplianceUrlUserSettingSyncUrlDrsServiceVersionDrsEndpointDrsResourceIdAuthCodeUrlAccessTokenUrlIdpAuthUrlCdjServiceVersionCdjEndpointCdjResourceIdNgcServiceVersionNgcEndpointNgcResourceIdJoinStatusStorage::ReadTenantKey%s: Reading registry key %s@%s failed with win32 error code: 0x%08x.%s: JoinStatusStorage::SetDefaultDiscoveryMetadata failed with error code: 0x%08x.pJoinStatushRootKeypRegkeyInfo%s: "%s" should not be null or empty.JoinStatusStorage::ReadJoinStatusdeviceIdReadDeviceKey%s: Tenant ID is empty.ReadTenantKeyGetWorkplaceRootKeyJoinStatusStorage::SetDefaultDiscoveryMetadatahttps://login.microsoftonline.com/%s/oauth2/authorizeStringCchPrintfWhttps://login.microsoftonline.com/%s/oauth2/token1.0https://enterpriseregistration.windows.net/EnrollmentServer/DeviceEnrollmentWebService.svcurn:ms-drs:enterpriseregistration.windows.nethttps://enterpriseregistration.windows.net/EnrollmentServer/device/https://enterpriseregistration.windows.net/EnrollmentServer/key/%s: Registry key %s@%s does not have a value. Using default value...%s: Registry key %s@%s does not have a value. Default value is also NULL. Returning NULL...%s: JoinStatusStorage::SaveTenantKeyfailed with error code: 0x%08x. Cannot save default discovery metadata into registry.1.2.840.113556.1.5.284.21.2.840.113556.1.5.284.51.2.840.113556.1.5.284.710CertificateUtil::FindCertificateByOidValue%s: CertificateUtil::FindCertificateByOidValue didn't find any certificate so returning CRYPT_E_NOT_FOUND.CertificateUtil::DoesExtensionWithValueExistOpenRootKeyhUserRegistrySOFTWARE\Microsoft\Windows NT\CurrentVersion\WorkplaceJoin\AADNGCHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WorkplaceJoin\AADNGC%s: The registry key "%s" does not exist. Noting to read.%s: Cannot open registry key "%s". Win32 error code: 0x%08x.%s: Cannot query values of registry key "%s". Win32 error code: 0x%08x.%s: There is no valid key registry.%s: Cannot enumerate keys under registry key "%s". Win32 error code: 0x%08x.%s: The registry key "%s" is not a valid NGC key ID. Error code: 0x%08x.%s: Failed to read registry key "%s\%s". Error code: 0x%08x.NgcStatusStorage::ReadKey%s: Cannot open NGC key registry. Key name: %s. Error code: 0x%08x.NgcKeyStatusNgcKeyNameTenantDomainUserIdMypcszOidpcszOidValue%s: System is WinPE.TargetSoftware\Microsoft\SystemCertificates\MYHKEY_LOCAL_MACHINE\TargetSoftware\Microsoft\SystemCertificates\MY%s: Cannot open registry key "%s". RegOpenKeyExW error code: 0x%08x. Try loading the registry key...TargetSoftwareHKEY_LOCAL_MACHINE\TargetSoftware%s: Always try unloading reg key "%s" first before loading it. RegUnLoadKeyW failed with error code: 0x%08x. Failure ignored. Continue to load the key...system32\config\software%s: Cannot open registry key "%s". RegOpenKeyExW error code: 0x%08x.%s: CertOpenStore failed with error code: 0x%08x%s: Will try to find the OID: '%hs' and value: '%s'%s: Certificate found.%s: CertCloseStore failed with error code: 0x%08x%s: Cannot close reg key %s. RegCloseKey failed with error code: 0x%08x.%s: Cannot unload reg key %s. RegUnLoadKeyW failed with error code: 0x%08x.%s: reg key "%s" unloaded.CertificateUtil::FindExtensionByOid%s: FindExtensionByOid: pcszOid is NULL.%s: FindExtensionByOid: pCertContext is NULL.pbResult%s: INPUTS - pcszOid: %hs ; pcszOidValue: %s%s: Extension string was not found; returning S_OK.%s: CertificateUtil::FindExtensionStrValueByOid failed with error code: 0x%08x%s: Extension value was found.CertificateUtil::FindExtensionStrValueByOid%s: Extension was not found in the certificate. OID: %hs.%s: FindExtensionByOid failed with error code: 0x%08x. OID: %hs.%s: CryptDecodeObjectEx with error code: 0x%08x%s: CryptBinaryToStringW with error code: 0x%08x%s: Extension value: %sCertificateUtil::FindExtensionGuidValueByOid%s: CertificateUtil::FindExtensionByOid failed with error code: 0x%08x. OID: %hs.%s: CryptDecodeObjectEx failed with error code: 0x%08xCertificateUtil::GuidStringFromByteArray%s: cbInputCount size is not the size of Guid: %d.0123456789abcdef--- - SOFTWARE\Microsoft\Policies\PassportForWork\Policies\Device\PoliciesSOFTWARE\Microsoft\Windows\CurrentVersion\WinBio\Credential ProviderPINComplexityRemoteBiometricsRequireSecurityDeviceMinimumPINLengthMaximumPINLengthUppercaseLettersLowercaseLettersSpecialCharactersDigitsHistoryExpirationUseRemotePassport%uEnabledD:(A;;GR;;;SY)H 2PPFE  , 0 ,0HpH2GG 4 R~HpH2D,FE  P! pH2HPFA ,0 ,0pH2$GC ,H P!pD־p+W"M9D]+H`[  6[ %\ \ K\F\%\[\[) K\HI%\[L[) [[L[ \ )T[ \D:(A;;GR;;;SY)%\) [ )T [ \%\D:uHps}#]+H`H2F   H pH 2F pH2$G  P! pH2$G  P! pH2$F P!p H2$G  .P! pD:(A;;GR;;;SY)D4/,DO]*\]+H`H2>D P!p H2"EHH      pH 2>G H  2 P!  pH2"DHH  pH2$DHP!p H 2DHpH2DHHp  \ \%\%\[ [K\F\ F\ [\[Software\Microsoft\IdentityStore\ProvidersNameCA00CFA8-EB0F-42BA-A707-A3A43CDA5BD99DDC52DB-DC02-4A8C-B892-38DEF4FA748F*bad conversionMicrosoft-Windows-Security-NGC-AllowRemoteNGC{92383B0E-F90E-4AC9-8D44-8C2D0D0EBDA2}{0850302A-B344-4FDA-9BE9-90576B8D46F0}nQnKAͅmoH";8JD- *0PDOWkFnQnKAͅmoH"i[(pp i[ ( @}KKKL1LbLLLLM*MTM~MMMN.NUNNNNOOPLPPPPQ7Q|QQQR$SaSST;TxTTU[UUU4VwVVWrWWWWXOXoXXXYYYZ*ZZZZZ[@[z[[\*\l\\\\]I]s]]]]^E^o^^^^_A_k____`=`g```aIava$bYbbbbc2cucccdhdd%emeeefFf gHgzggghhimiiij@jhjjj$kZkkkklElollllmAmkmmmmn=nonnn;ooo$p|pppLqvqqqr\rrsdssss)t^ttt(umuuvTvvv w-wWwwww.xNxxxx#yMymyyyz1zYzzzzz6{`{ETW0+ /Error:ModuleGetClassObjectErrorresultCode @ ActivityStoppedAutomatically @ANgcPinProvider.SetUsageScenarioretValusageScenarioflags ,Warning:InvalidUsageScenarioresultCode @ANgcPinProvider.SetUsageScenarioretValusageScenarioflags FError:WrlMakeAndInitializeNgcPinCredentialPrebootErrorresultCode 1Error:ConvertStringSidToSidWErrorresultCode 6Error:NgcPreboot::GetPrebootCredentialresultCode 3Error:DeviceLockGetLockSettingErrorresultCode bError:WrlMakeAndInitializeNgcPinCredentialLogonUILocalPolicyContainerCreationErrorresultCode 5Error:NgcUtilsGetUserAccountTypeErrorresultCode KError:WrlMakeAndInitializeNgcPinCredentialLogonUILocalErrorresultCode NCritical:WrlMakeAndInitializeNgcPinCredentialLogonUIErrorErrorresultCode @$DeviceBlockedMustBeResetretVal ;Warning:ContainerCreationCredentialsChangedresultCode <Warning:CredProvNotAdvisedDuringNotificationresultCode 'Error:ComPtrCopyToErrorresultCode ;Warning:UnsubscribeFromContainerCreationWnfresultCode 7Warning:SubscribeToContainerCreationWnfresultCode <Warning:QueryCredentialsRefreshedChangeStampresultCode FError:ICredentialProviderEventsCredentialsChangedErrorresultCode HError:WrlMakeAndInitializeNgcPinCredentialNegotiateErrorresultCode 6Error:KeyEnumManagerEnumerateKeysErrorresultCode ,Error:ConvertStringSidToSidWresultCode 7Error:NgcUtilsGetUserNameAndDomainErrorresultCode >Warning:InputSerializationBufferNotCurrentUserresultCode /Error:NgcUtilsGetCallerSidErrorresultCode -Error:NgcUtilsGetUserSidErrorresultCode JError:NgcUtilsUnpackNegotiateInputSerializationBufferErrorresultCode 1Warning:NotEnumeratingCredentialsresultCode 9Error:InvalidSerializationresultCodeauthPackageId /Error:WrlMakeAndInitializeErrorresultCode RError:NgcUtilsUnpackGestureCollectionInputSerializationBufferErrorresultCode 4Error:InvalidFlagsCombinationresultCodeflags ,Error:UserGetProviderIDErrorresultCode 9Error:UserGetStringQualifiedUserNameErrorresultCode %Error:UserGetSidErrorresultCode )Error:UserArrayGetAtErrorresultCode ,Error:UserArrayGetCountErrorresultCode @ResetPhoneErrorretVal  ActivityStoppedAutomatically BError:NCryptGetGestureCharacteristicsPropertyErrorresultCode 9Error:NCryptGetPinRetryCountPropertyErrorresultCode (Error:NCryptOpenKeyErrorresultCode 4Error:NCryptOpenStorageProviderErrorresultCode @Error:NCryptGetDeviceWipeRetryCountPropertyErrorresultCode MError:ICredentialProviderCredentialUIModeEventsSetUIModeErrorresultCode YError:ICredentialProviderCredentialEventsSetPinPolicyLinkFieldStringErrorresultCode [Error:ICredentialProviderCredentialEventsSetPinTypeCheckboxFieldStringErrorresultCode ZError:ICredentialProviderCredentialEventsSetPinTypeCheckboxFieldStateErrorresultCode `Error:ICredentialProviderCredentialEventsSetConfirmPinFieldInteractiveStateErrorresultCode UError:ICredentialProviderCredentialEventsSetConfirmPinFieldStateErrorresultCode TError:ICredentialProviderCredentialEvents2SetNewPinFieldOptionsErrorresultCode \Error:ICredentialProviderCredentialEventsSetNewPinFieldInteractiveStateErrorresultCode QError:ICredentialProviderCredentialEventsSetNewPinFieldStateErrorresultCode XError:ICredentialProviderCredentialEventsSetForgotPinLinkFieldStateErrorresultCode RError:ICredentialProviderCredentialEventsSetFieldSubmitButtonErrorresultCode WError:ICredentialProviderCredentialEventsSetSubmitButtonFieldStateErrorresultCode eError:ICredentialProviderCredentialEventsSetChallengePhraseFieldInteractiveStateErrorresultCode ZError:ICredentialProviderCredentialEventsSetChallengePhraseFieldStateErrorresultCode PError:ICredentialProviderCredentialEventsSetTextFieldLengthErrorresultCode MError:ICredentialProviderCredentialEvents5QueryInterfaceErrorresultCode QError:ICredentialProviderCredentialEvents2SetPinFieldOptionsErrorresultCode YError:ICredentialProviderCredentialEventsSetPinFieldInteractiveStateErrorresultCode NError:ICredentialProviderCredentialEventsSetPinFieldStateErrorresultCode ZError:ICredentialProviderCredentialEventsSetContextMessageFieldStringErrorresultCode YError:ICredentialProviderCredentialEventsSetContextMessageFieldStateErrorresultCode XError:ICredentialProviderCredentialEventsSetTitleMessageFieldStringErrorresultCode WError:ICredentialProviderCredentialEventsSetTitleMessageFieldStateErrorresultCode BError:NgcTicketCreateForMultipleKeyOperationsErrorresultCode 9Error:NgcUtilsBuildDecryptionKeyNameErrorresultCode 2Error:NgcUtilsParseNgcKeyNameErrorresultCode @TNgcPinCredentialLogonUILocal.HandlePinChangeErrorretValisValidhrPinChange @TNgcPinCredentialLogonUILocal.HandlePinChangeErrorretValisValidhrPinChange .Error:NgcPolicyInitializeErrorresultCode 'Error:NgcGetPolicyErrorresultCode =Error:NCryptGetTenantDomainNamePropertyFailedresultCode HError:NCryptGetTenantDomainNamePropertySizeRequestFailedresultCode 7Error:NCryptGetDomainNamePropertyFailedresultCode BError:NCryptGetDomainNamePropertySizeRequestFailedresultCode @^NgcPinCredentialLogonUILocal.HandleTicketCreationErrorretValisValidhrTicketCreation @^NgcPinCredentialLogonUILocal.HandleTicketCreationErrorretValisValidhrTicketCreation 9Error:NgcGetDefaultDecryptionKeyNameErrorresultCode +Error:DeviceLockSetPinErrorresultCode -Error:NgcChangePinSilentErrorresultCode ,Error:NgcPackAuthBufferErrorresultCode -Error:GetTicketsForLogonErrorresultCode .Error:GetKeyNamesForLogonErrorresultCode >Warning:DomainNameIdentityProviderNameMismatchresultCode WWarning:NgcUtilsGetCloudIdentityProviderNameWarningresultCodeacccountProviderId BError:PrepareKerberosLogonUnlockSerializationErrorresultCode KWarning:NgcLocalAccountVaultGetDefaultUserCredentialWarningresultCode @IncorrectConveniencePin SError:PrepareKerberosLogonUnlockSerializationForInvalidLassPINErrorresultCode @NgcPinCredentialLogonUILocalSerializeResponseInternalretValisValid uiDispositionisConvenienceCredential accountType @NgcPinCredentialLogonUILocalSerializeResponseInternalretValisValid uiDispositionisConvenienceCredential accountType ?Error:PolicyManagerValidateSequencesPolicyErrorresultCode ;Error:PinPolicyRulesValidateNumericPinErrorresultCode 5Warning:SetPinBlockProtectionRegValueresultCode ;Warning:GetDeviceWipeAttemptsRemainingErrorresultCode IWarning:ClearPinBlockProtectionRegValueAfterSuccessfulPinresultCode 6Error:RegSetKeyValueForPasswordStufferresultCode ENgcPinCredentialLogonUILocal::SerializeResponseretValisValid ENgcPinCredentialLogonUILocal::SerializeResponseretValisValid OWarning:ClearPinBlockProtectionRegValueAfterChangingDispositionresultCode 8Error:PolicyManagerGetManagedPolicyErrorresultCode BError:InvalidLogonUIInitializationContextParameterresultCode CWarning:NgcPrebootSetCachedUserNameAndDomainWarningresultCode @Error:NgcLocalAccountVaultProtectCredentialErrorresultCode 8Error:NgcDecryptWithUserIdKeySilentErrorresultCode <Error:NgcLocalAccountVaultGetCredentialErrorresultCode :Error:NgcTicketCreateForKeyOperationsErrorresultCode @Error:NgcUtilsBuildDefaultDecryptionKeyNameErrorresultCode @NgcPinCredentialPreboot::SerializeResponseretValisValid @NgcPinCredentialPreboot::SerializeResponseretValisValid JWarning:NgcPinCredentialPreboot::SerializeNgcResponseErrorresultCode RWarning:NgcPinCredentialPreboot::SerializeConvenienceResponseErrorresultCode 1Error:ConvertSidToStringSidWErrorresultCode ?Error:NgcPrebootGetCachedUserNameAndDomainErrorresultCode ;Warning:NgcUtilsGetUserNameAndDomainWarningresultCode QError:NgcUtilsPackContainerCreationOutputSerializationBufferErrorresultCode 4Error:PinPolicyRulesValidatePinErrorresultCode @NgcPinCredentialContainerCreation.ValidateCredentialretValisValiddisplayPinTypeCheckboxinNumericPinModepinPolicyType @NgcPinCredentialContainerCreation.ValidateCredentialretValisValiddisplayPinTypeCheckboxinNumericPinModepinPolicyType <Warning:InvalidPinTypeCheckboxRequestIgnoredresultCode RError:NgcUtilsUnpackContainerCreationInputSerializationBufferErrorresultCode @FNgcPinCredentialPinCollection.RespondToUseAltCredLinkClickretVal @FNgcPinCredentialPinCollection.RespondToUseAltCredLinkClickretVal MError:NgcUtilsPackPinCollectionOutputSerializationBufferErrorresultCode PError:ICredentialProviderCredentialEvents4::RequestSerializationresultCode 7Error:PinLengthRequiredForAutoSubmitPinresultCode ,Warning:PinGestureNotAllowedresultCode PWarning:ICredentialProviderCredentialEventsSetFieldStringWarningresultCode IError:NgcUtilsPackPinChangeOutputSerializationBufferErrorresultCode JError:ICredentialProviderCredentialEventsSetPinStringErrorresultCode JError:NgcUtilsUnpackPinChangeInputSerializationBufferErrorresultCode ?Error:NgcUtilsCoMemResourceStringAllocCopyErrorresultCode 1Error:NgcUtilsCoMemAllocCopyErrorresultCode )Error:SizeofResourceErrorresultCode 'Error:LockResourceErrorresultCode 'Error:LoadResourceErrorresultCode *Error:FindResourceExWErrorresultCode 3Error:NgcUtilsGetAuthPackageIdErrorresultCode &Error:LoadBitmapWErrorresultCode /Error:ComPtrAsUIModeEventsErrorresultCode *Error:ComPtrAsEvents4ErrorresultCode \Warning:ReportResultStatusFailureresultCodestatussubStatusstatusTextstatusIcon YWarning:GetSerializationResponseFailureresultCoderesponsestatusTextstatusIcon @7NgcPinCredential.GetSerializationretValcredType @7NgcPinCredential.GetSerializationretValcredType LError:ICredentialProviderCredentialEventsSetFieldStringErrorresultCode @*ShowForgotPinDetailsretValcredType @*ShowForgotPinDetailsretValcredType XError:ICredentialProviderCredentialEventsSetPinPolicyLinkFieldStateErrorresultCode [Error:ICredentialProviderCredentialEventsSetPinPolicyDetailsFieldStateErrorresultCode XError:ICredentialProviderCredentialEvents2SetConfirmPinFieldOptionsErrorresultCode TError:ICredentialProviderCredentialEvents2SetFieldNewPinOptionsErrorresultCode .Error:PinPolicyInitializeErrorresultCode EError:NgcUtilsCoMemResourceFormatStringAllocCopyErrorresultCode KError:ICredentialProviderCredentialEventsSetFieldStateErrorresultCode ,Error:ConvertSidToStringSidWresultCode (Error:RegGetValueWFailedresultCode (Error:RegOpenKeyExWErrorresultCode +Warning:RegDeleteValueErrorresultCode *Warning:RegOpenKeyExWErrorresultCode *Error:RegCreateKeyExWErrorresultCode 2Error:memcpy_sPrebootAuthBlobErrorresultCode -Error:memcpy_sRsaKeyBlobErrorresultCode "Error:CopySidErrorresultCode 4Error:NCryptExportKeyTpmVersionErrorresultCode 4Error:memcpy_sTpmPrivateKeyBlobErrorresultCode 3Error:memcpy_sTpmPublicKeyBlobErrorresultCode :Error:NCryptExportKeyType2ConsistencyErrorresultCode -Error:memcpy_sTpmKeyBlobErrorresultCode :Error:NCryptExportKeyType1ConsistencyErrorresultCode 2Error:NCryptExportKeyBlobDataErrorresultCode 0Error:NCryptExportKeyActualErrorresultCode 1Error:NCryptExportKeyGetSizeErrorresultCode .Error:NCryptEncryptActualErrorresultCode /Error:NCryptEncryptGetSizeErrorresultCode ,Error:NCryptFinalizeKeyErrorresultCode /Error:NCryptSetPropertyPinErrorresultCode =Error:NCryptSetPropertyPcpKeyUsagePolicyErrorresultCode 3Error:NCryptCreatePersistedKeyErrorresultCode *Error:BCryptGenRandomErrorresultCode #Error:EqualSidErrorresultCode 'Error:RegGetValueWErrorresultCode )Error:RegSetValueExWErrorresultCode )Error:RegOpenKeyExWFailedresultCode @DRemoteNgcProvider.SetUsageScenarioretValusageScenarioflags @DRemoteNgcProvider.SetUsageScenarioretValusageScenarioflags  ActivityStoppedAutomatically @Error:PolicyManagerQueryIsRemoteNgcEnabledFailedresultCode *Error:DsrGetJoinInfoFailedresultCode -Error:DsrIsDeviceJoinedFailedresultCode KError:ICredentialProviderCancelBioFeedbackVisualStateFailedresultCode aError:ICredentialProviderBioEventsBioFeedbackVisualStateChangedWithPriorityFailedresultCode <Error:IGreetingFormatterFormatGreetingFailedresultCode 7Error:UserSidRequiredForDefaultGreetingresultCode  IRemoteNgcScenarioLogonUI.RequestDisplayUserGreetingretValpriority  IRemoteNgcScenarioLogonUI.RequestDisplayUserGreetingretValpriority LError:WrlMakeAndInitializeRemoteNgcCredentialLogonUIV1FailedresultCode -Warning:IsRemoteEnabledFailedresultCode %Error:InvalidCredTyperesultCode PError:WrlMakeAndInitializeRemoteNgcCredentialInformationalFailedresultCode )Error:InvalidFlagsresultCodeflags 8Error:CreateThreadpoolCleanupGroupFailedresultCode GError:ICredentialProviderEventsCredentialsChangedFailedresultCode 7Error:TrySubmitThreadpoolCallbackFailedresultCode -Error:UserGetProviderIDFailedresultCode :Error:UserGetStringQualifiedUserNameFailedresultCode &Error:UserGetSidFailedresultCode *Error:UserArrayGetAtFailedresultCode -Error:UserArrayGetCountFailedresultCode (Error:ComPtrCopyToFailedresultCode >Error:NgcUtilsBluetoothRadioObserverStopFailedresultCode ?Error:NgcUtilsBluetoothRadioObserverStartFailedresultCode 5Error:ComPtrAsGreetingFormatterFailedresultCode -Error:ComPtrAsBioEventsFailedresultCode DError:NgcUtilsBluetoothRadioObserverInitializeFailedresultCode ]Error:ICredentialProviderCredentialEventsSetDescriptionMessageFieldStateErrorresultCode @ARemoteNgcCredentialLogonUIV1.RespondToDescriptionLinkretVal @ARemoteNgcCredentialLogonUIV1.RespondToDescriptionLinkretVal @>RemoteNgcCredentialLogonUIV1.RespondToTryAgainLinkretVal @>RemoteNgcCredentialLogonUIV1.RespondToTryAgainLinkretVal .Error:GetComputerNameExWFailedresultCode 8Error:GetComputerNameExWBufferSizeFailedresultCode RWarning:ICredentialProviderCredentialEvents2EndFieldUpdatesWarningresultCode ZError:ICredentialProviderCredentialEventsSetDescriptionLinkFieldStateErrorresultCode @6Error:UnknownRemoteAuthenticationErrorresultCode @2Error:UnknownRemoteConnectionErrorresultCode FError:NgcUtilsCoMemResourceFormatStringAllocCopyFailedresultCode $Warning:NoEvents4CannotAutologon AError:NgcUtilsBuildDefaultDecryptionKeyNameFailedresultCode 3Error:NgcUtilsParseNgcKeyNameFailedresultCode @SRemoteNgcCredentialLogonUIV1.RemoteKeyAuthenticateAndSubmitForAutoLogonretVal DError:NgcRemotePairingGetLogonKeyRequestStatusFailedresultCode @SRemoteNgcCredentialLogonUIV1.RemoteKeyAuthenticateAndSubmitForAutoLogonretVal 3Error:CoInitializerInitializeFailedresultCode AError:NgcRemotePairingCreateLogonKeyRequestFailedresultCode @Error:NgcUtilsCoMemResourceStringAllocCopyFailedresultCode TWarning:ICredentialProviderCredentialEvents2BeginFieldUpdatesWarningresultCode @BRemoteNgcCredentialInformational.RespondToTryAgainLinkretVal @BRemoteNgcCredentialInformational.RespondToTryAgainLinkretVal ;Error:NgcRemotePairingGetRequestErrorFailedresultCode WError:ICredentialProviderCredentialEventsSetTryAgainLinkFieldStateErrorresultCode TError:ICredentialProviderCredentialEvents4RequestSerializationFailedresultCode GError:NgcRemotePairingGetSpecificKeyRequestStatusFailedresultCode TError:NgcUtilsPackRemoteInformationalOutputSerializationBufferFailedresultCode CWarning:SerializeResponseUnexpectedRequestStatusrequestStatus IRemoteNgcCredentialInformational::SerializeResponseretValisValid IRemoteNgcCredentialInformational::SerializeResponseretValisValid ;Warning:NgcRemotePairingCancelRequestFailedresultCode UError:NgcUtilsUnPackRemoteInformationalInputSerializationBufferFailedresultCode  ActivityStoppedAutomatically 2Error:NgcUtilsCoMemAllocCopyFailedresultCode -Error:NgcPackAuthBufferFailedresultCode CRemoteNgcCredentialLogonUI::SerializeResponseretValisValid CRemoteNgcCredentialLogonUI::SerializeResponseretValisValid =Warning:NgcRemotePairingCompleteRequestFailedresultCode _RemoteNgcCredentialLogonUI.ReportResultInternalretValntStatusntSubStatusaccountType _RemoteNgcCredentialLogonUI.ReportResultInternalretValntStatusntSubStatusaccountType *Error:SizeofResourceFailedresultCode (Error:LockResourceFailedresultCode (Error:LoadResourceFailedresultCode +Error:FindResourceExWFailedresultCode 4Error:NgcUtilsGetAuthPackageIdFailedresultCode 'Error:LoadBitmapWFailedresultCode 0Info:LoadBitmapWIsNotPresentInforesultCode +Error:ComPtrAsEvents4FailedresultCode @0RemoteNgcCredential.GetSerializationretVal @0RemoteNgcCredential.GetSerializationretVal 4Error:CannotMergeUninitializedPolicyresultCode @Error:InvalidSerializationPinPolicyLengthOverrunresultCode @Error:InvalidSerializationInvalidPinPolicyOffsetresultCode <Error:InvalidSerializationArithmeticOverflowresultCode 2Error:InvalidSerializationTooSmallresultCode 1Error:NgcPolicyAlreadyInitializedresultCode GError:NgcPolicyValidationFailedInvalidAttestationPolicyresultCode EError:NgcPolicyValidationFailedInvalidSmartCardPolicyresultCode FError:NgcPolicyValidationFailedInvalidbiometricsPolicyresultCode =Error:NgcPolicyValidationFailedInvalidVersionresultCode KError:ConversionFromSmartCardPolicyOptionFailedInvalidValueresultCode 9Warning:InvalidPinDigitSequenceNotAllowedresultCode :Warning:InvalidPinOtherCharacterNotAllowedresultCode <Warning:InvalidPinSpecialCharacterNotAllowedresultCode 1Warning:InvalidPinDigitNotAllowedresultCode ;Warning:InvalidPinLowercaseLetterNotAllowedresultCode ;Warning:InvalidPinUppercaseLetterNotAllowedresultCode 8Warning:InvalidPinOtherCharacterRequiredresultCode :Warning:InvalidPinSpecialCharacterRequiredresultCode /Warning:InvalidPinDigitRequiredresultCode 9Warning:InvalidPinLowercaseLetterRequiredresultCode 9Warning:InvalidPinUppercaseLetterRequiredresultCode 7Warning:InvalidPinUnknownCharacterClassresultCode 3Warning:InvalidPinTooManyCharactersresultCode 2Warning:InvalidPinTooFewCharactersresultCode BError:PinPolicyRulesNotInitializedBeforeValidationresultCode @9PinPolicyRules.ValidatePinretValresultValidatePin @9PinPolicyRules.ValidatePinretValresultValidatePin EError:InvalidPinPolicySerializationUnsupportedVersionresultCode >Error:InvalidPinPolicySerializationWrongSizeV3resultCode >Error:InvalidPinPolicySerializationWrongSizeV2resultCode >Error:InvalidPinPolicySerializationWrongSizeV1resultCode ;Error:InvalidPinPolicySerializationTooSmallresultCode 6Error:PinPolicyRulesAlreadyInitializedresultCode 7Error:ValidationFailedInvalidExpirationresultCode <Error:ValidationFailedInvalidPinHistoryCountresultCode CError:ValidationFailedAllCharacterClassesDisallowedresultCode BError:ValidationFailedInvalidCharacterPolicyOptionresultCode ;Error:ValidationFailedInvalidMinOrMaxLengthresultCode :Error:InvalidPinPolicySerializationVersionresultCode 8Error:InvalidOtherCharactersPolicyOptionresultCode :Error:InvalidSpecialCharactersPolicyOptionresultCode /Error:InvalidDigitsPolicyOptionresultCode ;Error:InvalidLowercaseCharacterPolicyOptionresultCode ;Error:InvalidUppercaseCharacterPolicyOptionresultCode QError:PolicyManager_GetDeviceLockPolicy_AllowSimpleDevicePasswordresultCode 0Error:InitializeDefaultProPolicyresultCode 3Error:InitializeDefaultProPinPolicyresultCode 5Error:InitializeDefaultConsumerPolicyresultCode +Info:NgcPolicyUsingDefaultsresultCode 3Info:NgcPolicyUsingDeviceLockPolicyresultCode 4Info:NgcPolicyUsingMergedPassportCspresultCode .Info:NgcPolicyUsingPassportCspresultCode .Info:NgcPolicyUsingGroupPolicyresultCode 6Error:GetManagedPolicyInvalidParameterresultCode @wPolicyManager.GetManagedPolicyretValuserSidProvided idpDomainNametenantIdpolicyTypeisSupportedDeviceLockPolicy biometricsPolicysmartCardPolicyhardWarePolicypinPolicyMinLengthpinPolicyMaxLengthpinPolicyUpperCasepinPolicyLowerCasepinPolicyDigitspinPolicySpecialCharacterspinPolicyOtherCharactersallowSequences historyexpiration__TlgCV__ @wPolicyManager.GetManagedPolicyretValuserSidProvided idpDomainNametenantIdpolicyTypeisSupportedDeviceLockPolicy biometricsPolicysmartCardPolicyhardWarePolicypinPolicyMinLengthpinPolicyMaxLengthpinPolicyUpperCasepinPolicyLowerCasepinPolicyDigitspinPolicySpecialCharacterspinPolicyOtherCharactersallowSequences historyexpiration__TlgCV__ ;Info:MergedPoliciesresultCodeNumberOfPoliciesMerged 'Error:MergePolicyFailedresultCode 6Info:MergingPolicyFromTenantresultCodeTenantId (Warning:EnumTenantIdKeysresultCode "Error:QueryKeyInforesultCode &Error:OpenNgcPolicyKeyresultCode 9Error:DevicePolicyRootExistsButReadFailedresultCode <Error:ReadProContainerDevicePolicyRootFailedresultCode 7Error:UserPolicyRootExistsButReadFailedresultCode 9Info:ReadProContainerUserPolicyRootFailedresultCode @Info:FailedToReadAllowSimpleDevicePasswordPolicyresultCode :Warning:InvalidExpirationValueresultCodeexpiration ?Info:FailedToReadDevicePasswordExpirationPolicyresultCode 4Warning:InvalidHistoryValueresultCodehistory <Info:FailedToReadDevicePasswordHistoryPolicyresultCode FWarning:InvalidMinDevicePasswordComplexCharactersValueresultCode IInfo:FailedToReadMinDevicePasswordComplexCharactersPolicyresultCode IInfo:FailedToReadAlphanumericDevicePasswordRequiredPolicyresultCode KWarning:InvalidDevicePasswordLengthValueresultCodeminPasswordLength >Info:FailedToReadMinDevicePasswordLengthPolicyresultCode 3Error:InitializeDefaultPolicyFailedresultCode <Info:FailedToReadDevicePasswordEnabledPolicyresultCode 6Info:DeviceLockPolicyNotSupportedBySkuresultCode Info:GpKeyEmptyresultCode  Error:IsKeyEmptyresultCode /Error:ReadGroupPolicyRootFailedresultCode /Error:InitializeNgcPolicyFailedresultCode /Error:InitializePinPolicyFailedresultCode .Warning:OpenBioPolicyKeyFailedresultCode FError:ReadPolicyValueDataOutOfRangeresultCodesubKeyvalueName &Error:InvalidParameterresultCode @]PolicyManager.QueryIsRemoteNgcEnabledretValtenantIdremoteNgcEnabledState__TlgCV__ @]PolicyManager.QueryIsRemoteNgcEnabledretValtenantIdremoteNgcEnabledState__TlgCV__ "Error:RegGetValueWresultCode =Error:c_NgcTicketCreateForRemoteKeyOperationsresultCode 0Error:NgcUtilsRpcClientBindErrorresultCode ?Error:c_NgcTicketCreateForMultipleKeyOperationsresultCode <Error:c_NgcTicketCreateForKeyOperationsErrorresultCode =Error:c_NgcLocalAccountVaultProtectCredentialresultCode  .Info:ClientRpcRecoverableErrorresultCode DError:c_NgcLocalAccountVaultGetDefaultUserCredentialresultCode 4Error:StringCchLengthStringSidFailedresultCode /Error:NgcUtils::RpcClient::BindresultCode ;Error:I_c_NgcLocalAccountVaultGetCredentialresultCode 9Error:NgcRemotePairingCompleteRequestBindresultCode 7Error:c_NgcRemotePairingCompleteRequestresultCode 7Error:NgcRemotePairingCancelRequestBindresultCode 5Error:c_NgcRemotePairingCancelRequestresultCode 9Error:NgcRemotePairingGetRequestErrorBindresultCode BError:RemotePairingGetRequestErrorInvalidParameterresultCode 7Error:c_NgcRemotePairingGetRequestErrorresultCode EError:NgcRemotePairingGetSpecificKeyRequestStatusBindresultCode NError:RemotePairingGetSpecificKeyRequestStatusInvalidParameterresultCode CError:c_NgcRemotePairingGetSpecificKeyRequestStatusresultCode BError:NgcRemotePairingGetLogonKeyRequestStatusBindresultCode KError:RemotePairingGetLogonKeyRequestStatusInvalidParameterresultCode @Error:c_NgcRemotePairingGetLogonKeyRequestStatusresultCode ?Error:NgcRemotePairingCreateLogonKeyRequestBindresultCode HError:RemotePairingCreateLogonKeyRequestInvalidParameterresultCode =Error:c_NgcRemotePairingCreateLogonKeyRequestresultCode 'Critical:memcpy_sFailedresultCode *Error:FormatMessageWFailedresultCode 'Error:LoadStringWFailedresultCode 1Error:StringFromGUID2FailedresultCodeguid 4Error:NgcCredProvEnumLogonKeysFailedresultCode 1Error:NetGetJoinInformationFailedresultCode (Error:RegOpenKeyExWErrorresultCode .Error:LsaLookupUserAccountTyperesultCode 9Error:LsaLookupAuthenticationPackageErrorresultCode 7Error:RtlUnicodeStringToAnsiStringErrorresultCode .Error:LsaConnectUntrustedErrorresultCode 3Error:InvalidSidNameUseresultCodesidNameUse $Error:LsaLookupSids2resultCode ,Error:LookupAccountSidLocalWresultCode 0Warning:FallBackToLocalSidLookupresultCode #Error:LsaOpenPolicyresultCode )Error:GetTokenInformationresultCode )Error:GetTokenInformationresultCode 3Error:LookupAccountNameLocalWFailedresultCode KError:LookupAccountNameLocalWSizeQuerySucceededUnexpectedlyresultCode <Error:LookupAccountNameLocalWSizeQueryFailedresultCode 4Error:ParseNgcKeyNameStringAccountIdresultCode 1Error:ParseNgcKeyNameStringTenantresultCode 1Error:ParseNgcKeyNameStringDomainresultCode =Error:BuildNgcKeyNameStringConvertContainerIdresultCode 6Error:ParseNgcKeyNameStringContainerIdresultCode .Error:ParseNgcKeyNameStringSidresultCode 8Error:ParseNgcKeyNameStringInvalidLengthresultCode 8Error:BuildNgcKeyNameStringInvalidLengthresultCode 5Error:BuildNgcKeyNameStringConvertSidresultCode ?Error:InvalidSerializationBufferUserSidTooLargeresultCode 8Error:InvalidSerializationBufferTooSmallresultCode ;Error:CredUnPackAuthenticationBufferWFailedresultCode SError:CredUnPackAuthenticationBufferWSizeQuerySucceededUnexpectedlyresultCode DError:CredUnPackAuthenticationBufferWSizeQueryFailedresultCode =Error:InvalidSerializationBufferBadSubmitTyperesultCode AError:CredUnPackAuthenticationBufferWIsNotPresentresultCode 5Error:NgcPolicyInitializeDefaultErrorresultCode NError:InvalidSerializationBufferNgcPolicySerializationTooLargeresultCode NError:InvalidSerializationBufferRemoteDeviceNameLengthMismatchresultCode ;Error:StringCbLengthWRemoteDeviceNameFailedresultCode HError:InvalidSerializationBufferRemoteDeviceNameTooLargeresultCode FError:InvalidSerializationBufferRemoteDeviceNameLengthresultCode )Info:RemoteNgcDisabledDueToSkuLicense )Error:NtQueryLicenseValueresultCode *Info:RemoteNgcDisabledForNonDesktopSku &Warning:AlreadyStoppedresultCode )Error:InvalidStateForStopresultCode 0Error:DevCreateObjectQueryFailedresultCode &Warning:AlreadyStartedresultCode *Error:InvalidStateForStartresultCode /Error:InvalidStateForInitializeresultCode  (Error:RpcClientBindErrorresultCode 7Error:RpcClientCreateBindingHandleErrorresultCode !Warning:RpcClientAlreadyBound >Error:RpcClientCreateSecurityDescriptorFailureresultCode 2Error:RpcClientCannotCopyServerSidresultCode /Error:RpcClientInvalidServerSidresultCodea{k[_Gv=Microsoft.Windows.Security.NGC.CredProvsPOωGvRSDS0ǁZ@Lngccredprov.pdbGCTL`.rdata$brc`$,.rdata$r$brc%.CRT$XCA%8.CRT$XCU%.CRT$XCZ%.CRT$XIA%.CRT$XIC%.CRT$XIZ%.CRT$XPA%.CRT$XPZ%.CRT$XTA%.CRT$XTZ%.cfguard,e.rdata `.rdata$sxdata.rdata$zETW0.rdata$zETW1!N.rdata$zETW2o.rdata$zETW9pP.rdata$zzzdbg.rtc$IAA.rtc$IZZ.rtc$TAA.rtc$TZZ.textS.text$dip,.text$mnxK0.text$x{{.text$yd0|hR.xdata$xminATL$__aminATL$__fminATL$__mminATL$__z .didat$2 .didat$3.didat$4l@.didat$6.didat$70n.edatap.data$brcp.data$r$brc@.dataL.bss.idata$5.00cfg4.idata$2P.idata$3d.idata$4| .idata$60.didat$5@.rsrc$01Ap.rsrc$02UQ@3ʼnEE(tkM US]W} t*u(tAMHMH Xx MVp tp$u$WSQuRu u^_[M34]$̋U@3ʼnEV5EW}hvhhP% %$t ~* PQj55M_3^]̋UoVWM j^EBQuu EuEBEGaGaAq QAEPAww_^]̋UE E t*QA #U#E tAQ#E#U ;Au;Qt2]̋SV3ۋW5tVff;u+9u_^YY A[̋V3W/tVFu+aFa 9_A^&P', ,,h{Yh{Y :P4&h |Yh|Yh|Y̋VW-𥥥 (D`|$_^̋VW-$𥥥@\x <_^̋VW-|𥥥$@\x_^̋VW-𥥥_^̋VW-\𥥥x_^̋UVu Wu3iuj^0e$QS]t;rVSQ+ 35WjQ$ u j ;sj"^0$jX[_^]̋UVF `PEPYY^]̋Au/̋UVFPEYt j V/YY^]̋UV3tvWx83t*S]W++ٍt tAu_[u Izt^]̋U3tvWx QuQ t3f]̋US3VtvWx=ʋWtf9tut+W_xQu+Q CX^[]̋UE 3Ʌt=vWxMQuQMi tE3f]̋UW3t+E SV+tft fNu^[uz3f_] ̋USVWuru 3VWg"x;wu z3fw_^[] ̋UE Vu+t=wMQuQ t3f9u t΍Qffu+4N^]̋U @3ʼnESً‰VuW=3f t 8 tPSV3f9 Dž/+t3t"tu.Dž/"Dž/Dž/ Dž/Q3hfPhvQh$~vHvD^_^[]̋Vtu 6DY&f^̋USVu مu AFWPhYu2*'}tVuOYY;s_^[]3 @@3 x@@3 @,@̋UE 3@]̋U @3ʼnES]3VuW} tPVju2kt +#7tOhPQtˍQAu+ʍx\t H;wUPM_^3[]̀=Vuj@Vjh& ^̡uhPh0̋UQ@3ʼnEV5uh1P5t M3^]̋UVWuhju֋PPu _^]̋UE V3t=vWx5S]MWQux3WPS.x;wu z_[ tM^]̅u3@ÍQAu+ʍA̅ujXÍQffu+M̋UQS]VWjYEK@K4K K<|K0rK(hK^KTKJKD@3ɋExPt :u9pTsVj 3ɋWtH} #G Ps OQsqOQsaOQsQO(Qs(AODQsD1O+ËEø+jjc̋UlMuh@EP;̋UQS]VWSuV jC YPPJPZuCdPNdK_^[]j$KEMEMt3f53҈tQu PRR9UsEMtU tuF PuFE:-ËE;u UMS-ø U M.Ey:-øx-3l EvEMtU tu܍F P-u܋FE:-u UMpS-u UM\-ø>댸x-̋U(@3ʼnEEEE EEEES]EE(Vu8WM3M0f8}E3EÉM3ɉU+tIt;t uFW9xM࿜WjuuuuG&3ɉE3C~(@FE tf9uF 8F~8E3ɉFE܉F EF$EFEFEFHEFL3N(3~,=t =FDthu؋V׋=t V39F|}F8|u;=9ut/tӄu =3 3C3=}$uut\8uTPPVEt=uhuV׋E3f9uVEtPM_^3[b]4l̋Ud@3ĉ$`ES]Vu\$]\$ W} uE$u 95t2ۍt$\$ VQt$pVQ$xVt$ uu uVt$4t$t6<^̋UESVWj@3j8PD$u;WQM[|$|$WPQVL$(2yWQM>!D$\$t$fD$j0^Vx H#3ۋL$HL$ H 3QW\$$L$ L$( f7G33j YM3D$D$tP7tS-tVjP_^[]̋UQMA(W}E;t:SVt#[VjPuE;u^[_]̋UVW93VjW=tt ;ut;uE_0^]QM+̋UQQS3VfEEWuEE+E;r6Pu?YYM t 3@;#É;us t3fDs_s^[]̋U S]EVWu]F+Eu;sUVSSYYM t 3@;#lj;us tD>>_^[]̋̋UH@3ʼnEeSVuW} }&7t.X3ҋ};}uBuV1UEW rEy8=v/3EEMEMEĺPjQQEM_^3[o] jQ 3ɄjL E 3+tKEPThu]Yk PWjA3H55T55559uuPt hPYY3@ ̋Vj@V^̋Vj@V^̋Vj@V^ ̋Vj@V^̃<H3@<@jD%8̋UVEt jVYY^]̋ Vu$58h{ MY^̋UQQ@3ʼnEeVWh1jYYSVFxF׋Vx׋]uuFV8txt <3f[tVpM_3^t]̋UQQ@3ʼnEeVWh1jYYSVFxF׋Vx׋]uuFV8txt <3f[tVpM_3^]̋U=8uVj@V^} t < <3]̋UQ@3ʼnEM 2VuW3> u"1t MQp@UR q֋M_3^] ̋UQ@3ʼnEMWyOu)A<SVjpËM^[t Au u <M3_I]̋UM3@A@Au u<]̋UQQ@3ʼnES]3V9E tPVAWMEuxSu8V׋tVq֋_M^3[]̋UQQ@3ʼnES]3V9E tPVAWMEuxSu8V׋tVq֋_M^3[]̋VWh1j'dYYt2 Wh2`FPfVt V;_^̋VWh1j'YYt2y Wh2FfVYt V_^̋UEVFt jVYY^]̋UQ@3ʼnEM 2VuW3>u51tE1t EP@UR q֋M_3^n] ̋UQ@3ʼnESW}_ Ku)tVjp,^=8t <M_3[ ]̋;uA;BuA;Bu A ;B u3@3̋VWV7_^̋U@3ʼnES] VuW3U}>C 98tW4MC 98t50 EVuP1֋9}t u9}t u3EPuSuօEuz4MC uuK P Wqփ}t ut(EPq֋EPq}E83M_^3[~] ̸̸̸̋VWV7_^̸4̡<̋UQQ@3ʼnESVW]?ts=<v@ 8tX4Mk@ 0u9ut;u!u- }t ueV Pqփy<M_^3[<]2̋UQQSVW}3EJ$ UĀӀ? 2>v Em 2D>‹U 2D>Ê 2D>u>_^[]̋U$@3ʼnEe3SVW}٫ǃ@EPuǃ}ܥhjSǃǃ MSM_^fC.3[]̋UujP]̋UujP]̋UVEt jVYY^]̋VNFF ^̋U@3ĉ$S3ۍL$4V\$ \$8\$=vjSh@3۹StRFE̋FjY]ЉMԉ]؋EEE܋F ]M]E]M]E}PjSGP[M_3^M]j<1Lً3ujY908~i9jLgY3MAAA AAAAA A$A(A,A0A4A8AuV_ ^̋UQQ} u@EMEE E]̋U } u@EMEE EEE8] ̋UQEME]̋UQQ} u@EMEE E+]̋UE u@ MEEE EEE] ̋U} t.}t(}t"EMEE EEEEE@]̋UE u@ MEEE EEEP] ̋UQQ} u@EMEE E]̋V~t FPj^̃=SVWv9h@jt$sVjCPjCc_^[38QtA9u9Pu 9Pu9P űUjhbLdPQ@3ʼnEVWPEd9tetj0֋Md Y_^M3]̃=8A At<̋UEVF t jVYY^]̋Qyt AY̋VWfA_^jL*eEE[EnUE}UًE@ ~ E츚U뼋E@ EXUËMh2j*ZjLe9uE@EËA0r։EEVE#V뻋E@ ~ E@V랋E@ EUËMh2j*ZRjL?e9uE@E]ËA0A0r ։EEVEV붋E@ ~ EV뙋E@ E踆VËMh2j*ZjMe9uE@EËp։EE`WEoWE@ ~ E踌W룋E@ E1WËMh2j*Zj*Me9uE@EËA0r։EEXEX뻋E@ ~ E2X랋E@ EWËMh2j*Z`jTMMe9uE@EkËA0A0r։EEXEX붋E@ ~ EX뙋E@ ExXËMh2j*Zj~Me9uE@EËA 0A70AN0VEE`YEoY벋E@ ~ E踌Y땋E@ E#YËMh2j*ZjMe9uE@EËA0A0r ։EE ZEZ붋E@ ~ E7Z뙋E@ EYËMh2j*Z[jMHe9uE@EfËA0r$։EEZEZ뻋E@ ~ EZ랋E@ E}ZËMh2j*Z̋U,@3ĉD$(9Vv$h@jntD$̕PjjVſL$,^3N]̃l$̃l$̃l$&̋UM3@A @]̋U@3ʼnESVUUM3ɊW]~ff;u+ Mt!EP+PrPU]Uu>3@tjXMPRUWjujju M_^3[L] ̋U@3ʼnEEVuWQQ3fWQPQQVM_3^]̋UQQQuQQuY]̋U}tuRQ ȋ]̋U}tuRQ ȋ]̋Vu3L3;sx΁r%A#;vPYȅu0A#H QYt^̋UV3u;v0u^ruA;s+ȃrڃ#wՋQFY]̋UEV4t jVYY^]̋UEU H]̋U @3ʼnEVWuMQp ֋u HVI;Ju ;u2M_3^)]̋UAVuV;Bu ;E u3@3^]̸`3̋UQeVu uYP΃fF^]̸h3̋UQ3} Eu!Vuht3FF^u usE]̸3j NuM3ESh]ԉ]]}EsEhSPE؃ }MsE؈]}EsEQPu  uFΉ^h3E;Ew}M؉EsM؈ +EQPMMEF^PSjM_̋Ujh.NdPV@3PEdu VYȋEt @` 0@XMd Y^]jUNJF;Fs_^]̋US]VW;u3OGu+St~rW+SVE3QWt(~rW~~Yr8_^[]̋UE S]VW{;r|+9}s};u& 9NrfN~rP Q?QWit4{r~r΋U W~~Yr8_^[] ̋UVW}N+;v=t1S9QStQWv,^~r[_^]p̋UVuW~sF@PwY t&FGFGFf~r6_^]h3h3̋UUt+yr;ryVr1A^;v2]̋UVuw/9qs qVQu!qyr 3;^]k̋U} uyr Eyr u EjP ] ̋US]VWr"{r  VCӋ7@P3C{s+;t:G3+;#t'+ߊ; ;GF;uG׋3@P7Y_^[]̋UE VW~;wf~r+t'~r+W~~Yr8_^]jNu}v}*3ENj^u;vjX+;w<j_e3QOB4)M3҉eBMQAEEfËu}E] Et~rSYjjFtE~^~r6aMjjjj ̋S3VSS^F ^^ ^^^Pf^^8Ɖ^<^@^D^H^L^[̋UV~Lt vLN@YN8F Pk?Et jPVYY^]̋UT@3ʼnE3VU9U tJ=@EvpEUjE؍E YMUEUMUEPQRR[t4}FF FVuMU'}tFEM3^]̸@̋UD@3ʼnESVuEċWPK #VK8#}E CAD+A@;wW_A@ 99u@NVEąy8=v8Eĉ}EE}EȺPjWWE 9>uM_3^`]j@Nu3}u 3EPN ~}N8u8=v*E}EE}EPjWWNMRvlt\x;t jS6M;t jSPM0;t jSP\P3+LfE؋XE]@PWEPRAHPWEPEPxPxSWME N`xK lt `PLxs3ۍ@ 0Edt d;,XLPI@t3MVjVjMVjx`LxÃ=v;3EtMEMEPjQQtlH=v9t]EE]EڗPjSS諦tlx9R=vIH=v9t]E]EEPjSSLtl@0l_=؉hv53EhMEMEPjQQܥh~ ہtdEd4̋UH@3ʼnEESVWj_83ۍE]P]0ȉMy4=vAE]E}]EĺPjSS7ME%=uM_^3[]hP"}3ۉ]tx|]\`dEEP\]tuyK=wE]EE]EYPjSSZuEw]fU]H yr PQ@Htu9Et uj[;uL]EEE|E0y]E3hlp}}MErE8h1hpEYYu}Ewui=uv/3EEMEMEPjQQu~ }uux3ɍEXPu\}PtP:xuhL4W EtW uy73=vME}EE}EʖPjWWKEPh#hPK@uMhXM\bt j@NE3PN }}F8vw,+>;FuQwNt5!;t)" ;FuQPNt!;t'F_^]̋UVW};tGFGF3GG_^]̋UQ@3ʼnEWtVRp^E_3M3迺]̋UQ@3ʼnEWt'VQp^M3_y]["̋VW7t0S_ E;uW+j3GG[_^̋QVq+s7+1W?+ƃr'+F+;_s3;sR^̋VW7t5S_Nt;uW+jZ3GG[_^̋USWtVSV^E_[]̋Vt)VSW+j[t@uj^_^[^̋UU Mj]̋UU Mj]h4j LP}QMjZe؋V]uQQSsN>+MEt$;tk;}uV+j!EFEFHuu@jj̋UQ@3ʼnESW{$t ;VrPփc$^M_3[ɷ]̋UU MVt @ujw^]j Puee>EuQM 4nj PڋE 3h1h$E谼YYuIeS$G GlG tum3؅xuhL4W)؅tṼaA̋US] +]WGG+;sVS"ϋVA^Su7 ÉG_[]j Pك#3h1h,E读YYuB$8eWu׋xShL4V8׋MtVq֋̃9t j1貺YY̋t !P̋VWjx>tjY3_^̋UQ++;s3;UsU]̋UV3W}FFu2w3QBsFωN_^]̋U}t 3jB]̍A̸p̋UQ@3ʼnEEVW0wO ֋M_3^K]̋UUVt|FBNJN J ^]̋UVu;tt&;t!^]̋I̋UQ@3ʼnESWGu+V0_Kup^M_3[r]̋UV\4MVt E 03.l4 ȋ]̋U}VW} t$~rSt WYVjB[F~~r63f~_^]jj̋USVWuى]-3ҍ}S(ujYK,3fCKDS@fC0SHS\3{LKtSpfC`_^fSxSz[]̸;W;jt^@tLt:t(tT:J4@6, "pt:zt({t~53#~;NtEt6Ft$GtruHsca|Yu thOtYtJtBtI%uɅ~3+ u~"Ɂ 3 +̋VWV7_^̋V>t 6&^̋UыME]̋Q̋UVN<N0NVEt jLVKYY^]̋UP@3ʼnEU VW30ωM<0uT=WEE}jE؍M XE}M}E}܍MQPWWE5t$t=@E[t F$ t F$ tF$9~$taV,F8F F]ȉMy8=v;E}EE}EȺPjWWRM U V(M_3^Ȩ]̋UX@3ʼnESV3ۍUW}]]]Ey<=E]EE]EĺPjSS賌9?t}?t^?t?=@EjYE]؉EԉM܉]}]M]EPQFF FCFF F,FF FF8F FN0F,GGPwEM_^3[c]̋UVuNE F 3^]̋VNf 3^jL7Q莺] 3E};9A w W9kquy,uvQ4E+Q0PQI0EWPE}P}}_Ey?=E}EE}E2PjWW̊EE@tjj_~3EPME TEP(R}yI=v/3EEME܉MEePjQQV}}tAu6M=EEN HMEA} E}ϸ̋UV38VHu ЅxA@+A<;wW_A< 99u@NVEąy8=v8Eĉ}EE}EȺPjWWE 9>uM_3^萤]h|Q3ۉ]hlp]]E||Xuy?=kE]EE]EPjSSmu9lEEEE}EG,E88O88tN=@uM]jMYM؉]܉E]M]EPQSṠG4M+G0|G0xEP|Pxuy-=HE]EE]EPj넍EPh6G4M+G0xG0|EPxP|$uy=E]EE]EPjG4M+G0xG0|EPxP|*u<=v[E]EE]EPjO4h+O0PG(PQw0CuxhPO=v53EMEMEPjQQ,z_=؉v53EMEMEPjQQy~ ہ1 ̋U@@3ʼnESVW3ۉ]Gw Pr ։Ey8=v3E]EE]EĺPjSSyEGHM_^3[螔]̋SWtVSV^'_[̋UQWM +MGG+;sVQϋV^uU Q7MG_]j aS_ك#3h1h8EpYYu5u eEΉu07фxShL4VtV触̋UQSVW3h1h3YYu.̑u E07荒xShL4VtV_^[Y]j aSeك#3h1hXEvYYu5;u eEΉu07gxShL4VtV譥j PߥڋE 3h1h,EYYuI`eSG GlG tuJ؅xuhL4Wf؅tV̋UVu +uWVtVu7 ƉG_^] ̸̋UUVtFBNJN J ^]̋UVMW3+;#t+tAG;u_^] ̋UUt,yr;ryVr1AF^;v2]̋UVW}Wt~ru +WV}=S] jSt*~rS^~Yr3f X[_^]3f9tVqff;u+^̋UVEt jVKYY^]hS蛣$]w$+>;FuQVt&$;FuQNt'F_^]̋V1t-jjN0jjNjjjXV1YY^̋VW7t0S_ ;uW+j輰3GG[_^̋QVq+s7+1W?+ƃr'+F+;_s3;sR^j T?QMjZԯe؋V]uQQSN>+MEt$;t;}uV+jEFEF uujj贖̋UVWVrF ArƋ} +9}ur+QPh!r+}+WuQPC_^]̋UVM+ƃW3;#t+t $G;u_^]̋US]VWV;}MG;+;} }}s ]] ]+M;sȉM+E E+;ExE+E EEE;s jPMj;th_9~r9~rEuE uÍB M A YM9yr 9~rEuEPEAE XU ;w\_9~r9~rEuEQBE XY9~r9~r΋E uÍBEÍ A]E;wb_9~rEu9~rEuuUB M A2Y9~r9~r΋E YPEB<};_wf9~r9~rEuEuB M AY9~r9~rEuME+M PEJ X9~rMu9~rRU YBoY9~r9~r΋UuPEÍ ABY9~r9~rދE+E PEEBE CYMN9~r3_fH^[]YC̋UQQS]VSt%~ru+SVu uNU; W} +;s++E;M+;s>~rEu~rEu:USBEM A1YMuF+jPEtuM;s:~rփ~rEuS];B M AYM]~rƋUQ XrEF~Yr3fA_^[]̋UV$F FlF tTEt h$V蝈YY^]̋UD@3ʼnEVW}3u9wu@=WEvSEuEEuEĺPjVVgE$cA;t jVWuƋM_3^߂]̋UD@3ʼnEES] V3W3}r WHuă i$VM TEPd.}y=eEĉ'VM TEP.}yЃ=eVM TEPjoZ-}y=enVMQ TEPjmZ-}Y=vee6VM TEPjwZr-}!=v-eEuEEuEȹPjVVe}u 3W}tVNjM_^3[]Iueڴy̋UM3҃} tW E 3] ̋U}tWS]̋U}rWE 3]̋UE3]̋UE @]̋UE3ɉE E@]̸@̋UE @] 3A(3Q,@Q0Q4A8QjMs TEP!؉]yʃ=eujM0 TEP!؉]y=e?<zrMPPMoGMPE]:Tr?U}M&KE;t 7蚻'}t uEjMy TEPjoZ ؉]=eB7jM# TEPjmZ| ؉]x=ve7jM TEPjwZC ؉]?=vFe3EEME܉MEPjQQmX]&eeW]MEeO}t uI8l@̋UP@3ʼnEE S]V3M} WEu3t WVMuй TEPjtZ)}y;=v-EuEEuEĺePjVVYW}uM38MEtVNjM_^3[r] ̋U}tW&$ujY3ɃIE 3]̋U<@3ʼnEESV3ۋ]W} tHt-tt WWEzPWToW<}E8)t[,;LuMF PqD։Eąy3=v*Eĉ]EE]EȺ1PjSSUEċM_^3[bq]̋U3҃} VtW.39M ;u9U s<Ѕx^]̋U}t} tW <@]̋U쀹)t}uE ,3@]̋UEt-jZ;tE w  #E E 0t 3]̋UE3҃$B3]̋UU "$u Ru"tt RuH Ru ]hxT;Eu ]|ExEt3pEEEMEz@=vKEE3҉E̋|jYUЉMԉU؉E܉UUEPQM覌PElPySEddEhT|l4Et3PxE| VS uyMρ1 uj8j\,ux)p3ɉ |xMtTAM|̋UD@3ʼnE=vFAE܋AW3E}}E}E}EPjBWPBR_M3m]̋V>uVE^̋UD@3ʼnEeS] VW}(Ɔ21nuqt$urƆ2|uxmtjuhExrjMQjPh2h=Ev.eEeEEEȺ*PjjjQeEjPjh9hp8hEt5=v,3EEMEMEȺճPjQQP<yr zrr(PQGȉMąx Ɔ(exrzrr?P'ME3_^[k]̋UH@3ʼnEU3USVJEWttu)08j<8(u78(u `6j!j81t 0616Zt*΋];u E ;AjXt G ;rk \1;u3zPME] TEPuy==v/EEE3EEMĺeQjPPNuE ME3tPƋM_^3[Nj] 3AHjXA(Q,Q0Q4Q8Q}=h@3۹SEFN D$@F\$DjZT$H\$LD$D$D$P\$TT$X\$\$D$D$D$`\$dT$h\$l(D$D$D$p\$tT$x\$|D$D$$$$$D$ 0PjSGPVD$_^[3_]hU\sًu3ҋE MDM@MH3(t:(HD@Pg=vsh@3۹S+/t]FD$0FjY\$4L$8\$<D$@F \$DD$H\$LD$P\$TL$X\$\D$PjSGP9.L$d_^[3I]hwVB]lE} ]hEpEd3tx|xEf=vph@j?.t^tE3ɉEpjZEЍEMĉUȉM̉MԉM܉EMUMEPjxvfPE>PL-xTTtX@p\E`'gE'#uit t TSqty:=v^3EtMEMEePjQQ,'lGh3ɉpdt@exb[̋U\@3ĉD$XSVW>d=vsh@3۹S,t]FD$0FjY\$4L$8\$<D$@F \$DD$H\$LD$P\$TL$X\$\D$PjSGP+L$d_^[3,G]hVZ]3H<@DE}jZ`33fL\xtfdU}f||EPdPLPEPtdt WE] QME8EPh5TEE= e QEEPQM3M}3H VEtUE TPEEy2= EuEEuEePjVVz EQMU TE384P YEEy=; e 3EVM軆 TEPEEy2=EuEEuEePjVVEE DžtDžpDžhldtaVMDž` TEPjtZZEEy2=<EuEEuEePjVVVMDž\蠅 TEPjmZEEyA=v0EuEEuEePjVV(#EE]]EQME$ TEP{EEy=]e&uEMQMEЄEPo}EEeMj覄 TEPuEEy=voe;jMkVWEPh5T&EEyZ=v23EEMMEEPjQQ!EEtV^WRtVEtW}Dž|DžxEEEI0)EUMEE3E3HEG Pq4։Ey9=v,3EEMEMEjPjQQ eG uj0jPN V EEy=> G uj0jPNVEEy=G uj0jPN V EEy=AG uj0jPNVEEy=ۨYG uj0jPN V EEy=VG uj0jPNVEEy=G uj0WPN<V=3EEMEMEĺPjQQus3EMxrQQPEPuutO=v/3EEMEMEĺѠPjQQ8uMMEP7McM3jEuPjEuPhX5Et8=v6EuEEuEĺEPjVVEE3M_^3[2]̋Ul@3ʼnEESVu3WEE EEuE]9Sh5EEP]uąt<=Eĉ]EE]EȺPjSSuoEx]rSSPEPuuątM=v-Eĉ]EE]EȺѠPjSSxučMMEPwMMujE]PjE]Ph5Eąt<=Eĉ]E]EEȹPjSSE{U]u uMt=jEPjEPh5Eąt=v9>덋]MU}Et$t$t3M_^3[/]3̋Q1Y̋Q;ỲytVqW9;7t?t77_^̋Atȅt AuPF̀ytV1Wy;>t >_^̋V1tV΅t AuV^̋QY̋QỸ=VvFPjf^̃9t1̋USV3W}W^^fytWS69< ~_^[]̋UV~t vfMAFƃa^]̋V~t vf^q̋V~t vf^̋UEV;tW8 ;>tE >_^]jjyjj̋Qyt AY̋Qyt AY̋Qyt ATY̋Qy t A Y̋U}VW} t5~r/St W6SYVÃt @ujS[F~~r6>_^]̋U}VW} t6~r0St WYVB t @ujWS[F~~r63f~_^]̋USVW}ΛW΋t~r+SWVG5QSt*~rSy~^~Yr3f X_^[]̋UE S]VW{;+9}s};u( 9NrjN~r3Pfu}v})3ENj^u;v+;w<eQjOZQ)MeQjMAZEPE; Ëu}E] Et~rS|YjjotE~^~r63f^+=Mjj>jj7j PG=uee>EuQM w<̋VWfA _^j P<ue5Ve>EuQM -wg<jX<zzrq;rǃyr PYȅu;s3;3<̋UEQ]j OX*<ue]e>EuQM wv;̃!a̋UEQ]̋UQ@3ʼnEEWtVRp^M3_*(]̋U(@3ĉD$$9v$PjjR\ L$$3']̋UQQ@3ʼnEEPj|x@EVuPqփtMt AuEPq^uM3i']̋UQVMi u^]̋UVu 9qsq;urEyr UPYu;us3;u^]̋UVWw&Vjt 0t@;u_^]QM ^joXd:uE +EPUqteuU Q6MFw9 Mmjj$4̋Uhjujjh4 ]̋UVuff;uu3^]f;@jjjQ̋Ujh.NdPV@3PEd;utjj>xusƋMd Y^]̋UQS]VWU]Sxt'EtKQPYY3fE3f F7_^[]̋VWNffu+V_^̋UQVM }t u^]j X8uee>EuQM^r7̋UQQ@3ʼnEW9EPj|x=EVWPqփtυt AuEPq^WM3_$]̋VE3f$F FlF t(,048<@Dl^̋UVHF FlF tBk@tPe4j(~rEEt hpV*(YY^]j\X6}E ]GEEE3G,G0G4G8Gu=ڶuUMEMUe0 ;ut M\uMQuuuR* EMMEeUeP蚭u=J3EEMMEEPjQQuOuUMeUp<^r?MQPuuuuW 0pE\u7=v/3EEMEMEPjQQuMuUMjE}ԃe3Y󫍋yr xrURURQu2QP2 uy:=vA3EEMEMEzPjQQEuMEMEM:Mx&̋U@@3ʼnEEUV30Euĉ2Wxfxrzr(PEąy_=v*EĉuEEuEȺPjVV(lEuMQp֋M_3^]jXZ_&E3҉U!UX$uMQ0֋ЉUEE;tG$;tEW$,eEPM WMEPM:ZM2Zp%̋UQSW};G;u C{ +V}+;}w+PRQG +fC+;w*}+PRQuv+VWs1t jy8G+Pi\tw+7V73 ƉC^_[]j*Z/%}];s;t_Ƌ++ىE];Ë]w+VRQC +mG+9Ew u+PRQ uQw;tхt Buj7C+P[teuQ7 S+G#MNWjjV̋Qy t A `Y̋UQQ@3ʼnES]WM{$t.;u#VQp֋MA$X^y$c$M_3[]̸@ ̋SVg3F FlF tf 3ƆjYf04f ^[̋UVjj F FlF tkjj\WfEt h8VYY^]̋Up@3ʼnEESV3WP]FEˉEE EEM}UEt:t6t2Et+EEMEEEEEEEE7M@Ey?=E]EE]EĺֻPjSSoE$ӈ\}tO;t;uQ3Ɉ=v4EEWEMEMEĺPjQQ};uƆW tFptt uFxNjM_^3[ ] ̋Ud E 3]I 3jDZZn ] 3E}!; r W3u!u!uE wOtZt[vQt7uL zrMPMME}̃ tw#qW}ojMR TEPjmZ}y==v/3EEMEMEePjQQJ}u E3!uuMEGtV̋UP@3ʼnEE S]V3M} WEu3t WVMuQ TEPjtZI}y;=v-EuEEuEĺePjVVy}uM38MEtVNjM_^3[ ] ̋UEttW u 93]̋UV3у} tWX39M ;uC9u 9r u@+t38BxQ(^]̋U} tWu]̋UEE wt  3]̋U@3ʼnEES] VWX3`\`d&=h@j7\EE3ɋXEEȍE؋jZPPMUMMMĉMEMԉMEMEMUMEPj`/&PhlP`L@@\D,XH&# t3 TS0\=ewu3 TS\E=e;VT=u` TS跳\=Ke3E\MMEEPjQQTt_M UV\TPPMn\yM=bTPV8\y=,,Tt#SS\xVXET\y=v%TuX!\,`!M_^3[']̋Ux@3ʼnEVW>#=h@jF3ɉE3ҋFBSj[MM]MMȋN 3EUĉuЍUԉE̍E܉u؉uUu苁EEEu]uEPjVGP[M_3^F]̋Ux@3ʼnEE US]VWEM3MMMM30EM1MuuuE(NEt.Mt'09wuWE}EMEE(@ME}y;=v-EuEEuEĺϹPjVV}u$EMEuEEE0tVEM_^3[]̋V33jZ@q,q0q4q8qM] 3E}!; r W_3u!u!uET8tZPMD TEP&}y{=3EE]E]EePjSStAjMkD TEP ©}y=\e(u3RjM#D TEPE38ƒin}=ezrMyPMRME}tXvL vB uBjMC TEPjrZ}=eP#W}}jMFC TEPE38ƒo葨}y==v/e3EEMMEEPjQQ}u E3!uuMEtVV̋UM3҃} tW E 3] ̋U@@3ʼnEE VW3}}tWsPQt[;uMF PqD։Eąy6=v-Eĉ}EE}EȺ1PjWWEċM_3^6]jWu}t} tWAy44F 8u@#QPMreMVMM> ̋U쀹t}uE 3@]̋U}E t t 3]̋UE3]̋U<@3ʼnESVu 3W}]ĉ889uT TV輥Eąy8=vweEĉ]E]EEȹPjSSEHDP.u( TVXEąyԃ=ve뚋E3M_^3[)]hZ E3ҋ}] EEEEE3UEUfEU8t. ,t1 E;t jRQ3҉UdUUAMuM3ɍP҉UE@ t@2"EppEtExE|$dEiuy?=v1eEeEEEؼPjjj@uE#M3M MEMM!tPjjM ̋V3A8jZ3q,@q0q4q?=vCh@3۹St-FD$0\$4D$8\$] 3Ƀ}M r W~uEHMtHQM) TEPjoZI}= e$QMEQЍMjjME5}EsEUEMٸE;t7M)'u}t ujjM385}xSu&k}hQM ) TEPjiZc}y==v/e3EEMMEEPjQQ}uE3tV:jWE}t} tWA肭y44F 8u@#QPMBeMV4M%̋UE @]̋U}E t 0t 3]̋U샹$u3)E3]̋V33jZ@q,q0q4q8=vVSh@3۹St>FE܋FjZ]U]@EEE]U]EPRSGP?[M_3^]̋U@3ʼnEEVW3|}9}8dEdE hEl|pEtE9} =v~|EEMԍE }j^EEu}}u}Eĉ}ȉủ}Ћ&ExxE}u}EPjWWE@M_3^]̋UQQE u@ MEEE E]̋UEt1}t+ ME EEE EEEEE@]̋U }u@EMEE EEEg] ̋U }u@EMEE EEE] ̋UQQ} u@EMEE E#]̋UQQ} u@EMEE Ez]̋UH@3ʼnEeS]VW}tSp֍w 4VhH9S0֋}y=vjj9u$Vh89S0֋}y8=v//3EEMMEEPjQQ螴} Sq֋M_^3[]̋VN fN$^3^̋UE 3]̋UD@3ĉD$@SVW} 3ۋ\$uXjY@D$9 v0D$\$z}p9]~}ajDžx[ DžxtWtEx TtP Wt}y4=3EEMEMEePjQQc|Py4׉Ey9=v,3EEMEMEjPjQQ衏e|VxjP8OW}y4==3EEMEMEPjQQ|jxjP8O W }y1=3EEMEMEPjQQS|jS3ۋSP8O W }y<=E]EE]EPjSS舎}Y|Py8׋}y8=v*E]EE]E2PjSS/}tV@}XMż̋UL@3ĉD$HSVW>l=v^h@3۹SGtHFD$0FjZ\$4T$8\$<D$ D$ D$@\$DT$H\$LD$PRSGPjL$T_^[3]̋QY̋Qy t A =Y̋VjhF(jPF FlF tF ^̋UVEt hVhYY^]A AlA t̋UUV rWE L(EL,3^] ̋UD@3ʼnESV3Wu @j_EPEĉ]PSjhX9h9h}hEu 9]tMHtC=v)E]E}]EȺ`PjSS诋E ؁ËM_^3[!]̋UT$L$t5t1}t+L$ ED$D$ D$D$ED$@]̋U@@3ʼnEVW3Mĉ}P0DuP=uv-E}EE}EȺ(PjWW跊u~FVM0'9}t uM_3^ ]̋UT$L$t5t1}t+L$ ED$D$ D$D$ED$@]jd`3h9M3!}/PVM0PVM!}}uELsuMPjjVh`3EubCEPEuPVjht:VuEhEu9utkCat\=vM`At<=v-EuEuE܍EPjVVEMWVjM蚷q\̋Vq>t 6\&^̋V~Lt v\f^̋Q7Yja趷e2EEEEًE@ ~ E뼋E@ E̒ËMh2j*Z̋UV3MfFfPuP^]jxIa¶ڋE}3ɉMZRJELMMMPh?jh:h`tO~ =u3EEME܉MEPjQQueEeMuPEL P3Ph?jPPh4;VX]}SM 3ɍEPQQjhh;h`;uMh}hu|EE|PVjjhh;h`;uh}hh`;u|VEEPUEiExz}tt}unu3MEEEFDPVf3EuNDEEEA PQMzMEPEPFdMuMTu|(uh`;u|MuM@̋UVW};tGFGF3GG_^]̋UVW};tGFGF3GG_^]jvau]3S>~~t}uQQ$^M3WW貭̅t tAu ̋U T$ L$tPtL}tFL$D$y35|$t.D$D$L$E D$D$ D$ED$\@]h$b˲3\TTE0]P0@0ud=Pv53EPMEMEPjQQP~ \TVH3P<@D=i3EEMMEEPjQQ}5}t uej jjh;EPuuy=|j@jEEPh;uuy=3OGr?j@EPWh;uuy=v}j@uEy5=v,3EEMEMEĺPjQQ||{t scEMeCEP{iuMiMiM_^3[Ɨ]jHYbIًFM+3ҋ}jQRRRP6UsUEyA=3EEMEMEPjQQ{EuMeUM+MF+ejRQujP6sEy5=v,3EEMEMEKPjQQ7{uMEPMuMv٩j\b*ڋ3EWPWWWh<Wv}}Ey?=E}EE}EPjWWzEuMW}ME+EQPu}Wh<WvEy=Q"uMUu+փ>PCPM~FN;v=E NAPMDMUj_9+A+׋FAϋFvEP~YY$~ =u~%4NNF;APMU}jY +B+FBFB NVR׉EEMPIt}YYt~ =Evz?N+EUvEʋP3}YYtD~ =Ev9P3EEME܉MEPjQQx EPuMm= uv\-= uvD=E v*E}EE}EPjWWwuMR赦̋UT@3ʼnEEeSVEM ډMWK+@+ PMP }MPC+GA+GG 6PjDu)~ =EGGuE+C++P3{YYtH~ =E3EEĉMMEEPjQQvsUK+ +MB+P2 ({YYtB~ =Ev,3EEĉMEMEȺkPjQQvvMEPučMM_^3[]hbeك\Mh:He/-PVM,<PVMT}uDžPLsujPP3Ph?jPPVhXt#~ 3\=vx5CG+P73jWhh;Tdtj~ =\v3S\}E}EEPjWWu\P{WjM2bP^MM3WFVh9Mu/PVMȰPSM跰}uDžHLLsu؍HPh?WVh`Xt[t6=v-X}EE}EPjWW"tH\WjM=3pht:LLXt9=v0X}EE}`PjWWsHWjM\WjbuN+ȋ};v ljFsF+F+;s!+;sPoP<e׋Nu+QQ++FF뢋M]jjejcM3QMBeV}uQQW^+مtV+щUt @mujEljF;F>.uuEjj؛j2ceEEEبEًE@ ~ E뼋E@ E¨ËMh2j*Z莳̋UVMW3+;#t+tAG;u_^]̋UT$L$t>t:}t4QuW'D$D$ L$ D$D$ED$? @]̋U@@3ʼnEVW3Mĉ} P0DuP=uv-E}EE}EȺ(PjWWpu~FVM0'9}t uM_3^$]̋U d$T$ L$tUtQ}tKL$D$ D$y36|$t/D$D$L$D$ D$D$D$ED$~ @]j|uc(3UMEP0@؍Mtf=uv/3EEMEMEPjQQou~ }t u}t uލU3EEE P y3}h9M=3Ҿ/ΉU!PVM0 PVM3ELEE}usuMPh?3PVh`EtQ=v/3EEMEMEPjQQnnEC3ҋ0Nff;u+UUUFEPMCqPQM 3MfEEPE+EPu3jPh4<udEtM =C3ۉE]E]ESPjSSmEUExE3ҋC 0Nff;u+MFPC qPQM33MfEEP E+EPu3jPhH<udEtL =v,C3ɉEMEMESPjQQl|3txh4<pLMM3MPj?̋UT$L$}t{L$D$y3j|$tct$uWNL$D$PT$D$D$ux|$t'D$D$ L$ D$D$ED$@]j|cޚ3E3]fE]]MEP0Duf=uv-E]EE]EPjSSw+>;FujNt!fx;FujNtffF_^]̋US]3VSFFttW>3f_F^[]̋VtV+jʩ3FF^̋UVMFV+;s"++;r PP^]̋USVWQjMZN+Q6W ^+tV+j&EGF_F>_^[]̋UV3W}FFu2"w QjZvFxF_^]̋UQ++;s3;UsU]̋QY̋US] +]VWGG+;sSϋaV34Vu7 ƉG_^[]̋AjceEE)EEًE@ ~ E̵뼋E@ E츊ËMh2j*ZƦjdweHEE訓E!E0ًE@ ~ EM뼋E@ E ËMh2j*ZE̋UVEt jVYY^]̋VN`FP膝F ^̋U@3ĉ$S3ۍL$4V\$ \$8\$<赜=h@ShdD$ $$E D$ D$ jY$E$$$$$$$$$D$`PjL$@oPD$LPDcD$8D$T$D$ D$L$$E D$ED$2E D$L$ED$ED$5L$$t$ L$8a$^[3f~] ̋UX@3ʼnEVW>B=vjSh@3۹SctRFE̋FjY]ЉMԉ]؋EEE܋F ]M]E]M]E PjSGP5b[M_3^}]ju%~t FPjV^̋I^̋VNt ?f^̋Qy t A Yj e蚄ك#3h1hEvYYu,reWΉuxShL4VtVW̋U,@3ĉD$(9Vv$h jUtD$]PjjVTL$,^3|p]̋t !P̋U}t 3j B]̸x̋UQ@3ʼnEVWwO֋M_3^o]̋UEхtJHJH]̸̋UQ@3ʼnEEVW0E w0E0O ֋M_3^Qo] ̋UUVt$FBNJN J N J N J ^]̸0̋UQ@3ʼnEE VW0Ew0O ֋M_3^n]̋UUVtFBNJN J N J ^]̋UV,4MTu-<4FuL48u\4'tE 0|4t E N3@^] ̋UQ@3ʼnEM 2VuW3>̀uQVQMTxPUR q֋M_3^m] ̋UQ@3ʼnESW}_Ku)tVjpX^=8t <M_3[)m]jf謀}g$EeX$tW0։G$̋UV8肳Et hVqYY^]̋UP@3ʼnEE 5tO=@EvNE3jE؍E YU܉MUEUMUEPQRR[PEA3A M3 l]̋UP@3ʼnEUV3u:tG=@EvXjYEu؉EԉM܉uUuMuEPQVVPǁBBPrEM3^ik]j|Ff~3ۉ]]]]]]EEEEEE E}EEHtA=@uE]E]EEPjSS'OrM+|xEP|Pկx\uy=v%낍EPM諮EPuM-MAMۯ[}j eu}ك#3h1hEoYYu5[2u eEΉu072xShL4VtV)|̸̋UUVt FBNJN J N J ^]jt g|}3__ }_]__w _u^^,^0^4f^8^:SG`SPf_xLJ|LJEEEEdE}EPE )YEyM=v-E]EE]EPjSSLEPM}hEPvMP{̋UVNEt hVmYY^]̋UVuWV.QF G _^]̋VM dž|tF`PN WNªN躪N^J̋U<@3ʼnEEeSVWP_蹪wpVhx<P1։Eąy>=3EEĉMEMEPjQQKEgw Vhh<P1։Eąy=v6S뜋E O GWEąy=vt% M_^3[-f]̋U<@3ʼnESV3W]č. 9tN YEąy5=vvEĉ]EE]EȺPjSSJGNN N^ 胩;uFyEċM_^3[Pe]jDNx] 3ҋEU;A r WkUyRMU藫WE TPuyI=v/3EEME܉MEPjQQIu}tAu6MEw EOHMEA} Euw̋UQQ@3ʼnESW3ۍESPS]}t@MVp(֋^x4+t͋+EE E‹M_3[c] ̋U@@3ʼnEUVu W3}ĉ>+;rWb 99u@NV]Eąy8=v8Eĉ}EE}EȺPjWWGE 9>uM_3^c]hS{v$]f3ۉ]9]|3U]M]Ey8=v{E]EE]EPjSS6ELEUG8MEG<}9]uVh}xt jVWYY%e̋UQQE L$D$ ]jDgIe3ۉ]]QM]*Ey5=vKE]EE]EPjSS566uE$jVEVVYY}tbdh(hdىs8K< P ƅPV  V3} :E>t?P6k9t gM3ۉ]]Mim=vKh@S 5t5]EE]EPjMmPEPV4E[-@ 3jYDf0\XfHtpf`MM؋V`EPHP0P PM SjM؉E賡ye3EfxxE P ؉jj0Sx3}sxPVQP-3ۍxSjؠSj`ʠSjH輠Sj0讠SMh9t  eMrgPE 7PW谼#PV蜼xP'tPK}E K4QXDӋ؉t3ۉ3SjxcSj`USjHGSj09ޛzMbgtWcMVcs8A=vO3EMEMEPjQQ=vEкPjjj[0tL>=v53EMEMEPjQQ0jjx(>=v53EMEMEEPjQQ/jj`ٝjjHʝjj0軝`MetW!btVb>=v53EMEMEPjQQ/]̋U<@3ĉD$8SVW>|g=vCh@3۹SW/t-FD$0\$4D$8\$u3u0jVS tV}]"EM}t uVZjDiZE 3ۉE]]]}@}6 =v4h@S+t%E]EE]EPjSS +SM)uEPh5Tuy<=eE]EE]EvPjSS*3EPO舛E4u M袵PuƇIjuuy}uXxr3f}t u]SME, TEPuyG=v-E]EE]EPjSS)u}t?u4u0jVS tV Xt Eu}t uX̋U<@3ʼnEeS]VWG4Pr4։Eąy9=v,3EEĉMEMEȺjPjQQ(eG4Sj3ۋ0SPNVEąy?=Eĉ]EE]EȺۨPjSS(EY] tPG4jjj0PN V Eąy1=&3EEĉMEMEȺPjQQ뗋G4jjj0PN V Eąy4=3EEĉMEMEȺPjQQDG4jjj0PN V Eąy4=3EEĉMEMEȺPjQQG4Pq8։Eąy7=v,3EEĉMEMEȺ2PjQQ2'3tƇM_^3[B]̋UP@3ʼnESVW}EP3Vj[S7uuuWE=tG=v)EuE]uEĺPjVV&E EuPUM EPuSuO=}v)EuE]uEĺPjVV#&}~ u EutVNjM_^3[A]hmiT}3ۉ]]]M]t^=vCh@S+&t2E]EE]EPjM^PE Pd%ExxEl|(LEUM]]!؉]y>=3EEMEMEPjQQ$]^EUG8|EG<}oE|VhE؉] 3X|!uVME覆 TEP}؉]y>=3EEMEMEPjQQ$$|]EPKEC4PY4ӉEy9=v,3EEMEMEjPjQQ#eEWjj@4PKS؉]y=vcۨ2Ejjj@4PK S ؉]yM=v/3EEMMEEPjQQ-#]}uuE@4PY8Ӌ؉]y:=v,3EEMEME2PjQQ"3ۉ]}Eƀt u]tWt jV4CYYlMX7Q̋U<@3ĉD$8SVW>Z=vCh@3۹S"t-FD$0\$4D$8\$RX=vCh@3۹S- t-FD$0\$4D$8\$YE_^]jiLeKø ڸ%ҋMh<j$Z|^̉jjKuEe0e>EuQM .K̃l$ṽl$F̃l$̃l$F̃l$̃l$̋UM3@A@]̋VWj3~@Y!FF!džf_^̋UVjjFF觉4Et hV<YY^]̋U`@3ʼnEeEeS]VEE WEENu3=v-E]EE]EpPjSSNEBjLjcB}E uE3E~t طEPMEuEPVu} }EPO豃EG4Py4׉Ey9=v,3EEME܉MEjPjQQkeEVjj@4P8OW}y=viۨ8EH439PjjQO W }yY=v/3EEMME܍EPjQQ}}t utVE@4Py8׋ȉMy:=v,3EEME܉ME2PjQQ]3ɉM}t uMt VMU"LjW?̋UL@3ʼnEE SV3E0EuĉuWHt WjI3EEEMEG3=vCh@Wt2E}EE}EPjMGPEPEEUE|E5EPKEC4Pq4։Ey6=v*E}EE}EjPjWWQ}}WMEgp TEPu}y=_C4Vjj8POW}y=v`A/C4jjj8PO W }y[=v/3EEMEMEPjQQ }tV}uC4Py8׉Ey9=v,3EEMEME2PjQQ etVE}t uU]MEK`uVhb}x3t jV^-YY|MCa;̋U<@3ĉD$8SVW>E=vCh@3۹S t-FD$0\$4D$8\$u%~t FPjV\^̋Qy t A $Y̋Qyt AY̋VWjY_f@^̋U,@3ĉD$(9Vv$hjtD$PjjVL$,^3]̃=8VW F F Ft t<3 WWFFPF~F~4Ɖ~8~<_^̋UVEt j@VYY^]̋VN4 FF)^FPF^̋UQQ} u@EMEE E]̋UQEME]̋UQQ} u@EMEE EO]̋UQEME]̋U}t(}t"EMEE EEEEE@]̋UE u@ MEEE EEET] ̋U }u@EMEE EEE S] ̋U}t,Et% MEEE EEEEEh@]̋U }u@EMEE EEE] ̋U}t(}t"EMEE EEEEE@]̋UEu@# MEEE EEEEES]̋U }u@EMEE EEE] ̋U EMEE EEEU] ̋UQQEMEE EX]̋U@3ʼnEE lSV3ۉ`EWdhlp4=vLh@St;h]EE]EPjl%4PtPlXXh4\!` 9]9d9]@dE@`DEHdLEPh`=dhjTT^MMԉ]u]Eĉ]ȉủ]ЋE\\E]u]EPjSSh @h4A l0M_^3[]̋U4@3ʼnEVW>1=v@Sh@3۹St(FE]E]E̺PjSGP[M_3^]̋U@3ʼnEEVW3|}9}8dEdE hEl|pEt/TE9} =v~|EEMԍE }j^EEu}}u}Eĉ}ȉủ}ЋExxE}u}EPjWWE@M_3^~]̋UQQE u@ MEEE E]̋UEt1}t+ ME EEE EEEEE@]̋U }u@EMEE EEE6] ̋UQQ} u@EMEE E]̋UD@3ĉD$@d$S]VWtSp֍D$POzgw4UVhH9S0֋|$yR=v63D$@D$L$0jEl+e9ph։EEBE,E,ًE@ ~ E,뼋E@ E踡,ËMh2j*Z/joleA 90A70ANl0VlEEET-Ec-ًE@ ~ E踀-뼋E@ E>-ËMh2j*Z/jleA90A0rp։EE E-E-ًE@ ~ E.뼋E@ E-ËMh2j*Zy.jlfeA 90A70ANx0VxEEoE.E.ًE@ ~ E踶.뼋E@ Et.ËMh2j*Z-jleA90A0r|։EEE#/E2/ًE@ ~ EO/뼋E@ E /ËMh2j*ZC-jm0eA 90A70A0։EE5E/E/ًE@ ~ E/뼋E@ E踮/ËMh2j*Z,jAmeA90A0։EEE`0Eo0ًE@ ~ E踌0뼋E@ EJ0ËMh2j*Z,jkme9A0։EEE0E1ًE@ ~ E#1뼋E@ E0ËMh2j*Zo+jm\eA90A 70A0A0։EE\E1E1ًE@ ~ E1뼋E@ E踇1ËMh2j*Z*jme9A0։EEE42EC2ًE@ ~ E`2뼋E@ E2ËMh2j*Z2*jmeA 90A70A0։EE$E2E2ًE@ ~ E3뼋E@ E踿2ËMh2j*Z)jn~eA90A0։EEEq3E3ًE@ ~ E踝3뼋E@ E[3ËMh2j*Z(j=ne9A0։EEE4E4ًE@ ~ E44뼋E@ E3ËMh2j*Z^(̋UVEt hV8YY^]̋VN`!FFI^̋UUVrWE L@ELD3^] ̋UQQ@3ʼnEWtNSV7EPj3|x)EVPq֋MQrSj7 ^[M33_7]̋USVWUGEO W1M$UPEx؅tlMs3CC {$3VfM+ÉCs V|M+ÉCCPbE+M{E3_^[]̋U$3SVW}j Yڋ΍UIЅx>U9Ѕx.MU(Ѕx}u38E j HYE_^[] ̅t+S3f9t"Vrff;u+^tAu[̋USVWEP3ۉ}Q*E]]PSt }t3Qff;u+3RUAMEQRPSR t ~ x @zEPx}t3ɍUA?}x]3EVPWuSV u xE33ҋfLGE8}3҅tE Džt@uWS_^[]̋U@3ʼnESVW}ڃ'tqh@jjjEP,u cx)EPju(t3Aju$3fEx%PjEPjStMˋM_^3[]̋UV3=TWuoSEPdP~ xHh=EPEPEPu\P~ x M Tu`[ TƉ_^]̋U,}SVUUEu 3!EWjYEPY؅x`U EԋMPuu2؅x=FPVM\؅x(M؅xE~3EM^u_@^[]̋UfVufffFPVqR ^]̋SV33rt3Wf91tut+Z?ffB _V^[~ ̋UQSVu3WNff;u] +F;rKMQSx=uxt 3x V Vu_^[]̋UVjY3ɋ;wrwE0 E^]̋U3Vt-S]W} +tft fKFu_[jXu zN3fMt1^] ̋UQSVW3ҸWuuvx M rt3f_^[]Eu5ʋutf9t؋#WQPEUP׋M+xv?vAPjKP ~  x@̋3@b JBB̋U@@3ʼnE3@;tF=WEEEE3EEMQjPPEkt;t=WEvR봃}t9Et=WEv/E둃} t 9E t=WEv k3M3]̋U@@3ʼnESVW3}>t@=@EvfE}EE}EĺPjWWE73CWSӋEx"WWSWWWWjjN^^~ 5xM_^3[] ̋U<@3ʼnES3VWM8 t@=@Ev`EĉMEEMEȺPjQQE1u3ɋ} AUVWxMK{{s uj YM_^3[O]jXonJ MU3ۉU]8tF=@Ev-E]E]܉E؍EPjSSVE. J+ȉEs=WEvغw멋px]7;Ms=WEvq;v=WEvRp PpE_EMVEhuMWuY]]]EMuVm?]EPKuyM=EUJKJKJ K =EWv,3EE]܉E؉]E/PjSS?̋UD@3ʼnE9UVWt=:t83@9B uA 39BuA9BuAyrW7tj Y3@=@Ev/EEE3EEMĺWQjPPSEM_3^]̋UVEE=w)EEQPM$M0EPL^]̋UV΁wrw E0^]M̋UE V13əʅwrw E0^]̋UE]̋UQjMhhP3AA AAAA$A(AAA ̋U<@3ʼnESV3WMă>tG=WE4EĉMEMEEPjQQEjY3}FUN j_E܋F}؉E Eąy9=3ɺ됋NUh Eąy9=3ɺ?fNU> Eąy9=vb3ɺ@NU Eąy9=v<3ɺNU Eąy9=v3ɺzjYu؋M_^3[F]̋U<@3ʼnESVWڃ?tF=WE3EEĉuEuEȺ4PjVVIE[j,3EVPG EЋGEԋG E؋GE܋GEGEGuuuj E3YEEM_^3[q]3Bt;t "Њ̋U@@3ʼnEVWj_9~~F;9FN NNrNbNRtwjZ9V u.9Vu)9Vu$9Vu;uWE9Po~$2vWE9vR~(vWE9v_23T=WEvC=WEv+Eĉ}E3EEMQjPPYEċM_3^]̋U@@3ʼnEV3ɉM8t@=@EvzEMEEMEĺPjQQEKEΉFE FEF EFEFEFE F E$F$E(FF(xM3^"]$̋Uh@3ʼnEESىE3VWM8 t=@E\p8+ s=WEc<1j,QEPS ?u] t=WE+jY3}MU EMUEybjY9u' tWE9 뾃?uv,tWE9 ^kj }YE̋ˉCEЉCEԉC E؉CE܉CECECEC EC$EC(KxD?WE9 v/ 3ɍEMEMEEPjQQEM_^3[A]̋V3ɋW%3f;uj_VHYtXVdYt3GGVTYtj6VPYtj&V\YuV`YtVLYuj__^̋U@3ĉ$E L$MVD$3L$L$=v`h@3۹SttJFD$0FjZ\$4T$8\$<D$ D$ D$@\$DT$H\$LD$PRSGPL$T_^[3]̋U S33VCEyWEEr1yrыAfu7Eft +y }uM];MuE;u2_^[]̋U<@3ʼnEV3+tZtMt@=WEvAEĉuEEuEȺ1PjVVE 2M3^]̋UVuF;Asov2iqkqaqWq Mv39A 9v/v%v 39F ;^]̋UEttu@jX3]̋Qy t A zY̋Vh=h>YYW39~t v~vXv ~Mv~ Bv~7v~,v~!v ~v$~ v(~$F,$~(t10F,8F,pF,xF,pF, xv,V~,YY_^̋SVW,>Sh>YY83+btQShP> 9~t v~v FYv~ :Yv~.Yv~"Yv~Yv ~ Yv$~ Yv(~$Yv,~(Yv0~,Yv4~0Yv8~4Yv<~8Yv@~<YvD~@YvH~DYvL~HYvP~LzYvT~PnYvX~TbF\Y~Xt10PF\Y8F\p?F\YxF\p-F\Yxv\~\9~t v~v Yv~ Yv~Yv~Yv~Yv ~Yv$~ Yv(~$Yv,~(F0~,Yt10F0Y8F0pzF0YxF0phF0Yxv0Y~0YVOY_^[̋U eSV3uWu.h>>WSh>r >!3EPUy Wh$?h>hH?5uuj0Yȉ uh>h?YYF FA F A FA FA FA FA F A F$A F(A$ F,A( F\A,3FF FFFFF F$F(F,F\e_^[]̋UQQSVW3}u.h?$?WVh>2? Eu!h>$?WVh>>!8UEؾ$?ySh?VhH?}J}uwN~lN ~aN~ VN~KN~@N~5N ~*N$~ N(~$N,~( N0~,N4~0N8~4N<~8N@~<ND~@NH~DNL~HNP~L~P_^̋UQQS3ۋ‰E]VWu.h0BPBWWh> 0B u!hBPBWWh> B̋}u!hBPBWWh> B뤍U/yVhBhPBhH?U ]*]UWQyVhChPBhH?& SY_^[]̋U e‰ESVWu,>?SWh>W Ӌ 3ҍEBP3]?yVh0CQu?WhC= Y3YFOu3ɋA;uPWh0Db 3 FyVhDWhH?E tSVWhA _^[]̋U e‰ESVWu,>@SWh>W Ӌ EPjZ]@yVh0CQu@WhCM Y3YFOujY;uPWh0Dr 3 FyVhDWhH?U tSVWhA _^[]̋UESM3ɉMMVWu.,EWWh0Ch> ׹0C LtLtSh0ChHEW #M* u h0ChF(yTVhG8MD* uh0ChE Y3YF}yVhFh0ChH?C ڋ}uh0ChH Y3YFEta3f9tZMQyVhPBh0ChH? G}u8MQh0Cuh@IhJn 3 Fh0ChHW YYE83tWVh0ChA1 _^[]̋UQeS]VWu) BASVh>W? Ӌ K#E33PBAyWh0CVhH?  39E}t uj~YWVhA _^[]̋U@3ʼnEESVWE3U!E3j,E3E3ۉEĉẺEEQPuM_E u0h0BhDh>WM0B D Mu h>hDh>W>ǃt$tuWhDhHE !PEu(~ PhDhL뻋MUJ)y#VhBhDhH?EăEEĉEȅu.EĹLPj$Z yVhL뺋EEE!]MU(y#VhJhDhH?EEj`YȉE؅uhDh?YYŋEȃtQtPhDhHEW 뜋EӋȉEy:VhpKhDhH?EӋȉEyVh KjYȉEE!8!x(yVhM뤋MtPc-j Y}jdYjd3VW uhDh? YYjdVW3ɍW3A 9M@GEGẺG EȉGEG`Kuủu yVh4MhDhH?$K W xҋKWo xKW ^ xKW$M xKW(< xK W,+ yK$W0 dK(W4 OK,W8 :K0W< %K4W@ KW% Ӌ!7t!uEPyVhPDu uVuhPh?YY)SVKy"VhI O!7u!u3ۉ]t"EPy VhPEtMQx؋]E@ÉE AuhpPh?YYP3f9MvuUdxt+uUMy&VhPhpPhH?dy '_^[]̋UQS] VW3u)BPSVh>W ӋdWWWjRjQjh5ȅu+uOVhPhPhN 3t _^[Y]̋UQeSVWu)PSQWWh>c ӋSu0Qу'EPyVhPUWyVhLhQhH?_^[]̋SV3Wu)0Q4MSWh>W Ӌ{)2t#"yVhQh4MhH?_^[̋UQQESVW3Mމ}u.h0QLWWh>U0Q 0u!hPLWWh>!P3ɍGjZ QYuhLh?YYJWuWS)t&WhLh@Q E3f CES3Y_^[]̋UQQS]3EVWtu,0QSQWWh>J ӋuQhQQYYȅuhQhQ YYWXWff;Eu+w hQh8RVWByVhLhQhH?t;_^[]̋U S] VWE3҉UUuhRhRh>a jWX_EPEPEPRWQxuPWuhRhR!t u/}tVWuhRhS3E_^[]VWuhRhpT̋U S] VWE3҉UUuhRhTh> jWXMQRMQRWPxuPWuhThU@3tu}tVWuhThUفu!MMQPEPjWuxt, VWuhThpT tq#_^[]̋U SVW} 33MEڅt3EP^yVhPh,WhH?OEEPWjjSudt/`WSuh,WhVG _^[]̋Q"VWRWltWVhTWhW_^Y̋UQVEPhjh Xh`u u\VhpXhXhYJ3^]̋UQSVWE3PhS]hYh`tVhZhZhZ)M$[WhZetVhThZhN9]t u\t _^[]̋U SVW3M}}}B؅t Sh8[hd[hNEE]]f9;EP7y9VhPh\PhH?`yVh\Phd[hH?DEtNf|C\tFE/Py VhpPhd[hH?}~]]}EzPXx}WhTyhp؅tShxyWhd[h[hxyWhd[h\7t#hd[h[kYYj[]_^[]̋UQeESVWPhjuR`tVu hbh0cw|] @bM&VSt VhTwLMTb&VSuӍw *Mhb&VSuMG\PSbu0MGTPS|buMGXPSbtVhRhbhN'}t u\e tt tuhbhcYY_^[]̋U SVW3EVPVhVVVuuRX؉]tSu h8dhavT] 9wt4wM|dSyVh,Wh8dhH?=.twMdSNxƃtwMdS1xtwMdSx tw MeSk$tw$M(eSJ(tw(MLeS),tw,MdeS0tw0MeSs4tw4MeSR8tw8MeS1<tw} V|dWtPVWhfhf_s&MVdWttPVWhfhf(s&MVdW=tPVWhfhfsr&MVdWtPVWhfhfs ;&MVeWtPVWhfhfs$&MV(eWtPVWhfhfLs(&MVLeWatPVWhfhfs,&MVdeW*tPVWhfhfs0_&MVeWtPVWhfhfs4(&MVeWtPVWhfhfps8&MVeWtPVWhfhf9s<&MVeWNtPVWhfhfs@&MVeWtPVWhfhfsDL&MV fWtPVWhfhfsH&MV(fWtPVWhfhf]sL&MVLfWrtPVWhfhf&sP&MVdfW;tPVWhfhfUWuyPhfhXg }t u\_^3[]̋USV3ۋWE]]]]u$hhhWWh>jh9]u$hhhWWh>AhnM u$h,hhWWh>,hCf9 URoyVhpPhhhH? M EUPI:xQMTyVhPuUuNyVhh뚋Wtuf9tpEPE HoWEPE H yVhpPhhhH?*]c]ϋUSu)yLVhl ׋)h0hyVhhShH?8VShA _^[̋U SV3M!uW3u+hWShpKh> ӹpKPUtWhXihpKhN(Mh@uyVhhhpKhH?}t u\et VhpKhA _^[]hnU3ۍEj0SP P]]]]9^$t29^(t-9^,t(9^0t#9^4t9^ ׋0Q3hoA tyVhKShH?VShA _^[̋SGVWu$,EWWSh> ׋K/Qho3< tyVhKShH?dVShA _^[̋UQSVW} Ku$,EWWSh> ׋ ׋=RѹToQ VShA _^[̋SBVWu$0BWWSh>5 ׋Rѹpo VShA _^[̋VW39~vS3ۋt G,;~r[`&f_^̋VWNCN 3~6N$~ +N(~$ ~(_^̋UQQeUVWM~ y VhW TqM_ MQhjhpqP`uhqhMhr3 t$_VhqhMhsE3ɍEQQQQQQPEPQQQuttVhqhMhs븋EԅN9]E;vk,ȉELuhMh?M܅t@uE!_ E ȉMt3҉U9UME@E3PPPPEPQRuPEPu@tPuhMhu*UMu襥}kG,PuGUBU;UgJVuhqhMhu-VhqhMhpt_hMh(tJYY}t u\eM t ށyaM_^3[自]̋UQQSVW}EP3hRVQUWW W$W(`؅t SVh$vhXvMGPV|bC؅tShRh$vhNɋMGPVb؅uыMGPVv؅uMGPVv؅tShT럋MG PV@b؅uMG$PVwz؅uȋMG(PV0wb؅uu }}t u\et,OO O${O(sj,XGu_^[]̋U,yVWv1uj,EjP蕶 uԋEj Y_^]̋U@3ʼnEu3@eEVW}PEP8_^M3|]̋U3ҋM EUUUUSVoWu',ESVh>W Ӌ$9UuXwЃVhtwYYEPhjhwh`؅ShxVhxehTyhTtPhxyVhyQQfy Whd[EEPhjhwh`؅tShxVh({uhjjj!E3عh@w# PRRj EuSVh{ uhoVh |G3PPhP8Vh|-UEeYYPubx5}u#ujhjhuEu#M E3WhpVhH?Et tPEt.jPu!~ PVh| }t!u\tPhxVh }}t=hTyhTtPhxyVh}VhxyVhP~ _^[]̋Quh~h~3YY3YÅu h~h(B plphQ Y̋U eʉMSVWu,XwpSVh>W Ӌ}u0B̋E pu뾃 QhoVh>UEPp] uVh37yWVh`S $uSuE VhYYtS迯Y_^[]̋UMSV3EuމuuWu,PS@WWh> Ӌ{zu0BΉ1o]uDho uh@h. Wh@hfMQMQVhpp Ej0uWh@h!EPEVh@0puWh@hŋE3j@Z QaYuh@h?YqEEPVS蒰 EPESh@0ptE3Sh@h\f CEރ t tSY}t u_^[]̋USV3UuEމu]Wu,HwSWVh> ӋMuP˅u0B1gu?u uhh: Vhhr~MQMQVhpp Ej0uVhh0 蛸=h@3۹SrV$F$$DŽ$$xF tf PfD$D$$$DŽ$$t D$P \$T$$U$PjSGP!$_^[3襚]̋Ud@3ʼnEeEMS]VuWPEEPjjSWqht ~o eE;E r ;EwQ= EvCEE3Eȋ׉u̍M؉uFӍM<EPjVVR~EM_^3[י]̋U@3ʼnEMSVU3ELWM]]UPhShh`Ej_t2=v&E]E}]EȺPjSS}]3ɍEA3PQSMMhxEĉEMEPjShx3҉]Ή]axEĉEE}Pj_Wjh4]6E}PWjhȇ4Eĉ]PjS]h4}ċxEĉEEĉ}PjSh4]Ή]xEĉEEĉ}PjShX4]Ή]xEĉEEĉ}PjSh44]Ή]vxEĉEEĉ}Pj2jhh4]Mx]ăeEP}ĺ4h3Whx"Ex}čṂWS3Vuuuuuu躧؉]y=vxU9TΝEPuTjuh؉]y8=v=EuEuEEȹPjVV{]}TjYMM_^3[]̋Ud@3ʼnESVWEL3ۍM]]yPhSh9h`EtQ=v-E]EE]EPjSSzE~ :ESSSSE]PSSE]PSSSutul9]u9]tÉ]uMjUM1؉]y1=3EEMEMEPjQQ`jYuc~ Ey=vFEjYE 9 v&M躈E]]EEPjSSy]M.M_^3[?]̋U@3ʼnESVW3]}账触蚦荦耦sfrHEEP40Eyxj_j^95v$3ɉuEMEMEȺPWQQx H贛Ey=23}jYH9}t7 HnEy=Ej^EuP,0Ej_y.95vo3ɉuEMEMEȺuPWQQxI9ur}v>9=v3Eu3ɉE؍EM܉MEMuMEPVQQwu3EEEEEEP<0Ey,95v$3ɉuEMEMEȺPWQQew3@9EujEXEE}EEPD0Ey,95v$3ɉuEMEMEȺtPWQQwEtYtKt>t.9=vB3ɉuEMEMEȺ"PWQQv3@EE 3@E3@EEeEP@0Ey.95vq3ɉuEMEMEȺPWQQ`vK}|}2v?9=v3Eu3ɉE؍EM܉MEMuMEPVQQveeEP00Ey.95vt3ɉuEMEMEȺOPWQQuN}| }v?9=v3Eu3ɉE؍EM܉MEMuME PVQQueEEP80Ey,95v$3ɉuEMEMEȺPWQQ>uMuuuuuuuju֠Ey=U.EPjjjH菘E@=v]3ɉuEMEMEPWQQ4j^) E95v)uFE}}EEȹPjWWytEM_^3[]h;o耣ڋ}j_95v(]Eu]E\PWSSgx<95v)]Eu]EPjSSMg95v)]Eu]EPjSSgDž8R藕̋U4@3ĉ$0SVW>6=h@3۹S gmF3ɉ$FjZ$$$9D$$V L$$$$ $fV$(fFD$D$$8$<DŽ$@$D t>t5t,t#tݒtԒD$u\$ND$$H$L$TjZ$P@D$D$$X$\$`$d@D$ D$ $h$l$p$t@ D$$D$$$x$|$$@D$(D$($$$$@D$,D$,$$$$@D$0D$0$$$$@ D$4D$4$$$$@$D$8D$8$$$$@(D$]My uuuuWVPhh"4$EE}}3=v*EẺ]E]؍EPjSS]E߂EEPPËeMMM  E3ۈ]Uaq=v9h S"^t%EẺ]E]؍EPjSSh]8]tMqEhEE@EMu|jl$p=ڋEeeEE EEj4E}ueM$Ԉh0hȈEEPEPoEM3PuuVjMEMpuy:=vM3EEME܉MEPjQQ>\uu׍MuuuSouMtԊjhh蛀Mu} }UU3ۉ]jYMÉ];s;]MuuWuVPh@h"4 EE}}3=v*EEЉ]E]܍EPjSSZ[E@EEPPËeMMM  E3ۈ]Uq=v9h S[t%EEЉ]E]܍EPjSSZ8]tM6oEhEE@EMu}jh|p衉ًEeeEE j4E?{ueM$Ԉeh0hȈEEPElEM3Puu,VjME%M1nuy:=vJ3EEME܉MEPjQQYuuӍMuuWuMtJA jlh~Mu}}U UUU3ۉ]jYMÉ];s8]MN>uuWVPhh"4EE}}3=v*EEЉ]E]܍EPjSSNXE} EEPPËeMMM  E3ۈ]U,q=v9h SXt%EEЉ]E]܍EPjSS3X8]tMJlEhEE@EMu}jdp ڋEeeEE j4ExueM$Ԉh0hȈEEPE$jEM3PuuVjMEMkuy:=vG3EEMEMEPjQQWuu׍MuSuMt跾讅̋jp3ejw]3@YFFd"^ Otcw=MtQjj̋V~0F,#t v0f0N .N#Wmj4VvYY^̋UQ@3ʼnEWtVjp^M3_yq]̋I tQ`̋UEVt"t jVJvYY^]̋UEVt"t j VvYY^]3t;t3t+t#tttt2̋UыM貃E]̋UQVEP}vt u^]jhhNyMu}}U U3ۉ]jYMÉ];s5]MuWVPh^h"4EE}}3=v*EEЉ]E]܍EPjSSTExEEPPËeMMM  E3ۈ]U{q=v9h SP}ȉMąy:=v-Eĉ}EE}EȺ9PjWWIMċ E@M_3^e]jdh0nMu}}3ۉ]jYMÉ];s2]Mk[WVPhh(#4EE}}3=v*EEЉ]E]܍EPjSSgHEmEEPPËeMMM  E3ۈ]UOq=v9h SIt%EEЉ]E]܍EPjSSVH8]tMm\EhEE@EMu}j\r.w3ɉMMj4hueM$8hXh,EEPECZEM3PuuVjME讵M[uy:=vA3EEMEMEPjQQ1GuWӍMuMtܮ>=' Ev-EMEEMEPjQQFEujph\kuM} }UUUU3ۉ]jYMÉ];s;]MuuWuVPhЍh(#4 EE}}3=v*EẺ]E]؍EPjSS|FEjEEPPËeMMM  E3ۈ]U}q=v9h S>Ft%EẺ]E]؍EPjSSE8]tMYEhEE@EuM}jh\r\tUME3ɋ} ]MEMj4eueM$8hXh,EEPE[WEM3PuuVjMEƲMXuy:=vI3EEMEMEPjQQIDuUMSWuunuMt>=' Ev-EMEEME%PjQQCEr jhhjhuM} }3ۉ]jYMÉ];s5]MWuVPhVh(#4EE}}3=v*EẺ]E]؍EPjSS5CEhEEPPËeMMM  E3ۈ]Uq=v9h S^Ct%EẺ]E]؍EPjSSB8]tMWEhEE@EuM}jxr|qډ|}3ɉMMuG=' E EMEEME.PjQQAEj4bueM$8hXh,EEPEOTEM3PuuVjME躯MUuy:=vF3EEMEMEPjQQ=Au|MWSWuMtojdhheuM}}3ۉ]jYMÉ];s2]MWVPhh(#4EE}}3=v*EEЉ]E]܍EPjSSo@EUeEEPPËeMMM  E3ۈ]Uq=v9h S@t%EEЉ]E]܍EPjSS?8]tMKTEhEE@EuM}jtsn3ɉMMuG=' EEMEEMELPjQQ8?Ej4`ueM$8;hXh,EEPEQEM3PuuVjMEMSuy:=vA3EEMEMEPjQQ~>uWӍMfuMt) mj`hоbuM3ۉ]jYMÉ];s1]MA1VPhh(#4EE}}3=v*EEЉ]E]܍EPjSS=EbËEEPPËeMMM  E3ۈ]U(s=v9h S=t%EEЉ]E]܍EPjSS/=8]tMFQEhEE@EuMj\r l3ۉ]j4]]u]M$8ݴhXh,ECP]Ή]6OEM3PuuVSME袪MPuy:=v@3EEMEMEPjQQ%j saQMjZ[te؋V]uQQSN>+MEt+t OڙM;uV+jctEÉFEÉF`uugjj4[̋UeSjd]R3Y@UJ BBx#tCVW3}uAAA j3ya0^q4fA !AHqLfA8_APfAT^SÉ []js`ejEE_EEًE@ ~ E1뼋E@ EËMh2j*Zar̋Vq jjN8ОjjN Ğ^l̋UEVt"t jdV QYY^]̋UVu;ttAF!aߋ^]̋UVuWV4#F G _^]j\s_u @F3E#]]E]Pduy=vqBh4E]P]jE]PE]PuyA=v-E]E]EEPjSS8/uEUEM,EEMPEPu\uy>=v-E]EE]EtPjSS.uEMM}E#t u`S]̋U@@3ʼnEVWu @E3PQ}$Eąy==v-Eĉ}EE}EȺ:PjWW.E 0E3B;t ~jY;~jY;t ;v jYʉ3M_3^dI]h)t\ڋu @jNEjPV Ej'PVtu 3Zhp@艥e/nPW@XiMYPEP@@i4Dž0LE<T@s@0DPjjWh`3=Ev-E]EE]E PjSS'EUjLtV3EPVVjjuuuYEztK=v-EuEEuE} PjVV&E uMPEu}PuWjjuO=v,3EEMEMEH PjQQ &~ u 7V^73VuM躐Th(uTى]E3ɉ|E EME#MjMHY3E3PhHPW0uyD=v-E}EE}E PjWW/%uu[`}}UEpUdՉȍFPAP`Pjh@u4lEtdhtR,xtpttR,E=tK=tD=v*E}EE}Eu PjWW8$uuG=j[v&E}E܉]}E PjWW#E}PE}PWEEPW}WIuztJ=v+3ɉ]EME܉ME PjQQ#uM?ud襻Epu蓻E]PEPpEPdWuT=v1E3ɍEME܉]ME PjQQ"~ u:d|Pd\p˭MPpBupdFE8t=8t88t38t.HQp|EHPqM׬M=WuvBj[M}ЉM̉]ԉ}؋EEE܉}]}E6 PSWW!uEtP,}t u,}E#t u8pP̃9t1,̋UVW}V+;v9GsH+NF+FS9;sA;r6P臇Pm+FPjv}J [F_^]q8̋V~#t v8f^̋USVW3ҋQMBbN+Q6W ^+مt Vj+cEljF;F>_^[]jtmuOE ]EEEEE3EEEE1M?PVDuB~ =Evx3EEMEME PjQQJE3PWuHtH~ =Ev*EuEEuEJ PjVVuEUEMEU}uJff;Eu+ыMAEff;Eu+M ;K;F;O;jEMPMPF3EEfEEMuZMPuMZj/jMBMݩPuMZj/jM"j3MPSR[j/jMj3MPV8[j/jMj3MPW[MQff;Eu+wFMQff;Eu+$w+9Cw!9Fw9Gw}3wMEP==Wuv/3EEMEMES PjQQu3MPjM}t u_LEhuL E3~3E EE4vP=W4 4}E}EEPjWW4j/Xjf00WP؉,u=W4Q 3E}fE}(E$SWE؋PIPM)WjM葊(M1}MsMPQ@؍Mzt,~ =4 x(,$C;^r=Dž4Wvo @j/Xjf0S0Pȉ,uK=Dž4Wv- 4}EE}EPjWWV43E}fEE8;+PSEPPM3ۍMSj5}EsE8QP@tS~ =4v-J 4]E]EEPjSS34,3A,;Nr=Dž4Wvʺ j/Xjf00QPouG=Dž4Wv3E4}E}E PjWW\3Dž\XfH,E;t(+PQE؋PPHtSjM܇G;~r3Dž4W=vk t ^̋V>tjjx^j`w:E3]EE EEEEEusG=WEEuEEuE#PjVV ER`Euuuuwtew @VȉE59Es?=Wuvo3EEME܉ME PjQQ >PuMnMMGMtGt EP轄MGuMt}8̋U,eUMtF}t@} t:}t4EE؍M؍EE܍EEE EEEEEEE^@]jEuQMo*pd5̋UEM=w&EEQPM-M0EP-].jNx5уeB 0BR 0EE4EEًE@ ~ E뼋E@ EËMh2j*ZG̋UQVM u^]hx4ڋTu X@1u==@X3EXME܉MEGMs==WX<3EXME܉ME#Ht[jZ+t>t9=WX3ɉU䍅XME܉ME]f~r63f3LPPRHHPRPLPRSTWT0DztS=v53EDME܉ME PjQQD l3j^pf\!E\Pe3ufEEMHue3uftELu3ɉEfEt QPt}tst}MsMԃp\s\LVRHRQPQPSTWT0@uz3ۃ=Tv3T]EE]EgPjSST~ SjtX\SjMpFPt H\PG3ۍtSj(SjMp\PXSj\`pI=Xv53EXMEMEPjQQX0jx.1eA Q0A  PEEJ0EEًE@ ~ E츫뼋E@ EiËMh2j*ZBjhx\0ًE3EE EEE}sG=WE;E}؉EE}E#PjWWE RME"ssV9Es9=WE3EEM؉EԉME4PjQQu3PMMMMWE3PM}$uyB=v-E}؉EE}EPjWWuMj'MjUMu}jYMC . M"ЉUyȃ=vٍE}؉EE}EPjWWpUj8#y.‰EU3ۉỦE]]ԍUԉ]}MԋsUԋEƒ}sMủ]PQM]ĉ]E}+}j^_;rbӍMEMWuV1yP./M E3uЉEVE`MaVjM3X-&jMy-eAQ0A 0A 0 EE,EEًE@ ~ E뼋E@ E츻ËMh2j*Z?jmyF-eAQ 0`EEk,E^EmًE@ ~ E츊뼋E@ EHËMh2j*Z?jly},ًE3EE EEEEE}sG=WECE}؉EE}E#PjWWERMEs sV9Es9=WE3EEM؉EԉME4PjQQu3PMMMMWE3PM} uyB=v-E}؉EE}EPjWWuMf/MfUMu}jMCYMC* MЉUy=vٍE}؉EE}EPjWWUjpy*MEMEE M3ɉEM9NMMEMىMMMME}j_}ЉM̈MUEMj^9usUE9usMPQM]+]e]}EMUEMԋ9usUԋE9usMPQMA}M+}jj}jjMEj^;rl;E;rbЍM[}EE}tKEwG;r9Pu_ ϋ]V_lP{* Suw UPd* 3!3҉WWW WMERUMEE~M\M\3y( jz)eAQ0A0A 0A 0 EE(E!E!ًE@ ~ E!뼋E@ E츙!ËMh2j*Z:j1zh(уeB 0B 0rReEE'EF"EU"ًE@ ~ Er"뼋E@ E0"ËMh2j*Z :jlYz'E3ۉEE EEEEE]sG=WEiE]EE]E#PjSSE7RE3E]fE]wƃt=EWcwV;Ev3EW=/*eEPEy;3ۃ=E]E]E܍EPjSS*T;ut3EW=v=뻋"PSM螁3ۋUMEPMG MGuMSjd%jz&eAQ0A0A 0A 0 EE*%E$E$ًE@ ~ E$뼋E@ E츉$ËMh2j*Z7jzx%eAjZ8A0M&E3ۋES]]Ew$ER%Ea%ًE@ ~ E~%뼋E@ E<%ËMh2j*Z7̋UW3Džt)Vf9:tuu W+^WUt x:_]̋UT@3ʼnESVW3EVPVu}t=Eغ?PjhEuPuuuuEPj_WEPEPEPEx29}u-9uÄu9=vEغPjVVS1=v&EuE}uEȺ PjVV 2M_^3[]̃9t1̋V~0t v0N^W~t jvtYY^̋UH@3ʼnESV3W}]8t==EvwE]EE]EĺPjSSbHUuMV;t t jPYY9]t juYYWNEM_^3[]̋UD@3ʼnESV3E8WuuG=EEĉuEEuEȺJPjVVEX093t==v-EĉuEEuEȺPjVVXuċtjYjZjđ3 Yđj Y  @jY483Tj Yd5L5PX\ؑ` VMuPEPEph0+hXjVVjj}ąyW=v-EĉuEEuEȺPjVV}ċutVNjM_^3[b ]ÍE;tu}ĉűU@@3ʼnESV3ۉ]8uA=EEĉ]EE]EȺPjSSMQN09u:=v-Eĉ]EE]EȺuPjSS]ċS ^4f^8^:EċM^3[ ]̋U E EMEE] j0z}ȋMMċt H.qMge}]ԋuԋ΃}EAs]ԃe+A;#Et$+ދ3PtfvE@EY;u}Ⱦ(zP3ۍMSV)tOEă8G4u#t@G48_:t0u+jn[tHG48_:t;u jOhG8 @yPSVMtG9SjM\&yu 38G8t 8G9@POG:3̋UQ@3ʼnEVWy$uMQp֋M_3^ ]̋USWtVSV^E_[]jz#уeB0Møu-}-긅-⸍-ڸ-ҋMh<j$Z /jP6{}u]W}u3G#OM3@G GGE GGO O$O(G,#O0EVuX=Ev/3EEMEMEPjQQEPMhEPVO Vuw Vu6=Ev3EEMEMEPjQQ39Kthw0>t 63ɉ{rQVjSHu==EH3EEMEME_PjQQ̋UQVEPY[}t u^]̋UQVEP#N}t u^]̋U@3ʼnESV3W9st'=vEغ2PjVV3C }E33uBuUuuujY@MKPTCDCHCLC XC0`@\dhDžlDžp txUuuĉucCPEPdPEPLutG~ =v,3EEMEMEȺPjQQU]|4essj<u tk=vDh jt/3EEMEMEȺPjQQUuUtE@Em M|xNjM_^3[]̋V~#t vf^̋UQVFtEEPTf^]#̀ytA q̋UQAEEPT]̋UыME]HHHH3̸̸HHHH3̋UE t3t tt3@0VuuY}P Y] jh jYu3E߳]e=tj tM & C h%h%KYYu)jt h%h%!YY2ۈ]EEd >tVYtu ju63@b Ê]ubYj h 3YHEe=tjqO %EjuYY3Ʉu \uYj h8 e} t t]1]SWuuSWuuSWu uu"uSPu SVuSVuetuHSWu~ut5SWu?$MQ0hP3uu uËe3uEx ̋UQ@3ʼnEV5,u3@uu u֋M3^>] ̋U} u uu u ] ; @uX̋UjYju=ujYh 4P,]̋U$jtjY) 5=ff fff%f-EEE( jXkǀjXk @LjX DLh]̋UEVH<AQAk(;tM ;J r BB ;r (;u3^]Ë u2dVP;t3u2^ð^b tI P Yt22 jYu2uߣ̋UQ@3ʼnEu} uuMPuUuu YYM3N]t hp Y[= jVYP̋U}u/u2]"u jY]̋U Vutu|t*u&h Yt2Wh  YD@uWj Y+ȃ3@EEE EEuE_^]jjhXeMZf9u`<PEuO f9uAE+PQJYYt*@$u!EE3Ɂ8ËeE2̋Ut}u 3]̋U=t} uu蛡u蓡YY]̋U@3uȃuV hYY#E]̋UuYH]̋UuEY]̋UEV tVY^]̋UuYu}uuYt]̋Ujh`{dPQSVW@3PEdeueYq<3Md Y_^[]̋Uee@VWN@;t t УDfEPE3EE81E<1EEPDME3M3M3;uO@u G ȉ @щ D_^]h h 6YHHHH̸̋U$SVj6tM)3hVP5( |xffftfpflfhEEDž@jPEVPE E@EEVXۍEEۉEEPu !(^[]̃%(̋UQ@3ʼnESV;sW>t ׃;r_M^3[]̋UQ@3ʼnESV;sW>t ׃;r_M^3[b]h@d5D$l$l$+SVW@1E3PeuEEEEdËMd Y__^[]Qh@d5D$l$l$+SVW@1E3ʼnEPeuEEEEdËM3̋Uuuu uh6h@@]̋U%,,S3C Hj `te3 H3VW,}S[wOW EԋMEineIE5ntel ȋE5Genu jXjYS[wOW tCE%?=t#=`t=pt=Pt=`t=pu=0=0=0}EEE܉EE|2jX3S[]ԉsKS EةEEt =0_^tm H,tUtN3ЉEUEM3Ƀu3u/H,E Ht ,H3[]3@39L'̋UQVuu ^]̃aaA, ̋UQVuu|,^]̃aaA,,̍APY̋UVFP{EYtVY^]̋U M'hEPM̋U MShEP)%%%%%%%%%%%% %$%(%,%4%8%<%D%h%l%p%x%|%̋Uuuuu udpQy]̋Uujuu u]̋Uuuuu u p0y]̋Uuuuuu up0O y]̋Uujuuu u]̋UEPjuu uW]̸\0QRPhPZY%0UQ 8u0u2'EEPh4GxE3ɄA 8]̸L0QRPhTPZY%l̸ 0QRPhPZY̸0̸ 0̸$0̸0̸0̸0̸0QRPh OZY̸0̸l0QRPh,DOZY̸p0UQ Pu0u2'EEPhdxE3ɄA P]QRPhLNZY̸T0̸x0QRPhlNZY̸d0QRPhTNZYUQ du0u2'EEPhxE3ɄA d]̸40QRPhMZY̸,0̸<0̸D0̸@0̸00̸80%%%%p%l%h%d%X%̋Md Y__^[]Q̋M3̋M3Pd5D$ +d$ SVW(@3PuEEdPd5D$ +d$ SVW(@3PEuEEdPd5D$ +d$ SVW(@3PeuEEdPd5D$ +d$ SVW(@3PEeuEEd̋D$L$ ȋL$ u D$S؋D$d$؋D$[QL$+#ȋ%;r Y$-%@̋T$B J3J30|̋T$B J3J3|̍M=T$B J3J3x}f̋T$B J3}FËT$B J3^J3T}ËT$B J3-J3#0~̋T$B J3`~̋T$B J3J3~̋T$B J3J3i̋T$B J3J3(?̋T$B J3eJ3[̋T$B J3;J31X̋T$B J3J3̋T$B J3J3̋T$B J3J3 m̍M@T$B J3J3;̋T$B J3aËT$B J3:J30̋T$B J34̍MY+T$B J3J3̍M =T$B J3J3f̍@8+T$B ,3sJ3i#̍L+`P+x4:M,:M$:dk*06@, xT$B 3J3P̍t46\S,M7,h*M*M0X0T$B D3mJ3cȅ̋T$B J3C$̋E eM|)ËT$B J3 |̍M_0MA0T$B J3̍M)M0T$B J3J3܆Z̋T$B J3:̍M(T$B J3XJ3N̍h~)M8)M*T$B d3J3ȇ̍M9)T$B J3J3̍M)T$B J30f̍x7x4l30l7Ha7P)\(Q(`57|'M"77!T$B D3J3`̍#('=3R)'M6&x6M6T$B 3hJ3^̍M-M-T$B J3.h̍0XX@'M5HV&t5\5H5&H{XT$B 3J3f̋T$B J3F̍M%MrM%T$B J3TJ3J`̍MptT1T$B P3J3 ̍(߲T$B 3J3Њ̍x4l钲T T$B 3xJ3n(̍MR4Í|@4T$B 031J3'HËT$B J3J3ÍM%$T$B J3J3w̍x߰X0H/d#X/T$B 3XJ3N̍x@aT$B <3J3 8̍WjPu>;u_^[]̹X4h4`4"T|d|x|+@+"||}8}  - ?-@Z- - --@-"}K"}}} A" ~*L#L"T~[L"~~~ aU LpU ,U U@U",@ V LV ,%V BV@QV" V LV ,V V@V"L\p SW LbW ,qW W@W" W LX ,X 4X@CX"| X LX ,X X@X"$8 SY LbY ,qY Y@Y"Ђ Y L Z ,Z 9Z@HZ"DTh Z LZ ,Z Z@Z"܃M"",NN"Xx@]f@e"N"N"<OO" xFOQO\OgOoOwOOOOO"OOOOP PP"HXl@v~"lP"̆PP"PP"4T|@ׇ@_"/Q"aQlQtQ"(Q"TQ" RRR$R/R:RERPR[RfRqR yR R" RRRRRRRSSS"QSYS"ȉSSSSSSSS",<P@"#T+T3T"eTmT"TT"(TTT U"lAUIUPU"U"ԋUU"UUVVV)V"\aVlV"VVVVV"܌W W"BWJWRWZWbWjW"dW"W"܍@ @ "HX"t6X"Ď@G"X"$XX"XY Y"f" sf~fffffffff f f g"L8g@g"rg"g"ةgg" hh&h.h9hDhOhZhehmh xh h"hhh"Ъhi i" ?iGiRi]iei"Xiii"  L ,  @'"<i"h8j"`j"jj"jjjjj"DTh ] Le ,m u }@"DkOk" kk"Tdx * L+ ,+ 3+@B+" + L+ ,+ +@+" , L*, ,9, V,@e,",@ , L, ,, ,@,"İذ G- LV- ,e- -@-"L\p - L- ,- .@*." }. L. ,. .@."| / L%/ ,4/ Q/@`/"$8 / L/ ,/ /@0"г S0 Lb0 ,q0 0@0"DTh 0 L0 ,1 %1@41"ܴ 1 L1 ,1 1@1"t '2 L62 ,E2 b2@q2" 0 2 L2 ,2 3@3"ȶ d3 Ls3 ,3 3@3"<L` 3 L 4 ,4 64@E4"ԷgnL@"4n"`nnnn" o(o3o"hoso~o"ool/"poppppxο"عNp[p[ptptptRd"@ppppp"@x"q+q+qDqDqxx" k Lz , "$4H  L  , 9H"̼  L , |/A"pqqqqqp"ؽ.r;r;rTrTrx"@rrrrr|"rrrssVh|"0"4n |t"p\ \^ ZR:"J rH"v    $ D l |  F%      ,8FR`v   p R 2     tj`N | T<dD. v, z^  ##j$`#,#""$`$$$"%#zD"!!!t!vbN8H2^!>!&!!Dv@@$   \$h\\ 00,Z$(< tx l 6VDL zT @X @.$ R^L PX p  dLL 2<l @Xj $|  ,0  4 .F2~lr `P  @& jT8 D~\>"4n |t"p\ \^ ZR:"J rH"v    $ D l |  F%      ,8FR`v   p R 2     tj`N | T<dD. v, z^  ##j$`#,#""$`$$$"%#zD"!!!t!vbN8H2^!>!&!!Dv8_initterm9_initterm_eapi-ms-win-crt-runtime-l1-1-0.dll_o___std_exception_copy_o___std_exception_destroy_o___std_type_info_destroy_list_o___stdio_common_vsnprintf_s_o___stdio_common_vsprintf_s_o___stdio_common_vswprintf_o__callnewh_o__cexit_o__configure_narrow_argv_o__crt_atexit_o__errno_o__execute_onexit_tablec_o__initialize_narrow_environmentd_o__initialize_onexit_tablef_o__invalid_parameter_noinfog_o__invalid_parameter_noinfo_noreturns_o__purecall_o__register_onexit_function_o__seh_filter_dll_o_free_o_iswascii_o_iswcntrl_o_iswdigit_o_iswlower_o_iswprint_o_iswpunct_o_iswspace_o_iswupper_o_malloc_o_memcpy_s_o_memsetY_o_toupper__CxxFrameHandler32_except_handler4_common_CxxThrowExceptionapi-ms-win-crt-private-l1-1-0.dllCryptAcquireContextWCryptGenRandomCryptReleaseContext#LsaConnectUntrusted)LsaLookupAuthenticationPackage$LsaDeregisterLogonProcessCRYPTSP.dllSspiCli.dllGetModuleFileNameA CreateSemaphoreExWHeapFree SetLastError&ReleaseSemaphoreGetModuleHandleExW6WaitForSingleObjectGetCurrentThreadId#ReleaseMutexFormatMessageWGetLastErrorOutputDebugStringW7WaitForSingleObjectEx!OpenSemaphoreWCloseHandleHeapAllocGetProcAddress CreateMutexExW GetCurrentProcessIdGetProcessHeapLoadLibraryExW EventWriteTransferDisableThreadLibraryCallsEventSetInformationEventRegisterCoCreateGuidEventUnregister RoOriginateErrorDecodePointer$ReleaseSRWLockExclusiveAcquireSRWLockExclusiveEncodePointer%ReleaseSRWLockSharedAcquireSRWLockSharedIsDebuggerPresentUnhandledExceptionFilterSetUnhandledExceptionFilter GetCurrentProcessMTerminateProcess/IsProcessorFeaturePresentQueryPerformanceCounterGetSystemTimeAsFileTimeInitializeSListHeadEventActivityIdControlInitializeCriticalSectionExDeleteCriticalSectionLeaveCriticalSectionEnterCriticalSection?CoTaskMemFreeConvertStringSidToSidW4GetLengthSid+EqualSidLocalFree>CoTaskMemAllocConvertSidToStringSidW*RegSetKeyValueWCoGetMallocLNCryptGetPropertyUNCryptOpenStorageProviderSNCryptOpenKeyKNCryptFreeObjectRaiseExceptionLocalAlloc FindResourceExWLoadResourceLockResource SizeofResourceRegGetValueWRegOpenKeyExWRegCloseKeyRegCreateKeyExW RegDeleteTreeWLIsValidSidBCryptGenRandom>NCryptCreatePersistedKey\NCryptSetPropertyINCryptFinalizeKeyDNCryptEncryptHNCryptExportKeyCopySid,RegSetValueExW RegDeleteValueW TrySubmitThreadpoolCallback CreateThreadpoolCleanupGroupCloseThreadpoolCleanupGroupCloseThreadpoolCleanupGroupMembersGetComputerNameExWCompareStringOrdinal CredIsProtectedWCredProtectWapi-ms-win-core-libraryloader-l1-2-0.dllapi-ms-win-core-synch-l1-2-0.dllapi-ms-win-core-heap-l1-2-0.dllapi-ms-win-core-errorhandling-l1-1-1.dllapi-ms-win-core-processthreads-l1-1-2.dllapi-ms-win-core-localization-l1-2-1.dllapi-ms-win-core-debug-l1-1-1.dllapi-ms-win-core-handle-l1-1-0.dllapi-ms-win-eventing-provider-l1-1-0.dllapi-ms-win-core-com-l1-1-1.dllapi-ms-win-core-winrt-error-l1-1-1.dllapi-ms-win-core-util-l1-1-0.dllapi-ms-win-core-profile-l1-1-0.dllapi-ms-win-core-sysinfo-l1-2-1.dllapi-ms-win-core-interlocked-l1-2-0.dllapi-ms-win-security-sddl-l1-1-0.dllapi-ms-win-security-base-l1-2-0.dllapi-ms-win-core-heap-l2-1-0.dllapi-ms-win-core-registry-l1-1-1.dllncrypt.dllapi-ms-win-core-registry-l1-1-0.dllbcrypt.dllapi-ms-win-core-threadpool-l1-2-0.dllapi-ms-win-core-string-l1-1-0.dllapi-ms-win-security-credentials-l1-1-0.dllCRYPT32.dll LocalSizeapi-ms-win-core-heap-obsolete-l1-1-0.dllRtlUnsubscribeWnfNotificationWaitForCompletionRtlQueryWnfStateDatadRtlSubscribeWnfStateChangeNotificationRtlGetDeviceFamilyInfoEnumZRtlIsMultiSessionSkuRtlNtStatusToDosErrorRtlInitStringApiSetQueryApiSetPresencentdll.dllapi-ms-win-core-apiquery-l1-1-0.dll?_Xbad_alloc@std@@YAXXZ?_Winerror_message@std@@YAKKPADK@Z?_Xout_of_range@std@@YAXPBD@Z?_Winerror_map@std@@YAHH@Z?_Xlength_error@std@@YAXPBD@Zs?_Syserror_map@std@@YAPBDH@Z?_Xbad_function_call@std@@YAXXZmsvcp_win.dll&__std_terminatememmovewcschrwcsstrResolveDelayLoadedAPIDelayLoadFailureHookLsaLookupUserAccountTypeLookupAccountNameLocalWLsaOpenPolicy LsaLookupSids2LookupAccountSidLocalWLsaCloseLsaFreeMemoryDevCreateObjectQueryDevCloseObjectQueryapi-ms-win-core-delayload-l1-1-1.dllapi-ms-win-security-lsalookup-l1-1-2.dllapi-ms-win-security-lsalookup-l1-1-1.dllapi-ms-win-security-lsapolicy-l1-1-0.dllapi-ms-win-devices-query-l1-1-1.dll@CertFreeCertificateContextUuidToStringW RpcStringFreeW%CertDuplicateCertificateContextEventWrite#RegQueryValueExWRegLoadKeyWCompareStringExRegOpenCurrentUserUuidFromStringWUuidIsNilRegEnumKeyExW!RegQueryInfoKeyWCryptBinaryToStringWCryptDecodeObjectEx.RegUnLoadKeyWCertCloseStore5CertFindCertificateInStoreYCertOpenStore7CertFindExtensionRpcExceptionFilter-SleepNdrClientCall4PStringFromGUID2LoadStringWAGetTokenInformation&CoInitializeExBCoUninitializeInitializeSRWLockConvertStringSecurityDescriptorToSecurityDescriptorWlRpcBindingCreateWiRpcBindingBindmRpcBindingFreeRPCRT4.dlllstrcmpiWapi-ms-win-core-string-obsolete-l1-1-0.dllRtlFreeAnsiStringRtlInitUnicodeStringRtlUnicodeStringToAnsiStringNtQueryLicenseValue?_Decref@facet@locale@std@@UAEPAV_Facet_base@3@XZ?_Init@locale@std@@CAPAV_Locimp@12@_N@Z9??0?$codecvt@GDU_Mbstatet@@@std@@QAE@I@Z?do_length@?$codecvt@GDU_Mbstatet@@@std@@MBEHAAU_Mbstatet@@PBD1I@ZC?do_unshift@?$codecvt@GDU_Mbstatet@@@std@@MBEHAAU_Mbstatet@@PAD1AAPAD@Z?do_out@?$codecvt@GDU_Mbstatet@@@std@@MBEHAAU_Mbstatet@@PBG1AAPBGPAD3AAPAD@Z?do_in@?$codecvt@GDU_Mbstatet@@@std@@MBEHAAU_Mbstatet@@PBD1AAPBDPAG3AAPAG@Z?do_encoding@?$codecvt@GDU_Mbstatet@@@std@@MBEHXZ?do_max_length@?$codecvt@GDU_Mbstatet@@@std@@MBEHXZ?do_always_noconv@?$codecvt@GDU_Mbstatet@@@std@@MBE_NXZ?_Incref@facet@locale@std@@UAEXXZ??1?$codecvt@GDU_Mbstatet@@@std@@MAE@XZ4?out@?$codecvt@GDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBG1AAPBGPAD3AAPAD@ZB?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z?_Addfac@_Locimp@locale@std@@AAEXPAVfacet@23@I@Z1??Bid@locale@std@@QAEIXZ?id@?$codecvt@GDU_Mbstatet@@@std@@2V0locale@2@A??4?$_Yarn@D@std@@QAEAAV01@PBD@Zmemcpy GF`FFFFFFFHIH IHIH FGE H0G`GGx(@p  ( 8 H X h(hE*Q*Q*Q8*AMUI4VS_VERSION_INFO ~ 98 ~ 98?@StringFileInfo040904B0LCompanyNameMicrosoft Corporationv'FileDescriptionMicrosoft Passport Credential Provider7FileVersion10.0.14393.2430 (rs1_release_inmarket_aim.180806-1810)8 InternalNamengccredprov.LegalCopyright Microsoft Corporation. All rights reserved.HOriginalFilenamengccredprov.dllj%ProductNameMicrosoft Windows Operating SystemDProductVersion10.0.14393.2430DVarFileInfo$Translation (HH Q  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG(HH Q  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG(HH Q  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG^^^GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGjjjGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSGGGGGGGGGGGGGGGGGGGGGSSSSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGuuuGGGGGGGGGGGGGGGjjjGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGjjjGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGjjjSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGuuuGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGuuuGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGjjjjjjGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGuuuGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSGGGGGGSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG^^^GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG(  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF#O}M i9Fl1 MUIMUIen-US000 00000 0$0(0,00080@0h0p0000000000000111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x111111111111111111111111111111222 22222 2$2(2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|222222222222222222222222222222222333 33333 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|333333333333333333333333333333333444 44444 4$4(4,4044484<4@4D4H4L4P4T4X4\4`4d4h4l4p4t4x4|444444444444444444444444444444444555 55555 5$5(5,5054585<5@5D5H5L5P5T5X5\5`5d5h5l5p5t5x5|555555555555555555555555555555555666 66666 6$6(6,6064686<6@6D6H6L6P6T6X6\6`6d6h6l6p6t6x6|666666666666666666666666666666666777 77777 7$7(7,7074787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|777777777777777777777777777777777888 88888 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|888888888888888888888888888888888999 99999 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9|999999999999999999999999999999999::: ::::: :$:(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:::::::::::::::::::::::::::::::::;;; ;;;;; ;$;(;,;0;4;8;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<< <<<<< <$<(<,<0<4<8<<<@>> >>>>> >$>(>,>0>4>8><>@>D>H>L>P>T>X>\>`>d>h>l>p>t>x>|>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??? ????? ?$?(?,?0?4?8?>>$>/>:>U>Z>g>r>}>>>>>>>>>>>>???(?E?J?W????  0"0H0m0t02 33&3?3\3h3t3333334 4D4\4t444425e5555555 6%6R6666777.74797W7c7l7x7777:P::*;1;D;a;k;;;;;;4>>?'?3?K?S?`???????????00-0b000111"13111>222243d333+4C4M4k4444505L5X5j5R6Y6k6r66677J7Q77588;9W9a99995:;:H:S:l:w:::::;/;5;c;;<<<<==@=G===>>>>)?@ y000011^1~11111111111112=2]2}2222223!3/343:3@3D3h3x3333334H4X4q444444'595K5T5w55555'6F66666787X77777778<8B8I888889G9p9{9999:+:?:Q:f:{:::::::;1;A;Q;h;;;;;;;;<<)<7*>_>>>+????P00<0_001:1F1h1r1133334Q4^444444C5i5x55555566;6L6U6j66666677F7[7j77777788-8>8G8\88888889E9[9j999999::2:C:L:a:::::::;7;;;F>>>?8?q???`00000003333566666797Q7777 8@8L8R8[8b8o8888888888899I9b9o9999:U:j::::;;<G>Q>>??p11l334 4,4M4W4{44444445&5]5t555556|6666 7 7@7G7777777'8j888839b9s999999 ::8:Z:}:::;;;>?V?l??????@0Z0m00000+112'2@2q2233@3Z3k3333344[444444l67z7;;<=<<<<<=$=f=====#>E>O>>>>>>?? 0,060h00000y1111!2i222222-363334%4u44505V5`55]6 7/7977777 88)8@8^8889J9o9y99=:;;;<'==:>o????0'0N0X000000101:1q1111112%2,2222*3k33334/4e4l4s4z44445{666677k778Q8[8|88 99j:::::::;<;F;f;y;;;;.=222293S3y33344)4F4R4p44444445 55<5D5_555555555777778888 :: :':::;^;;;>>>>>?C????0040<0^0q00000001#1/11111222:2L2k2s22222222222333 333)3f33333Y4445%56@777j8}8888999999::$:1:Q:[:;I;Z;i;|;;;;<(>4>O>{>>>>>>>>>(?K?c?k??????-0I0U0w0000000N1Z111112]2p2<3B3844455555666777777D8|8888#9-9I:v:::;L;W;;;.<<<m>y>>? ?h???i0000191C112222E33334 4j4y4444)5B555 6666677c7o77777858?88888899:7:A::::';e;;;;;><>_>i>>>>P?\??)0N0X00000Q192Y2e2223373A3R3a3r33333333o4Y5u555556(6R6^6{66657Q7s77777808<88888889.9=9M9\999::<:O:[:v:::::::: ;$;7;C;^;q;};;;;;;;;<,<4 >+>>>J>g>z>>>>>>>>?)?1?L?_?g?????00!0=0P0\0u0000000 111112[22 33 3/3S3]3p33333!4-4:4X4b4444445!585S5b5555556"6W6c6p6x6o7777F8r8}8888;6<<=&=]==@>b>>>>>>?)?_?? 0r0000B11112E2\22222220373>3E33U4u444445%5/5s5}55555M66670787S7l88889999 ::::;*;6;<)<3<<<0>:>>>>g?? 0000[0w0000U1a111122222 3[3y3333344445>555M6t66666T7[7b7i77g88889"99s::::: ;F;a;;;; =G=M==`>>>>>>>>?)?????0(00000071C1y1252?2 3-3:3K3o3y333333/4444*5P5W5^555555F6j6t6666C7S77g8888889@9L99999:!:C:t::;*;H;R;;<<<<=8=P=X==>>>?????@0C0f0l00001O1i1x112&2-2422222Y3 447444 5.5856V6o6666 7797R7Z7|77777777777777 888889I::::F;N;v;~;;;;< <<-<9<[<<===>??&?J?T?e?t???????Pp000000082^2h22F3e3q33,4G4O4q44406a6y888889j9q9x99s:::;;;;;;;;;;;;C->6>K>c>>>>>>>>?"???P?Y?n???????pP0%0B0Q0n000000011!161X1t11111112 2=2N2W2l2222222 373S3b333333334,454J4o4444444 5'565S5d5m5555556 66>6Z6i66666677,7=7F7[77777778!8=8L8i8z888888 99$999^9z9999999:%:B:S:\:q:::::::;(;D;S;p;;;;$<3>>>>>g???000>1T1x1111111112(292J2p2222222'3<3\3f3p33334%4444444445$5;5T5X5\5`5d5h5l5p5t5x5|555555@6H6x66667777778.8S8d8p888888 9:9J9n9x9999,:2:::;(;7;W;a;;;;;;<< >^>e>l>s>>???/?I?S??000A0K000 11S1q1111111 2U2p222222 33#3o333334484O4V444444444455v6f7777778t9~9999:+:5:G::;G;X;<<=*=2=8=G=S=u==========>(>7>?>O>\>|>>>>?#?G?Q?????00/0<0^0h0000011u1122T2_222222223/3333334#4_444444515\5{555555546D6w66666 77&7J7T77 88888999999:':1:j: ;.;G;M;r;|;;;;;-<]>=>G>e>n>>S????????0B0I0t00000000#1-1<1D1V1`1o1w11111 222234J5u55555556+6H6Y6b66667(77N8f8v8888=99999 ::H:n:}:::::;*;d;i;~;;<->6>>?????0 090000151G1O1z1111112*292222223 3D33333333434?4p4444*5^5q555 6[6666677:7q77778B8S8a8o88889'9P9[9e9999:.:h:m:~:::::S;;;;;;/<7<<<<=1=\=n====> >+>I>S>i>>>?*?=?y?????? 00)010N0V00000c111111X2r222N3l3v3334(42444"5q5{556-667777778>8_8i888888929<9B9e9o99:0:?:]:g:~::;/;5;Z;d;;<&<<<<=%=,=R=~======>!>*>t>{>>>????V000001i11111V2w222222223,343O333)4G4Q4445.585j55c6p666g999`:::::::::;A;K;;;;<,<;>>>>??0?O?t????? 000R0\000 1'1E1O1f1111112"2@2P2r2|222223)3H3X3|333334+454E4_4i444444525X5^5556U66666 77;7E7e7w77777778878A8d8r88889.9Q9W9999: :&:8:@:V:h:p::::::: ;<;V;e;;<'<4>>> >+>J>7?>?E?????e0001;1y11112^2y2222,3m333 4-474444{55556@6^6h666#727P7Z7q777777^8m88888889 9-9D9O9j9{99999:^::::::;*;2;F;c;k;;;;;;7>8>>>>>E?^?f?n?v?~??????000 1111 2)2/2b2233333b44444'5355596?657P7p7z77778&8889989g9p99999:Y:g:::%;0;=;D;K;T;\;h;p;;;;;;|??? 00<111112223L4q4444444 55i55555 666$6L6V66677S77J8\88888889?9E9O9Y9`9i9w999999999 :*:X:::;;,;=;F;[;s;;;;;;;<#<2%>.>C>h>>>>>>>??-?J?[?d?y??????000?0[0j000000011/181M1|11111112/2>2[2l2u222222 33+3P3l3{33333344/4@4I44444525G557U7i7778-8H8q888899949>9O9V9n9w9~93:Q::D;w<<-=?=S=u======= >&>L>V>>>>?_?|?????@00%0500111+1}11123333S3333333 4414:4l4444^5660676P6W6c6s6{6666677777778(888889$9F99999999:::R::::;=;P;j;}; <3>2>D>i>{>>>??l?P,#0A0g0q0z111g2o22234444!5&5+5[5`56#6.686S6X6c6m66666666u8z8888888888899 90959:9v9{9999999::.:5:h:m:t::::::; ;;%;_;j;o;~;;;;;;;;<<<3<8 >>>%>;>@>E>T>m>r>>>>>>>>>>?=?B?G?w?|??????`0(0d0i0000[2`2222 3U3f3k3344444 5>5555555556667777777777$8B8G8L8p8888889 9*9/969t999999: ::$:d::::::;;@;G;o;u;;;;;;;;<8 >>7>>>E>R>W>>>>>>>>>!?2?7?U?Z???????p00%0*0S0j0o0000011W1k1p11111111 222!2+212B2G2L2b2222223333@3T3Y3^333333333333M4c4h44444455/54595P555555666#6A6^6{666667=7^777778$868;8@8m888888993989V9j9o99999999::2:F:K:i:}::::::::;";';E;Y;^;|;;;;;;;;1>6>`>j>o>>>>>>>> ?"?(?7?j?u?z?????????? 0010000001-12171X1]1v11111111222O2p22222233353<3R3X3n3u3333333333344-434F4M4c4i4|44444444445 55%5I5N555/6:6F6a6{666666666 7/787D7l7r7777777788+8F8T899+929I9c99999999999:::D:W:\:a:::;+;8;=;;;;;;;;;;RP>\>c>>>>>>>>>??#???J?V?\????????<#0>0D0m0}000000000001(1-1A1F1X1|111111111 2!2.222222222222(323:3?3a3k3s3x33333314l4r4}444444445#5+505W5\5a555566/6P6b666666667/797u7778o8}8889L9999(:::: ; ;{;;; '>M>R>x>}>>>>>?#?V?^?y?????0&000s0000 11%1>1v112222X2d22222223B3o3|33333"4=4t4444455*5L5v55555 61696f6p666666 7747V77777778'8H8W8u88888K9i9s999::-:9:::::W;r;;;;;I<<<<==S====.>E>#1111'212^2z2223 3?3[3d3333333U4r44777'8`8s8888889?9L9j9t91<[<<<<<= =*=c=q====1>;>@>>>> ?\?a?g?????0090h0000001P1Z11111292>2_22222&3]3g3l3333:4a444445^55F6Y66666667I7W77778'8,8888Y9999999:I:W::::;';,;;;;I<<<<<<<=;=I=r===>>>y>>>;?s??????0020C0I0a000000021P1Z11111122<2u22223>3H3M33334'414K44444445G5U5~555&6065666667!7=77777777'858^88889 929<9A9999:G:L:R:k::::::$;S;{;;;;;;'>O>Y>^>>>>?S?X?^?w?????000_00000181B11111122%2F2P223z3333334-444444Y5l5556667 7v77777777 8818<88{99::,:=:F::;;<;O;^;f;m;};;;;;<<4<><>D>\>i>y>>>!?.?>?b?l?0'040R0\000000192M222222=3G3M3p3z3334494C4Q4o4y4444445)5K5p5555586_6666667 777E7U7q7{7777 88889959D9O9Z9v9::':Y:::::;(;<;];g; =5=?=k====>H>_>>>>??5?G?w???#070E0c00000 1z11111222333O4~4.55666627<7A7G7Y7788Q879b9<)='>->:>B>R>j>w>>>>??:?b?o????00N0x0000013c3r33334444 55%5T5j55556.6\66666788 8G8Q889 9?9z9999999(:2:z:::; ;j;;;;<<<< =='=Y=h====== >>_>>>>>W?u??? 8g1111112A2P2m2~222222@3S33333333W4444444M5\5y555 6$606?6L6e66666666 7&7T7p777848^8h8888888888889 9999'9,91969<9F9L9P9V9e9n9x999999999999 ::+:i:::::::Z;;;d<<<<"=+=2=J=p=x======== >>)>/>R>\>r>>>>>>>? ??9?|?????000011N1n1}11122B2V22233333 44+404=44444444955+676Q666666666%7+71777=7C7J7Q7X7_7f7m7t7|7777777777777j8949e999 ::*:::K:v::::::;0;^;f;;;9t>~>>>>>>>? ??$?Q?n???@"0'0M0[0v0011!1h1w1~111111162U2[222222"3F3\3h3t333333333333444*464B4N4Z4f4r4~4555556!636H6a6s666666667!717C7a7u7777778!838K8j888888899!929B9R9b9r99999:R:::t;;;;<%<,@>P>q>>>>8??P>0^0001!1S11112C3s334W44435K5z55555S6664777788(8a8888.9F9999:<:v:::";\;;;7>a>>>> ?3?]????`0/0Y0001 1h11C2u2223$3D333 4,4L4c444D5555 6e6*7d77788819999*:R:::;6;y;;; <7/>Y>>>?Z???p@0001h1111 2x22.33333H4z444G55576O6p66667I7s7778@8`8888?9_999:#:C:u::::;R;r;;;;;;;<<<<"<&<8<@$>,>8>X>h>p>>>>>>>>>>>??> >,>L>X>x>>>>>>>?(?0?>>L>T>\>d>l>t>|>>>>>>>>>>? ???$?4?@?H?|????????????\00$0,040<0D0L0T0d0p0000000011$1,141<1D1L1T1d1p111111112,242<2D2L2T2\2d2l2t2|2222222223 3,343h3x33333334$4,444<4D4L4T4\4l4x4444444444455D5L5T5\5d5l5t5|55555555556 666,686X6`6h6p666666666666 77<7D7L7T7\7d7l7t7|7777777778 8(848T8`88888888888889 999$909P9X9d99999999::$:,:4:<:D:L:T:\:d:l:x:::::::::;; ;(;0;<;\;d;l;x;;;;;;;;;;;;<< <@$>,>8>@>t>|>>>>>>>>>>> ???$?,?4?>$>D>L>T>\>d>|>>>>>>>>>>???4? > >(>0>8><>@>H>d>t>|>>>>>>>>H0(0004080<0@0D0H0L0P0X0`0h0p00000 1,1L1p11022x33x445 40800 00000 0$0,0004080<0@0D0L0T0\0d0l0p0x0