ELF>1@p@8@ ) ) ))%)%pFS --%-%$$Ptd,,QtdGNUyzA9WK $SMz\/a @( H`E PQ* )RXabegiopquwyz|}cSrT2Eq^qXYXv̉|atg7cJcЉ(CEmU`fBPDV{oVk0@,v$R~GE};. b    ) i6  l< r4 UMY1{MH + Q   =bQ( Z{ a O s H  .G  ! \S/ p T5T : t P+  E 8 g E x "j! O  }w=H<  2= x4O q1.q/nbX]$ F]  7 B S  v<Wp C  x t 1  )  . {    a  'h >  J U6jh:&," J.VfyZ I=q  ] f q;0[ #]wj 6 T _z |(w"S Єw ? ; a PF @T  q 6o' 65  @v  } @B(|' D Лo ` >  r/o' WJ7+%%  pC pw u 0S xc PA w,% D t] <__gmon_start___init_fini__cxa_finalize_Jv_RegisterClassesCertDB_new_from_CERTCertDBHandlePK11Slot_new_from_PK11SlotInfo_Py_NoneStructPyTuple_TypePyExc_TypeErrorPyErr_FormatPyInt_FromLongPyExc_ValueError_PyArg_ParseTupleAndKeywords_SizeTPyString_FromFormatPyString_FromStringPyList_NewPyList_AppendPyList_SortPyExc_SystemErrorPyErr_SetStringPyExc_IndexErrorCERT_DupCertificatePyTuple_Size_PyObject_CallMethod_SizeTPyThreadState_GetDictPyDict_GetItemStringPyExc_RuntimeErrorSEC_PKCS12DecoderValidateBagsSEC_PKCS12DecoderImportBagsPyString_FromStringAndSizePyTuple_NewPyTuple_SetItemPyTuple_GetItemPyGILState_EnsurePyDict_NewPyObject_CallObjectPyBool_TypePySys_WriteStderrPyGILState_ReleasePyErr_Print_Py_TrueStructPyErr_OccurredPyUnicodeUCS4_AsUTF8StringPyString_UTF8PORT_AllocPyString_AsStringPORT_StrdupPyString_SizePyErr_NoMemoryCERT_MakeCANicknamePR_smprintf_freePORT_SetErrorstrlenPORT_ZAllocstrncmpPORT_FreePyBool_FromLongPyDict_GetItemPyExc_KeyErrorPyExc_MemoryErrorNSS_ShutdownContextPyMem_Free_Py_BuildValue_SizeT_PyArg_ParseTuple_SizeTPyUnicodeUCS4_DecodeUTF8PyInt_AsLongPyObject_IsTrueSECOID_FindOIDTagAVA_new_from_CERTAVAPORT_ArenaZAllocSECITEM_CopyItemCERT_CopyAVACERT_SequenceOfCertExtensionTemplateSEC_ASN1DecodeItemSECITEM_ArenaDupItemPyNumber_LshiftPyNumber_OrCERT_GetOidStringPyObject_Str_Py_ZeroStructPR_smprintfPyList_SizePyList_GetItemDER_GeneralizedTimeToTimePR_GMTParametersPR_ExplodeTimePR_FormatTime__stack_chk_failDER_UTCTimeToTimePyString_ConcatAndDelPyUnicodeUCS4_DecodeUTF16PyUnicodeUCS4_DecodeUTF32CERT_GetNextGeneralNameCERT_NameToAsciiPyObject_SizePySequence_GetItemCERT_GetCertUidCERT_GetDomainComponentNameCERT_GetOrgUnitNameCERT_GetOrgNameCERT_GetStateNameCERT_GetLocalityNameCERT_GetCountryNameCERT_GetCommonNameCERT_GetCertEmailAddressCERT_AddRDNKEYPQGParams_init_from_SECKEYPQGParamsSECITEM_FreeItemKEYPQGParams_new_from_SECKEYPQGParamsPyType_IsSubtypestrcasecmpstrncasecmp__ctype_b_locSEC_StringToOIDCERT_GetAVATagPyNumber_AsSsize_tPySlice_TypePySlice_GetIndicesExPyList_SetItemPySequence_SizePK11_DigestFinal_PyString_ResizePK11_FinalizePK11_CipherOpPK11_DigestOpPK11_DigestBeginPK11_CloneContextPK11_DigestKeyPK11_GetSlotFromKeyPK11_GetKeyLengthPK11_ExtractKeyValuePK11_GetKeyDataPK11_GetMechanismPyObject_MallocPyObject_InitPK11_UnwrapSymKeyPK11_DerivePK11_GetTokenNamePK11_GetSlotNamePyEval_SaveThreadPyEval_RestoreThreadPyTuple_GetSlicePK11_KeyGenPK11_GetBestKeyLengthPK11_GetBestWrapMechanismPK11_LogoutPK11_AuthenticatePK11_UserEnableSlotPK11_UserDisableSlotPK11_GetDisabledReasonPK11_HasRootCertsPK11_IsDisabledPK11_ProtectedAuthenticationPathPK11_IsLoggedInPK11_IsRemovablePK11_IsFriendlyPK11_NeedUserInitPK11_NeedLoginPK11_IsInternalPK11_IsReadOnlyPK11_IsPresentPK11_IsHWSEC_DeletePermCRLPyFloat_FromDoublePyFloat_TypePyFloat_AsDoublePR_NowCERT_CheckOCSPStatusCERT_VerifyCertificateCERT_VerifyCertificateNowCERT_IsCACertCERT_CheckCertValidTimesCERT_VerifyCertNameNSS_FindCertKEATypeCERT_GetDefaultCertDBPK11_GetInternalKeySlotCERT_DecodeTrustStringCERT_ChangeCertTrustPORT_GetErrorSEC_FindCrlByDERCertCERT_AsciiToNameCERT_NameTemplateSEC_ASN1EncodeItemCERT_DestroyNameSEC_FindCrlByName__snprintf_chkPyExc_AttributeErrorPK11_HashBufPORT_NewArenaPORT_FreeArenaPyObject_AsReadBufferSECOID_FindOIDPyString_FormatPyDict_SetItemPyModule_TypePyModule_GetDictPyModule_GetNamePORT_ArenaAllocNSS_CmpCertChainWCANamesCERT_FreeDistNamesmallocmemmovePK11_WrapSymKeyKEYPQGParams_format_linesCERT_DecodeOidSequenceCERT_DestroyOidSequenceCertificateExtension_new_from_CERTCertExtensionDSAPublicKey_new_from_SECKEYDSAPublicKeyRSAPublicKey_new_from_SECKEYRSAPublicKeyPublicKey_new_from_SECKEYPublicKeyPK11_GenerateKeyPairCERT_DestroyCertificatePyFile_TypePyFile_FromStringSECITEM_ZfreeItemSEC_PKCS12DecoderFinishPyObject_CheckReadBufferCERT_SignedDataTemplateCERT_CertificateRequestTemplateCERT_VerifySignedDataWithPublicKeyInfoCERT_DecodeBasicConstraintValueBasicConstraints_new_from_SECItemCERT_DecodeAuthKeyIDAuthKeyID_new_from_SECItemCERT_DecodeGeneralNameCERT_CreateRDNRDN_new_from_CERTRDNCERT_CopyRDNCERT_CreateNameCERT_CompareNameCERT_DecodeAVAValueCERT_RFC1485_EscapeAndQuoteSECITEM_CompareItemCERT_CreateAVAPORT_ArenaMarkPORT_ArenaUnmarkPORT_ArenaReleaseCERT_CopyNameCERT_DecodeAuthInfoAccessExtensionAuthorityInfoAccesses_new_from_SECItemAuthKeyID_new_from_CERTAuthKeyIDCRLDistributionPt_new_from_CRLDistributionPointGeneralName_new_from_CERTGeneralNameDN_new_from_CERTNameCERT_DecodeCRLDistributionPointsCRLDistributionPts_new_from_SECItemPK11_DestroyContextPK11_FreeSymKeyNSS_IsInitializedPK11_FreeSlotSEC_DestroyCrlSECKEY_DestroyPrivateKeyCERT_ImportCertsCERT_DestroyCertArraySECKEY_DestroyPublicKeySECOID_DestroyAlgorithmIDCERT_DerNameToAsciiCERT_DisableOCSPDefaultResponderCERT_EnableOCSPDefaultResponderCERT_SetOCSPDefaultResponderCERT_ClearOCSPCacheCERT_SetOCSPTimeoutCERT_SetOCSPFailureModeCERT_OCSPCacheSettingsCERT_DisableOCSPCheckingCERT_EnableOCSPCheckingCERT_GetUsePKIXForValidationCERT_SetUsePKIXForValidationPK11_IsFIPSPORT_SetUCS2_ASCIIConversionFunctionPK11_FindCertsFromNicknameCERT_FilterCertListForUserCertsSEC_PKCS12CreateExportContextSEC_PKCS12AddPasswordIntegritySEC_PKCS12AddCertAndKeySEC_PKCS12CreateUnencryptedSafeSEC_PKCS12CreatePasswordPrivSafeCERT_DestroyCertListSEC_PKCS12DestroyExportContextSEC_PKCS12EncodePORT_UCS2_UTF8ConversionSECITEM_DupItemPyDict_SetItemStringPyCallable_CheckSEC_PKCS5IsAlgorithmPBEAlgTagSEC_PKCS5GetPBEAlgorithmSEC_PKCS12SetPreferredCipherSEC_PKCS12EnableCipherstrstrstrchrNSSBase64_DecodeBufferCERT_DecodeDERCrlWithFlagsPK11_TokenExistsPK11_NeedPWInitPK11_ImportCRLPK11_GetPadMechanismPK11_GetBlockSizePK11_GetIVLengthPK11_MechanismToAlgtagPK11_AlgtagToMechanismPK11_GenerateNewParamPK11_ParamFromAlgidPK11_ParamFromIVPK11_CreateDigestContextSECKEY_PublicKeyStrengthPK11_PubWrapSymKeyPK11_ImportSymKeyPK11_CreateContextBySymKeyPK11_FindSlotByNamePK11_GetInternalSlotPK11_GetBestSlotPK11_LogoutAllSECOID_FindOIDByTagPyList_TypePyMem_MallocPyString_AsStringAndSizeCRLDistributionPt_format_linesHASH_ResultLenByOidTag__ctype_tolower_locCERT_GetCertNicknamesCERT_FreeNicknamesPK11_GenerateRandomPK11_FindKeyByAnyCertPK11_FindCertFromNicknamePK11_SetPasswordFuncPK11_ReferenceSlotnss_DumpCertificateCacheInfoNSS_ShutdownNSS_InitContextNSS_InitializeNSS_NoDB_InitNSS_InitReadWriteNSS_InitPyDict_DelItemStringNSS_UnregisterShutdownNSS_RegisterShutdownNSS_VersionCheckNSS_GetVersionAlgorithmID_new_from_SECAlgorithmIDSECOID_CopyAlgorithmIDSECITEM_AllocItemSEC_PKCS12DecoderStartSEC_PKCS12DecoderUpdateSEC_PKCS12DecoderVerifySEC_PKCS12DecoderIterateInitSEC_PKCS12DecoderIterateNext_PyObject_CallFunction_SizeTSubjectPublicKeyInfo_new_from_CERTSubjectPublicKeyInfoSECKEY_ExtractPublicKeySignedData_new_from_SECItem__memcpy_chkPR_IsNetAddrTypePR_NetAddrToString_PyString_JoinCERT_DecodeAltNameExtensionsecuPBEV2ParamsSEC_QuickDERDecodeItemSECOID_GetAlgorithmTagsecuPBEParamsTempsecuKDF2ParamsSECKEY_RSAPSSParamsTemplateSECOID_AlgorithmIDTemplateinitnssPyImport_ImportModulePyObject_GetAttrStringPyCObject_TypePyCObject_AsVoidPtrPyCObject_ImportPy_InitModule4_64PyType_ReadyrindexPyModule_AddObjectPyCObject_FromVoidPtrPyModule_AddIntConstantPyModule_AddStringConstantPK11_ListCertsPK11_FindCertsFromEmailAddressCERT_GetCertChainFromCertPK11_ListCertsInSlotPyNumber_Addlibnspr4.solibssl3.solibnss3.solibsmime3.solibpython2.6.so.1.0libpthread.so.0libc.so.6_edata__bss_start_endNSS_3.2GLIBC_2.4GLIBC_2.3GLIBC_2.3.4GLIBC_2.2.5NSS_3.10NSS_3.14NSS_3.13NSS_3.9.2NSS_3.5NSS_3.12.9NSS_3.7NSS_3.12.5NSS_3.11.7NSS_3.12NSS_3.9NSS_3.6NSS_3.2.1NSS_3.8NSS_3.4NSS_3.3NSS_3.11.1                           B&G%Pii Oii Yti cui o0pd{B&GtdsdI& E&}dG&}d|drd I& F& pd {H& H&D&C&B&G|d @)%X)%p)%I)%)%)%)%)%t*%*% 0*%H*%`*%"x*%y*%K*%R*%6*%D*%O+%] +%p+%+%+%@+%+% &(&8&@;%@&*bH&X&;%`&ah&x&`=%&&&A%&a&&A%&a&&`C%&&&@E%&a&P&H% &a(&8& V%@&͓H&PX&@e%`&Uh&px&`p%&ړ&0&q%&ja&&r%&&&y%&& & {%&&&|% &Pa(&8& ~%@&9aH&0X&`%`&&ah&@x&%&&@&%&a&@& %&Y&@&`%&a&&%&`&`&% &X(&P8&%@&XH&X&%`&Xh&0x&%&X&&%&`&@& %&,U&&%&X7& &`%&`&&% &T(&8&%@&TH&X&%`&`h&px&%&R&&%& &&`%&R&&%&&&&`%&D&&% &Y(& 8&`%@&sH&X&%`&x7h&x&`%&AX&&%&W&&`%&&P&@%&`&&%&&`&% &(&p8&@%@&e`H&X&%`&ǔh&x&@%&S`&&`%&:`&&%&`&&%&`&& %&_&&% &_(&8&`%@&_H&X&%`&_h&x&%&r_&P&%&a_&&@%&J_&&`%&=_&&%&&&% &'_(&`8&`%@&H&X&@%`&_h&x&%&^&&%&^&p&`%&EQ&0&%&1Q&~&`%&Z&;& % &0d(&8&%@&dOH&eX&%`&Kh&Px&`%&L&W&%&M& _&%&^&0& %&&&%&&&% &Q(&Ў8&%@&QH&X&`%`&z^h& x&%&7&&&&^&А&&&Z[&pO&&&,&&`&&]&& & &](&P8&&@&]H&X&&`&]h&Px&&&y]&&"&&f]&& #&&H&P&$&&Y&&`$&&t&&(& &7(&8&*&x&&&& I& C'&pC'&&C'&,&H&C'P&q'X&D'&H&3&0&X&I&P&-&&3&4& E'& r'&E'(&`48&&&p4(&HP&@-&&`r'&r'&`F'&0F&`X&˕p&&H& & .&(&n'0&r'8&F'h&@Kx&p&&58&Hh&&0&&4&@5&G'&s'&G'&5&4&&6&H&0& 1&8& 6@&6h&`H'p&@s'x&H'&7&58& P&x&`H&&`1&&7&08&@I'&s'&I'H&9X&&&&@HH&`p&1&x& 9&9&J'&s'&J'&9& x&/& ;& H&0&1&&P: &:H&K'P&t'X& L'&@;& :&L0&;& 2&&L'&@t'&t'(&;8&P;&[&<&(&P&`2&X&<`&<&M'&t'&`M'&=&;X'xp'J'H'з'2&('`N'0'u'8'P'h'x'='''5&'@u''`u''u''p='@=''P0'5&h'T'p'u'x' v''='=8'P'' 6&'@T''`v'' W'H'FX'P>'–''GH'Gp'`6&'W''v'' X''>x'Ֆ'P'G'G '6&H 'Y'P 'v'X ' w' '> '> '0 '`X 'P ' '6& 'n' '`w' 'Z'( 'E8 '@ ' '? '`G '`Z'( 'pP '7&X ' ?` '@? 'Z' 'w' 'w' 'p '>X '!p '@ '@ '@7&(' ['0' x'8'['h'Ex''='0@H'`\'h''7&'?'?'\''o'?'[''`h'd0'8&h'`x'p'x'x' ]''h'@8'gP'p'fx'0c'^''P^''@&'^''x''y'H'PUX''s''@`'p('^'0'_'H'pp'@I&'@_''@y''_'']'0x'~'' '@a''Y&H'a'P'y'X'a''T'0'PX'P''Z&'b''y''@c'('S8'''P@'@G('GP'@Z&'c''z'' d''R'X'p'0'd'''Z&('e'0'@z'8'`e'h'pEx''ӗ'8'Fh'`'Z&'@f''z''f''pP'`'''p#0'[&h'g'p'z'x'h'''8'P'x'F'\& 'i' ' 'pB!'FH!'p!'@\&x!'A!'A!'j'!'{'!'`j'!'@E!'@x"'2"'K"'F"'k'"'#'\&#'B #'BH#'k'P#'@{'X#'{'#'#'B$'H0$'I$'$'`^&$'`l'$'{'$'l'8%'%'b%'I&'`m'(&'P&' _&&'m'&'|'&' n'&'@'' 'H''&P''@'X'''`''`&h''np''=x''3''0<''1''-''*'''''''''' ''''o''x''x('x('x ('x0('x@('xh('~x('('('('('('('('(')')'()'8)'H)'X)'h)'x)'Ř)'ʘ)'Ϙ)'Ԙ)'٘)'ޘ)')')'*'*'(*'8*'H*'X*' h*'cx*'*'*'*'*'*'*'*' *'Y+'"+'$(+'&8+'(H+'TX+'*h+'x+'d+'+'+'+'+'+'+'Q+'j,'T,',(,'.8,'0H,' JX,'2h,'5x,',',',',',',','s,'V-'7-'(-'t8-'H-'X-'Ih-'}x-'9-'}-')k-'}-'-';-'=-'-'}.'?.'A(.'C8.'YH.'FX.'fh.'Hx.'.'.'J.'AT.'N.'.'T.'g.'`/'/'L(/'Ed8/'ٞH/'X/'bh/'Ox/'L/'/'R/'I/'zR/'/'n/'iQ/'W0'N0'P(0'R80'TH0'VX0'Xh0']x0'b0'g0'l0'q0'v0'{0'0'0'1'1'(1'81'H1'X1'h1'x1'1'1'1'1'ƙ1'˙1'Й1'ՙ1'ڙ2'ߙ2'(2'82'H2'X2'h2'x2'2'2' 2'2'2'2' 2'%2'*3'/3'4(3'983'>H3'CX3'Hh3'Mx3'R3'W3'\3'a3'f3'k3'p3'u3'z4'4'(4'84'H4'X4'h4'x4'4'4'4'4'4'4'4'Ś4'ʚ5'Ϛ5'Ԛ(5'ٚ85'ޚH5'X5'h5'x5'5'5'5'5'5' 5'5'5'6'6'$(6')86'.H6'3X6'8h6'=x6'B6'G6'L6'Q6'V6'[6'`6'e6'j7'o7't(7'y87'~H7'X7'h7'x7'7'7'7'7'7'7'7'7'8'8'ě(8'ɛ88'ΛH8'ӛX8'؛`8'xp8'ݛ8'x8'ݛ8'x8'x8'x8'ݛ8'`i8'ni9'zi9'm9'i 9'|09'8!89'H9'iP9'i`9'`!h9'x9'!9'9'd9'i9'ɜ9'!9'ٜ9'i9'9'ݛ:'x:'h :'ޒ(:'@:'P:'ޒX:'p:'oOx:'ݛ:'x:'V:'sT:'dY:'sT:'x:'x;'x;'x ;'x0;'x@;'"H;'2`;'"h;'2;'ݛ;'x;'<;'_;';'*^;'G<'K<']<'n<'~ <'(<'0<'8<'ם@<'H<'`<'Zp<'G<'<'+<'7<'sT<'\<'@<'S<'i='Z='='n='@='vH='sP='rN`='|h='='Z='sT='='='='='Z='x>'>'>'>' >'0>'%8>'VP>'oOX>'ݛp>'oOx>'ݛ>'oO>'ݛ>'oO>'ݛ>'7>'ݛ>'7>'ݛ?'?'ݛH?'KP?'K`?'Kh?'Kx?'K?'K?'K?' L?'L?'/L?'8L?'LL?'SL?'iL?'?'rL@'@'ݛ(@',J0@'AJ@@'SJH@'fJX@'vJ`@'Jp@'Jx@'J@'J@'J@'J@'J@'K@'K@'K@'/K@'@'_@' A'_(A'sT0A'ž@A'wHA'ў`A'whA'pZA'wA'`A'wA'۞A'pZA'ўA'xA'"A'2B'xB' B'(B'<@B'HB'`B'ZhB'"pB'2B'B'B'B'&B'2B'oOB'B'B'B'&B'oOB'xC'x C'`38C'Pr@C' rpC'`3xC'C'mC'mC'@3C'ZC';C'_&D'>D'D'c& D'mU(D'8D'c&@D'EUHD'XD'`e&D'sTD'0ED'7D'jD' ED'8D'ZD'rD'J E'$S(E'8E'`h&@E'`HE'0XE'k&E'eE'p3E'lE'TE'E'08E'`E'E'h8E'F'3F'8`F'|hF'EpF'xF'F'F'EF'PF'F'vF'6F'8G'sG'5 G'80G'rN8G'5HG'9G'$SG' G'`h&G'`G'иG'k&G'ܟG'4G'؟H'H'4 H'`H'$ShH' xH'`h&H'`H'H'k&H'H'5H' 9H'H'5I'@I'$SHI'XI'`h&`I'`hI'pxI'k&I'BI' 7I'P9I'ZI'07I'9I'dI'P7J'9J'  J'p70J'J'$SJ'J'`h&J'`J'@J'k&J'5J'DJ'9K'>K' K'K0K'g8K'pHK':XK'``K' pK':K'$SK'K'`h&K'`K'K'k& L'd(L':8L'dHL'dPL':`L'oL'"WL'PL'm&L' WL'L'n&M'$SM'pM'`h& M'`(M'8M'k&`M'dYhM'xM'M'M'M'8:M'hM';M'M'TM'M'`:N'\N';N'`N'MhN'^xN'`p&N'VN'N' s&N'ѠN' N'`u&N'ߠN'}N'`v&N'NZN'3N'y&O'VO'O'`{& O'V(O' 8O'&@O'VHO'XO'&`O'VhO'xO'@&O'VO'O'@&O'YO'0O'@&O'VO'O'&O'5O'O'`&P'[P'0AP' & P'$S(P' 8P'`h&@P'`HP'XP'k&P'P'P':P'P'P' ;P'P'P'h;P'&Q'Q'; Q'Z(Q'y8Q'8<HQ':PQ'P`Q'NpQ'bxQ'vQ'`<Q'uQ'Q'iQ'}Q'Q'Q'Q'R'<R'R'(R'<8R'š@R'qPR'<`R'ΡhR'^xR'=R'ܡR'`^R'X=R'R'0^R'=R'R'DR'>S'S'DS'X>(S' 0S'`D@S'>PS'4XS'hS'?xS'LS'PS'8?S'6QS'PDS'?T'WT'T'&@T'jHT'`XT' &`T'phT' xT'&T'{T'T'&T'T'T'@&T'T'`T'&T'T' T'@&U'U'U'& U'(U'8U'&@U'ǢHU'0XU'&`U'?hU'xU'&U'ԢU'U'&U'U'pU'`&U'U'PU'&U'U'U'&V'V'V' & V'BV(V'@8V'&@V'HV'XV' &`V'#hV'xV'&V'UV'V'&V'UV'V'@&V'![V'@EV'@&V'V'V' & W';(W'@8W'EHW'OPW'`W'ZW'UW'pW'&W'kZW'05W'&W'UW'W'& X'w(X'P8X'eHX'PX'`X'pX'VxX'X'X'*^X'X'*^Y'UY' Y'@& Y'U(Y'p8Y'&@Y'HY'0XY'&`Y'UhY'xY' &Y'wUY'Y'&Y'Y'@Y'&Y'Y'PY'&Z'bZ'vZ'?`Z'oxZ'uZ'$SZ'кZ'`h&Z'`Z'PZ'k& ['$S(['8['`h&@['`H[' X['k&['[' 5['̣['['['P@['['['['\'v\'@`\'ox\'Pu\'$S\'з\'`h&\'`\'\'k& ]'h(]'58]'@H]'TP]'`]'@p]'\x]'4]' A]']'0e]'HA^'>^'P^'>X^'0^'T^'^'&^'0>^'X_'0>_'PY@_'TH_'0X_'&`_'Th_'x_'&_'(_'_'xA_'B_' _'A_'6_'`' B`'C `'0`'xB@`'QH`'X`'Bh`'\p`'``' C`'e`'0`'xC`'s`'`'C`'{`'н`'8D@a'Xa'pua'ca'pa'&a'dYa'a'Db'b' D b'D0b' R8b'Hb'DXb'`b'`pb'0Eb'$Sb'b'`h&b'`b'b'k&c'cc'@c'`&@c'0Hc'4Xc'pEhc'}pc'@c'pEc'$Sc'c'`h&c'`c'c'k& d'(d'Ѐ8d'EHd'Pd'D`d'Ed'`@d'Ce'$Se'p=e'`h& e'`(e'p8e'k&`e'he'4xe'e'Ƥe'e'Fe'Be'e'Ϥe'e'PBe'HF@f'$SHf'Xf'`h&`f'`hf'@xf'k&f'Zf'vf'f'uf'0f' f'4f'pg'?g'L g'`0g'8?@g'VHg'НXg'Fg'$Sg'g'`h&g'`g' g'k&h'Kh'h'0h'G(h']0h'D8h'@h'Ph'nXh'P`h'hh'8Gxh'~h' h'Ћh'`h'h'h'h'`h'h'h'h'`h'h'i'i'`i'ם i'`(i'0i'`@i'Hi'0Pi'Xi'`hi'pi'xi'pi'`i'ѓi'i'&j'$Sj'j'`h& j'`(j'8j'k&`j'sThj'Cxj'XGj'Tj'j'Gj'6j'p@j'Gj'Fj'@j'Hk'Rk'@k'XH(k'`0k'@@k'Hk'pok'uk'tk'`pk'&l'$Sl'l'`h& l'`(l'8l'k&`l'$Shl'xl'`h&l'`l'l'k&l'Fl'`ol'Hl'el'Cm'(Im'm'C(m'PI`m'0Cxm' nm'$Sm'|m'`h&m'`m'`m'k& n'(n'C8n'n'$Sn'`h&n'`n'n'k&n'$Sn'`h&o'`o'o'k& o'c(o'8o'@&@o'QHo'tXo'&P,%,%,%.%.% .%}n'}.% /%w/%/%in'i/%+ /%,(/%-0/%>8/%K@/%UH/%WP/%aX/%`/%h/%p/%x/%/%/%/%/%/%/%/%/%/%/%/% /%4/%F/%v0%0%0% 0%(0%00%80% @0% H0% P0%X0%`0%h0%p0%x0%0%0%0%0%0%0%0%0%0%0%0%0%|0% 0%!0%"0%#1%$1%%1%&1%' 1%((1%)01%*81%.@1%/H1%0P1%1X1%2`1%3h1%4p1%5x1%61%~1%71%81%91%:1%;1%<1%=1%?1%@1%A1%B1%C1%D1%E1%F2%G2%H2%I2%J 2%L(2%j02%M82%a@2%NH2%OP2%PX2%Q`2%Rh2%Sp2%Tx2%y2%V2%k2%X2%Y2%Z2%[2%\2%z2%]2%^2%_2%`2%b2%c2%d2%e3%f3%g3%h3%q 3%i(3%j03%k83%l@3%mH3%nP3%uX3%o`3%ph3%qp3%rx3%s3%t3%u3%v3%w3%x3%y3%z3%{3%|3%}3%3%~3%3%3%3%4%4%4%4% 4%(4%04%84%@4%H4%P4%X4%`4%h4%p4%x4%4%4%4%4%4%4%4%r4%4%4%4%4%4%4%4%4%p5%5%5%l5% 5%(5%05%85%@5%H5%P5%xX5%`5%h5%p5%x5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%6%6%6%6% 6%(6%06%86%@6%H6%cP6%X6%`6%h6%p6%x6%6%6%6%6%6%6%6%6%6%6%6%6%6%6%6%6%7%7%7%s7% 7%(7%07%e87%@7%H7%P7%X7%`7%h7%dp7%x7%7%7%7%7%7%o7%7%7%7%7%7%7%7%7%7%7%8%8%8% 8%  8% (8% 08%88%@8%H8%P8%X8%`8%h8%p8%x8%8%8%8%8%8%8%8%8%8% 8%!8%"8%#8%$8%%8%&8%'9%(9%)9%*9%{ 9%+(9%,09%-89%.@9%/H9%0P9%1X9%2`9%3h9%5p9%6x9%79%89%99%:9%;9%<9%=9%>9%?9%@9%A9%B9%C9%D9%E9%G9%H:%I:%J:%K:%L :%M(:%N0:%O8:%P@:%QH:%RP:%SX:%`:%Th:%Up:%Vx:%W:%:%X:%Y:%Z:%[:%\:%]:%^:%_:%`HJEH5$%$@%$h%$h%$h%$h%$h%$h%$h%$hp%$h`%z$h P%r$h @%j$h 0%b$h %Z$h %R$h%J$h%B$h%:$h%2$h%*$h%"$h%$h%$h% $hp%$h`%$hP%$h@%$h0%$h %$h%$h%$h%$h %$h!%$h"%$h#%$h$%$h%%$h&%$h'p%$h(`%z$h)P%r$h*@%j$h+0%b$h, %Z$h-%R$h.%J$h/%B$h0%:$h1%2$h2%*$h3%"$h4%$h5%$h6% $h7p%$h8`%$h9P%$h:@%$h;0%$h< %$h=%$h>%$h?%$h@%$hA%$hB%$hC%$hD%$hE%$hF%$hGp%$hH`%z$hIP%r$hJ@%j$hK0%b$hL %Z$hM%R$hN%J$hO%B$hP%:$hQ%2$hR%*$hS%"$hT%$hU%$hV% $hWp%$hX`%$hYP%$hZ@%$h[0%$h\ %$h]%$h^%$h_%$h`%$ha%$hb%$hc%$hd%$he%$hf%$hgp%$hh`%z$hiP%r$hj@%j$hk0%b$hl %Z$hm%R$hn%J$ho%B$hp%:$hq%2$hr%*$hs%"$ht%$hu%$hv% $hwp%$hx`%$hyP%$hz@%$h{0%$h| %$h}%$h~%$h%$h%$h%$h%$h%$h%$h%$h%$hp%$h`%z$hP%r$h@%j$h0%b$h %Z$h%R$h%J$h%B$h%:$h%2$h%*$h%"$h%$h%$h% $hp%$h`%$hP%$h@%$h0%$h %$h%$h%$h%$h%$h%$h%$h%$h%$h%$h%$hp%$h`%z$hP%r$h@%j$h0%b$h %Z$h%R$h%J$h%B$h%:$h%2$h%*$h%"$h%$h%$h% $hp%$h`% $hP% $h@% $h0% $h % $h% $h% $h% $h% $h% $h% $h% $h% $h% $h% $hp% $h`%z $hP%r $h@%j $h0%b $h %Z $h%R $h%J $h%B $h%: $h%2 $h%* $h%" $h% $h% $h% $hp% $h`% $hP% $h@% $h0% $h % $h% $h% $h% $h% $h% $h% $h% $h% $h% $h% $hp% $h`%z $hP%r $h@%j $h0%b $h %Z $h%R $h%J $h%B $h%: $h%2 $h%* $h%" $h% $h% $h% $hp% $h`% $hP% $h@% $h0% $h % $h% $h% $h% $h% $h% $h% $h% $h% $h% $h% $hp% $h`%z $h P%r $h @%j $h 0%b $h  %Z $h %R $h%J $h%B $h%: $h%2 $h%* $h%" $h% $h% $h% $hp% $h`% $hP% $h@% $h0% $h % $h% $h% $h% $h % $h!% $h"% $h#% $h$% $h%% $h&% $h'p% $h(`%z $h)P%r $h*@%j $h+0%b $h, %Z $h-%R $h.%J $h/%B $h0%: $h1%2 $h2%* $h3%" $h4% $h5% $h6% $h7p% $h8`% $h9P% $h:@% $h;0% $h< % $h=% $h>% $h?% $h@% $hA% $hB% $hC% $hD% $hE% $hF% $hGp% $hH`%z $hIP%r $hJ@%j $hK0%b $hL %Z $hM%R $hN%J $hO%B $hP%: $hQ%2 $hR%* $hS%" $hT% $hU% $hV% $hWp% $hX`HHE#HtHÐU==&HATSubH=h#t H=#ZH #L%#H]=&L)HHH9s DHH==&AH2=&H9r=&[A\fH=#UHtH#HtH=#@ÐHu DHGHtWvpA@x L)OHG1É9rAffff.HH10Ht@@ H@@(Hf.HtHfffff.G fff.HG@HHG@HGHHHGHH\$Hl$HLd$HH@HIHt HՅu*H{H1HtLHH$Hl$Ld$HDH$Hl$Ld$HDSHH@HtHC@HHHHt,H{HHtHCHHHHHuHGP01[ÐHGP01ffff.HGH@HGHHGHGHHGHH10HtH@H@HH\$Hl$HLd$HHHIHt HՅu*H{1HtLHH$Hl$Ld$HDH$Hl$Ld$HDSHHHtHCHHHHt,H{HtHCHHHHuHGP01[ÐHGP0SHHCH[H@fD1ffff.HGHHGHGHHGHH10HtH@H@HH\$Hl$HLd$HHHIHt HՅu*H{1HtLHH$Hl$Ld$HDH$Hl$Ld$HDSHHHtHCHHHHt,H{HtHCHHHHuHGP01[ÐHGP0SHHCH[H@fD1ffff.HGxHHGxHHHffff.HHHffff.HHHffff.H\$Hl$HLd$HHxHIHt HՅuRHHt LՅu=HHt LՅu(H1HtLHH$Hl$Ld$HH$Hl$Ld$Hffff.SHHxHtHCxHHHHHHtHǃHHHHtjHHtHǃHHHHt4HHt!HǃHHHHuHGP01[HGP0fDHGP0fDHGP0Sff.1ffff.H\$Hl$HLd$HHHIHt HՅu*H{ 1HtLHH$Hl$Ld$HDH$Hl$Ld$HDSHHHtHCHHHHt,H{ HtHC HHHHuHGP01[ÐHGP01ffff.HGHHGHG HHG HH10HtH@H@ HH\$Hl$HLd$HHHIHt HՅu*H{ 1HtLHH$Hl$Ld$HDH$Hl$Ld$HDSHHHtHCHHHHt,H{ HtHC HHHHuHGP01[ÐHGP0SHHCH[H@fD1ffff.HH10HtH@Hffffff.HGH@1ffff.S11HH=Q%%HtHX[HGHHGHGHHGHH10HtH@H@@ HH\$Hl$HLd$HHHIHt HՅu*H{1HtLHH$Hl$Ld$HDH$Hl$Ld$HDSHHHtHCHHHHt,H{HtHCHHHHuHGP01[ÐHGP0SHHCH[H@fD1ffff.HH10HtH@Hffffff.HH10HtH@Hffffff.1ffff.S11HH=Q%%HtHX[HH10HtH@Hffffff.1ffff.S11HH=%%HtHX[HGHtHH:t1@HH<u1DHW 1H:t@HH<uHH10HtH@Hffffff.S11HH=%%HtHX[1ffff.HH10HtH@Hffffff.1ffff.HH10HtH@Hffffff.HHHt H1DHHWHt!HGHHHHu HBHP01Hff.SHHCH[H@fDHH10HtH@Hffffff.HHHt H1DHHWHt!HGHHHHu HBHP01Hff.SHHCH[H@fDHGH@HG@ff.HGHHGHG HHG HG(HHG(HG0HHG0HH10Ht.@@H@H@ H@(H@0HfH\$Hl$HLd$HHHIHt HՅuRH{ Ht LՅu@H{(Ht LՅu.H{01Ht#LHH$Hl$Ld$HfH$Hl$Ld$Hffff.SHHHtHCHHHHH{ HtHC HHHHt`H{(HtHC(HHHHt0H{0HtHC0HHHHuHGP01[DHGP0fDHGP0fDHGP0cff.SH'HCH[H@fDHH10HtH@H@H@ Hffffff.H HHt H1DHHW Ht!HG HHHHu HBHP01Hff.Gfff.HHGu?H;=h#tFHHH+#H5THPH#H811HH>HHHffffff. HHcHcHGHt8pHGH5EHPH#H810HGhAHGHHtx(H9#H@HGHHtxH #H@HGHHt8fH#H@HGx@HcHc xhHHH %HLD$H71 HfHHH %HLD$H1HfHH *&HHH1HHHH %HLD$H1|HfHH n*&HHH1QHSH (%HHHHH1LD$ ID$ H$¸tD$ CH$HC1H[HGHH=\Hp1HGHH=<Hp1HGHH=Hp1HGHH=Hp1wGWH5H=HHE1HHGHH=Hp1'HGHH=Hp1HGHH=lHp1HGHH=LHp1HGHH=,Hp1HGHH= Hp1HGHOHH=ּHp1cHGHH=Hp1GHGHH=Hp1'HGHH=Hp1HGHH=lHp1HGHH=LHp1HGHH=,Hp1HWwH="1ff.HGHH=Hp1gHGHH=Hp1GH(HH$HGHD$HGHHD$;1u#HD$Ht!T$t8tH=H(H=mH(Hl$H\$ELd$Ll$H(vIMLLIEHHIE2tK9IMLLWIEHHIEtKIM:LLIEHHIEtKNIMLLIEHHIErtUIMLLgIEHHIEuIELP0@tSVIM@LL IEHHIEu IELP0ffy[6LIMLLIEHHIEuIELP0f.@t[翃@HHHLUHEHHHEuHEHP0f.tH=IH=IvH=pIH=TIH=@IH=$IH=I"H=IH=IGH=ԿI3H=ICH=謿I/HEHP0ID$LP05HCH1P0@H\$Hl$HLd$Ll$H8HLL$LD$ H %H:1D$ D$11uHHl$ H\$Ld$(Ll$0H8ÐDd$l$ AD$1HHt@tTAGAIM'LH\IEHHIEu IELP0@tZAA虾IMLHIEHHIEuIELP0@tZA-A9IMmLHIEHHIEuIELP0@tZAAkٽIM LHBIEHHIEuIELP0@tZA=AyIMLHIEHHIEuIELP0@ tZA A IMMLHIEHHIEuIELP0@@tZAA@蹼IMLH"IEHHIEuIELP0@y[@AAYIMLHIEHHIEuIELP0tPAAfIMLHQIEHHIEtPATA6萻IMLHIEHHIE_tLA3A8IMtpLHI$HHI$)t8H=1ܺHHt4HHiHEHHHEHfHHHH1IfDH#H5"DH81e#AA\IMtLHɿIEHHIE IELP0DH=ԹI@H=輹I@H= 褹I@H=茹I.@H=tI@H=\I@H=DIF@H=,IH=IH=IH=IH=ٙԸIH=IBH=X褸I&H=a萸IrH=|I^H=jhIGH==TI3H=L@IH=q,IH=xIH=qIIELP0qH=IH=ͷIIELP0HEHP0ID$LP0HCH1P0ifDHHuHGHG HH#H5ژH8zHԐUSHHH_ x(Ht#1HuCHtH9t6HH[ H9}H#H51H8!HH[]11H=u%%HHtH;oHEHCHECE HCHE0HE8HE(HH[]ff.H\$Hl$1Ld$HHH=?%1o%HIt @uHXLH$Hl$Ld$HHخHID$uH_&H$1Hl$Ld$HHrfH Ht"f1ffff.HHtf1ffff.HHtf1ffff.H*ljH5HHHEH&HxfSH臹Ht"H5"HsHt$HH[bfHa#H5cH8:1[fDSHH=^H5HH{HKHD肸uH{eu)H#H[@[H=x1H&D[H=1H&DSWHHO11Lj%Ht!DHHAHHuH1蝰HtWSHsHX$tEL%H<HILtDHHuH9tH[ffffff.SH HH$HGHD$HGHHD$uHH [H1#H5H8誼1H [fHGH麯f.w H餯@1HHI1Hx w H9HNH9HLH)HGHpHHx/G H9}'HGH|$0D$DHH#H5OH81Hff.AWAVIAUATIUSH(L$DoHwL9LFHML11E1'fD@t HyIHHI9v!ڨu.@HL診HHD$MMM|$HD$E1Au A/I@tLI~HtC|$w|$uJIc> |$u1蔱Ht$H|$HHD$lIIM9vG|$tQH#T$H5H81eHT$HHHHtRHD$HD$H([]A\A]A^A_@LHoI~^f11E1HBHP0HD$f.SH (%HHHHHH1LD$ D$ 蠺1tH{L$ H5% HpH[DHHH Ht[HtHHDH@H5MHPHʹ#H81H4@HHHHt HtHHDH@H5HPHz#H81H@HHHHt軸HtHHDH@H5HPH*#H81H锬@AWAVIAUATUSH課H=D$ HH$MAtIFLYLhL蝷HI&<11HI1HLϷI~4@HcLշHHkHLHc蚷I9H<$L9HH4H@H;#HpH=91UIHHII$HHI$HtHHHHty|$ 耧H[]A\A]A^A_H=I1A蟴LwHIH=T11軰fIGLP0_HCHP0xID$LP0S1H;#@Ń#Ht/|$ 1辦9H=119H=#ȐHHH;=|#tzHWHu(t9Ht$7Ht$HHHÐHH>HH#HRH5H81̩1HDHHffffff.HHWHut#H隶f.HHH@H#HJHH5[H81A1ffff.H\$Hl$HLd$Ll$ILt$L|$HHI0H=BAHHHt sL=#ILHIHH 1LH^LHNHHHHH@H=1AE1HD$HHHHHtHEHHHEYMtI$HHI$'D'E>HD$H\$Hl$ Ld$(Ll$0Lt$8L|$@HH@H{HI@H谲H01HlIH\IL$HH5ų#H9pH=ŽE1H;:#AHfjI$٧HHD$kL#H{HT$LHBzHt$FDID$LP0HEHP0HCHP0nH=1ALHD$fDH=1AE1!ܯHD$fDL;%q#H=JIHHIHD$IGLP0HD$oHtHAv4AI)ЉG1EIOHG1HfVHÿBff.SHLo%HH k%HH@HD$H1H[鰗H9#H[SH_@HtHH1H[逗H #H[SH_8HtHލH1H[PHٙ#H[SH_0HtH讍H1H[ H#H[SH_(HtH~H1H[Hy#H[SH_ HtHNH1H[HI#H[H(HH$HGHD$HGHHD$ut$H|$1wH(fHA#H52wH8躗1H(HSHtHHt6HH:~ 1Hu %DHtHH9H<Ht H@H#H5H8蚑1HH\$Hl$HLd$HI0=HHuHHl$H$Ld$HLHHZt1IT$HsHAtff.HHHHt!H@Ht$HH#HՁDHHÿAWAVAUATUSHHGxLMu*H-%HEfDHH[]A\A]A^A_fD1I>Lu H8t HHu賏HHtM&MtE111H={%}%HHuHEHHHEb1{LxHxLLuLy=C8IT$HH:1HH<uH4H{HC@pHHHC0iH{@~@E1@HS0ID$H{J4HT$HT$HJ,IL;{@|HLHIM&MI@1_@H{HSHLHSHHt+H:t%1HH<uHC@HC0s1HEH1P0ffffff.AWAVAUATUSHHDoELwMt{A1`HHE111DHtHHHHpMtI$HHI$u ID$LP0HH[]A\A]A^A_DH1[]A\A]A^A_HԄHHt辄HI$I@AAI莄HHLHHIHEHHHEtJHL?HHtWI$HHI$t6HHHH{HCHP0l@HEHP0@ID$LP0MIHHIIGLP0}DHCHP0HEHHHEu HEHP0E111xE11fHxHHGHt'H0tHx(t Hx HY#H@HGH5HPH#H81HH`HHPHGH\$Hl$H HHt%H}HHˆHH\$Hl$HH=H\$Hl$HFfDSHH1HtHT~HHHHt H[HSHHD$R0HD$H[fffff.SH HH$HGHD$HGHHD$1uHjH [@H\$Hl$1Ld$Ll$H(HAIԻMtID$HHtwI$HډHHt?Icz1HHHtHHMt LHHHl$H\$Ld$Ll$ H(L}HIz1H=v1ҀHHt޳1H\$Hl$HLd$Ll$H8HLD$ HH 3%H-1D$ mu!1HH\$Hl$ Ld$(Ll$0H81AHHtHc{ zHI|$ H5ڭHaHIHH誅bI$HHI$Hc{HIt|$ H5HHI9HHNI$HHI$i1HWHI|$ H5KHHIHHI$HHI$1HHI|$ H5HKHIHH蔄LI$HHI$1H=HI]|$ H5HHI"HH7I$HHI$1HHI|$ H5qHHIHHڃI$HHI$51H#HI|$ H5/H4HIhHH}5I$HHI$1HHIF|$ H5HHI HH I$HHI$1H HI|$ H5HzHIHHÂuI$HHI$R1HHI|$ H5eH!HHtYHHnI$HHI$:ID$LP0*IEHHIEuIELP0DI$HHI$u ID$LP0HEHHHEHEH1P0fDID$LP0;ID$LP0ID$LP0ID$LP0!ID$LP0nID$LP0ID$LP0ID$LP0UID$LP0HHHHHCHP0fDH\$Hl$HLd$Ll$H8HLD$ HH 3%H1D$ -u!1HH\$Hl$ Ld$(Ll$0H81HHtҋsL%#LD%]#H5I$L|$ HIHHfI$HHI$sH=_1zHI|$ H5HHHtSHHI$HHI$ID$LP0IEHHIEu IELP0I$HHI$u ID$LP0HEHHHEHEH1P0@ID$LP0HHHHuHCHP0ffff.1fH\$Hl$HLd$Ll$HLt$L|$HhHLD$,H {%H1D$,3u/1HH\$8Hl$@Ld$HLl$PLt$XL|$`Hh1HHtH{ H=HI14y|$,HI5HIHH^~nL~MhM~HD$Ll$H=?1ILx|$,HHD$HI"HH}H|$l~Ht$HL$,HH5HI1]HHD$HyHHD$~21H|$HHT$VoHHk}HT$HH9T$HT$HHHHMtI$HHI$t}IEI9M9>Ll$|$,1HIt&HH|tfDI$HHI$tFHEHHHEHEH1P0ID$LP0sHBHP0NID$LP0Muffff.H\$Hl$HLd$Ll$HLt$L|$HHHLD$ H %H31D$ su/1HH\$Hl$ Ld$(Ll$0Lt$8L|$@HH19HHtHCHLcM|$ H5|HIHH{3L$ HH51L.HIrHwHI~)E1LLI)mHH>{M9IHHI:I$HHI$HC HH[ HL$ HH51H萀HIH,wHI~#E1LLIlHHzM9IEHHIEHHHH\HCHP0MIEHHIEuYIE1LP0DHEHHHEtlHHHHHHCH1P0f.1ID$LP0IFLP0fIELP0?HEHP0fffff.UHSHH|$(HD$(dH%(H$1.{t*H~#HH$dH3%(uFHĨ[]fH|$(H5}#HH\$0GzH #HHdqHXsxUHSHH|$(HD$(dH%(H$1nt*Hs}#HH$dH3%(uFHĨ[]fH|$(H5|#HH\$0yH#HHdPqHr!xHHD$ t, tGH8|#H5H8{HD$HHD$HH0nHD$HfDHD$HHyHD$HfDUSHdH%(H$1_H5|#HHH\$0xH#HdHqpHqH$dH3%(u HĨ[]'wHHǀpHHh`SHHH;tAHmHtHH[zxf.H;HtHHHHHt[HG[H@0DH(HH$HGHD$HGHD$HD$C~uGt$@uH|$HL$1vH(DHyz#H5[H8y1fDHYz#H5JYH8y1fffff.H(HH$HGHD$HGHD$HD$}uGt$@uH|$HL$1mH(DHy#H5ZH8Ry1fDHy#H5ZH82y1fffff.UHHS1HHtDHH\{H9uHH[]ffff.HHHHtHH@H5HPH,y#H81lHHfffff.H\$Hl$HHt5fHHt(H8oHHvHH\$Hl$HH=H\$Hl$Hnfffff.Hf.HH10HHtHp1HHHHHH10HHtHp 1HHBPHHfHH10HtH@Hffffff.HH10HtH@H@ H@Hffffff.HH10HtH@H@HHH10HHt!Hp1HHHB@HBHHHH\$Hl$HLd$Ll$HLt$L|$HhHLD$,H %H1D$,Swu/1HH\$8Hl$@Ld$HLl$PLt$XL|$`Hh1xHHtHylH=WHI1mHI|$,1H+HIHHtrxI$HHI$MQE1MoH=1LlHIs|$,1HƒH=HHHD$qHT$xI$HHI$LH@mHIL$,HܚH5H1UwHHD$HmHHD$~(E1fH|$LIOcHHdqL9|$HT$HHHHtII$HHI$t(M92MID$LP05ID$LP0HBHP0IEHHIEuIELP0fI$HHI$u ID$LP0HEHHHEHEH1P0fDID$LP0!HHHHuHBHP0ffff.H\$Hl$HLd$Ll$HLt$L|$HhHLD$,H }%H1D$,Stu/1HH\$8Hl$@Ld$HLl$PLt$XL|$`Hh1uHHtHyiH= UHI1jHI|$,1H+HIHHtoxI$HHI$MQE1MoH=1LiHIs|$,1HƒH=HHHD$nHT$xI$HHI$LH@jHIL$,HܗH5H1UtHHD$HjHHD$~(E1fH|$LIO`HHdnL9|$HT$HHHHtII$HHI$t(M92MID$LP05ID$LP0HBHP0IEHHIEuIELP0fI$HHI$u ID$LP0HEHHHEHEH1P0fDID$LP0!HHHHuHBHP0ffff.HHdHtHHrgfHq#HHHHhHtHHBgfHq#HHHH^HtHHgfHiq#HHHH_HtHHffH9q#HHHHCbHtHHffH q#HHHHsoHtHHffHp#HHHHjHtHHRffHp#HHHHCkHtHH"ffHyp#HHH\$Hl$HHHǘkHHt*HeHHmHH\$Hl$HDH-p#HEfHHceHtHHefHo#HHSH8R%HHH51HHL$K_1u H[DHD$H{HpF]uHo#HH[Ð11^%@Ld$LgH\$Hl$HHHL1IoH{HUL)_t1H$Hl$Ld$HLc01LoH{HU L^uLcH1LnH{HU8L^H؅tDH\$Hl$1H1HH=42%f3%HHt&HHiHtHH\$Hl$H@1@HEHHHEuHEH1P0fH\$Hl$HHHHH5,%H9tLfuCH;n#tZHCH,%H5CHHHum#H81`1H\$Hl$HfH]H\$Hl$HHEH\$Hl$H@H\$Hl$HHHHH5B%H9tLWeuCH;lm#tZHCHB%H5XBHHHl#H81`1H\$Hl$HfH]H\$Hl$HHEH\$Hl$H@H\$Hl$HHHHH5:%H9tLduCH;l#tZHCHg+%H5AHHHl#H81S_1H\$Hl$HfH]H\$Hl$HHEH\$Hl$H@H\$Hl$HHHHH5!C%H9tLcuCH; l#tZHCHC%H5@HHHek#H81^1H\$Hl$HfH]H\$Hl$HHEH\$Hl$H@AWAVAUATUHSH8HHHEHAXHHSA)L%d#fDIEl$ EI<$HZuEDHUHHHUuJHUHD$R0D$H8[]A\A]A^A_éu9H5b)%H9t bH}lH8[]A\A]A^A_HaH8[]A\A]A^A_fHHjHH=5HLkHeLEE1E1EeEt<^HIBA@IDBtIEeEuE~ AE9Hu_HH4H5Nj1H1jHIH=˩%H{`HH`HHHHtKI$HHI$dIT$LD$R0D$LfDA.u&IAEeHSH߉D$R0D$ 6AMIEfHDJ HuLd$11HHD$D$ LLc Mt5I$Ht,HHuf[X9t/HtH;HuIuH!e#HH[]A\@He#HH[]A\@U1SHHH5ԊHHT$AU1u H[]fH|$ōEv3HCHt*HHu fW9t'HtH;HuHzd#HH[]He#HHHcWHZUSHHH8HFHP`HtGt>H0t4Hd#H05^HHtMHx_HOHH8H[]fH;d#tWHPHd#H5 F1H81IWH8H[]HD$WHHt$ucC HHHDs HL$ HT$(LL$LD$dZx(Ht$H~{H|$uH{H|$(VH1x1H[UHH`HPH|$HL$(G1fD4 @4HHL$H9T$"H=1UH DH\$Hl$HLd$Ll$HLt$HXH~HG`Ht H;=\c#FHuH5!%H9t [HADLHCHHOH5HHVb#E1H81UHH0_Hcb#HH0\HHHHRILH\$0Hl$8Ld$@Ll$HLt$PHXfDHa#H5E1H8aDHCH5CE1HPHa#H81THD$YUHHt$u7HEHt/HH:t&1@HH<uHCDE1A1@1Hm]bHI"HtLHmHu AHt:LuMt1LSA9uLWHHHL\fDLYHI$HHI$:HCHtyHNH5LH%fHEHtuHH8tl1@HH<uHL$ HT$(LL$LD$HVH|$H11XaI!H`#H5E1H8W_1)aHIH|$Ll$(1HH9\$HD$ILHHHL@_uI$HHI$>ID$LE1P0tID$LP0AWAAVAUATUSHHHFHHAE1LR`HIMQM1ffDHI9~_HL4VHH1HDKHHHLT^HHHHuHCHHP0I9fI$HHI$u ID$LP0HL[]A\A]A^A_fHIeVHI1Lt_HI"HtHHHHtTMuDIEHHIEkIELP0\@IEHHIEuIELP0HCHP01HD/HtH1L=]hIEHHIESIELP0D@HHH "p%HLD$ H<1ID$ q]1t H4$|$ HAWIAVAUATUHSHHD$HT$HɉT$HVQLcD$$O$'|$T$$DkD$AՍZI1Hc-OHts~oMHx$L E1M)UуAA WHE9~'M9s"HLfD2H@1HL9rLAHA9uHH[]A\A]A^A_ËT$KL$ʉ|$1҅IHc1]HD$1H|$L$tXD$$E1LAL)L|$0E)ID$L-HT$(D$D;D$͉D$<fDDD$D$<DD$H1HcMHDD$ED9HL$0LL$(LX$EHfIcAЃATAt5ASA3ID9~*L9s%LHH:H@>HL9rHMADD)A9~D9HEHct$H|$H[ZD9~(A؃D$E)D;D$A@D$$B@HD$OHL$HHHH7HQHHD$R0HD$L% D$$Mafff.UHSH(HH$HGHD$HGHHD$d]1ut$H|$HH([]fSH HD$HH$HGHD$HGHHD$]ue|$v^H|$t$H ~1HH|$t$\HD$t6H=;1OH|$HVHD$H [HY#HH [SHj~HH e%HHH0HHD$ HCLL$ LD$,D$,H$HCHD$HC HD$1Y1u H0[HCHH$HCHD$HC HD$[u"HL$ T$,t$H|$cH0[DH9X#H5z~H8W1fffff.SH}HH ^d%HHHHV~LD$ H$I1D$ BX1ts H{H $T$ H[H\$Hl$HLd$H(1D$ HHT$ 1Vt$11%H\$Hl$Ld$ H(fDDd$ 1DHJHtqHH$DH{HT$DHUt%H$HHHHuH<$HGP0Dt$H9u H$tH^Vyf.1WfHHRuHhW#HHH9%11HH\$Hl$HLd$H8HHT$H5|1HHD$D$Fu1H\$ Hl$(Ld$0H8fDH{D $HT$LD$11Qt11%DDd$1IcHHHtHHD$|CH{D $HT$LD$DHOQt+HT$HHHHuH|$HGP0fHct$H9u HD$2H|$TyfSHHH5{1HHT$HHD$vE1uH[H{$Ht$OuHU#HH[f.11~%@HHcEuHxU#HHHI%11HSH-%HHH5 {1H HL$D1u H [DH{/KHHtW11H=-%.%HtHXH [HT#H56HD$H:HD$SHD$D11%@SH+%HHH5jz1HHL$ D1u H[DHD$H{HpCuHKT#HH[Ð11%@HHGHIHtHHS#H5+6H:HD$RHD$ffffff.HHJHISHH@uH{fHHt!pHx[E@[11Hl%f[H=1qEHH3MHH7ISHH=e*%LH59*%HKHtHX[fDSL %HH HH5xHPHD$LHT$@LD$8HD$ HD$HD$(HD$HD$0HD$HD$ H$1OB1tGHD$81H{LL$(LD$0Ht$@HHHD$LHEHL$ $HCHtH HP[f.1@%fDSH HHH5@xH@HD$1tH{Ht$IHcDH[fffff.HHBHHDHHAuHN#HHHy%H=t1HfAUIHATUSHHHD$?LHI1HAHHqM#HL$H5t1H=HEHHHEHD$1Ht 1H;M#@LH߾}AHCI}HډIKt@LBHHHHu HCHP0H=t1x%H[]A\A]DLXBHHHHt9HbM#HH[]A\A]HH@HEHP0+HCHP0@HU1HHHUuHEHP01ffffff.HH:tHL#HHH%H=IsH@HH=tHL#HHHi%H=sH@HH#LH8BHH?uH`K#HHHK#HHHHs9uH K#HHHK#HHHHCAuHJ#HHHiK#HHSHHHHFHHHHt4uHJ#HH[HK#HH[HSD$HR0D$@HHc:uH0J#HHHJ#HHHHHuHI#HHHyJ#HHHH3JuHI#HHH9J#HHHH6uHpI#HHHI#HHHHcKuH0I#HHHI#HHHH6uHH#HHHyI#HHHHc6uHH#HHH9I#HHHH=uHpH#HHHH#HHHHcAuHI#HHHي%11HHHHǀH*H;fffff.HHHhH*H^;fffff.UHSHHHH5 H#H9tD?@u;HCuNH;GH#teHPHG#H5*H81:1H[]HAH,HEH[]H(?HEH[];GHEH\$Ld$HLl$Hl$IH8HHD$H$yEHI1H;HHL$LH%H5n1IH6HEHHHEHL:H=HHD$IuH$HHxCt.H;HHHHu HCHP011%#H;HHHHtIHzF#HH\$Hl$ Ld$(Ll$0H8DHH @HEHP0;HCHP0@HU1HHHUuHEHP01ffffff.Hl$Ld$HLl$H\$ILt$HHxHD$HHD$@HD$8HD$0HD$(CHI[1H\9HHD$8LD#HL$HLL$@H%H5hlHD$H HHD$HD$0H$15)HHHHHE#E1H9D$@HLA8H+;HHD$HIuLD$8HL$0IDHxHD$(H$HD$6t8H9HHHHu HCHP011|$(1%&DH9HHHHtQH|$(w:H\$PHl$XLd$`Ll$hLt$pHxfHEHHCHP0HCHP0@H1HHHuHCHP01느Hl$Ld$HLl$H\$ILt$HHXHD$(HD$ HD$HD$AHI41HU7HHD$LB#HL$(LL$ H%H5pjH$H13HHHHH&C#E1H9D$ HLA6H:9HHD$(IuHL$LL$IDHx7t9H7HHHHu HCHP011|$1Є%'fDH7HHHHtQH|$8H\$0Hl$8Ld$@Ll$HLt$PHXfHEHHCHP0 HCHP0@H1HHHuHCHP01느SH L%HHHHiH1LD$ D$ D$A1t.DL$ HD$H{1EHE3DD$ EuHcr1H[@\$Hc\1H=hH1YCH[SLHH L%HHH HhHD$LL$D$HD$H$1A1tHt$HtH{T$8=7H [@HHD$fSHHH5h1HHT$01u H[@H{Ht$:tH?#HH[DHy@#HH[HHC9Hh6H2HtHHf9fDHY@#HHH8HtH 6HtHH%1HH?#H5;"H:HD$>HD$ffffff.Hl$Ld$HLl$Lt$IH\$L|$HxL%?#HHD$8HD$0Ld$(=HIU1H&3HHD$(HT$8L LD$0H vH5fH$H1.u=HHHH1H\$HHl$PLd$XLl$`Lt$hL|$pHxDHHHHHD$0HwLxHD$(L9H@HD$HLd2 Hw7HHHt$8Hn/D$tfHt$8H=!1j%HEHHHEH;DT$EI$Lf.HEH+4IvHLI=D$u1L2HCHP0HD$0HnfD[9=uH|$H;D$tyH=+d1%fHEHP0$[-D$fD/IHCHP015HD$mIvHL=D$11%SL %HH G%HHH H5dHD$LL$D$HD$H$1w<1uH [fHD$H{T$HpHx68HtHJH [1`~%fDH\$Hl$HLd$H(HLL$ HH HG%Hc1ID$ ;1uH\$Hl$Ld$ H(H<$.HHt_H ;#11H(HIt^H=^H=]H=]H=^ffffff.SHH5 ^1HHT$HHD$H$$u 1HH[f1@&HHtH!Htҋ $HT$Hƿ)t11v%HSHH5]1HHT$HHD$H$#u 1HH[f1 D&HHtH$!Htҋ $HT$Hƿ*)t11u%HSHH5 ]1HHT$HHD$H$a#u 1HH[f1%HHtH Htҋ $HT$Hƿ(t11du%HSHH5\1HHT$HHD$H$"u 1HH[f1$%HHtH Htҋ $HT$Hƿ (t11t%HUHSHHH~H5i$H9t *t{HuHtZM tS 9vH[]S t99ѸrHt+H{Ht"H9(fDH{uH1[]H1#H5g[H80H\$HHl$1H0HHt*"HHEt,EHE HE(HH\$Hl$HH@Hs%H\$1Hl$1Hfff.AVAUIHATUHSHPHD$HHD$@HD$8HD$0HD$()/HIt1H$HHD$8LV0#HL$HLL$@HM$H5UZHD$HzHHD$HD$0H$1r :HHHHHLLt$@R$H=&%11HHH&IHD$H1L;5E0#IuILD$8HL$0HxHD$(HD$HEH$!tBL"%HHHHu HCHP0H|$(11r%HP[]A\A]A^L$HHHHtqHt$(H=LYH11HP[]A\A]A^fDHEHHCHP0fHHHHtHP1[]A\A]A^fHCHP0HCHP01fDHl$HH\$1H0HHt7EHHCt@t$ H|$H I1AHHHH=0NH‰1zHUHHHUtHlHUHHD$R0HD$fUSHHHGHHL$ HD$(HO HL$0t(H|$ .'tBHC$#HHHH[]DwH H1H|HHHH[]1$HHtL$0w1fDH)L$0HD$(CHH(L$0vHD$ HT$(H$HD$0HT$HD$BxD$9sL$fDAA!A.ED$t$A@H|1rH H9D$uDD$fffff.HGH\$Hl$Ld$Ll$HLt$L|$HxHD$(HD$(HLL$0L{$H 4%HD$HD$8HHD$0D$<HD$HD$I9I$HHI$ID$LP0ID$LP0JIFLP0IFLP0\fDH;;H8HLL$,HLD$ HD$HD$H@H (%HD$ D$,H$11tHT$t$,H|$ FH8ÐAUHIATU1SHhHt$8HT$@HL$HLD$PLL$Xu<@Ht-%uI91Ҁx%HHuHHIH$HD$HD$HD$0HD$ ~`1-@HD$ T$HHLHHH9}/T$/vHD$HPHT$fDH7L HHLHHHHHtZI$HHI$tHh[]A\A]fDIT$LHD$R0HD$Hh[]A\A]Hh1[]A\A]HSHHD$R0HD$I$HHI$uID$LP01f.AWAVAUATI1USHHHAt$I|$H 8VHIHr HI~xE1DIM9~eLL 1H‰I譇H|HHHD$HT$?I$HHI$uID$ILP0M9IHHIfHH[]A\A]A^A_fDLhHIH=^=HH1HI3IEHHIE1LۆHHt[HH(u,I$HHI$gID$LP0WHEHHHEuHEHP0DMtI$HHI$tZHHHHty1@HHHHuHBHP0IHHIuIFLP0DID$LP0IELP0IFLP0HCH1P0IEHHIERIELP0CDH\$Hl$HLd$Ll$HLt$L|$HHHLD$ H %H41D$ u/1HH\$Hl$ Ld$(Ll$0Lt$8L|$@HH1HHtHCHLcML$ Ht5H5N41LHI@HHI~#E1LLIHH M9IHHINI$HHI$)HCHLcM|$ H5:tHHHH t$ I|$HII$HHI$LHI~"1ېHLH!HH6 I9IEHHIEoIELP0`HHHHu HCHP0I$HHI$u ID$LP0HEHHHEHEH1P0fID$LP0IFLP0ID$LP0H\$Hl$HLd$Ll$HLt$H8HLD$ H N%HH21D$ u$1HH\$Hl$Ld$ Ll$(Lt$0H8Ð1YHHtHCHLcM|$ H58蜊HIHH Pt$ I|$ HIPI$HHI$LHI~*E1LLIAHHV M9IEHHIEqHCHLcM|$ H5#8׉HHHH t$ I|$GHII$HHI$LHI~%1@HLHHHI9IEHHIEJIELP0;IEHHIEu IELP0fI$HHI$u ID$LP0HEHHHEHEH1P0fDID$LP0mHHHHuHCHP0ID$LP0fIELP0ff.AWAVAUATUSHHH|$0HcHHHD$0HcxHHNH|$01rHI>H|$01JrHINH|$01rHIH|$01qHI>H|$01HD$mqHILD$\H|$01LD$HD$qHILD$LL$PH|$01LD$LL$HD$E1p1HHD$8LD$LL$LT$H|$01Wp1HILD$LL$LT$ZH=31HLD$LL$LT$4 HD$(HHLD$LL$LT$L\$(U1HHHD$ # HHHL$ H HELHL$ HI$LHL$ HILHL$ HILD$HL$ LHLD$ILD$LL$HL$ LHwLL$ILL$LT$HL$ LHOLT$ILT$HL$ HT$8H*HT$8 HLHL$ H IEHL$ L\$(HLB HHD$0HL$ LD$LL$LT$L\$(IHHIu2ICLHL$ LD$LL$LT$P0LT$LL$LD$HL$ HtHHHHHtHHHHHtHEHHHEMtI$HHI$MtIHHIMtIHHI3MtIHHIKMtIHHIMtIHHIH|$8tHT$8HHHHMtIEHHIEu IELP0HD$0HH[]A\A]A^A_E1HD$8E1E1E1E1E1E11HD$0fE1HD$8E1E1E1E1E1E111@IALLT$P0LT$IBLP0fHBHP0&HAHLD$LL$LT$P0LT$LL$LD$HCHLD$LL$LT$P0LT$LL$LD$HEHLD$LL$LT$P0LT$LL$LD$ID$LLD$LL$LT$P0LT$LL$LD$fIFLLD$LL$LT$P0LT$LL$LD$IGLLD$LL$LT$P0LT$LL$LD$I@LLL$LT$P0LT$LL$DE1HD$8E1E1E11@E1HD$8E1E1E1E1E11fDE1HD$8E1E1E1E11E1HD$8E1E11MHD$0fE1HD$8E11zf.E1HD$81]ffff.H\$Ld$ILl$Lt$IHl$H(IeHHH5&1H1HHjLrHI~HL[HLHLHHHHHEHHHEI$1HHI$t!H$Hl$Ld$Ll$Lt$ H(@ID$LP01АHA#H5LH81HHHHt~HEHHHEt]I$HHI$t3yf.HEHP0MHCHP0(ID$LP0;@HEHP0@HCHP0sfHHHHyHCHP0HHHHt)HEHHHE@HEHP0fHCHP0@H\$Hl$HLl$L|$HLd$Lt$HXLD$LL$IHH5#IH9t SHHHD$eHHIH5?$1H1>HILHIH|$LHH|$LLxH|$LL`H|$LLHMtLHHH91I$HHI$HtHHHHIHHIIU1HHIUuIELP01fDH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXDHHHF#H5wHH81I$HHI$IHHIIEHHIEkHHLI|$HHtH|$LHI$HHI$\HHHHcHCHP0TfIFLP0OID$LP0+HxHH6"H5G*H81ID$LP08IFLP0THCHP01H"H5H8JHI$HHI$ID$LP0 I$HHI$tCIHHIIFLP0f.IELP0ID$LP0ID$LP0ffffff.AWAVIAUATUSHHGHHI HgHIL(H@LAD$ID$uHL[]A\A]A^A_@HcLH4RH HID$CE\$1L=$Ef.A9l$~HcLHHL$HxHHL$L9tH5[$HL$tE{(u?H4IHSLHIt$~uAHHHHuHCHP0|@H"H$H5+H81 HHHHt1LE1-HCHP0@H"H5E1H811E1>%1L1LE1oDH\$Hl$H(HHT$HH5'1HD$u1H\$Hl$ H(H|$HHtH{H:HptH]"HH"Hff.Hl$Ld$HH\$HHAu"1HHl$H$Ld$Hf.11H=e$$HHtŋECEC EHE&HHCtUHuHDc(HHHHu HCHP0H$Hl$Ld$HH "fHGHt/PtHxt1HH"H@HGH5HPH*"H81H Hfffff.H fH fSL $HH .HH5%H@HD$(HT$8LD$0HD$(H$11tBHD$(HS1H|$8HHHD$0HXHHEH\$IuHH@[D11;%H@[HH1DH01DH1DH\$Hl$HLd$Ll$HLt$H8HLD$ H %H1D$ u$1HH\$Hl$Ld$ Ll$(Lt$0H8Ð1HHtH{1HI~|$ H5#*uHIFHHSt$ I|$HII$HHI$ILqHI~(E1fDLLIHHM9IEHHIEH{01QHI|$ H5#etHIHHNt$ I|$HIQI$HHI$LHI~#E1LLIHH&M9IEHHIEH{H1HI|$ H5K"sHHHH%t$ I|$HII$HHI$LHI~#1fHLHQHHfI9IEHHIEIELP0{DIEHHIEuIELP0DI$HHI$u ID$LP0HEHHHE#HEH1P0fDID$LP0ID$LP0\IELP0HHHHvHCHP0gID$LP0IELP0TAVHAUAATUS\OQHF!HIgH@11H8tHH8uHcHI$I^H;H1At8su [Ht6LHHcHH;HAuHuDI$HHI$tLE1[]LA\A]A^At*A tHCH[H@ffff.SHHHtHCH[H@ffff.SHHHHu_H58"H9t 6trHHH51HFHHHHuHSHHD$R0HD$H[DHH5MHH1HuDHQ"H5H81fDSHHHt iH{HtHHCH[H@fATH $USHHHHHH$L$L$HDŽ$HDŽ$H$1HDŽ$OH$H6H}H5$H9tH$HL$MI|$H5X$H9tfL$IH$HHxH5$H9tTH$HH$H$tH$gHx"H5H8H1[]A\H$H$H$H$HDŽ$Bf.H[]A\H$ksH$H$H$HDŽ$uH$HD$hH$D$pHD$`H$H$H$H$HDŽ$r:H$L$H$H$$4fD1E11IfH$ZH$KH5"HH1H"H5BH8H"H5RH8eH"H5bH8EH$H$H$H$$@HD$HUHt$HHT$HUHT$ HUHT$(I$HT$0IT$HT$8IT$HT$@HHT$HHPHT$PH@HD$XH1HHHH b$HLL$HH:~ 1Hu -DHt#HH9H<HtHHA"H5H8J1HH\$Hl$HLd$Ll$HLt$L|$HhH~HG`Ht H;=7"OHuH5$H9t HcjA??HCHHH5HH1"E1H81dCfH0dHC"HH0HHHHILH\$8Hl$@Ld$HLl$PLt$XL|$`HhfH"H5XE1H8DHCH5E1HPHo"H81HD$1HHt$u/HU 1H:t@HH<uHCDE1A1IHI.HtEHm HtHuHuLHI$HHI$IHCHHH5:H8LHHL4HE 1H8tfDHH<uHL$ HT$(LL$LD$HH|$H-10IH"H5E1H8/HIH|$Ll$(1@HH9\$HD$ILH.HHL uI$HHI$>ID$LE1P0tID$LP0AWAVIAUATUSHHHI~1L;HxHHDH̴$H9tH?wLH HD$8P1H|$8HD$@L|$@fDHH H9l$8IFLHH@hPHxIHH$H9tH{H{11FHIIT$H{HM,I$LHHI$eIT$LL|$0R0HD$0KHHH ~H$LL$hLD$`HL$XHT$PHt$HHD$ H$H|$@HD$H$HD$HD$xHD$HD$pH$1H|1%EHEHIl11%I$HHI$HĨ[]A\A]A^A_f.11gHtHHSH@HC 1ID$H5HHHH"H81yHHHz8tHHuHH=%UH1"HL$8H5  H81(ID$LP0HPH"H5H81Sff.H\$Hl$HHH~HH5a$H9t 7t#HsH}H\$Hl$HxH"H5OH8H\$Hl$HfDAWAVAUATUSH8dH%(H$(1HHD$L/MI]HHD$L|$ IAHD$HD$ :)H"u@ HJ 9u H*HE1H{HHHHPLeHEtKHH=OLID1HHHD$t[MtLI]HIE1 HH=LID1HUHtH|$H3H|$uM1H$(dH3%(H8[]A\A]A^A_HXHItx1H=aHD$MtLH=A1%MtLH߾H=1%WL1HH=A1%4ffffff.HAUATUSHH(dH%(H$1HlD$芾))H"u HJ 9uL"M1H{HHtnHHPLl$L-tyHtHH߾H=p1 %H$dH3%(H([]A\A]HtHkH=1T %f.HSMH=LLD1LHtHHD$HD$l@HE1-HHH=1 %=DH= |'fSHHCHt[@HCHH=[Hp1^fffff.fffff.H\$Hl$HLd$HHHHut1H$Hl$Ld$HHutHttDHH-t }fDHsH}tHeHHZHHHAtjHs$H}$cAHEHHHEt$HHHHt%A1NWHEH@P0HCHP0΄uHEHHHEu HEHP0EuHHHHu HCHP0Hb"H5H8UHSHHH~H5I$H9t HMHSHH@HtHt @)HH;1f.HH<u@HH;1HH<u9HH*Ht\H;HtTHtOHuHu#D@HtIEpIt$pHHH$IExHD$IHD$D$ZAA$IU(HtIt$(HmLcLH6HCH1P0U1HH=$SHȡ$HHt@HHHCt:HCHsHuJHH[]1HH[]@Hw$11u$HHtHx11V$HHHHuHCH1P0돐ATHIUSHo1HHu GfDHWI9Ht'H9uH˹"H5̣H8Ը[]1A\D[]A\HBH5[]HPH"A\H81鋬ff.HGHx0íHGHtHx(Ht驭fH"H@U11HH=q$SH$HHt.dHt_HsHHuHH[]f1HH[]@11$HHHHuHCH1P0f1fff.HxH SHHP@Hl$Ld$HLl$H\$ILt$H(HAH$HHPHpH=<1(HHdH5*HDJ,HIHH蓳HHHHXID$H=tK~9H=Z H=[HH$Hl$Ld$Ll$Lt$ H(H= tH=uI|$HIHxHPHHI$HHI$TH5rHDb+HIHH諲HHHH@HCHP01I|$(HHHH5u1I|$(HHHH5a1@HCHP0It$H=SH\HH41fIHHItaHpHHHH]HCH1P0T@I$HHI$uID$LP0fID$LP0IFLP0I$HHI$ID$L1P0ffff.HHǘ@AVAAUIATUHSHHǘHHH5HD)HIuHHʰBHHHHI}HP迦HHSH51HD!)HIHHjHHHH?I}HhO8HII}Hǀ38HIGH=HL1蓞HH'I$HHI$IEHHIEH5HD[(HItSHH訯u$HHHH[H]A\A]A^DI$HHI$uID$LP0@HHHHuHCHP01[H]A\A]A^fHCHP0rIELP0DHCHP0ID$LP0HCHP0[H]A\A]A^f.MtI$HHI$t2MqIEHHIE\IEL1P0ID$LP0ff.H\$Hl$HLd$Ll$HLt$L|$HXHLD$H $H31D$su/1HH\$(Hl$0Ld$8Ll$@Lt$HL|$PHX19HHtċ{YHI|$H5HZ&HISHH裭I$HHI$CHHD$XAE1Hf.t$HL.H|IEHHIEL;t$ELHDx IE9H=1DVHIZHr|$H-H=HHH$辬H$I$HHI$I}OHIHt$HHH$JHH $I$HHI$H|$1,HIhHH&IH= 1LiHItqH艝|$Hƃ,HtUHHH$֫H$ I$HHI$UID$LP0EDIELP0a1IEHHIEHtHHHHu HAHP0MtI$HHI$u ID$LP0HEHHHEHEH1P0@ID$LP0cID$LP0IELH $P0H $`ID$LP0C1E11HHHHHBHP01 E1IEHHIE#IELP0I$HHI$uID$LE1P01fH\$Hl$HLd$Ll$H8HLD$ HH $H 1D$ Mu!1HH\$Hl$ Ld$(Ll$0H81!HHtҋ|$ H5y*HIHH袩H{LHIt$ HHǃNHI$HHI${ ȣHIt`|$ H5DH!HIHHubI$HHI$t$ HHHDHEHHHEHEH1P0f.IEHHIEtDMtI$HHI$uID$LP0ID$LP0ID$LP0^IELP0fffff.AVAUIATUSHHHtIEHHHH贜HIHH=HHH1H8tfDHH<u萪HHL#I<$HtX1 @HHHªI|Ht8H详Hu1LHEHHHEta[]A\A]A^ÐI}ImHtHHHHt,L1ʬ[]A\A]1A^HGP0@HGP0HEHP01L腬H"H5RH8:1L`^SLi$HH ^$HHHH1LL$Ѫ¸tHt$HH%H[ffffff.H\$Hl$1H1HH=$$HHt&HHxHH\$Hl$HD1@HEHHHEuHEH1P0fSHHHt HCH[H@SHHHtΤHCH[H@ffff.SH觡t H{jHCH[H@fH\$Hl$H͟HeH蛞uHب"HH\$Hl$HDHY"HH\$Hl$Hfffff.SHHHt~HCH[H@ffff.SHHHtΦHCH[H@ffff.AUL Gv$H @$ATUSHHHHwHHD$pL$HDŽ$HDŽ$HD$xHD$ HHD$pHD$hHD$`HD$HD$xHD$H"HD$H$H$1ZH$HH}H5f$H9tH$HH$HL`HD$xE1HtE1H;"AHl$hH|$pH1Ht”HL$hLD$`ELHD$$ǛHr11p$HD$pHtHHHHH|$`Ht יHĘ[]A\A]H$H$HT$PHt$XHD$X{HĘ[]A\A]HHD$`H8#HC1H<1$*fH|$pHGP041qH"H5ZH8EHD$XHl$0HD$8HD$PD$@3I8SHH{辛HCH[H@ffff.SHGH{1HCH[H@ff.H\$Hl$HG(tjtMt H\$Hl$HHfw HH TH\$Hl$1HGDH\$Hl$HH}H跒HHt/HHH茢HH\$Hl$Hf.H$H\$1Hl$1HDSHHHt辘HCH[H@ffff.HHLr$HLL$HˎH $1HD$L1t"HD$Ht:HxuHv"HHD11F$HfHfDHHLrq$HLL$HcH $1HD$輣1t"HD$Ht:HxuH"HHD11$Hf[HfDH\$Hl$HLd$H8Hp$HL$LL$LD$H51HD$HD$HD$1uH\$ Hl$(Ld$0H8H|$H5GHHtiH|$H5:.HHt+HHIHT$HHzL_u[HEHHHEt*HtHHHHt&H"HSfDHEHP0@HCHP0@11^$HלuH\"HHH1$11Hffffff.HHH5HT$ 1覑1uHf|$ guH"HH11$@HHH5yHT$ 1F1uHf|$ ǑuH"HH11^$@HHH51HT$ HL$LD$1ܐ1u HT$t$|$ בuH"HH11$@HHL2n$HLL$HH ܮ$1HD$|1t"HD$Ht:Hx!uH"HHD11v$HfHfDHHLm$HLL$HXH \$1HD$1t"HD$Ht:HxAuH"HHD11$Hf苑HfDHguH"HHH"HHSHH51HHT$ %1u H[ 1|$ @Yu-uH"HH[H"HH[11$fff.H7uH4"HHH"HHAWH=AVAUATIUSHHH-˞"HDŽ$HDŽ$HDŽ$DŽ$DŽ$Hl$xHD$pD$PHD$XD$`DŽ$uHL$H z$L%H߉$HD$xHD$0HHD$(H$HD$ H$HD$H$HD$H$HD$HH$I1y1 H9l$xH$H$T$`HD$X蔓Ht$xH$H进HIHKLCIEL96HH@HHHHL$x11HH~L|$PHL蹎QI]I9u|M_M@R$LL$@T$HUT$HLL$@ILLHL|$D$T$1H$Љ HI9<LcI$H$IIƅ\LHHD$@ LL$@I?H$H5HJ"1H81趎H$Ht褊H$Ht蒊MtLUHtHHHD$pHĨ[]A\A]A^A_ÐH=1y$HD$xf.HHH$H5K@H"H51H8=11'HHD$p#HT$pH5H襛H=}1$H|$pHHD$pHHHHHGP0H"H5H8jDH=i1i$@H"H5H82gDH=11$N@SH@DT$PEtt XH@[fH|$ HL$DD$LL$D$ Ht$(T$0&HHHL$DD$LL$t@tH苇11҅t41H{PƃH47<D@>HsDS9rHs1諕H߾D$*D$H@[Hl$Ld$ILl$H\$H(IHHH5QHHHt:LLH1H\$Hl$Ld$Ll$ H(f軚HHH5HH蝅yHHHHu HCHP0H"H5 H8ZHd"H5fH8=aHD"H5H8AH$"H5H8!HHH5HT$1薇u 1HH|$ޘt*Ht$H=yxHΗ"HHDH1"H5NH8z1HSHH $HHA1HLL$ I(u 1H[@H<$+tt&ҋt$ =$t1=%HE֐HHH5HL$ H1蓆1u HfD1|$ H<$@uHі"HH11$@ATU SH0H$ HD$ H\$HD$HD$Ld$0HD$ HD$( fH+HHlu L9uH<"HH0[]A\HHHH=.HH1HL%$H߂H=H1AHHHHt)HU1HHHUuHEHP01uDHCHP0fff.H\$Hl$HLd$H(H5?HL$ 1Hu 1H\$Hl$Ld$ H(f.1|$ H<$@LuH!"HH<$HHH,$D\$ HIH55H=.HEHEH1蒊HL%$H谁H=H1AHHHHt&HEHHHE-HEHP01HCHP0UH5LHSH(HD$D$$CHHtk H΍HtiHhH5 HHH)1HHȂHtc1Hٗ1HHܓH(H[]fH踇HL뺐 HSHuH"H51H8f@H=k$H(H[H]H"H5`1H8.fff.HHH b$HLD$HT1HD$Ӓ1t H|$Hfff.SHH %$HH1H@LL$H|$tuH||HuH`"H5hH:HD$\HD$DH|$6uHt$H=!1J$HGHtH|HtHH!$1HH"H5KhH:HD$HD$ffffff.ATHUSHH ̓HI1HqyHHT$H51HHuHEHHHEtwLH߾/yH{H|$HH规HItoHGzHHHHtHL {HH []A\fDHH^@HEHP0zfHCHP0@HyHHHHu HCHP011$H []A\@HU1HHHUjHEHP01YHY"H5fH:HD$UHD$4ff.HW{H`"HHHHH5'HT$1su 1HH|$PvOyHt Hf1$fDfffff.HHH5̴HT$1Vsu 1HH|$PvxHt Hx 1y1o$DAWHH ԕ$HHnE1AVAUATUSHL"H$L$HDŽ$DŽ$HD$xH$1HD$p轂uHĘL[]A\A]A^A_@H$zHIH蔃HHD$8MHD$8HT$hHt$x1HT$@HT$pHt$HHD$0IHD$`HT$XHD$P=E1IHD$(HBhHyHIuH|$(HD$`HD$htSH|$(H58:pHHHT$@Ht$HHHEHHHEu HEHP0MtQH5#LoHHtHT$PHt$XHV5HEHHHEu HEHP0HD$hHID$HD$`ID$ID$Hc$LM4$I I9H$HHD$xHD$hHD$pHD$`PnHH@H~IH@H1HIHLHHD$E1gHT$HD$(>HHD$>HHD$(,HT$IHEHHHEtH|$8E1o5HEHP0HHH"H5lHH81rH"H5lLHH81rHHH^"H5mHH81rHH>"H5GmHH81rr]1I1ILD$8MHI8MtIXHUI9~[HHcHHL$8H;9uGHt$8HHHD0@f.H0HH H9uHyt HIH9HLHI9HHH9uI9Ha11DH\$0HHHCHHCHCH H\$0HL9uHq1pHIlHkMIuLd$8HE1Ht$(H$LHD$xHD$pkHID$Ic $HD$hIt$HHt$`Il$~1 HH9|HD$hHHH~1 HH9uHH|$`u(L;t$(} HII M9Q@H׾{|H5HkHHjHH|$`HD$pH9s(HHf2H@1HH9wH)HHnHEHHHEYHEHP0Jf.H׾HT${H5@H?kHHD$ jILL$hHD$xHT$HL$ L9s HHDHDHI9wI)LHHHHHHAHHT$P0HT$IMt HI+@IHI H9gMHMtHt$(HHFH5FjHHH{"H81 oIGH5qjHHHH{"H81nkI@15@H\$Hl$HLd$H8HHLL$HLD$H $H1D$D$b{u1H\$ Hl$(Ld$0H8t$H=1.}HIt1HHHHI$HHI$T$H=j1H|HI11HHtiI$HHI$t0HHHHIHSHHD$R0HD$0@IT$LHD$R0HD$빐ID$LP0eI$HHI$u ID$LP0HHHHHHCHP01HHHH=@Kff.H5$1DHHHH=@ff.H5$1DHHHH= ff.H5$1DHHHH=&ff.H5$1DHHHH=ff.HHHH=0kff.H59$1DHHHH=;ff.H5 $1DHHHH=P ff.HHHH=1ff.H5$1DHHHH=ff.H5$1DHHHH=`,ff.H5Y$1DHHHH=p[ff.H5)$1DHHHH=`w"+ff.H5$1DHHHH=`8ff.H5ɷ$1DHHHH=Cff.H5$1DHHHH=ff.H5i$1DHHHH==kff.H59$1DHHHH=];ff.H5 $1DHHHH=pe ff.H5ٶ$1DHHHH=gff.H5$1DHHHH=v"ff.H5y$1DHHHH=O{ff.H5I$1DUHH51SH(HL$HT$LD$HD$HD$eu1HH([]|$Wpu;Hl$H߷$0kHtsHp H=hd1HH(H[]1gHHtHbHtL$HT$HƋ|$jk11k$HYL%H=$PAP1QtH5ʶ$^DAWHqHH $HHcAVAUATU1SHLD$H$I1tuHH[]A\A]A^A_Hl$HhH<$IhLIHuHH"Nt%L,$E1L=.L9Ut3H $L9sK:tGHf:t HI9wL9t6HUuHLWfHH cIHL9uʀ0tUqHHE06v2HbHTs"HH+T$H5bH1H81fIcLYqHMHHE6.&bbHE1 fAVHAUATUSHHH$ApHI1HeHLD$ Hv?$H5|1HHajHEHHHELH߾eHgIH$t$ HHxlHHLfHHHHDmIcoHItk1EbfHLLpA9~JHELcJ< gHuHE1kHL[]A\A]A^f.HH@HkHL[]A\A]A^HEHP0HCHP0BLeHHHHu HCHP011$HI[]LA\A]A^fHEE1HHHE>HEHP0/fH\$Hl$HLd$H8H5ǡHT$1_1t_|$HcpHHts.ft$HHqHAdEu7Hct$HbHHD$^HD$H\$ Hl$(Ld$0H8@H^11$@_fHn"H5^H8jn1fDATHUSHHHD$TmHI1HbHHL$H?$H51H^HEHHHELH߾bHeHHD$HHx[HIuOHcHHHHt11$H[]A\DHCHP0@HHG@HpcHHHHt!L9|H[]A\HEHP0FHCHP0@HU1HHHUsHEHP01bATHUSHHHD$kHI1HaHHT$H5g1H_]HEHHHELH߾BaHcH|$HHZiHIuRHZbHHHHt11I$H[]A\HCHP0@HHO@HbHHHHt)L1/H[]A\fDHEHP0?HCHP0@HU1HHHUhHEHP01WHHH5JHT$1HD$\u 1HfH|$fmt2Ht$H=xH=6!jHJl"HHÐHk"H5ΚH8j1HAWAVIAUATUSHHdH=D$ EHI$MAtIF-LiLhLiHI:HuaHHHxb1HLjHc[HLiI~81fDHcLiHHkHLHciI9LLbdHH6H@HH;j"H=Z1E1scI$HHI$trHtHHHHtn|$ YHL[]A\A]A^A_H=Y1AcfLhHIH=Y1E1bID$LP0HCHP0@E1UH5HAXHHtHWHY_IHEHHHEHEHP0fH=Y1E1_bfD ]Htf|$ E1XH=X$bfHaHi"HHSj_H]uH6^HOi"H[fH^[11H$f.ATHH {$HHUSHĀHD$PLL$xHD$xHD$pHD$hHD$@HD$XHD$`HD$XHD$PHD$8HnV$HD$0HD$`HD$(H}HD$ HD$hHD$HgHD$HD$pHD$HQH$I1huE1HL[]A\HD$XE1DL$PHL$`Ht$pH|$xHPHLEHT$hw\HHtu ^1HH=^W$X$HIthHXH\H|$xHtVH|$pHtVH|$hHtwVH|$`HthVHH@11x$|H1_fff.UHH ez$HHWSHxHD$HLL$hHD$hHD$`HD$XHD$0HD$PHD$PHD$HHD$(HHD$ HD$XHD$H؈HD$HD$`HD$HˆH$I1fu 1Hx[]f\DD$HHL$PHHT$XHt$`H|$hTu\Hl[H|$hHt=UH|$`Ht.UH|$XHtUH|$PHtUuHEf"Hs@11$fff.S\1HP]uHZHe"H[HZ[11Hħ$f.SHHH5ԗ1HHL$>U1uH[[H|$Hndu*HbZH|$8THqe"HH[H8ZH|$T11,$H[fffff.SHH H5K1HHL$T1uH[ZH|$Hcu*HYH|$SHd"HH[HYH|$nS11$H[fffff.SHg^Ht"H5HS`1Ht,HH[ aHAd"H5CH8cD[fff.ATHUSHHHD$aHI1HWHHT$H5"1HoSwHEHHHEHLRWH|$Hc"IH9du!Hc"H5H8Kb1H[]A\H=责HHt H=HaHEHHHEtLHt$H=oH1[]A\HH@HEHP0/HEHP0@H=*$HHt$H=HaHEHHHEH= H=MtI$HHI$tzHHH[]A\f.HEHHHE(HEHP01f.H=zLH=BLNuDID$LP0vHEHP09H\$Hl$H(HHT$H5+1HD$CQ1uH\$Hl$ H(@WH|$HbH߉\Vu H`"HH\$Hl$ H(fDHa"HH\$Hl$ H(fffff.H\$Hl$HWH_HHt%HUHHl$H\$HVHUH$H\$1Hl$1HDH\$Hl$1Ld$1HHH= $"$HHtrL`1HLPNuDH_dHHC@t^H}1KdHHCHtJHHl$H$Ld$H@11$HHHHt1HCH1P0D1Lafff.HH PH\$Ld$HLt$Hl$HLl$L|$HHD$PL%_"HL LD$XH k$HD$HHHD$XLd$PAHD$HD$HHD$HHD$@H$1^u9DH\$hHl$pLd$xL$L$L$HĘH|$X~yHHH|$HRLh11Gt-DXHHCHHHt$HLHEDZHD$PL9cLhH{E1E111LHD$H$MHHCkHUHu$H;YAH=1$Mt/H|$Pu'L]1$AH|$HHtLHHEHHHEHEHP0}fDH\"H5MH8r\H{M_H{E1YHT$@HT$0t AH{Ht$0ZtIc[HHC H{XD$<aHIFIGHpHx1^ZHIF(rIHMHIF0SAMf I$Hct$H{KHHEtDHSHHt\H$\HHE tHH[]Ð1H[H]HP@HEHHHEuHEH1P0f11>$@HxH0PAWH R$1AVAUATUSHHHH~}H(LD$D$Yu1H(H[]A\A]A^A_1ZHH|$H5HIHH UsH{xHHIkH=̃HH1fCHI|$H5[HƒTHIHHTI$HHI$0IHHI H{xH JHI|$H5HƒHIHH'TgI$HHI$|$H5HIlHHSHH{xH0NHI@L$H|H5{H1PYHIgHOHI~#E1LLIQEHHfSM9IHHII$HHI$/1HHI;HUH=ЊHI1gMHI|$1HƒHHHHRbI$HHI$M#1H=u1HLHI|$1HƒHILHHcRI$HHI$HLUL$HS{H5-zHI1WHH$HdNHHD$~,E1H<$LICHHQL9|$H$HHHHG11nHItHHQuWHI9IEHHIEIELP0fDIFLP0ID$LP0IHHIu IGLP0Mt:E1I$HHI$MtIHHIuIFLP0@HtHEHHHEtrMfIEHHIEQIEL1P0BID$LP0JI$HHI$t?E1f.HBHP0HEHP0@ID$LP06ID$LE1P0EE1E1ID$LP0E1ID$LP0ID$LP04IEHHIEuIELE1P0IFLP0jIEHHIEvIELE1E1P0oIHHIYIGLE1P0JHHHH4HCHE1P0%@HHǨ`JAT11UHH=$SP$HHL`HxHS"HLRCuvHqWHHCxto1L^WHHtYH{0DHHtDCpH{`Cp#WHHtH[]A\H=QC1$HHHHt 1H[]A\HCH1P0fH\$Hl$HLd$Ll$H8HLD$ HH K$H v1D$ MRu!1HH\$Hl$ Ld$(Ll$0H81!SHHtҋ{董|$ H5VHIKHIHHMMtI$HHI$*C=sx|$ H5HHt0HHEMFHHHH f.HEHHHEHEH1P0f.=j=rSH5uH5%|$ |HItHHL|$ HS 1/HIcHHxLH{HC|$ H5kHIHIHH6LunMtI$HHI$HS(|$ H5 HIHHKuIHS0|$ H5uHHyIEHHIEu IELP0MI$HHI$kID$LP0[tAH5w|$ )HI=HHRK2ID$LP0H5VID$LP0HCHP0HHxCBH\$Hl$Ld$HHH$dH%(H$x1HHutPH}H t1H$xdH3%(H$H$L$HĘfDŽ$ HuH{h@H2OuNHHNuHRDfmuPfDŽ$HuH{l2@fDŽ$CHC$mIffff.H v%HM"H5xH81@1HHYHc HDHHk'HH HH;HH HHK&ff.HHHt OH@H5MgHPHL"H818@H\$Ld$E1Hl$HHHtBm-HHHHuZHtHEHHHEttHtHHHHt LH$Hl$Ld$Hf.HCHP0@Hu HIfHP$Hu$H=f1zBIxfHEHP0@SHHHtHt1[HCH55f[HPHK"H81?HCHH=f[Hp1Afffff.H\$Hl$HLd$Ll$H8HLD$ HH T$H]o1D$ Ku!1HH\$Hl$ Ld$(Ll$0H81qLHHtH{Ht;$HI|$ H5@H茿HIHHFI$HHI$HCHx0HI|$ H5~H,HHtSHHyFI$HHI$ID$LP0IEHHIEu IELP0I$HHI$u ID$LP0HEHHHEHEH1P0ID$LP0 HHHHuHCHP0ffff.SH S$HHHH}H1LD$ D$ I1t8H{HT$ v2HCI"H5dH81<1H[f.H1HcHD??)fDCfDHH두HCH5%cHPHH"H81HLHFHII9HtI\fHX(HHHH(urHHHHuHCHP0ID$LP0E1ID$LP0IELP0IELP0=IFLP0'IHHIuIGLE1P0SI$HHI$ID$LP0DHl$H\$HLd$Ll$Lt$L|$HXHH=Gv7HHD$HH$!HHL$LHL$=HIL$B1HL$FHIL$HL$3HIL$1HL$1HIHD$L$HG3HHHD$L$tiLJ.HHD$=.LHD$0.HL$HT$H=1H16L$HD$!f.1E1E1E1E1HD$IHHI&HtHHHHMtIEHHIEMtI$HHI$MtIHHIMtIHHIHtHEHHHEu HEHP0HD$H\$(Hl$0Ld$8Ll$@Lt$HL|$PHXf1E1HD$DID$LP0^IFLP0_IGLP0gHCHP0I@LP0IELP01E1E1E1HD$HGHH=YH\$(Hl$0Ld$8Ll$@HpLt$H1L|$PHX5D1E1E1HD$1f.SHHHGHt8tH~$HH[fHxt$Ht$tHCHxH[SH H$HHHHqrH1LD$ D$ @>1t t$ H\H[fDL|$H\$IHl$Ld$Ll$Lt$HhH8H=Gr3HHIHQ="H5.E1H810E1E1E1E1E11HD$(MtIEHHIEHtHEHHHEMtIHHI/MtI$HHI$5MtIHHItqMtIHHIt}MtIHHItyHtHHHHu HCHP0HD$(H\$8Hl$@Ld$HLl$PLt$XL|$`HhIFLL$P0L$xfI@LP0tIGLP0xIELL$LL$P0LL$L$HEHL$LL$P0LL$L$IALL$P0L$fID$LL$P0L$H'/HHHD$-HHLT$@HLT$E1(H=i,H11LT$I1LLL$LT$HILL$LT$HLL$LT$[-HILL$LT$IH5D$ LL$LT$E1Hp:~HIHD$(LL$LT$HHH$<6HIHD$(L$LL$LT$tUH'LHD$'LL$HD$ L'HL$HT$ H=nH1{0LT$LL$L$HD$(MIHHIIBLL$LL$P0LL$L$E1kL3HIRHH\5HH;H'H=2nH1/E1IE@HGHH=4TH\$8Hl$@Ld$HLl$PHpLt$X1L|$`Hh/DE1E1E1HD$( E1E1E1E1E1E1HD$(E1E1HD$(fff.H\$Hl$HLd$Ll$HLt$L|$HXHLD$H iL$H\1D$8u/1HH\$(Hl$0Ld$8Ll$@Lt$HL|$PHX19HHtHCHtHx+HI|$H5lH蜬HIHH3I$HHI$q1H~HI|$H5LeH?HIHH3OI$HHI$*H{H5 A$ HpzHItU|$H5=lHҫHHt:HH3 I$HHI$ID$LP0ufE1HEHHHEtlMtI$HHI$tbM>IEHHIE)IEL1P0Hq6"H5'E1E1H81)HEHP0ID$LP0ID$LP0HHI>HpH=j1|,HI#|$1H袪HI HH12IEHHIEL-HIE1DIM9LL-|$1HIŃ$HHHHD$k1HT$IEHHIEuIELP0ID$LP0IEHHIE,IELE1P0HHHHHCHE1P0IELP0HHHHHBHE1P0IHHIIFLP0ffffff.UHL#HH D$HoiS1H(HD$LL$D$H$14u H(H[]f$HHt>Ht$HH%Ht7t$H\H1H5H(H[]D11^v$H11Ov$1H]5|H\$Hl$HLd$Ll$HLt$L|$HXHLD$H >$HsW1D$3u/1HH\$(Hl$0Ld$8Ll$@Lt$HL|$PHX1y4HHtH{HD HI|$H58]H蕧HIHH.I$HHI$Hc{ "HI|$H5gH9HI~HH.u^I$HHI$t=H{H`4?H}HcHID$LP0oID$LP0IEHHIEtE11HEHHHEMtI$HHI$HtHHHHM[IEHHIEFIEL1P07@IEL1E1P0r@H{Hk#HIPL$HwVH5QUH12HI(H)HI~&1DHLHHH-I9IEHHIEI$HHI$zID$LP0j|$H5epHIHH,HsH=S12HI11H=HIIEHHIEm|$LHHH(HI~*E1LHIHH+M9HHHHHCHP0rH{H++HIL$HTH5SH1C1HIxH'HIr1ېHLHAHHV+I9K@H{H HI L$HGTH5!SH10HIH_'HI1ېHLHHH*I9@H{H-HIL$HSH5RH1C0HIxH&HIr1ېHLHAHHV*I9K@|$H5qcHI1HH!* HsH=P1W0HIP11HoHIJIEHHIE|$LHHH &HIE1@LHIiHH~)M9@|$H5b HIYHHI)1HsH=O1/HIx11H'}HIrIEHHIE|$LHH:H3%HIE1@LHIHH(M9@|$H5aHHIHHq(YHsH=N1.HI11H{HIIEHHIEc|$LHHbH[$HIE1@LHIHH'M9@|$H5apHIHH'HCHHPH$HPHT$H@ HD$.HD+"H5QE11E1H8*6HEHP0H=#H=#.H#aH#HpHH=w#BJH={#.HV#!HJ#HpHH=# H=#.H#H#HpH~H=7#H=;#.H#H #HpH>H=#H=#.Hv#aHj#HpHH=#BJH=#.H#!H#HpHH=W# H=[#.H6#H*#HpH~H=#H=#.H#H#HpH>H=#H=#.H#aH#HpHH=w#BJH={#.HV#!HJ#HpHH=# H=#.H#H#HpH~H=7#H=;#.H#H #HpH>H=#H=#.Hv#aHj#HpHH=#BJH=#.H#!H#HpHH=W# H=[#.H6#H*#HpH~H=#H=#.H#H#HpH>H=#H=#.H#aH#HpHH=w#BJH={#.HV#!HJ#HpHH=# H=#.H#H#HpH~H=7#H=;#.H#H #HpH>H=#H=#.Hv#aHj#HpHH=#BJH=#.H#!H#HpHH=W# H=[#.H6#H*#HpH~H=#H=#.H#H#HpH>H=#H=#.H#aH#HpHH=w#BJH={#.HV#!HJ#HpHH=# H=#.H#H#HpH~H=7#H=;#.H#H #HpH>H=#H=#.Hv#aHj#HpHH=$BJH=$.H$!H$HpHH=W$ H=[$.H6$H*$HpH~H=$H=$.H$H$HpH>H=$1H5BHHuzHHH5BH: HHHH "H BH5H8H1[]HEHHHEt/HHHHt,H[]fHEHP0HEHP0HCHH@0H[]HEHHHEtPHHHHuHCHH@0H[]fDHHHHuHCHH@0H[]fHEHP0H5AH8H0H5AHHHH5AHHtYHHHC "H {AH5mH8H1[]HUHH "H5$6H8H1[]dH54A1HH#HH5AHKHtYHHH "H @H5H8H1[]HHH| "H55H8H1[]H5@HiHHH5@HHtYHTHH "H \@H5<H8H1[]\H$HH "H54H8H1[]3H5@HWHHH5?HHtYHHHx "H ?H5H8H1[]HHHH "H5Y4H8H1[]H5?H5HUHH5f?H}HtYH HH"H @?H5H8H1[](HHH"H53H8H1[]H5>H#HHH5>HHtYHHHD"H >H5nH8H1[]HVHH"H5%3H8H1[]eH5o>HH!HH5I>HIHtYHHH"H #>H5H8H1[]HHHz"H52H8H1[]H5=HgHHH5=HHtYHRHH"H =H5:H8H1[]ZH"HH"H51H8H1[]1H5M=HUHHH52=HHtYHHHv"H =H5H8H1[]HHHF"H5W1H8H1[]H5<H3HSHH5<H{HtYHHH"H z<H5H8H1[]&HHH"H50H8H1[]H53< H!HHH5<HHtYHHHB"H ;H5lH8H1[]HTHH"H5#0H8H1[]cH5;HHHH5;HGHtYHHH"H b;H5H8H1[]HHHx"H5/H8H1[]H5;HeHHH5;HHtYHPHH"H :H58H8H1[]XH HH"H5.H8H1[]/H5:1HVHHH5:HHtYHHHw"H ^:H5H8H1[]HHHG"H5X.H8H1[]H5:H4HTHH59H|HtYHHH"H 9H5H8H1[]'HHH"H5-H8H1[]H59H"HHH5x9HHtYHHHC"H R9H5mH8H1[]HUHH"H5$-H8H1[]dH5 9HH HH58HHHtYHHH"H 8H5H8H1[]HHHy"H5,H8H1[]H58HfHHH5h8HHtYHQHH"H B8H59H8H1[]YH!HH"H5+H8H1[]0H57HTHHH57HHtYHHHu"H 7H5H8H1[]HHHE"H5V+H8H1[]H5x7H2HRHH5[7HzHtYHHH!H 57H5H8H1[]%HHH!H5*H8H1[]H561H#HHH56HHtYHHHD!H 6H5nH8H1[]HVHH!H5%*H8H1[]eH5j6HH!HH5P6HIHtYHHH!H *6H5H8H1[]HHHz!H5)H8H1[]H55HgHHH55HHtYHRHH!H 5H5:H8H1[]ZH"HH!H5(H8H1[]1H5f5HUHHH5H5HHtYHHHv!H "5H5H8H1[]HHHF!H5W(H8H1[]H54H3HSHH54H{HtYHHH!H 4H5H8H1[]&HHH!H5'H8H1[]H5V4H!HHH5A4HHtYHHHB!H 4H5lH8H1[]HTHH!H5#'H8H1[]cH53HHHH53HGHtYHHH!H 3H5H8H1[]HHHx!H5&H8H1[]H5P3HeHHH5;3HHtYHPHH!H 3H58H8H1[]XH HH!H5%H8H1[]/H52HSHHH5sHHtYHHHt!H MH5H8H1[]HHHD!H5U%H8H1[]H5 H1HQHH52HyHtYHHH!H 1H5H8H1[]$HHH!H5$H8H1[]H51 HHHH51HHtYHHH@!H r1H5jH8H1[]HRHH!H5!$H8H1[]aH5+1 HHHH5HEHtYHHH!H H5H8H1[]HHHv!H5#H8H1[]H5X1HfHHH5HHtYHQHH!H eH59H8H1[]YH!HH!H5"H8H1[]0H5HTHHH5 HHtYHHHu!H H5H8H1[]HHHE!H5V"H8H1[]H5H2HRHH5HzHtYHHH!H H5H8H1[]%HHH!H5!H8H1[]H5H HHH5HHtYHHHA!H H5kH8H1[]HSHH!H5"!H8H1[]bH5HHHH5HFHtYHHH!H ^H5H8H1[]HHHw!H5 H8H1[]H5HdHHH5tHHtYHOHH !H NH57H8H1[]WHHH!H5H8H1[].H5 HRHHH5HHtYHHHs!H cH5H8H1[]HHHC!H5TH8H1[]H5@H0HPHH5`HxHtYHHH!H :H5H8H1[]#HHH!H5H8H1[]H5HHHH5HHtYHHH?!H dH5iH8H1[]HQHH!H5 H8H1[]`H5HHHH5LHDHtYHHH!H &H5H8H1[]HHHu!H5H8H1[]H5HbHHH5HHtYHMHH !H H55H8H1[]UHHH!H5H8H1[],H5mHPHHH5HHtYHHHq!H H5H8H1[]HHHA!H5RH8H1[]H5H.HNHH5HvHtYHHH!H H5H8H1[]!HHH!H5H8H1[]H5~HHHH5mHHtYHHH=!H GH5gH8H1[]HOHH !H5H8H1[]^H5HHHH5HBHtYHHH!H H5H8H1[]HHHs!H5H8H1[]H5H`HHH5HHtYHKHH !H aH53H8H1[]SHHH!H5H8H1[]*H5HNHHH5 HHtYHHHo!H H5H8H1[]HHH?!H5PH8H1[]H5 H,HLHH5 HtHtYHHH!H l H5H8H1[]HHH!H5H8H1[]H5%  HHHH5 HHtYH}HH;!H H5eH8H1[]HMHH !H5H8H1[]\H5 @HHHH5 H@HtYHHH!H H5H8H1[]HHHq!H5H8H1[]H5@ H^H~HH53 HHtYHIHH!H H51H8H1[]QHHH!H5H8H1[](H5 HLHHH5 H HtYHHHm!H H5H8H1[]HHH=!H5NH8H1[]H5U H*HJHH5:#HrHtYHHH!H #H5H8H1[]HHH!H5H8H1[]H5"HHHH5"HHtYH{HH9!H "H5cH8H1[]HKHH !H5H8H1[]ZH5F"1HHHH5)"HAHtYHHH!H "H5H8H1[]HHHr!H5H8H1[]H5!H_HHH5!HHtYHJHH!H u!H52H8H1[]RHHH!H5H8H1[])H5.!HMHHH5 !H HtYHHHn!H H5H8H1[]HHH>!H5OH8H1[]H5 H+HKHH5 HsHtYHHH!H ] H5H8H1[]HHH!H5H8H1[]H5 HHHH5HHtYH|HH:!H H5dH8H1[]HLHH !H5H8H1[][H51HHHH5gHBHtYHHH!H AH5H8H1[]HHHs!H5H8H1[]H5H`HHH5HHtYHKHH !H H53H8H1[]SHHH!H5H8H1[]*H5gHNHHH5AHHtYHHHo!H H5H8H1[]HHH?!H5PH8H1[]H5H,HLHH5HtHtYHHH!H H5H8H1[]HHH!H5H8H1[]H5FHHHH5HHtYH}HH;!H H5eH8H1[]HMHH !H5H8H1[]\H5HHHH5H@HtYHHH!H fH5H8H1[]HHHq!H5H8H1[]H5H^H~HH5HHtYHIHH!H H51H8H1[]QHHH!H5 H8H1[](H5HLHHH5uH HtYHHHm!H OH5H8H1[]HHH=!H5N H8H1[]H5H*HJHH5HrHtYHHH!H H5H8H1[]HHH!H5 H8H1[]H5HHHH5sHHtYH{HH9!H MH5cH8H1[]HKHH !H5 H8H1[]ZH5H~HHH5H>HtYHHH!H H5H8H1[]HHHo!H5 H8H1[]H5H\H|HH5bHHtYHGHH!H <H5/H8H1[]OHHH!H5 H8H1[]&H51HMHHH5H HtYHHHn!H H5H8H1[]HHH>!H5O H8H1[]H5k1H.HNHH5\HvHtYHHH!H 6H5H8H1[]!HHH!H5 H8H1[]H5HHHH5HHtYHHH=!H H5gH8H1[]HOHH !H5 H8H1[]^H5nHHHH5YHBHtYHHH!H 3H5H8H1[]HHHs!H5H8H1[]H5H`HHH5HHtYHKHH !H H53H8H1[]SHHH!H5H8H1[]*H5jHNHHH5WHHtYHHHo!H 1H5H8H1[]HHH?!H5PH8H1[]H51H/HOHH5HwHtYHHH!H H5H8H1[]"HHH!H5H8H1[]H5nHHHH5ZHHtYHHH>!H 4H5hH8H1[]HPHH!H5H8H1[]_H51HHHH5HFHtYHHH!H H5ѿH8H1[]HHHw!H5H8H1[]H5gHdHHH5MHHtYHOHH !H 'H57H8H1[]WHHH!H5H8H1[].H5HRHHH5HHtYHHHs!H H5H8H1[]HHHC!H5TH8H1[]H59H0HPHH53HxHtYHHH!H H5H8H1[]#HHH!H5H8H1[]H5@HHHH5HHtYHHH?!H H5iH8H1[]HQHH!H5 H8H1[]`H5O HHHH5GHDHtYHHH!H !H5ϼH8H1[]HHHu!H5H8H1[]H5HbHHH5HHtYHMHH !H H55H8H1[]UHHH!H5H8H1[],H5gHPHHH5YHHtYHHHq!H 3H5H8H1[]HHHA!H5RH8H1[]H5H.HNHH5HvHtYHHH!H H5H8H1[]!HHH!H5H8H1[]H5wHHHH5bHHtYHHH=!H <H5gH8H1[]HOHH !H5H8H1[]^H5HHHH5HBHtYHHH!H H5͹H8H1[]HHHs!H5H8H1[]H5H`HHH5hHHtYHKHH !H BH53H8H1[]SHHH!H5H8H1[]*H5 HNHHH5HHtYHHHo!H H5H8H1[]HHH?!H5PH8H1[]H5@H,HLHH5HtHtYHHH!H H5H8H1[]HHH!H5H8H1[]H5HHHH5"HHtYH}HH;!H H5eH8H1[]HMHH !H5H8H1[]\H5HHHH5H@HtYHHH!H H5˶H8H1[]HHHq!H5H8H1[]H5BH^H~HH5,HHtYHIHH!H H51H8H1[]QHHH!H5H8H1[](H5HLHHH5H HtYHHHm!H H5H8H1[]HHH=!H5NH8H1[]H5HH*HJHH54HrHtYHHH!H H5H8H1[]HHH!H5H8H1[]H5HHHH5HHtYH{HH9!H H5cH8H1[]HKHH !H5H8H1[]ZH5? H~HHH5;H>HtYHHH!H H5ɳH8H1[]HHHo!H5H8H1[]H5@H\H|HH5HHtYHGHH!H H5/H8H1[]OHHH!H5H8H1[]&H5@HJHH H5>H HtYHHHk!H H5H8H1[]H}HH;!H5LH8H1[]H5H(HH $vHIHy $Ld $H H51H\L E $L6 $H H5Hs+L  $L $H H5HBL $L $H |H5VHɿL $L $H KH5HL $Lr $H H5HgL P $LA $H H5H~6L  $L $H H5$HML $L $H H5ѽ HԾL $L $H VH5 H~HH $iHIH| $vLg $H dH5HLL E $L6 $H 3H5HcL  $L $H H5]H2L $L $H H58HL $L $H H5HL $Lr $H oH5HWL P $LA $H >H5Hn&L  $L $H H5H=L $L $H H5 H ļHH $HIH $L $H KH5I1HpL y $Lj $H H55H?L H $L9 $H H5HVL  $L $H H5H%ݻL $L$H H5HL $L$H YH5H{L $Lu$H (H5HJL S$LD$H H5kHaL "$L$H H5QH0L $L$H H57 HL $L$H dH5 HL $L$H 3H5 HUL ^$LO$H H5 Hl$L -$L$H H5 H;L $L$H H5H ¹L $L$H oH5HL $L$H >H5jH`L i$LZ$H H5AHw/L 8$L)$H H5 HFL $L$H H5!H͸L $L$H zH50HL $L$H IH51HkL t$Le$H H52H:L C$L4$H H53HQ L $L$H H5@H طL $L$H H5dAHL $L$H TH5GBHvL $Lp$H #H5*CHEL N$L?$H H5DH\L $L$H H5EH+L $L$H H5FHL $L$H _H5GHL $L{$H .H5HPL Y$LJ$H H5HgL ($L$H H5cH6L $L$H H5>HL $L$H jH5HԿL $L$H 9H5H裿[L d$LU$H H5Hr*L 3$L$$H H5HAL $L$H H5 HȴL $L$H uH5p!H߾L $L$H DH5K"H设fL o$L`$H H5&#H}5L >$L/$H H5$HLL $L$H H5%HӳL $L$H H50HL $L$H OH51H蹽qL z$Lk$H H52H舽@L I$L:$H H5_3HWL $L $H H5;4H&޲L #L#H H55HL #L#H ZH56Hļ|L #Lv#H )H5@H蓼KL T#LE#H H5AHbL ##L#H H5BH1L #L#H H5sCHL #L#H eH5ODHϻL #L#H 4H53EH螻VL _#LP#H H5PHm%L .#L#H H5QH<L #L#H H5RH ðL #L#H pH5SHںL #L#H ?H5H詺aL j#L[#H H5\Hx0L 9#L*#H H58HGL #L#H H5HίL #L#H {H5HL #L#H JH5H费lL u#Lf#H H5 H胹;L D#L5#H H5!HR L #L#H H5j"H!ٮL #L#H H5P0HL #L#H UH5-1H迸wL #Lq#H $H52H莸FL O#L@#H H5@H]L #L#H H5AH,L #L#H H5BHL #L#H `H5PHʷL #L|#H /H5|QH虷QL Z#LK#H H5[RHh L )#L#H H5B`H7L #L#H H5aHL #L#H kH5bHնL #L#H :H5pH褶\L e#LV#H H5qHs+L 4#L%#H H5rHBL #L#H H5UHɫL #L#H vH5\VHL #L#H EH5;WH诵gL p#La#H H5"H~6L ?#L0#H H5HML #L#H H5HԪL #L#H H5HL #L#H PH5H躴rL {#Ll#H H5zH艴AL J#L;#H H5ZHXL #L #H H5;H'ߩL #L#H H5HL #L#H [H5Hų}L #Lw#H *H5H蔳LL U#LF#H H5HcL $#L#H H5 H2L #L#H H5y HL #L#H fH5\!HвL #L#H 5H59!H蟲WL `#LQ#H H5"Hn&L /#L #H H5"H=L #L#H H5#H ħL #L#H qH5#H۱L #L#H @H5$H誱bL k#L\#H H5u$Hy1L :#L+#H H5\%HHL #L#H H5=%HϦL #L#H |H5 0HL #L#H KH51H走mL v#Lg#H H52H脰L #L#H H5H ŞL #L#H rH5HܨL #L#H AH5H諨cL l#L]#H H5yHz2L ;#L,#H H5]HIL #L#H H5@HНL #L#H }H5)HL #L#H LH5H趧nL w#Lh#H H5H腧=L F#L7#H H5HT L #L#H H5H#ۜL #L#H H5HL #L#H WH5HyL #Ls#H &H5mH萦HL Q#LB#H H5OH_L #L#H H53H.L #L#H H5*HL #L#H bH5H̥L #L~#H 1H5H蛥SL \#LM#H H5Hj"L +#L#H H5kH9L #L#H H5OHL #L#H mH51HפL #L#H <H5H覤^L g#LX#H H5Hu-L 6#L'#H H5HDL #L#H H5H˙L #L#H xH5HL #L#H GH5|H豣iL r#Lc#H H5] H耣8L A#L2#H H5F HOL #L#H H5)H֘L #L#H H5 HL #L#H RH5 H輢tL }#Ln#H !H50H苢CL L#L=#H H51HZL #L #H H52H)L #L#H H5u3HL #L#H ]H5U4HǡL #Ly#H ,H565H薡NL W#LH#H H56HeL &#L#H H5@H4L #L#H H5@HL #L#H hH5AHҠL #L#H 7H5BH衠YL b#LS#H H5uPHp(L 1#L"#H H5UQH?L #L#H H5>RHƕL #L#H sH5`HݟL #L#H BH5aH謟dL m#L^#H H5bH{3L <#L-#H H5cHJL #L#H H5dHєL #L#H ~H5eHL #L#H MH5kpH跞oL x#Li#H H5GH膞>L G#L8#H H5&HU L #L#H H5H$ܓL #L#H H5HL #L#H XH5HzL #Lt#H 'H5H葝IL R#LC#H H5yH`L !#L#H H5]H/L #L#H H5=HL #L#H cH5 H͜L #L#H 2H5PH蜜TL ]#LN#H H5QHk#L ,#L#H H5RH:L #L#H H5SH L #L#H nH5TH؛L #L#H =H5kUH觛_L h#LY#H H5OVHv.L 7#L(#H H5<WHEL #L#H H5)PH̐L #L#H yH5 QHL #L#H HH5RH貚jL s#Ld#H H5SH聚9L B#L3#H H5THPL #L#H H5UH׏L #L#H H5aVHL #L#H SH5JWH轙uL ~#Lo#H "H53H茙DL M#L>#H H5H[L #L #H H5H*L #L#H H5HL #L#H ^H5HȘL #Lz#H -H5H藘OL X#LI#H H5 HfL '#L#H H5 H5L #L#H H5s H藜HH#肜HIH#L#H >H5<1H谗hL #Lr#H H5H7L P#LA#H H5HNL #L#H H5HՌL #L#H }H5HL #L#H LH5H軖sL #L}#H H5]H芖BL [#LL#H H5:HYL *#L#H H5H(L #L#H H5HL #L#H WH5Hƕ~L #L#H &H5H蕕ML f#LW#H H5HdL 5#L&#H H5mH3L #L#H H5HHL #L#H bH50HєL #L#H 1H5H蠔XL q#Lb#H H5ĉHo'L @#L1#H H5H>L #L#H H5H ʼnL #L#H mH5HܓL #L#H <H5kH諓cL |#Lm#H H5FHz2L K#L<#H H5HIL #L #H H5HЈL #L#H xH5HL #L#H GH5H趒nL #Lx#H H5H腒=L V#LG#H H5aHT L %#L#H H59 H#ۇL #L#H H5 HL #L#H RH5 HyL #L#H !H5 H萑HL a#LR#H H5H_L 0#L!#H H5H.L #L#H H5i HL #L#H ]H5D!H̐L #L#H ,H5$"H蛐SL l#L]#H H5#Hj"L ;#L,#H H5$H9L #L#H H5%HL #L#H hH5&H׏L #L#H 7H5'H規^L w#Lh#H H5](Hu-L F#L7#H H5<0HDL #L#H H51H˄L #L#H sH52HL #L#H BH53H豎iL #Ls#H H54H耎8L Q#LB#H H54HOL #L#H H5j`HփL #L#H ~H5HaHL #L#H MH5%bH輍tL #L~#H H5cH苍CL \#LM#H H5dHZL +#L#H H5eH)L #L#H H5fHL #L#H XH5pHnjL #L#H 'H5iH薌NL g#LX#H H5IHeL 6#L'#H H5&H4L #L#H H5HL #L#H cH5HҋL #L#H 2H5H衋YL r#Lc#H H5Hp(L A#L2#H H5@H?L #L#H H5s@HƀL #L#H nH5VH݊L #L#H =H59H謊dL }#Ln#H H5H{3L L#L=#H H5HJL #L #H H5HL #L#H yH5HL #L#H HH5H跉oL #Ly#H H5hH膉>L W#LH#H H5HHU L &#L#H H5!H$~L #L#H H5H~L #L#H SH5Hˆz~L #L#H "H5H葈I~L b#LS#H H5H`~L 1#L"#H H5H/}L #L#H H5oH}L #L#H ^H5YH͇}L #L#H -H5E@H蜇T}L m#L^#H H5+Hk#}HH<#}HIH,#|L#H H51H|L #L#H H5H|L #L#H H5H赆m|L #L#H ^H5H脆<|L e#LV#H -H5cHS |L 4#L%#H H5?H"{L #L#H H5H{L #L#H H5Hx{L #L#H iH5H菅G{L p#La#H 8H5 H^{L ?#L0#H H5 H-zL #L#H H5~ HzL #L#H H5] H˄zL #L#H tH5< H蚄RzL {#Ll#H CH5Hi!zL J#L;#H H5yH8yL #L #H H5HyL #L#H H5syHփyL #L#H H5jyH襃]yL #Lw#H NH5ayHt,yL U#LF#H H5XyHCxL $#L#H H5OyHxL #L#H H5FyHxL #L#H H5=yH谂hxL #L#H YH5^H7xL `#LQ#H (H5;HNxL /#L #H H5HwL #L#H H5HwL #L#H H5pxH軁swL #L#H dH5H芁BwL k#L\#H 3H5HYwL :#L+#H H5H(vL #L#H H5w HvL #L#H H5R!Hƀ~vL #L#H oH5<"H蕀MvL v#Lg#H >H5(#HdvL E#L6#H H50w$H3uL #L#H H5w%HuL #L#H H5w&HuL #L#H zH5 w'HXuL #Lr#H IH5 w(Ho'uL P#LA#H H5)H>tL #L#H H5*H tL #L#H H5+H~tL #L#H H5,H~ctL #L}#H TH5-Hz~2tL [#LL#H #H5v.HI~tL *#L#H H5y/H~sL #L#H H5a0H}sL #L#H H5?1H}nsL #L#H _H5"2H}=sL f#LW#H .H53HT} sL 5#L&#H H54H#}rL #L#H H55H|rL ӿ#LĿ#H H56H|yrL #L#H jH57H|HrL q#Lb#H 9H58H_|rL @#L1#H H5m9H.|qL #L#H H5N:H{qL ޾#LϾ#H H5/;H{qL #L#H uH5s<H{SqL |#Lm#H DH5ws=Hj{"qL K#L<#H H5fs>H9{pL #L #H H5?H{pL #Lڽ#H H5n@HzpL #L#H H5rAHz^pL #Lx#H OH5rBHuz-pL V#LG#H H5rCHDzoL %#L#H H5rDHzoL #L#H H5rEHyoL ü#L#H H5rFHyioL #L#H ZH5rGHy8oL a#LR#H )H5rHHOyoL 0#L!#H H5rIHynL #L#H H5rJHxnL λ#L#H H5pKHxtnL #L#H eH5XrLHxCnL l#L]#H 4H5OrMHZxnL ;#L,#H H5FrNH)xmL #L#H H5=rOHwmL ٺ#Lʺ#H H5PHwmL #L#H pH5QHwNmL w#Lh#H ?H5qRHewmL F#L7#H H57SH4wlL #L#H H5$THwlL #Lչ#H H5gqUHvlL #L#H {H5VHvYlL #Ls#H JH5WHpv(lL Q#LB#H H5pXH?vkL #L#H H5YHvkL #L#H H5pZHukL #L#H H5B[HudkL #L~#H UH5*\H{u3kL \#LM#H $H5]HJukL +#L#H H5^HujL #L#H H5_HtjL ɷ#L#H H5`HtojL #L#H `H5aHt>jL g#LX#H /H5bHUt jL 6#L'#H H5cH$tiL #L#H H5kdHsiL Զ#LŶ#H H5IeHsziL #L#H kH50fHsIiL r#Lc#H :H5gH`siL A#L2#H H5hH/shL #L#H H5iHrhL ߵ#Lе#H H5jHrhL #L#H vH5kHrThL }#Ln#H EH5lHkr#hL L#L=#H H57mmH:rgL #L #H H5ZnH rgL #L۴#H H5loHqgL #L#H H5pHq_gL #Ly#H PH5lqHvq.gL W#LH#H H5rHEqfL &#L#H H5lsHqfL #L#H H5ltHpfL ij#L#H H5luHpjfL #L#H [H5lvHp9fL b#LS#H *H5lwHPpfL 1#L"#H H5lxHpeL #L#H H5lyHoeL ϲ#L#H H5lzHoueL #L#H fH5l{HoDeL m#L^#H 5H5|H[oeL <#L-#H H5Wl}H*odL #L#H H5Vl~HndL ڱ#L˱#H H5HndL #L#H qH5$lHnOdL x#Li#H @H5lHfndL G#L8#H H5H5ncL #L#H H5kHncL #Lְ#H H5HmcL #L#H |H5HmZcL #Lt#H KH5Hqm)cL R#LC#H H5{H@mbL !#L#H H5kHmbL #L#H H5 kHlbL #L#H H5HlebL #L#H VH5jH|l4bL ]#LN#H %H5jHKlbL ,#L#H H5jHlaL #L#H H5jHkaL ʮ#L#H H5jHkpaL #L#H aH5jHk?aL h#LY#H 0H5jHVkaL 7#L(#H H5jH%k`L #L#H οH5yjHj`L խ#Lƭ#H H5pjHj{`L #L#H lH5_jHjJ`L s#Ld#H ;H5VjHaj`L B#L3#H H5H0j_L #L#H پH5Hi_L #LѬ#H H5tHi_L #L#H wH5iHiU_L ~#Lo#H FH5iHli$_L M#L>#H H5iH;i^L #L #H H5iH i^L #Lܫ#H H5iHh^L #L#H H5iHh`^L #Lz#H QH5iHwh/^L X#LI#H H5iHFh]L '#L#H H5Hh]L #L#H H5iHg]L Ū#L#H H5Hgk]L #L#H \H5}Hg:]L c#LT#H +H5.iHQg ]L 2#L##H H5iH g\L #L#H ɻH5Hf\L Щ#L#H H5Hfv\L #L#H gH5HfE\L n#L_#H 6H5H\f\L =#L.#H H5H+f[L #L#H ԺH5He[L ۨ#L̨#H H5gHe[L #L#H rH5FHeP[L y#Lj#H AH5gHge[L H#L9#H H5H6eZL #L#H ߹H5rgHeZL #Lק#H H5igHdZL #L#H }H5Hd[ZL #Lu#H LH5qHrd*ZL S#LD#H H5gHAdYL "#L#H H5(HdYL #L#H H5 HcYL #L#H H5HcfYL #L#H WH5H}c5YL ^#LO#H &H5HLcYL -#L#H H5HcXL #L#H ķH5zHbXL ˥#L#H H5eHbqXL #L#H bH55Hb@XL i#LZ#H 1H5HWbXL 8#L)#H H5H&bWL #L#H ϶H5eHaWL ֤#LǤ#H H5eHa|WL #L#H mH5eHaKWL t#Le#H <H5<HbaWL C#L4#H H5$H1aVL #L#H ڵH5 HaVL #Lң#H H5|dH`VL #L#H xH5kdH`VVL #Lp#H GH5bdHm`%VL N#L?#H H5idH<`UL #L#H H5XdH `UL #Lݢ#H H5GdH_UL #L#H H56dH_aUL #L{#H RH5%dHx_0UL Y#LJ#H !H5dHG_TL (#L#H H5dH_TL #L#H H5 H^TL ơ#L#H H5H^lTL #L#H ]H5ܽH^;TL d#LU#H ,H5ŽHR^ TL 3#L$#H H5H!^SL #L#H ʲH5H]SL Ѡ#L #H H5H]wSL #L#H hH5iH]FSL o#L`#H 7H5RH]]SL >#L/#H H5;H,]RL #L#H ձH5$H\RL ܟ#L͟#H H5 H\RL #L#H sH5H\QRL z#Lk#H BH5uaHh\ RL I#L:#H H5daH7\QL #L #H H5SaH\QL #L؞#H H5BaH[QL #L#H ~H51aH[\QL #Lv#H MH5 aHs[+QL T#LE#H H5aHB[PL ##L#H H5`H[PL #L#H H5`HZPL #L#H H5`HZgPL #L#H XH5`H~Z6PL _#LP#H 'H5`HMZPL .#L#H H5`HZOL #L#H ŮH5`HYOL ̜#L#H H5`HYrOL #L#H cH5v`HYAOL j#L[#H 2H5e`HXYOL 9#L*#H H5T`H'YNL #L#H ЭH5C`HXNL כ#Lț#H H52`HX}NL #L#H nH5 HXLNL u#Lf#H =H5HcXNL D#L5#H H5ݸH2XML #L#H ۬H5ƸHXML #LӚ#H H5HWML #L#H yH5HWWML #Lq#H HH5HnW&ML O#L@#H H5jH=WLL #L#H H5SH WLL #Lޙ#H H5<HVLL #L#H H5%HVbLL #L|#H SH5HyV1LL Z#LK#H "H5HHVLL )#L#H H5HVKL #L#H H5ɷHUKL ǘ#L#H H5HUmKL #L#H ^H5HUH55"HdOEL E#L6#H H5#H3ODL #L#H ܣH5$HODL #Lԑ#H H5%HNDL #L#H zH5Ȳ&HNXDL #Lr#H IH5'HoN'DL P#LA#H H5(H>NCL #L#H H5o)H NCL #Lߐ#H H5R*HMCL #L#H H55+HMcCL #L}#H TH5,HzM2CL [#LL#H #H5W-HIMCL *#L#H H5ױHMBL #L#H H5HLBL ȏ#L#H H5QHLnBHFHH5H.KHtYHHHHN!H oH53H8H1[]AHHHH_N!H5pyH8H1[]AH5(1HOAAHoEHH5HJHtYH:HHHM!H H5"3H8H1[]BAH HHHM!H5xH8H1[]AH5H@=AHDHH5HIHtYHGHH^M!H `H52H8H1[]@HpGHH.M!H5?xH8H1[]@H5H@@H;DHH5HcIHtYHGHHL!H ۯH51H8H1[]@HFHHL!H5wH8H1[]?H5H? @HCHH5HHHtYHlFHH*L!H YH5T1H8H1[]t?Ho?HCHH5rtH/HHtYHEHHK!H LtH50H8H1[]>HEHH`K!H5qvH8H1[]>H5t1HP>>HpBHH5sHGHtYH;EHHJ!H sH5#0H8H1[]C>H EHHJ!H5uH8H1[]>H5WsH=>>HAHH5OsHFHtYHDHH_J!H )sH5/H8H1[]=HqDHH/J!H5@uH8H1[]=H5rH==H9HItfH8HHHHt?L'LHl1HH[]A\HH_@HEHP0{HCHP0@Hx8HHHHu HCHP011]#HHH[]A\fDHE1HHHEmHEHP0^f.ATHUSHHHD$@HI1H6HHT$H5>1Ho2HEHHHEtvLH߾V6H8H|$HH@HItfHn7HHHHt?LLH/HH[]A\HH_@HEHP0{HCHP0@H7HHHHu HCHP011#HHH[]A\fDHE1HHHEmHEHP0^f.UL8H L#1SHHHHH(HD$LL$HD$D$ H$1$AuH(H[]fDH{T$Ht$4HHt&H~HH.H(H[]f11#H롐H\$Hl$HHY8HHt)H)HHn.HH\$Hl$H@H#H\$1Hl$1Hffff.Hl$H\$HLd$Ll$Lt$H(HtH?t1HH|uHu,L%8#I$LH$Hl$Ld$Ll$Lt$ H(H[>HItH~E1J|1AHIt9HHLL>IHHIu IFLP0IL9I$HHI$tE1dID$LP0f.AWH I#1AVAUATUSHHHHbHHLD$HIH4HI~(E1fDLLI *HH8M9IHHIN I$HHI$! H{HP.HIz|$key_size=%d public_exponent=%luUnsupported representation kind (%d)KU_DIGITAL_SIGNATURE_OR_NON_REPUDIATIONDigital Signature or Non-RepudiationKU_KEY_AGREEMENT_OR_ENCIPHERMENTKey Agreement or Data EnciphermentNS_CERT_TYPE_OBJECT_SIGNING_CAEXT_KEY_USAGE_STATUS_RESPONDERcertificateUsageSSLServerWithStepUpcertificateUsageEmailRecipientcertificateUsageUserCertImportcertificateUsageProtectedObjectSignercertificateUsageStatusResponderAccessing non-existent segmentCertVerifyLog index out of rangePKCS12 decode validate bags failedPKCS12 decode import bags failedmalformed raw ascii string bufferError, shutdown callback expected args to be tuple shutdown callback: out of memory exception in shutdown callback Error, shutdown callback expected int result, not %.50s must be a string or None, not %.200s%s must be a string, not %.200sPKCS12 nickname collision callback undefined PKCS12 nickname collision callback: out of memory exception in PKCS12 nickname collision callback Error, PKCS12 nickname collision callback expected tuple result with 2 values. Error, PKCS12 nickname collision callback expected 1st returned item to be string or None. Error, PKCS12 nickname collision callback expected 2nd returned item to be boolean. PKCS12_default_nickname_collision_callback: CERT_MakeCANickname() returned existing nickname GeneralName type name not found: %uPKCS12 cipher name not found: %ldThe fips_slot_description attribute value must be a string or unicodeThe db_slot_description attribute value must be a string or unicodeThe crypto_slot_description attribute value must be a string or unicodeThe fips_token_description attribute value must be a string or unicodeThe db_token_description attribute value must be a string or unicodeThe crypto_token_description attribute value must be a string or unicodeThe library_description attribute value must be a string or unicodeThe manufacturer_id attribute value must be a string or unicodePKCS12 cipher name not found: %sGeneralName type name not found: %sS:pk11_attribute_type_from_nameattribute type name not found: %luS:key_mechanism_type_from_namemalformed raw ASN.1 BMP string bufferCannot delete the min_password_len attributeThe min_password_len attribute value must be an integerCannot delete the public_exponent attributepublic_exponent must be a integer, not %.200sCannot delete the key_size attributekey_size must be a integer, not %.200sCannot delete the password_required attributeThe password_required attribute value must be a booleanraw ASN.1 BMP string length must be multiple of 2malformed raw ASN.1 Universal string bufferraw ASN.1 Universal string length must be multiple of 4Authority Information Access: [%zd total]CRL Distribution Points: [%zd total]failed to convert oid string "%s" to SECItemcould not convert "%s" to OID tagoid must be a string, an integer, or a SecItem, not %.200sSecItem indices must be integers, not %.200sindices must be integers or strings, not %.200s(%d least significant bits unused)unable to create PK11Context objectunable to create PK11Slot objectmust be int, float or None, not %.50scannot decode trust string '%s'when '%.50s' object has key_type=%s there is no attribute 'dsa'when '%.50s' object has key_type=%s there is no attribute 'rsa'O!|iiz:der_universal_secitem_fmt_linespassword_required=%s, min_password_len=%s, manufacturer_id=%s, library_description=%s, crypto_token_description=%s, db_token_description=%s, fips_token_description=%s, crypto_slot_description=%s, db_slot_description=%s, fips_slot_description=%slookup dict already contains %s_AddIntConstantWithLookup() needs module as first argmodule '%s' already contains %scert distnames must be a list or tupleitem must be a %s containing a DistNameno extension with OID %s foundCertAttribute index out of rangekey_params for %s mechanism must be %.50s, not %.50snot enough memory to copy buffer of size %zd into SecItemBad file, must be pathname or file objectprime must be SecItem or buffer compatiblesubprime must be SecItem or buffer compatiblebase must be SecItem or buffer compatibleprime, subprime and base must all be provided or none of them provided, not a mixdata must be SecItem or buffer compatibledata must be SecItem, buffer compatible or NoneCERT_GetCertificateRequestExtensions failedcannot decode Basic Constraintsto many AVA items, maximum is %d, received %zditem %zd must be an AVA object, not %.200smust be an RDN object or list or tuple of RDN objects, not %.200sto many RDN items, maximum is %d, received %zditem %zd must be an RDN object, not %.200scannot convert AVA type to OID stringunable to escape AVA value stringFailed to convert AVA value to stringunable to convert "%s" to known OIDAVA value must be a string, not %.200scould not create AVA, oid tag = %d, value = "%s"cannot decode Authority Access Info extensionGeneralName index out of rangeFailed to parse CRL Distribution Point Extension|O!:disable_ocsp_default_responder|O!:enable_ocsp_default_responderO!OO:set_ocsp_default_responderfailed to find certs for nickname = "%s"no certs with keys for nickname = "%s"export context creation failedPKCS12 add password integrity failedkey or cert safe creation failedcannot create thread local data dictcannot store thread local data dictcannot store object in thread local data dictO:pkcs12_set_nickname_collision_callbackli:pkcs12_set_preferred_cipherFailed to enable %s (%lx) pkcs12 cipherFailed to %s %s (%lx) pkcs12 cipherno line ending after PEM BEGINkkO!|O&:create_context_by_sym_keyline_fmt_tuples[%zd] must be a tuple, not %.200sline_fmt_tuples[%zd] tuple must have 1-3 items, not %zd itemsitem[0] in the tuple at line_fmt_tuples[%zd] list must be an integer, not %.200sitem[0] in the tuple at line_fmt_tuples[%zd] list must be a non-negative integer, not %lditem[1] in the tuple at line_fmt_tuples[%zd] list must be a string, not %.200sitem[2] in the tuple at line_fmt_tuples[%zd] list must be a string, not %.200sunable to determine resulting hash length for hash_alg = %sinvalid hexadecimal string beginning at offset %td "%s"byte count must be non-negativePK11 password callback undefined Error, PK11 password callback expected args to be tuple PK11 password callback: out of memory exception in PK11 password callback Error, PK11 password callback expected string result or None. password conversion to UCS2 failedcannot decode DER encoded signed dataID: %s, Serial Number: %s, Issuer: [%s]Relative Distinguished Name: %sunknown distribution point type (%d), expected generalName or relativeDistinguishedNameInvalid mask generation algorithm parameterscertUsageProtectedObjectSignercertificateUsageCheckAllUsagescrlEntryReasonAffiliationChangedcrlEntryReasonCessationOfOperationcrlEntryReasoncertificatedHoldcrlEntryReasonPrivilegeWithdrawnCKM_WTLS_MASTER_KEY_DERIVE_DH_ECCCKM_WTLS_SERVER_KEY_AND_MAC_DERIVECKM_WTLS_CLIENT_KEY_AND_MAC_DERIVECKA_HASH_OF_SUBJECT_PUBLIC_KEYSEC_OID_ISO_SHA_WITH_RSA_SIGNATURESEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTIONSEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTIONSEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTIONSEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTIONSEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBCSEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBCSEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBCSEC_OID_PKCS7_SIGNED_ENVELOPED_DATASEC_OID_PKCS9_UNSTRUCTURED_NAMESEC_OID_PKCS9_COUNTER_SIGNATURESEC_OID_PKCS9_CHALLENGE_PASSWORDSEC_OID_PKCS9_UNSTRUCTURED_ADDRESSSEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTESSEC_OID_PKCS9_SMIME_CAPABILITIESSEC_OID_AVA_ORGANIZATIONAL_UNIT_NAMESEC_OID_NS_CERT_EXT_NETSCAPE_OKSEC_OID_NS_CERT_EXT_ISSUER_LOGOSEC_OID_NS_CERT_EXT_SUBJECT_LOGOSEC_OID_NS_CERT_EXT_REVOCATION_URLSEC_OID_NS_CERT_EXT_CA_REVOCATION_URLSEC_OID_NS_CERT_EXT_CA_CRL_URLSEC_OID_NS_CERT_EXT_CA_CERT_URLSEC_OID_NS_CERT_EXT_CERT_RENEWAL_URLSEC_OID_NS_CERT_EXT_CA_POLICY_URLSEC_OID_NS_CERT_EXT_HOMEPAGE_URLSEC_OID_NS_CERT_EXT_ENTITY_LOGOSEC_OID_NS_CERT_EXT_USER_PICTURESEC_OID_NS_CERT_EXT_SSL_SERVER_NAMESEC_OID_NS_CERT_EXT_LOST_PASSWORD_URLSEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIMESEC_OID_NS_KEY_USAGE_GOVT_APPROVEDSEC_OID_X509_SUBJECT_DIRECTORY_ATTRSEC_OID_X509_PRIVATE_KEY_USAGE_PERIODSEC_OID_X509_BASIC_CONSTRAINTSSEC_OID_X509_CERTIFICATE_POLICIESSEC_OID_X509_POLICY_CONSTRAINTSSEC_OID_PKCS12_PKCS8_KEY_SHROUDINGSEC_OID_PKCS12_CERT_AND_CRL_BAG_IDSEC_OID_PKCS12_X509_CERT_CRL_BAGSEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBCSEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBCSEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBCSEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DESSEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGESTSEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGESTSEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGESTSEC_OID_PKIX_CPS_POINTER_QUALIFIERSEC_OID_PKIX_USER_NOTICE_QUALIFIERSEC_OID_PKIX_OCSP_BASIC_RESPONSESEC_OID_PKIX_OCSP_ARCHIVE_CUTOFFSEC_OID_PKIX_OCSP_SERVICE_LOCATORSEC_OID_PKIX_REGCTRL_AUTHENTICATORSEC_OID_PKIX_REGCTRL_PKIPUBINFOSEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONSSEC_OID_PKIX_REGCTRL_OLD_CERT_IDSEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEYSEC_OID_PKIX_REGINFO_UTF8_PAIRSSEC_OID_PKIX_REGINFO_CERT_REQUESTSEC_OID_EXT_KEY_USAGE_SERVER_AUTHSEC_OID_EXT_KEY_USAGE_CLIENT_AUTHSEC_OID_EXT_KEY_USAGE_CODE_SIGNSEC_OID_EXT_KEY_USAGE_EMAIL_PROTECTSEC_OID_EXT_KEY_USAGE_TIME_STAMPSEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBCSEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBCSEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBCSEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBCSEC_OID_PKCS12_SAFE_CONTENTS_IDSEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_IDSEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_IDSEC_OID_PKCS12_V1_SECRET_BAG_IDSEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_IDSEC_OID_X942_DIFFIE_HELMAN_KEYSEC_OID_NETSCAPE_RECOVERY_REQUESTSEC_OID_NS_CERT_EXT_SCOPE_OF_USESEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMANSEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCESEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCESEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTIONSEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTIONSEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTIONSEC_OID_ANSIX962_EC_PUBLIC_KEYSEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURESEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGESTSEC_OID_ANSIX962_EC_PRIME192V1SEC_OID_ANSIX962_EC_PRIME192V2SEC_OID_ANSIX962_EC_PRIME192V3SEC_OID_ANSIX962_EC_PRIME239V1SEC_OID_ANSIX962_EC_PRIME239V2SEC_OID_ANSIX962_EC_PRIME239V3SEC_OID_ANSIX962_EC_PRIME256V1SEC_OID_ANSIX962_EC_C2PNB163V1SEC_OID_ANSIX962_EC_C2PNB163V2SEC_OID_ANSIX962_EC_C2PNB163V3SEC_OID_ANSIX962_EC_C2PNB176V1SEC_OID_ANSIX962_EC_C2TNB191V1SEC_OID_ANSIX962_EC_C2TNB191V2SEC_OID_ANSIX962_EC_C2TNB191V3SEC_OID_ANSIX962_EC_C2ONB191V4SEC_OID_ANSIX962_EC_C2ONB191V5SEC_OID_ANSIX962_EC_C2PNB208W1SEC_OID_ANSIX962_EC_C2TNB239V1SEC_OID_ANSIX962_EC_C2TNB239V2SEC_OID_ANSIX962_EC_C2TNB239V3SEC_OID_ANSIX962_EC_C2ONB239V4SEC_OID_ANSIX962_EC_C2ONB239V5SEC_OID_ANSIX962_EC_C2PNB272W1SEC_OID_ANSIX962_EC_C2PNB304W1SEC_OID_ANSIX962_EC_C2TNB359V1SEC_OID_ANSIX962_EC_C2PNB368W1SEC_OID_ANSIX962_EC_C2TNB431R1SEC_OID_NETSCAPE_AOLSCREENNAMESEC_OID_AVA_GENERATION_QUALIFIERSEC_OID_PKCS9_EXTENSION_REQUESTSEC_OID_ANSIX962_ECDSA_SIGNATURE_RECOMMENDED_DIGESTSEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGESTSEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURESEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURESEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURESEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURESEC_OID_X509_HOLD_INSTRUCTION_CODESEC_OID_X509_DELTA_CRL_INDICATORSEC_OID_X509_ISSUING_DISTRIBUTION_POINTSEC_OID_X509_INHIBIT_ANY_POLICYSEC_OID_X509_SUBJECT_INFO_ACCESSSEC_OID_ISO_SHA1_WITH_RSA_SIGNATUREocspMode_FailureIsVerificationFailureocspMode_FailureIsNotAVerificationFailureSigned Extensions: (%zd total)der_universal_secitem_fmt_linescert_general_name_type_from_namepkcs12_set_nickname_collision_callbackdisable_ocsp_default_responderthe SecItem type (si* constant)number of octets in SecItem bufferalgorithm id TAG as a enumerated constant (e.g. tag)algorithm id as string descriptionalgorithm parameters as SecItemkey prime value, also known as pkey subprime value, also known as qkey base value, also known as gDSA P,Q,G params as a KEYPQGParams objectoriginal der encoded ASN1 signed data as a SecItem objectsigned data as a SecItem objectsignature algorithm as a AlgorithmID objectkey type (e.g. rsaKey, dsaKey, etc.) as an intRSA key as a RSAPublicKey objectextension is critical flag (boolean)oid of extension as a enumerated constant (e.g. tag)certificate not valid before this time (floating point value expressed as microseconds since the epoch, midnight January 1st 1970 UTC)certificate not valid before this time (string value expressed, UTC)certificate not valid after this time (floating point value expressed as microseconds since the epoch, midnight January 1st 1970, UTC)certificate not valid after this time (string value expressed, UTC)certificate subject as a `DN` objectcertificate issuer as a `DN` objectcertificate signature algorithmcertificate signature as SignedData objectraw certificate DER data as data buffercertificate SSL trust flags as array of strings, or None if trust is not definedcertificate email trust flags as array of strings, or None if trust is not definedcertificate object signing trust flags as array of strings, or None if trust is not definedcertificate SSL trust flags as integer bitmask, or None if not definedcertificate email trust flags as integer bitmask, or None if not definedcertificate object signing trust flags as integer bitmask, or None if not definedcertificate public info as SubjectPublicKeyInfo objectcertificate extensions as a tuple of CertificateExtension objectsinteger bitmask of NS_CERT_TYPE_* flags, see `nss.cert_type_flags()`has_protected_authentication_pathreturns the CRL Issuer as a `GeneralName` object if defined, returns None if not definedmethod TAG as a enumerated constant (e.g. tag) location as a `nss.GeneralName` objectThe OID (e.g. type) of the AVA as a SecItemThe OID tag enumerated constant (i.e. SEC_OID_AVA_*) of the AVA's typeThe value of the AVA as a SecItemThe value of the AVA as a UTF-8 encoded stringReturns the email address member as a string. Returns None if not found.Returns the common name member (i.e. CN) as a string. Returns None if not found.Returns the country name member (i.e. C) as a string. Returns None if not found.Returns the locality name member (i.e. L) as a string. Returns None if not found.Returns the state name member (i.e. ST) as a string. Returns None if not found.Returns the organization name member (i.e. O) as a string. Returns None if not found.Returns the organizational unit name member (i.e. OU) as a string. Returns None if not found.Returns the domain component name member (i.e. DC) as a string. Returns None if not found.Returns the certificate uid member (i.e. UID) as a string. Returns None if not found.Returns the general name as a stringReturns the general name type enumerated constantReturns the general name type enumerated constant as a stringReturns the type of the general name as a string (e.g. "URI")Returns the key id as a SecItemreturns boolean, True if certificate is a certificate authority (i.e. CA)returns max path length constraint as an integertype TAG as a enumerated constant (e.g. tag) tuple of CertificateExtension objects if type_tag == SEC_OID_PKCS9_EXTENSION_REQUEST else tuple of SecItem objectscertificate request attributes as a tuple of CertAttribute objectsboolean indicating if a password is requiredmanufacturer id (max 32 chars)SEC OID tag indicating what type of PKCS12 item this isboolean indicating if this is a cert with a private keysigned certificate DER data as SecItem object, or None if does not existcertificate as Certificate object, or None if does not existfriendly_name as unicode object, or None if does not existshroud algorithm id certificate as AlgorithmID object, or None if does not existreturns the certificate as a `Certificate` objectreturns the error code as an integerreturns the chain position as an integer%s is uninitializedO|i:PKCS12DecodeItemO|i:CertAttribute:AuthorityInfoAccessO|i:CRLDistributionPt|O|ik:RSAGenParams<%s object at %p>FalseTrueis_ca=%s path_len=%dKU_DIGITAL_SIGNATUREDigital SignatureKU_NON_REPUDIATIONNon-RepudiationKU_KEY_ENCIPHERMENTKey EnciphermentKU_DATA_ENCIPHERMENTData EnciphermentKU_KEY_AGREEMENTKey AgreementKU_KEY_CERT_SIGNCertificate SigningKU_CRL_SIGNCRL SigningKU_ENCIPHER_ONLYEncipher OnlyKU_NS_GOVT_APPROVEDGovernment Approvedunknown bit flags %#xi|i:key_usage_flagsNS_CERT_TYPE_SSL_CLIENTSSL ClientNS_CERT_TYPE_SSL_SERVERSSL ServerNS_CERT_TYPE_EMAILEmailNS_CERT_TYPE_OBJECT_SIGNINGObject SigningNS_CERT_TYPE_RESERVEDReservedNS_CERT_TYPE_SSL_CASSL CANS_CERT_TYPE_EMAIL_CAEmail CAObject Signing CAEXT_KEY_USAGE_TIME_STAMPKey Usage TimestampKey Usage Status Responderi|i:cert_type_flagsCERTDB_TERMINAL_RECORDTerminal RecordCERTDB_TRUSTEDTrustedCERTDB_SEND_WARNWarn When SendingCERTDB_VALID_CAValid CACERTDB_TRUSTED_CACERTDB_NS_TRUSTED_CANetscape Trusted CACERTDB_USERCERTDB_TRUSTED_CLIENT_CATrusted Client CACERTDB_GOVT_APPROVED_CAStep-upi|i:trust_flagsi:nss_init_flagsNSS_INIT_READONLYRead OnlyNSS_INIT_NOCERTDBNo Certificate DatabaseNSS_INIT_NOMODDBNo Module DatabaseNSS_INIT_FORCEOPENForce OpenNSS_INIT_NOROOTINITNo Root InitNSS_INIT_OPTIMIZESPACEOptimize SpaceNSS_INIT_PK11THREADSAFEPK11 Thread SafeNSS_INIT_PK11RELOADPK11 ReloadNSS_INIT_NOPK11FINALIZENo PK11 FinalizeNSS_INIT_RESERVEDi|i:cert_usage_flagscertificateUsageSSLClientcertificateUsageSSLServerSSL Server With StepUpcertificateUsageSSLCAcertificateUsageEmailSignerEmail SignerEmail RecipientcertificateUsageObjectSignerUser Certificate ImportcertificateUsageVerifyCAVerify CAProtected Object SignercertificateUsageAnyCAAny CAutcfromtimestamp(d)cannot get thread statenickname_collision_callbackSecItem index out of range|i:get_reasonsshutdown callback undefined O!|i:x509_cert_typeO!|i:x509_key_usageoid tag not found: %#xunable to create objectmechanism name not found: %lu(O)utf-8S:pkcs12_cipher_from_namelowerk:pkcs12_cipher_nameS:general_name_type_from_namek:general_name_type_nameS:crl_reason_from_nameCRL reason name not found: %sk:crl_reason_nameCRL reason name not found: %uattribute name not found: %sk:pk11_attribute_type_namemechanism name not found: %sk:key_mechanism_type_name|OOOOOOOOOO:InitParametersRDN index out of range%s:|i:format_linesPassword RequiredMinimum Password LengthManufacturer IDLibrary DescriptionCrypto Token DescriptionDatabase Token DescriptionFIPS Token DescriptionCrypto Slot DescriptionDatabase Slot DescriptionFIPS Slot DescriptionIs CAPath Length%d PKCS12 Decode ItemsItem %d(i)Public Key Algorithmunknown sec ANS.1 time typeInfo [%zd]:Point [%zd]:O!:add_rdnOID.oid tag name not found: %sO:oid_tagO:oid_tag_nameO:has_keyoid name unknown: "%s"oid unknownoid name not found: "%s"oid not foundiO:make_line_fmt_tuples|iz:der_to_hexmalformed ASN.1 DER data|iz:to_hext#:cipher_opt#:digest_opO!:clone_contextO!:digest_keykO&O!kki:unwrap_sym_keykO&kki:deriveO!:nss_shutdown_contextkO&i:key_genk:get_best_key_lengthfailed to logout of slot|O!:authenticateUnable to authenticateunable to enable slotunable to disable slotO!O&:check_ocsp_statusO!O!lO&:verifyO!O!l:verify_now|i:is_ca_certNI|O&i:check_valid_timess:verify_hostnamesO&O&:set_trust_attributesO!|i:find_crl_by_certs|i:find_crl_by_nameRSAFortezzaDiffie HelmanKey Exchange AlgorithmElliptic Curveunknown(%#x)RSA Public KeyDSA Public KeyKey Typek:pk11_disabled_reason_namePK11_DIS_USER_SELECTEDPK11_DIS_NONEPK11_DIS_COULD_NOT_INIT_TOKENPK11_DIS_TOKEN_VERIFY_FAILEDPK11_DIS_TOKEN_NOT_PRESENTk:pk11_disabled_reason_struser disabledno reasoncould not initialize tokencould not verify tokentoken not presentt#:sha512_digestt#:sha256_digestt#:sha1_digestt#:md5_digestBad type, must be SecItemO!O!lO&:verify_with_logKN[%d] %s(null)Other Name (%s)Other NameRFC822 NameDNS nameX400 AddressDirectory NameEDI PartyIP AddressRegistered IDunknown type [%d]Fingerprint (MD5)Fingerprint (SHA1)Signature AlgorithmO|iz:cert_data_to_hex%d (%#x)Public ValueModulusExponentmodule '%s' has no __dict__O:has_signer_in_ca_nameskO&O!:wrap_sym_keySubPrimeBasemissing DER encoded OID dataunable to decode OID sequence|i:get_oid_sequenceO!|i:x509_ext_key_usageValues (%zd total)Value [%zd]O:get_extensionkOii:generate_key_pair|z#i:SecItemreadOOO:KEYPQGParamsO|i:fingerprint_format_lines|O:CertificateRequestO!:BasicConstraintsO!:AuthKeyIDcannot decode AuthKeyIDO!:GeneralNamecannot parse X500 name "%s"Bad type, must be DNunable to decode AVA value+%s=%sBad type, must be RDNBad type, must be AVAOO:AVAO:AuthorityInfoAccessesUnknown error code %ld (%#lx)[%s] %sErrorInadequate Key UsageInadequate Cert TypeIssuerSubject[%s] - [%s]ValidityValidation ErrorsCertificate at chain depth %uValidation Error #%zdDepthO!:CRLDistributionPtsO|O!O!O&:CertificateurlI:set_ocsp_timeouti:set_ocsp_failure_modeiII:set_ocsp_cache_settings|O!:disable_ocsp_checking|O!:enable_ocsp_checkingi:set_use_pkix_for_validationeses#|IIO!:pkcs12_exportcert does not have a slotadd cert and key failedPKCS12 encode failedcallback must be callableO|i:pkcs12_map_cipherli:pkcs12_enable_cipher-----BEGIN-----ENDno PEM END foundCould not base64 decodes:base64_to_binaryO|i:read_der_from_fileO!|ii:decode_der_crlk:pk11_token_existsO!O!siii:import_crlk:get_pad_mechanismk|O&:get_block_sizek:get_iv_lengthk:mechanism_to_algtagmechanism not found: %#lxk:algtag_to_mechanismalgtag not found: %#lxk|O&:generate_new_paramO!:param_from_algidk|O&:param_from_ivk:create_digest_contextkO!O!:pub_wrap_sym_keyO!kkkO!:import_sym_keyes:find_slot_by_namecould not find slot name "%s"k:get_best_slotO:oid_dotted_decimalO:oid_strO!|i:indented_formatlabel|ii:formatOikt#:hash_buf ,: s|s:read_hexO!i:get_cert_nicknamesi:generate_randomO!:find_key_by_any_certs:find_cert_from_nicknameO:set_password_callbackPK11 password callback result|esesesesO!k:nss_init_context|esesesesk:nss_initializees:nss_init_read_writees:nss_initO:set_shutdown_callbackshutdown_callback_argss:nss_version_checkOes|O&:PKCS12DecoderPKCS12 decoder start failedPKCS12 decoding failedPKCS12 decode not verifiedPKCS12 item iteration failedVersionSubject Public Key InfoAttributes: (%zd total)Attribute [%zd]Certificate (has private key)Friendly NameEncryption algorithmKey (shrouded)unknown bag type%s: %sMethodLocationO|i:get_name|i:get_general_namesKey IDSerial NumberGeneral Names: [%zd total], General Name List: [%s]%s, Issuer: %s, Reasons: [%s]Relative Distinguished NameReasonsO!|i:x509_alt_nameCriticalUsagesTypesNamesKDFCipherSaltIteration CountKey LengthKDF AlgorithmEncryptiondefault, SHA-1Hash algorithmdefault, MGF1Mask AlgorithmMask hash algorithmdefault, 20Salt lengthRaw Parameter Datanss.error_C_APIOCTETS_PER_LINE_DEFAULTHEX_SEPARATOR_DEFAULTAsObjectAsStringAsTypeStringAsTypeEnumAsLabeledStringAsEnumAsEnumNameAsEnumDescriptionAsIndexAsDottedDecimalgeneralNamerelativeDistinguishedNamePK11CertListUniquePK11CertListUserPK11CertListRootUniquePK11CertListCAPK11CertListCAUniquePK11CertListUserUniquePK11CertListAllcertUsageSSLClientcertUsageSSLServercertUsageSSLServerWithStepUpcertUsageSSLCAcertUsageEmailSignercertUsageEmailRecipientcertUsageObjectSignercertUsageUserCertImportcertUsageVerifyCAcertUsageStatusRespondercertUsageAnyCANSS_INIT_COOPERATEssl_kea_nullssl_kea_rsassl_kea_dhssl_kea_fortezzassl_kea_ecdhnullKeyrsaKeydsaKeyfortezzaKeydhKeykeaKeyecKeySEC_CERT_NICKNAMES_ALLSEC_CERT_NICKNAMES_USERSEC_CERT_NICKNAMES_SERVERSEC_CERT_NICKNAMES_CASEC_CRL_TYPESEC_KRL_TYPECRL_DECODE_DEFAULT_OPTIONSCRL_DECODE_DONT_COPY_DERCRL_DECODE_SKIP_ENTRIESCRL_DECODE_KEEP_BAD_CRLCRL_DECODE_ADOPT_HEAP_DERCRL_IMPORT_DEFAULT_OPTIONSCRL_IMPORT_BYPASS_CHECKSsecCertTimeValidsecCertTimeExpiredsecCertTimeNotValidYetKU_ALLcrlEntrycrlEntryReasonUnspecifiedcrlEntryReasonKeyCompromisecrlEntryReasonCaCompromisecrlEntryReasonSupersededcrlEntryReasonRemoveFromCRLcrlEntryReasonAaCompromisecertOtherNamecertRFC822NamecertDNSNamecertX400AddresscertDirectoryNamecertEDIPartyNamecertURIcertIPAddresscertRegisterIDCKM_CKM_RSA_PKCS_KEY_PAIR_GENCKM_RSA_PKCSCKM_RSA_9796CKM_RSA_X_509CKM_MD2_RSA_PKCSCKM_MD5_RSA_PKCSCKM_SHA1_RSA_PKCSCKM_RIPEMD128_RSA_PKCSCKM_RIPEMD160_RSA_PKCSCKM_RSA_PKCS_OAEPCKM_RSA_X9_31_KEY_PAIR_GENCKM_RSA_X9_31CKM_SHA1_RSA_X9_31CKM_RSA_PKCS_PSSCKM_SHA1_RSA_PKCS_PSSCKM_DSA_KEY_PAIR_GENCKM_DSACKM_DSA_SHA1CKM_DH_PKCS_KEY_PAIR_GENCKM_DH_PKCS_DERIVECKM_X9_42_DH_KEY_PAIR_GENCKM_X9_42_DH_DERIVECKM_X9_42_DH_HYBRID_DERIVECKM_X9_42_MQV_DERIVECKM_SHA256_RSA_PKCSCKM_SHA384_RSA_PKCSCKM_SHA512_RSA_PKCSCKM_SHA256_RSA_PKCS_PSSCKM_SHA384_RSA_PKCS_PSSCKM_SHA512_RSA_PKCS_PSSCKM_SHA224_RSA_PKCSCKM_SHA224_RSA_PKCS_PSSCKM_RC2_KEY_GENCKM_RC2_ECBCKM_RC2_CBCCKM_RC2_MACCKM_RC2_MAC_GENERALCKM_RC2_CBC_PADCKM_RC4_KEY_GENCKM_RC4CKM_DES_KEY_GENCKM_DES_ECBCKM_DES_CBCCKM_DES_MACCKM_DES_MAC_GENERALCKM_DES_CBC_PADCKM_DES2_KEY_GENCKM_DES3_KEY_GENCKM_DES3_ECBCKM_DES3_CBCCKM_DES3_MACCKM_DES3_MAC_GENERALCKM_DES3_CBC_PADCKM_CDMF_KEY_GENCKM_CDMF_ECBCKM_CDMF_CBCCKM_CDMF_MACCKM_CDMF_MAC_GENERALCKM_CDMF_CBC_PADCKM_DES_OFB64CKM_DES_OFB8CKM_DES_CFB64CKM_DES_CFB8CKM_MD2CKM_MD2_HMACCKM_MD2_HMAC_GENERALCKM_MD5CKM_MD5_HMACCKM_MD5_HMAC_GENERALCKM_SHA_1CKM_SHA_1_HMACCKM_SHA_1_HMAC_GENERALCKM_RIPEMD128CKM_RIPEMD128_HMACCKM_RIPEMD128_HMAC_GENERALCKM_RIPEMD160CKM_RIPEMD160_HMACCKM_RIPEMD160_HMAC_GENERALCKM_SHA256CKM_SHA256_HMACCKM_SHA256_HMAC_GENERALCKM_SHA384CKM_SHA384_HMACCKM_SHA384_HMAC_GENERALCKM_SHA512CKM_SHA512_HMACCKM_SHA512_HMAC_GENERALCKM_SHA224CKM_SHA224_HMACCKM_SHA224_HMAC_GENERALCKM_CAST_KEY_GENCKM_CAST_ECBCKM_CAST_CBCCKM_CAST_MACCKM_CAST_MAC_GENERALCKM_CAST_CBC_PADCKM_CAST3_KEY_GENCKM_CAST3_ECBCKM_CAST3_CBCCKM_CAST3_MACCKM_CAST3_MAC_GENERALCKM_CAST3_CBC_PADCKM_CAST5_KEY_GENCKM_CAST128_KEY_GENCKM_CAST5_ECBCKM_CAST128_ECBCKM_CAST5_CBCCKM_CAST128_CBCCKM_CAST5_MACCKM_CAST128_MACCKM_CAST5_MAC_GENERALCKM_CAST128_MAC_GENERALCKM_CAST5_CBC_PADCKM_CAST128_CBC_PADCKM_RC5_KEY_GENCKM_RC5_ECBCKM_RC5_CBCCKM_RC5_MACCKM_RC5_MAC_GENERALCKM_RC5_CBC_PADCKM_IDEA_KEY_GENCKM_IDEA_ECBCKM_IDEA_CBCCKM_IDEA_MACCKM_IDEA_MAC_GENERALCKM_IDEA_CBC_PADCKM_GENERIC_SECRET_KEY_GENCKM_CONCATENATE_BASE_AND_KEYCKM_CONCATENATE_BASE_AND_DATACKM_CONCATENATE_DATA_AND_BASECKM_XOR_BASE_AND_DATACKM_EXTRACT_KEY_FROM_KEYCKM_SSL3_PRE_MASTER_KEY_GENCKM_SSL3_MASTER_KEY_DERIVECKM_SSL3_KEY_AND_MAC_DERIVECKM_SSL3_MASTER_KEY_DERIVE_DHCKM_TLS_PRE_MASTER_KEY_GENCKM_TLS_MASTER_KEY_DERIVECKM_TLS_KEY_AND_MAC_DERIVECKM_TLS_MASTER_KEY_DERIVE_DHCKM_TLS_PRFCKM_SSL3_MD5_MACCKM_SSL3_SHA1_MACCKM_MD5_KEY_DERIVATIONCKM_MD2_KEY_DERIVATIONCKM_SHA1_KEY_DERIVATIONCKM_SHA256_KEY_DERIVATIONCKM_SHA384_KEY_DERIVATIONCKM_SHA512_KEY_DERIVATIONCKM_SHA224_KEY_DERIVATIONCKM_PBE_MD2_DES_CBCCKM_PBE_MD5_DES_CBCCKM_PBE_MD5_CAST_CBCCKM_PBE_MD5_CAST3_CBCCKM_PBE_MD5_CAST5_CBCCKM_PBE_MD5_CAST128_CBCCKM_PBE_SHA1_CAST5_CBCCKM_PBE_SHA1_CAST128_CBCCKM_PBE_SHA1_RC4_128CKM_PBE_SHA1_RC4_40CKM_PBE_SHA1_DES3_EDE_CBCCKM_PBE_SHA1_DES2_EDE_CBCCKM_PBE_SHA1_RC2_128_CBCCKM_PBE_SHA1_RC2_40_CBCCKM_PKCS5_PBKD2CKM_PBA_SHA1_WITH_SHA1_HMACCKM_WTLS_PRE_MASTER_KEY_GENCKM_WTLS_MASTER_KEY_DERIVECKM_WTLS_PRFCKM_KEY_WRAP_LYNKSCKM_KEY_WRAP_SET_OAEPCKM_CMS_SIGCKM_SKIPJACK_KEY_GENCKM_SKIPJACK_ECB64CKM_SKIPJACK_CBC64CKM_SKIPJACK_OFB64CKM_SKIPJACK_CFB64CKM_SKIPJACK_CFB32CKM_SKIPJACK_CFB16CKM_SKIPJACK_CFB8CKM_SKIPJACK_WRAPCKM_SKIPJACK_PRIVATE_WRAPCKM_SKIPJACK_RELAYXCKM_KEA_KEY_PAIR_GENCKM_KEA_KEY_DERIVECKM_FORTEZZA_TIMESTAMPCKM_BATON_KEY_GENCKM_BATON_ECB128CKM_BATON_ECB96CKM_BATON_CBC128CKM_BATON_COUNTERCKM_BATON_SHUFFLECKM_BATON_WRAPCKM_ECDSA_KEY_PAIR_GENCKM_EC_KEY_PAIR_GENCKM_ECDSACKM_ECDSA_SHA1CKM_ECDH1_DERIVECKM_ECDH1_COFACTOR_DERIVECKM_ECMQV_DERIVECKM_JUNIPER_KEY_GENCKM_JUNIPER_ECB128CKM_JUNIPER_CBC128CKM_JUNIPER_COUNTERCKM_JUNIPER_SHUFFLECKM_JUNIPER_WRAPCKM_FASTHASHCKM_AES_KEY_GENCKM_AES_ECBCKM_AES_CBCCKM_AES_MACCKM_AES_MAC_GENERALCKM_AES_CBC_PADCKM_BLOWFISH_KEY_GENCKM_BLOWFISH_CBCCKM_TWOFISH_KEY_GENCKM_TWOFISH_CBCCKM_CAMELLIA_KEY_GENCKM_CAMELLIA_ECBCKM_CAMELLIA_CBCCKM_CAMELLIA_MACCKM_CAMELLIA_MAC_GENERALCKM_CAMELLIA_CBC_PADCKM_CAMELLIA_ECB_ENCRYPT_DATACKM_CAMELLIA_CBC_ENCRYPT_DATACKM_SEED_KEY_GENCKM_SEED_ECBCKM_SEED_CBCCKM_SEED_MACCKM_SEED_MAC_GENERALCKM_SEED_CBC_PADCKM_SEED_ECB_ENCRYPT_DATACKM_SEED_CBC_ENCRYPT_DATACKM_DES_ECB_ENCRYPT_DATACKM_DES_CBC_ENCRYPT_DATACKM_DES3_ECB_ENCRYPT_DATACKM_DES3_CBC_ENCRYPT_DATACKM_AES_ECB_ENCRYPT_DATACKM_AES_CBC_ENCRYPT_DATACKM_DSA_PARAMETER_GENCKM_DH_PKCS_PARAMETER_GENCKM_X9_42_DH_PARAMETER_GENCKA_CKA_CLASSCKA_TOKENCKA_PRIVATECKA_LABELCKA_APPLICATIONCKA_VALUECKA_OBJECT_IDCKA_CERTIFICATE_TYPECKA_ISSUERCKA_SERIAL_NUMBERCKA_AC_ISSUERCKA_OWNERCKA_ATTR_TYPESCKA_TRUSTEDCKA_CERTIFICATE_CATEGORYCKA_JAVA_MIDP_SECURITY_DOMAINCKA_URLCKA_HASH_OF_ISSUER_PUBLIC_KEYCKA_CHECK_VALUECKA_KEY_TYPECKA_SUBJECTCKA_IDCKA_SENSITIVECKA_ENCRYPTCKA_DECRYPTCKA_WRAPCKA_UNWRAPCKA_SIGNCKA_SIGN_RECOVERCKA_VERIFYCKA_VERIFY_RECOVERCKA_DERIVECKA_START_DATECKA_END_DATECKA_MODULUSCKA_MODULUS_BITSCKA_PUBLIC_EXPONENTCKA_PRIVATE_EXPONENTCKA_PRIME_1CKA_PRIME_2CKA_EXPONENT_1CKA_EXPONENT_2CKA_COEFFICIENTCKA_PRIMECKA_SUBPRIMECKA_BASECKA_PRIME_BITSCKA_SUBPRIME_BITSCKA_SUB_PRIME_BITSCKA_VALUE_BITSCKA_VALUE_LENCKA_EXTRACTABLECKA_LOCALCKA_NEVER_EXTRACTABLECKA_ALWAYS_SENSITIVECKA_KEY_GEN_MECHANISMCKA_MODIFIABLECKA_ECDSA_PARAMSCKA_EC_PARAMSCKA_EC_POINTCKA_SECONDARY_AUTHCKA_AUTH_PIN_FLAGSCKA_ALWAYS_AUTHENTICATECKA_WRAP_WITH_TRUSTEDCKA_WRAP_TEMPLATECKA_UNWRAP_TEMPLATECKA_HW_FEATURE_TYPECKA_RESET_ON_INITCKA_HAS_RESETCKA_PIXEL_XCKA_PIXEL_YCKA_RESOLUTIONCKA_CHAR_ROWSCKA_CHAR_COLUMNSCKA_COLORCKA_BITS_PER_PIXELCKA_CHAR_SETSCKA_ENCODING_METHODSCKA_MIME_TYPESCKA_MECHANISM_TYPECKA_REQUIRED_CMS_ATTRIBUTESCKA_DEFAULT_CMS_ATTRIBUTESCKA_SUPPORTED_CMS_ATTRIBUTESCKA_ALLOWED_MECHANISMSCKA_VENDOR_DEFINEDSEC_OID_SEC_OID_UNKNOWNSEC_OID_MD2SEC_OID_MD4SEC_OID_MD5SEC_OID_SHA1SEC_OID_RC2_CBCSEC_OID_RC4SEC_OID_DES_EDE3_CBCSEC_OID_RC5_CBC_PADSEC_OID_DES_ECBSEC_OID_DES_CBCSEC_OID_DES_OFBSEC_OID_DES_CFBSEC_OID_DES_MACSEC_OID_DES_EDESEC_OID_PKCS1_RSA_ENCRYPTIONSEC_OID_PKCS7SEC_OID_PKCS7_DATASEC_OID_PKCS7_SIGNED_DATASEC_OID_PKCS7_ENVELOPED_DATASEC_OID_PKCS7_DIGESTED_DATASEC_OID_PKCS7_ENCRYPTED_DATASEC_OID_PKCS9_EMAIL_ADDRESSSEC_OID_PKCS9_CONTENT_TYPESEC_OID_PKCS9_MESSAGE_DIGESTSEC_OID_PKCS9_SIGNING_TIMESEC_OID_AVA_COMMON_NAMESEC_OID_AVA_COUNTRY_NAMESEC_OID_AVA_LOCALITYSEC_OID_AVA_STATE_OR_PROVINCESEC_OID_AVA_ORGANIZATION_NAMESEC_OID_AVA_DN_QUALIFIERSEC_OID_AVA_DCSEC_OID_NS_TYPE_GIFSEC_OID_NS_TYPE_JPEGSEC_OID_NS_TYPE_URLSEC_OID_NS_TYPE_HTMLSEC_OID_NS_TYPE_CERT_SEQUENCESEC_OID_MISSI_KEA_DSS_OLDSEC_OID_MISSI_DSS_OLDSEC_OID_MISSI_KEA_DSSSEC_OID_MISSI_DSSSEC_OID_MISSI_KEASEC_OID_MISSI_ALT_KEASEC_OID_NS_CERT_EXT_CERT_TYPESEC_OID_NS_CERT_EXT_BASE_URLSEC_OID_NS_CERT_EXT_COMMENTSEC_OID_X509_SUBJECT_KEY_IDSEC_OID_X509_KEY_USAGESEC_OID_X509_SUBJECT_ALT_NAMESEC_OID_X509_ISSUER_ALT_NAMESEC_OID_X509_NAME_CONSTRAINTSSEC_OID_X509_CRL_DIST_POINTSSEC_OID_X509_POLICY_MAPPINGSSEC_OID_X509_AUTH_KEY_IDSEC_OID_X509_EXT_KEY_USAGESEC_OID_X509_AUTH_INFO_ACCESSSEC_OID_X509_CRL_NUMBERSEC_OID_X509_REASON_CODESEC_OID_X509_INVALID_DATESEC_OID_X500_RSA_ENCRYPTIONSEC_OID_RFC1274_UIDSEC_OID_RFC1274_MAILSEC_OID_PKCS12SEC_OID_PKCS12_MODE_IDSSEC_OID_PKCS12_ESPVK_IDSSEC_OID_PKCS12_BAG_IDSSEC_OID_PKCS12_CERT_BAG_IDSSEC_OID_PKCS12_OIDSSEC_OID_PKCS12_PBE_IDSSEC_OID_PKCS12_SIGNATURE_IDSSEC_OID_PKCS12_ENVELOPING_IDSSEC_OID_PKCS12_KEY_BAG_IDSEC_OID_PKCS12_SECRET_BAG_IDSEC_OID_PKCS12_SDSI_CERT_BAGSEC_OID_ANSIX9_DSA_SIGNATURESEC_OID_VERISIGN_USER_NOTICESSEC_OID_PKIX_OCSPSEC_OID_PKIX_OCSP_NONCESEC_OID_PKIX_OCSP_CRLSEC_OID_PKIX_OCSP_RESPONSESEC_OID_PKIX_OCSP_NO_CHECKSEC_OID_PKIX_REGCTRL_REGTOKENSEC_OID_OCSP_RESPONDERSEC_OID_NETSCAPE_SMIME_KEASEC_OID_FORTEZZA_SKIPJACKSEC_OID_PKCS12_V1_KEY_BAG_IDSEC_OID_PKCS12_V1_CERT_BAG_IDSEC_OID_PKCS12_V1_CRL_BAG_IDSEC_OID_PKCS9_X509_CERTSEC_OID_PKCS9_SDSI_CERTSEC_OID_PKCS9_X509_CRLSEC_OID_PKCS9_FRIENDLY_NAMESEC_OID_PKCS9_LOCAL_KEY_IDSEC_OID_BOGUS_KEY_USAGESEC_OID_NETSCAPE_NICKNAMESEC_OID_CERT_RENEWAL_LOCATORSEC_OID_CMS_3DES_KEY_WRAPSEC_OID_CMS_RC2_KEY_WRAPSEC_OID_AES_128_ECBSEC_OID_AES_128_CBCSEC_OID_AES_192_ECBSEC_OID_AES_192_CBCSEC_OID_AES_256_ECBSEC_OID_AES_256_CBCSEC_OID_SDN702_DSA_SIGNATURESEC_OID_SHA256SEC_OID_SHA384SEC_OID_SHA512SEC_OID_AES_128_KEY_WRAPSEC_OID_AES_192_KEY_WRAPSEC_OID_AES_256_KEY_WRAPSEC_OID_SECG_EC_SECP112R1SEC_OID_SECG_EC_SECP112R2SEC_OID_SECG_EC_SECP128R1SEC_OID_SECG_EC_SECP128R2SEC_OID_SECG_EC_SECP160K1SEC_OID_SECG_EC_SECP160R1SEC_OID_SECG_EC_SECP160R2SEC_OID_SECG_EC_SECP192K1SEC_OID_SECG_EC_SECP224K1SEC_OID_SECG_EC_SECP224R1SEC_OID_SECG_EC_SECP256K1SEC_OID_SECG_EC_SECP384R1SEC_OID_SECG_EC_SECP521R1SEC_OID_SECG_EC_SECT113R1SEC_OID_SECG_EC_SECT113R2SEC_OID_SECG_EC_SECT131R1SEC_OID_SECG_EC_SECT131R2SEC_OID_SECG_EC_SECT163K1SEC_OID_SECG_EC_SECT163R1SEC_OID_SECG_EC_SECT163R2SEC_OID_SECG_EC_SECT193R1SEC_OID_SECG_EC_SECT193R2SEC_OID_SECG_EC_SECT233K1SEC_OID_SECG_EC_SECT233R1SEC_OID_SECG_EC_SECT239K1SEC_OID_SECG_EC_SECT283K1SEC_OID_SECG_EC_SECT283R1SEC_OID_SECG_EC_SECT409K1SEC_OID_SECG_EC_SECT409R1SEC_OID_SECG_EC_SECT571K1SEC_OID_SECG_EC_SECT571R1SEC_OID_AVA_SURNAMESEC_OID_AVA_SERIAL_NUMBERSEC_OID_AVA_STREET_ADDRESSSEC_OID_AVA_TITLESEC_OID_AVA_POSTAL_ADDRESSSEC_OID_AVA_POSTAL_CODESEC_OID_AVA_POST_OFFICE_BOXSEC_OID_AVA_GIVEN_NAMESEC_OID_AVA_INITIALSSEC_OID_AVA_HOUSE_IDENTIFIERSEC_OID_AVA_PSEUDONYMSEC_OID_PKIX_CA_ISSUERSSEC_OID_X509_CERT_ISSUERSEC_OID_X509_FRESHEST_CRLSEC_OID_CAMELLIA_128_CBCSEC_OID_CAMELLIA_192_CBCSEC_OID_CAMELLIA_256_CBCSEC_OID_PKCS5_PBKDF2SEC_OID_PKCS5_PBES2SEC_OID_PKCS5_PBMAC1SEC_OID_HMAC_SHA1SEC_OID_HMAC_SHA224SEC_OID_HMAC_SHA256SEC_OID_HMAC_SHA384SEC_OID_HMAC_SHA512SEC_OID_PKIX_TIMESTAMPINGSEC_OID_PKIX_CA_REPOSITORYSEC_OID_SECG_EC_SECP192R1SEC_OID_SECG_EC_SECP256R1SEC_OID_PKCS12_KEY_USAGEPK11_OriginNULLPK11_OriginDerivePK11_OriginGeneratedPK11_OriginFortezzaHackPK11_OriginUnwrapPKCS12_PKCS12_RC2_CBC_40PKCS12_RC2_CBC_128PKCS12_RC4_40PKCS12_RC4_128PKCS12_DES_56PKCS12_DES_EDE3_168datetime_CAPIdatetimenss.nssi:list_certss:find_certs_from_email_addrs:find_certs_from_nickname|O&i:get_cert_chainNot BeforeNot AfterCertificate Trust FlagsSSL FlagsEmail FlagsObject Signing Flagsnss_get_versionnss_is_initializednss_init_nodbnss_shutdowndump_certificate_cache_infoget_default_certdbkey_mechanism_type_from_namepk11_attribute_type_from_namecert_crl_reason_namecert_crl_reason_from_namecert_general_name_type_namepk11_logout_allget_internal_slotget_internal_key_slotcreate_context_by_sym_keyneed_pw_initis_fipspkcs12_enable_all_cipherspkcs12_set_preferred_cipherget_use_pkix_for_validationclear_ocsp_cacheset_ocsp_default_responderenable_ocsp_default_respondernss.nss.SecItemnss.nss.AlgorithmIDnss.nss.RSAGenParamsnss.nss.KEYPQGParamsnss.nss.RSAPublicKeynss.nss.DSAPublicKeynss.nss.SignedDatanss.nss.PublicKeynss.nss.SubjectPublicKeyInfonss.nss.CertDBnss.nss.CertificateExtensionnss.nss.Certificatenss.nss.PrivateKeynss.nss.SignedCRLnss.nss.PK11Slotnss.nss.PK11SymKeynss.nss.PK11Contextnss.nss.CRLDistributionPointnss.nss.CRLDistributionPtsnss.nss.AuthorityInfoAccessnss.nss.AuthorityInfoAccessesnss.nss.AVAnss.nss.RDNnss.nss.DNnss.nss.GeneralNamenss.nss.AuthKeyIDnss.nss.BasicConstraintsnss.nss.CertAttributenss.nss.CertificateRequestnss.nss.InitParametersnss.nss.InitContextnss.nss.PKCS12DecodeItemnss.nss.PKCS12Decodernss.nss.CertVerifyLogNodenss.nss.CertVerifyLoglevel\x00\x01\x02\x03\x04\x05\x06\a\b\t\n\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F!\"#$%&\'(*+,-/;<=\?@JQVWZ[\\^`cqz{|}~\x7F\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFFrepr_kindCNOUdnQualifierserialNumbertitleSNgivenNameinitialsgenerationQualifierpostalAddresspostalCodepostOfficeBoxhouseIdentifierKey CompromiseCA CompromiseAffiliation ChangedCessation Of OperationCertificate On HoldRemove From CRLPrivilege WithdrawnAA Compromiseusagesreturn_cert_typeallow_overrideoctets_per_lineseparatorindent_lenargpassword_requiredmin_password_lenmanufacturer_idlibrary_descriptioncrypto_token_descriptiondb_token_descriptionfips_token_descriptioncrypto_slot_descriptiondb_slot_descriptionfips_slot_descriptionbasic_constraintsauth_key_idsec_itemauth_info_accessescrl_dist_pt_extensionarg1permsubprimekey_sizepkcs12_passwordkey_ciphercert_cipherpin_argsbitstrasciidecode_optionssec_paramoperationobjlines_pairsinputseparatorscert_dircert_prefixkey_prefixsecmod_nameinit_paramsget_integercontents of SecItem bufferid_oidalgorithm id OID as SecItemparameterskey size in bits (integer)public_exponentpublic exponent (integer)RSA modulusRSA exponentpqg_paramsDSA public_valuesignaturesignature as a SecItem objectkey_typekey_type_strkey type as a stringdsapublic_keyPublicKey objectname of extensioncriticaloid of extension as SecItemextension data as SecItemfind_kea_typemake_ca_nicknamevalid_not_beforevalid_not_before_strvalid_not_aftervalid_not_after_strsubject_common_namecertificate subjectissuercertificate versionserial_numbercertificate serial numbersignature_algorithmsigned_datader_datassl_trust_stremail_trust_strsigning_trust_strssl_trust_flagsemail_trust_flagssigning_trust_flagssubject_public_key_infoextensionsdelete_permanentlyis_hwis_presentis_read_onlyis_internalneed_loginneed_user_initis_friendlyis_removableis_logged_inis_disabledhas_root_certsget_disabled_reasonuser_disableuser_enablelogoutget_best_wrap_mechanismslot_nameslot nametoken_nametoken nameCK_MECHANISM_TYPE mechanismkey_datakey datakey lengthdigest_beginfinalizedigest_finalmethod_oidmethod OID as SecItemmethod_tagmethod_strmethod as string descriptionlocationvalue_stremail_addresscountry_namelocality_namestate_nameorg_nameorg_unit_namedc_namecert_uidtype_enumtype_stringis_capath_lentype_oidtype OID as SecItemtype_tagtype as string descriptionvaluessubject as an `DN` objectversion as integerminimum password lengthsigned_cert_dercertificatefriendly_nameshroud_algorithm_iddatabase_importdepthcountnumber of validation errorsOO(O8OHONNTQPQTQTQTQTQTQTQSSxShSSdTTTDT4TtT}cddpd]dXcMd}c}c}cd}c=d}c}c}c-d-d}cdd}cd dc}cd}cc}ccfqhahSh=h)hhfffahf hfffggfggfgggfgfgfghi`ixiiiiiii`VLB81*#]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]g{8888888888==<< =d>T>D>>t>8YsRsRsRsRsRsRsRsRsRsRsRsRsRsRsRsRZ`XsRWWWsRVsRsRsRVUXT0123456789abcdef:pD5G|Dþ#eLJȓAk h䨵i?zJP"3S$hwhh]r; se}R)4D% ?`Hۭagר-D)3Y<5v'i} xIoNl78"GX'יW5dLG1P<*0 AvqڞWv87_2ELT+]k>{B`T 8:Ѷ5ڗ֥7bJ!;,H@`xЇ@ 8PЈh 00H``Њ0P`p(Ћ@phP`Ѝ0@P`0Hp`Џ0H `Px @P(@`x @p0 H0``x0p0H`xД@ Ж@X0pp 0@(P@`XpИ0@P`p0H`x@pК 0( P@ X p @ `!!0!H!`!x! !@!`!!! "p8"`"`x"p""в""`#0(# P#`p# ###$$0$PH$h$ $$0$P$`% %@%%@%%%0&p`& &&@&'0'ph''''' (0((P(x(((() )@)`)))))* *0@*`*Px*0*`*@*@* + 0+P+@h+p++++0,`(,H,h, ,,,p-0-`-x-----.@0.X.x.@.p0/H/`/x///`//0@0@h0 00000P(1X1p1111p2 (2 H2 p2@ 2 2 2 20 3` 3 03 H3 `333@3p3404P40p4`444 4 50H5h5`555p(66 6p6087p77p 7 $7&88`&P8P)8)8P*80+(9+H9,p9,9-9p.9.:`/8:/h: 0:@0:0:0:0;1(;P2P;2p;2;@3;4< 58<@5P<5p<7<P7<7=7=78=08X=p8x=8= 9=`9=9>9(> :H>`:h>:>:> ;>P;>;>0<@?=h???A?`B?B@`CP@Ch@C@D@F@GAH0A`IxAIAJA JA MANBN8BpO`BPBPB QBQCpR8CTC@UCUCpV DWHDWpDXDXDYDYE@Z8EpZXEZxEZEZE [EP[E[F[8F[XF\xF0\F\F ]F0]Fp]G_@G`xG dGe He8HePHfhHfH fHiHmIm(IoI`rItJw0JJ@J@JP(KHKpKЈK0KPK`KpK L00L@HLP`LLLMp M`MMpMM@(NPN@NИNNHOНpO OPOO@P PhPPPpQ8QhQQQЫR HRhR@RRSp`SxS0SpSSThTT0TTP`U`UUV @VhVV@VPWW PW0hW@W0W@W(X PX xXXXY(YHY hYYYY Z@Z `ZZ0ZZP[0[P[0p[[[[ \P \X\x\\\ ]`H]p]P]p]] ^8^h^^^0^ _ 8_P_h_P__P__@`8`@h```a ahaa aab 8b Pb hb b b b0 bP b` b c (c @c Xc pc c c0 cP c` c d d 0d Hd `d xd d d@ dP dp d e e 8e Pe he e e0 e@ e` ep e f (f`ff gpHggPghpPhhhhhh0iHipii "i" j@#Hj$pj $j)j)j)k 0Xk00pk 1kP4k`4k5lP6Pl6hl`7l7l9l:m<0mD\ H TLD(BHA A(G@ (A ABBF f (A ABBD (H<D\ H R(h<D\ H R(DM(8D\ H O )8D\ H O,)8D\ H O,L)lAG o AH O AH |)08D\ H O)P8D\ H O)p8D\ H O)8D\ H O)8D\ H O*8D\ H O<*8D\ H O\*8D\ H O|*09D\ H O*P"DY*h"DYD*ADG Q AAA U FAD P FAI $+MMD@ F ,<+`MML J $l+@MML`` J ,+A[ V AE cA$+hA[0W AD 4+iAS V AE a AF OA$,DM<,0DQ K O\, QD [ A M B ,|,`MMN F ,,A[0y AJ k AD $,MI0F D D-XDw E c E K E K E K E K E K E KL-LA\ C kl-LA\ C k-@DP$-HMN@I D - D e G - D e G $ . AP k AC $4. AP k AC $\.p AP k AC $. AP k AC 4.@ADG y AAI D CAH $.HK I D bl /0*BBH A(D0Dg 0A(A BBBD q 0A(A BBBG { 0C(A BBBC $|/HK V G b$/hHK m H b$/tHK z C b$/HHK B K b$0tHK z C b$D0tHK z C b$l0`tHK z C b$0tHK z C b$0HK l A b$0HK C J b 1%A[,1 AVL1%A[l1 %A[10.Ad1@%A[1P%A[1` AV 2`%A[,2p%A[L2%A[l2RN0C$2N _ K t D Z28 20<AD0uA$2PNP\ F d D 438RAAD`B AAF [ DAH $L3`7l J |t3xyAD K KM \ HL ~ AI D HL D HL D HL D HL D HL D HL D HL dH3x8 4 $4 <4 T4 Ll4BBB B(A0F8DP 8D0A(B BBBG $4 M[`P H 4h$oK@cd4$BHA C(D9 (A ABBG Y (A ABBI D (C ABBD Ld5(&BBB B(F0C8DP 8D0A(B BBBG $5x(M[PP H $5*MV@K B L6x-SBBB B(A0A8Dp 8A0A(B BBBH $T64,MMI0 E ,|66M[` F L6`: BBE B(A0A8DPm 8D0A(B BBBE 6 <N0v D $7<MI _ K D7H=\7@=Xt7=7=7=,7=A_Pq AF NA7> 8= 8= $48=MV@K B \\8pABEE A(A0 (A EBBI  (A EBBA N(A BBB8BKA[ mA8C[D0V<8HCBBD A(D0r (D ABBA 449CAEN U DAB F ADE $l9DM[`P H $9GMI0y A <9HBBA D(D0 (D ABBA $9IeDb J L L \4$:XIAEN w DAH F ADE 4\:IAEN z DAE F ADE :JP | D d:J;BHA D(D` (D ABBI  (D ABBE @ (D ABBG $;pMA[@ AF $D;XNPAAG CAAl;N#AY;N#AY$;NAG i AF ;8O>AtD;XO(BHA WD  CABD \  AABH $<<@SDPn F ~ J \d<TFBKA A(T` (A ABBC D (F ABBA D (C ABBD $<VlA[ b AA <PVP { E , =VyA[ b AA a AA <=WP @ H ,\=WvA[ b AA c AA L=W4BBB B(A0D8J} 8A0A(B BBBB <=YJBFA K(G (D ABBA >ZmD M \,<> [M[p J Ll>^5BBE B(A0A8N 8A0A(B BBBK $>azN u M iL>aaBBB B(A0A8G 8A0A(B BBBH 4?d <L?dBBA A(J (A ABBD ?pe2AR E O?e$?eMI i A L?fADG " AAH Z FAG D FAE D FAE 4<@0hjADG u AAE ZFA$t@hhMN@U H ,@`juMMN@ A d@kBEB B(A0A8GpL 8A0A(B BBBF  8C0A(B BBBF ,4AmA[@U AF A AF dAnwP z F dA(o%BBE E(A0A8D` 8A0A(B BBBD \ 8F0A(B BBBA $Ao `D0 D $Bp`DP A 4 string Return a string of the NSS library version nss_version_check(version) --> bool :Parameters: version : string Required version Return a boolean that indicates whether the underlying NSS library will perform as the caller expects. The the version parameter is a string identifier of the NSS library. That string will be compared against a string that represents the actual build version of the NSS library. Return True if supplied version is compatible, False otherwise. set_shutdown_callback(callback, [user_data1, ...]) :Parameters: callback : function pointer or None The callback function. If None cancel the previous callback user_dataN : object zero or more caller supplied parameters which will be passed to the shutdown callback function Defines a callback function which is invoked when NSS is shutdown. If the callback is None the previous callback is cancelled. After NSS is shutdown the shutdown callback is cancelled, you must reset the shutdown callback again after initializing NSS. The callback has the signature:: shutdown_callback(nss_data, [user_data1, ...]) -> bool nss_data dict of NSS values (currently empty) user_dataN zero or more caller supplied optional parameters The callback should return True for success. If it returns False the NSS shutdown function will complete but will result in an error. nss_is_initialized() --> bool Returns whether Network Security Services has already been initialized or not. nss_init(cert_dir) :Parameters: cert_dir : string Pathname of the directory where the certificate, key, and security module databases reside. Sets up configuration files and performs other tasks required to run Network Security Services. `nss.nss_init()` differs from `nss.nss_init_read_write()` because the internal PK11 slot (see `nss.get_internal_slot()`) is created in Read Only (RO) mode as opposed to Read Write (RW) mode. nss_init_read_write(cert_dir) :Parameters: cert_dir : string Pathname of the directory where the certificate, key, and security module databases reside. Sets up configuration files and performs other tasks required to run Network Security Services. `nss.nss_init_read_write()` differs from `nss.nss_init()` because the internal PK11 slot (see `nss.get_internal_slot()`) is created in Read Write (RW) mode as opposed to Read Only (RO) mode. nss_init_nodb() Performs tasks required to run Network Security Services without setting up configuration files. Important: This NSS function is not intended for use with SSL, which requires that the certificate and key database files be opened. nss_init_nodb opens only the temporary database and the internal PKCS #112 module. Unlike nss_init, nss_init_nodb allows applications that do not have access to storage for databases to run raw crypto, hashing, and certificate functions. nss_init_nodb is not idempotent, so call it only once. The policy flags for all cipher suites are turned off by default, disallowing all cipher suites. Therefore, an application cannot use NSS to perform any cryptographic operations until after it enables appropriate cipher suites by calling one of the SSL Export Policy Functions. nss_initialize(cert_dir=None, cert_prefix=None, key_prefix=None, secmod_name=None, flags=0) :Parameters: cert_dir : string Pathname of the directory where the certificate, key, and security module databases reside. cert_prefix : string Prefix added to the beginning of the certificate database, for example,"https-server1-". key_prefix : string Prefix added to the beginning of the key database, for example, "https-server1-". secmod_name : string Name of the security module database, usually "secmod.db". flags Bit flags that specify how NSS should be initialized. `nss_initialize()` initializes NSS. It is more flexible than `nss_init()`, `nss_init_read_write()`, and `nss_init_nodb()`. If any of those simpler NSS initialization functions suffices for your needs, call that instead. By default `nss_initialize()` and `nss_init_context()` open the internal PK11 slot (see `get_internal_slot()`) in Read Write (RW) mode as opposed to `nss_init()` which opens it in Read Only (RO) mode. If you want RO mode you pass the `NSS_INIT_READONLY` flag. The flags parameter is a bitwise OR of the following flags: NSS_INIT_READONLY Open the databases read only. NSS_INIT_NOCERTDB Don't open the cert DB and key DB's, just initialize the volatile certdb. NSS_INIT_NOMODDB Don't open the security module DB, just initialize the PKCS #11 module. NSS_INIT_FORCEOPEN Continue to force initializations even if the databases cannot be opened. NSS_INIT_NOROOTINIT Don't try to look for the root certs module automatically. NSS_INIT_OPTIMIZESPACE Optimize for space instead of speed. Use smaller tables and caches. NSS_INIT_PK11THREADSAFE Only load PKCS#11 modules that are thread-safe, i.e., that support locking - either OS locking or NSS-provided locks . If a PKCS#11 module isn't thread-safe, don't serialize its calls; just don't load it instead. This is necessary if another piece of code is using the same PKCS#11 modules that NSS is accessing without going through NSS, for example, the Java SunPKCS11 provider. NSS_INIT_PK11RELOAD Ignore the CKR_CRYPTOKI_ALREADY_INITIALIZED error when loading PKCS#11 modules. This is necessary if another piece of code is using the same PKCS#11 modules that NSS is accessing without going through NSS, for example, Java SunPKCS11 provider. NSS_INIT_NOPK11FINALIZE Never call C_Finalize on any PKCS#11 module. This may be necessary in order to ensure continuous operation and proper shutdown sequence if another piece of code is using the same PKCS#11 modules that NSS is accessing without going through NSS, for example, Java SunPKCS11 provider. The following limitation applies when this is set : SECMOD_WaitForAnyTokenEvent will not use C_WaitForSlotEvent, in order to prevent the need for C_Finalize. This call will be emulated instead. NSS_INIT_RESERVED Currently has no effect, but may be used in the future to trigger better cooperation between PKCS#11 modules used by both NSS and the Java SunPKCS11 provider. This should occur after a new flag is defined for C_Initialize by the PKCS#11 working group. NSS_INIT_COOPERATE Sets the above four recommended options for applications that use both NSS and the Java SunPKCS11 provider. Hint: You can obtain a printable representation of the flags via `nss_init_flags`. nss_init_context(cert_dir=None, cert_prefix=None, key_prefix=None, secmod_name=None, init_params=None, flags=0) -> `InitContext` :Parameters: cert_dir : string Pathname of the directory where the certificate, key, and security module databases reside. cert_prefix : string Prefix added to the beginning of the certificate database, for example,"https-server1-". key_prefix : string Prefix added to the beginning of the key database, for example, "https-server1-". secmod_name : string Name of the security module database, usually "secmod.db". init_params : `InitContext` object Object with a set of initialization parameters. See `InitContext`. flags Bit flags that specify how NSS should be initialized. `nss_init_context()` initializes NSS within a context and returns a `InitContext` object. Contexts are used when multiple entities within a single process wish to use NSS without colliding such as libraries. You must hold onto the returned InitContext object and call shutdown on it when you are done. The context will automatically be shutdown when the InitContext object is destroyed if you have not already shut it down. By default `nss_initialize()` and `nss_init_context()` open the internal PK11 slot (see `get_internal_slot()`) in Read Write (RW) mode as opposed to `nss_init()` which opens it in Read Only (RO) mode. If you want RO mode you pass the `NSS_INIT_READONLY` flag. The flags parameter is a bitwise OR of the following flags: NSS_INIT_READONLY Open the databases read only. NSS_INIT_NOCERTDB Don't open the cert DB and key DB's, just initialize the volatile certdb. NSS_INIT_NOMODDB Don't open the security module DB, just initialize the PKCS #11 module. NSS_INIT_FORCEOPEN Continue to force initializations even if the databases cannot be opened. NSS_INIT_NOROOTINIT Don't try to look for the root certs module automatically. NSS_INIT_OPTIMIZESPACE Optimize for space instead of speed. Use smaller tables and caches. NSS_INIT_PK11THREADSAFE Only load PKCS#11 modules that are thread-safe, i.e., that support locking - either OS locking or NSS-provided locks . If a PKCS#11 module isn't thread-safe, don't serialize its calls; just don't load it instead. This is necessary if another piece of code is using the same PKCS#11 modules that NSS is accessing without going through NSS, for example, the Java SunPKCS11 provider. NSS_INIT_PK11RELOAD Ignore the CKR_CRYPTOKI_ALREADY_INITIALIZED error when loading PKCS#11 modules. This is necessary if another piece of code is using the same PKCS#11 modules that NSS is accessing without going through NSS, for example, Java SunPKCS11 provider. NSS_INIT_NOPK11FINALIZE Never call C_Finalize on any PKCS#11 module. This may be necessary in order to ensure continuous operation and proper shutdown sequence if another piece of code is using the same PKCS#11 modules that NSS is accessing without going through NSS, for example, Java SunPKCS11 provider. The following limitation applies when this is set : SECMOD_WaitForAnyTokenEvent will not use C_WaitForSlotEvent, in order to prevent the need for C_Finalize. This call will be emulated instead. NSS_INIT_RESERVED Currently has no effect, but may be used in the future to trigger better cooperation between PKCS#11 modules used by both NSS and the Java SunPKCS11 provider. This should occur after a new flag is defined for C_Initialize by the PKCS#11 working group. NSS_INIT_COOPERATE Sets the above four recommended options for applications that use both NSS and the Java SunPKCS11 provider. Hint: You can obtain a printable representation of the flags via `nss_init_flags`. nss_shutdown() Closes the key and certificate databases that were opened by nss_init(). NSS can only shutdown successfully if all NSS objects have been released, otherwise nss_shutdown will fail with the error code SEC_ERROR_BUSY. Here are some tips to make sure nss_shutdown will succeed. [1]_ * If the process is a SSL client make sure you call `ssl.clear_session_cache`. * If the process is a SSL server make sure you call `ssl.shutdown_server_session_id_cache()`. * Make sure all sockets have been closed, open SSL sockets hold references NSS objects. * Explicitly delete Python objects which contain NSS objects using the del command. [2]_ * Use `nss.dump_certificate_cache_info()` to provide information about which cached objects may still persist and be responsible for preventing a full NSS shutdown. .. [1] If the leaked objects are subsequently released after nss_shutdown is called NSS can be reinitialized with the various NSS initialization routines. In this cass teh SEC_ERROR_BUSY error can be thought of as an informatiive warning. .. [2] This Python binding to NSS wraps each NSS object inside a Python object. Like NSS objects Python objects are reference counted. When the last reference to the Python object disappears the Python object is destroyed. The destructor for a Python object wrapping an NSS object releases the NSS reference to the NSS object. Thus if any Python objects which wrap NSS objects remain "live" nss_shutdown will fail. Python objects are typically released by the Python interpretor when the variable holding the object is assigned a new object or when the variable holding the object goes out of scope. This means you may need to manually delete some objects using the del command rather relying on Python's automatic garbage collection. Consider this example: def foo(): nss.nss_init(certdir) sock = ssl.SSLSocket() nss.nss_shutdown() When nss_shutown() is called the sock object is still alive and holds references to NSS objects. The sock object won't be released by Python until it goes out of scope when the function exits. Thus the shutdown will fail with SEC_ERROR_BUSY. But you can explicitly force the sock object to be released by explictily deleting it, for example: def foo(): nss.nss_init(certdir) sock = ssl.SSLSocket() del sock nss.nss_shutdown() Another way to avoid this issue is to arrange your code such that nss_shutdown is called from a location in your code which is not in scope for any NSS objects created. This also implies you shouldn't assign NSS objects to globals. nss_shutdown_context(context) -> :Parameters: context : `InitContext` object A `InitContext` returned from a previous call to `nss_init_context`. Shutdown NSS for the users of this context. When all contexts have been shutdown NSS will fully shutdown. dump_certificate_cache_info() Dump the contents of the certificate cache and the temporary cert store to stdout. Use this as a debugging aid to detect leaked references of certs at shutdown time. For example if `nss.nss_shutdown()` throws a SEC_ERROR_BUSY exception. set_password_callback(callback) :Parameters: callback : function pointer The callback function Defines a callback function used by the NSS libraries whenever information protected by a password needs to be retrieved from the key or certificate databases. Many tokens keep track of the number of attempts to enter a password and do not allow further attempts after a certain point. Therefore, if the retry argument is True, indicating that the password was tried and is wrong, the callback function should return None to indicate that it is unsuccessful, rather than attempting to return the same password again. Failing to terminate when the retry argument is True can result in an endless loop. The user_dataN arguments can also be used to keep track of the number of times the callback has been invoked. Several functions in the NSS libraries use the password callback function to obtain the password before performing operations that involve the protected information. The extra user_dataN parameters to the password callback function is application-defined and can be used for any purpose. When NSS libraries call the password callback function the value they pass for the user_dataN arguments is determined by `ssl.SSLSocket.set_pkcs11_pin_arg()`. The callback has the signature:: password_callback(slot, retry, [user_data1, ...]) -> string or None slot PK11Slot object retry boolean indicating if this is a retry. This implies that the callback has previously returned the wrong password. user_dataN zero or more caller supplied optional parameters The callback should return a string or None to indicate a valid password cannot be supplied. Returning None will prevent the callback from being invoked again. list_certs(type, [user_data1, ...]) -> (`Certificate`, ...) :Parameters: type : int PK11CertList* enumerated constant. user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Given the type of certificates to list return a tuple of `Certificate` objects matching that type. find_certs_from_email_addr(email, [user_data1, ...]) -> (`Certificate`, ...) :Parameters: email : string email address. user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Given an email address return a tuple of `Certificate` objects containing that address. find_certs_from_nickname(email, [user_data1, ...]) -> (`Certificate`, ...) :Parameters: nickname : string certificate nickname. user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Given a certificate nickname return a tuple of `Certificate` objects matching that nickname. find_cert_from_nickname(nickname, [user_data1, ...]) -> Certificate :Parameters: nickname : string certificate nickname to search for user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function A nickname is an alias for a certificate subject. There may be multiple certificates with the same subject, and hence the same nickname. This function will return the newest certificate that matches the subject, based on the NotBefore / NotAfter fields of the certificate. find_key_by_any_cert(cert, [user_data1, ...]) -> Certificate :Parameters: cert : Certificate object certificate whose private key is being searched for user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Finds the private key associated with a specified certificate in any available slot. generate_random(num_bytes) -> string :Parameters: num_bytes : integer Number of num_bytes to generate (must be non-negative) Generates random data.. get_default_certdb() Returns the default certificate database as a CertDB object get_cert_nicknames(certdb, what, [user_data1, ...]) -> name0, ... :Parameters: certdb : CertDB object CertDB certificate database object what : integer one of: - SEC_CERT_NICKNAMES_ALL - SEC_CERT_NICKNAMES_USER - SEC_CERT_NICKNAMES_SERVER - SEC_CERT_NICKNAMES_CA user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function Returns a tuple of the nicknames of the certificates in a specified certificate database. data_to_hex(data, octets_per_line=0, separator=':') -> string or list of strings :Parameters: data : buffer Binary data octets_per_line : integer Number of octets formatted on one line, if 0 then return a single string instead of an array of lines separator : string String used to seperate each octet If None it will be as if the empty string had been passed and no separator will be used. Format the binary data as hex string(s). Either a list of strings is returned or a single string. If octets_per_line is greater than zero then a list of strings will be returned where each string contains octets_per_line number of octets (except for the last string in the list which will contain the remainder of the octets). Returning a list of "lines" makes it convenient for a caller to format a block of hexadecimal data with line wrapping. If octets_per_line is greater than zero indicating a list result is desired a list is always returned even if the number of octets would produce only a single line. If octets_per_line is zero then a single string is returned, (no line splitting is performed). This is the default. The separator string is used to separate each octet. If None it will be as if the empty string had been passed and no separator will be used. read_hex(input, separators=" ,:\t\n") -> buffer :Parameters: input : string string containing hexadecimal data separators : string or None string containing set of separator characters Any character encountered during parsing which is in this string will be skipped and considered a separator between pairs of hexadecimal characters. Parse a string containing hexadecimal data and return a buffer object containing the binary octets. Each octet in the string is represented as a pair of case insensitive hexadecimal characters (0123456789abcdef). Each octet must be a pair of characters. Octets may optionally be preceded by 0x or 0X. Octets may be separated by separator characters specified in the separators string. The separators string is a set of characters. Any character in the separators character set will be ignored when it occurs between octets. If no separators should be considered then pass an empty string. Using the default separators each of these strings is valid input representing the same 8 octet sequence: 01, 23, 45, 67, 89, ab, cd, ef 01, 23, 45, 67, 89, AB, CD, EF 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef 01:23:45:67:89:ab:cd:ef 0123456789abcdef 01 23 45 67 89 ab cd ef 0x010x230x450x670x890xab0xcd0xef hash_buf(hash_alg, data) --> digest :Parameters: hash_alg : int hash algorithm enumeration (SEC_OID_*) e.g.: SEC_OID_MD5, SEC_OID_SHA1, SEC_OID_SHA256, SEC_OID_SHA512, etc. data : buffer or string buffer the digest will be computed for Computes a digest according to the hash_alg type. Return the digest data as buffer object. Note, if a hexidecimal string representation is desired then pass result to data_to_hex() md5_digest(data) --> digest :Parameters: data : buffer or string buffer the digest will be computed for Returns 16 octet MD5 digest data as buffer object. Note, if a hexidecimal string representation is desired then pass result to data_to_hex() sha1_digest(data) --> digest :Parameters: data : buffer or string buffer the digest will be computed for Returns 20 octet SHA1 digest data as buffer object. Note, if a hexidecimal string representation is desired then pass result to data_to_hex() sha256_digest(data) --> digest :Parameters: data : buffer or string buffer the digest will be computed for Returns 32 octet SHA256 digest data as buffer object. Note, if a hexidecimal string representation is desired then pass result to data_to_hex() sha512_digest(data) --> digest :Parameters: data : buffer or string buffer the digest will be computed for Returns 64 octet SHA512 digest data as buffer object. Note, if a hexidecimal string representation is desired then pass result to data_to_hex() indented_format(line_fmt_tuples, indent_len=4) -> string The function supports the display of complex objects which may be composed of other complex objects. There is often a need to output section headers or single strings and lists of pairs (the attribute in this discussion is called a label), or even blank lines. All of these items should line up in columns at different indentation levels in order to visually see the structure. It would not be flexible enough to have object formatting routines which simply returned a single string with all the indentation and formatting pre-applied. The indentation width may not be what is desired. Or more importantly you might not be outputting to text display. It might be a GUI which desires to display the information. Most GUI's want to handle each string seperately and control indentation and the visibility of each item (e.g. a tree control). At the same time we want to satisfy the need for easy and simple text output. This routine will do that, e.g.: print indented_format(obj.format_lines()) To accomodate necessary flexibility the object formatting methods (format_lines()) return a list of tuples. Each tuple represents a single line with the first tuple item being the indentation level for the line. There may be 0,1 or 2 additional strings in the tuple which are to be output on the line. A single string are usually one of two things, either a section header or data that has been continuted onto multiple lines. Two strings usually represent a pair with the first string being a label (e.g. attribute name). Each tuple may be: (int,) 1-value tuple, no strings, e.g. blank line. (int, string) 2-value tuple, output string at indent level. (int, string, string) 3-value tuple, first string is a label, second string is a value. Starting at the indent level output the label, then follow with the value. By keeping the label separate from the value the ouput formatter may elect to align the values in vertical columns for adjacent lines. Example:: # This list of tuples, [(0, 'Constraints'), (1, 'min:', '0') (1, 'max:', '100'), (1, 'Filter Data'), (2, 'ab bc de f0 12 34 56 78 9a bc de f0') (2, '12 34 56 78 9a bc de f0 12 34 56 78') ] # would product this output Constraints min: 0 max: 100 Filter Data: ab bc de f0 12 34 56 78 9a bc de f0 12 34 56 78 9a bc de f0 12 34 56 78 :Parameters: line_fmt_tuples : [(level, ...),...] A list of tuples. First tuple value is the indentation level followed by optional strings for the line. indent_len : int Number of space characters repeated for each level and prepended to the line string. make_line_fmt_tuples(level, obj) -> [(level, str), ...] :Parameters: obj : object If obj is a tuple or list then each member will be wrapped in a 2-tuple of (level, str). If obj is a scalar object then obj will be wrapped in a 2-tuple of (level, obj) level : integer Initial indentation level, all subsequent indents are relative to this starting level. Return a list of line formatted tuples sutible to passing to `indented_format()`. Each tuple consists of a integer level value and a string object. This is equivalent to: [(level, str(x)) for x in obj]. As a special case convenience if obj is a scalar object (i.e. not a list or tuple) then [(level, str(obj))] will be returned. der_universal_secitem_fmt_lines(sec_item, level=0, octets_per_line=0, separator=':') -> list of (indent, string) tuples :Parameters: sec_item : SecItem object A SecItem containing a DER encoded ASN1 universal type level : integer Initial indentation level, all subsequent indents are relative to this starting level. octets_per_line : integer Number of octets formatted on one line, if 0 then return a single string instead of an array of lines separator : string String used to seperate each octet If None it will be as if the empty string had been passed and no separator will be used. Given a SecItem in DER format which encodes a ASN.1 universal type convert the item to a string and return a list of (indent, string) tuples. oid_str(oid) -> string :Parameters: oid : may be one of integer, string, SecItem May be one of: * integer:: A SEC OID enumeration constant, also known as a tag (i.e. SEC_OID_*) for example SEC_OID_AVA_COMMON_NAME. * string:: A string in dotted decimal representation, for example 'OID.2.5.4.3'. The 'OID.' prefix is optional. Or a string for the tag name (e.g. 'SEC_OID_AVA_COMMON_NAME') The 'SEC_OID\_' prefix is optional. Or one of the canonical abbreviations (e.g. 'cn'). Case is not significant. * SecItem:: A SecItem object encapsulating the OID in DER format. Given an oid return it's description as a string. oid_tag_name(oid) -> string :Parameters: oid : may be one of integer, string, SecItem May be one of: * integer:: A SEC OID enumeration constant, also known as a tag (i.e. SEC_OID_*) for example SEC_OID_AVA_COMMON_NAME. * string:: A string in dotted decimal representation, for example 'OID.2.5.4.3'. The 'OID.' prefix is optional. Or a string for the tag name (e.g. 'SEC_OID_AVA_COMMON_NAME') The 'SEC_OID\_' prefix is optional. Or one of the canonical abbreviations (e.g. 'cn'). Case is not significant. * SecItem:: A SecItem object encapsulating the OID in DER format. Given an oid return it's tag constant as a string. oid_tag(oid) -> int :Parameters: oid : may be one of integer, string, SecItem May be one of: * integer:: A SEC OID enumeration constant, also known as a tag (i.e. SEC_OID_*) for example SEC_OID_AVA_COMMON_NAME. * string:: A string in dotted decimal representation, for example 'OID.2.5.4.3'. The 'OID.' prefix is optional. Or a string for the tag name (e.g. 'SEC_OID_AVA_COMMON_NAME') The 'SEC_OID\_' prefix is optional. Or one of the canonical abbreviations (e.g. 'cn'). Case is not significant. * SecItem:: A SecItem object encapsulating the OID in DER format. Given an oid return it's tag constant. oid_dotted_decimal(oid) -> string :Parameters: oid : may be one of integer, string, SecItem May be one of: * integer:: A SEC OID enumeration constant, also known as a tag (i.e. SEC_OID_*) for example SEC_OID_AVA_COMMON_NAME. * string:: A string in dotted decimal representation, for example 'OID.2.5.4.3'. The 'OID.' prefix is optional. Or a string for the tag name (e.g. 'SEC_OID_AVA_COMMON_NAME') The 'SEC_OID\_' prefix is optional. Or one of the canonical abbreviations (e.g. 'cn'). Case is not significant. * SecItem:: A SecItem object encapsulating the OID in DER format. Given an oid return it's tag constant as a string. key_mechanism_type_name(mechanism) -> string :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) Given a key mechanism enumeration constant (CKM_*) return it's name as a string key_mechanism_type_from_name(name) -> int :Parameters: name : string name of key mechanism enumeration constant (CKM_*) Given the name of a key mechanism enumeration constant (CKM_*) return it's integer constant The string comparison is case insensitive and will match with or without the CKM\_ prefix pk11_attribute_type_name(type) -> string :Parameters: type : int PK11 attribute type constant (CKA_*) Given a PK11 attribute type constant (CKA_*) return it's name as a string pk11_attribute_type_from_name(name) -> int :Parameters: name : string name of PK11 attribute type constant (CKA_*) Given the name of a PK11 attribute type constant (CKA_*) return it's integer constant The string comparison is case insensitive and will match with or without the CKA\_ prefix crl_reason_name(reason) -> string :Parameters: reason : int CERTCRLEntryReasonCode constant Given a CERTCRLEntryReasonCode constant return it's name as a string crl_reason_from_name(name) -> int :Parameters: name : string name of CERTCRLEntryReasonCode constant Given the name of a CERTCRLEntryReasonCode constant return it's integer constant The string comparison is case insensitive and will match with or without the crlEntry prefix general_name_type_name(type) -> string :Parameters: type : int CERTGeneralNameType constant Given a CERTGeneralNameType constant return it's name as a string general_name_type_from_name(name) -> int :Parameters: name : string name of CERTGeneralNameType constant Given the name of a CERTGeneralNameType constant return it's integer constant The string comparison is case insensitive and will match with or without the cert prefix pk11_disabled_reason_str(reason) -> string :Parameters: reason : int PK11 slot disabled reason constant (PK11_DIS_*) Given a PK11 slot disabled reason constant (PK11_DIS_*) return a descriptive string pk11_disabled_reason_name(reason) -> string :Parameters: reason : int PK11 slot disabled reason constant (PK11_DIS_*) Given a PK11 slot disabled reason constant (PK11_DIS_*) return the constant as a string. pk11_logout_all() Logout of every slot for all modules. get_best_slot(mechanism, [user_data1, ...]) -> PK11Slot :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Find the best slot which supports the given mechanism. get_internal_slot() -> PK11Slot Get the default internal slot. get_internal_key_slot() -> PK11Slot Get the default internal key slot. find_slot_by_name(name) -> `PK11Slot` :Parameters: name : string slot name Given a slot name return a `PK11Slot` object. create_context_by_sym_key(mechanism, operation, sym_key, sec_param=None) -> PK11Context :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) operation : int type of operation this context will be doing. A (CKA_*) constant (e.g. CKA_ENCRYPT, CKA_DECRYPT, CKA_SIGN, CKA_VERIFY, CKA_DIGEST) sym_key : PK11SymKey object symmetric key sec_param : SecItem object or None mechanism parameters used to build this context or None. Create a context from a symmetric key) import_sym_key(slot, mechanism, origin, operation, key_data, [user_data1, ...]) -> PK11SymKey :Parameters: slot : PK11Slot object designated PK11 slot mechanism : int key mechanism enumeration constant (CKM_*) origin : int PK11 origin enumeration (PK11Origin*) e.g. PK11_OriginDerive, PK11_OriginUnwrap, etc. operation : int type of operation this context will be doing. A (CKA_*) constant (e.g. CKA_ENCRYPT, CKA_DECRYPT, CKA_SIGN, CKA_VERIFY, CKA_DIGEST) key_data: SecItem object key data encapsulated in a SECItem used to build the symmetric key. user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Create a PK11SymKey from data) pub_wrap_sym_key(mechanism, pub_key, sym_key) -> SecItem :Parameters: mechanism : int CK_MECHANISM_TYPE enumerated constant pub_key : `PublicKey` object Public key used to wrap. sym_key : `PK11SymKey` object Symmetric key that will be wrapped. :returns: Wrapped symmetric key as SecItem Wraps a public key wrap (which only RSA can do). create_digest_context(hash_alg) -> PK11Context :Parameters: hash_alg : int hash algorithm enumeration (SEC_OID_*) e.g.: SEC_OID_MD5, SEC_OID_SHA1, SEC_OID_SHA256, SEC_OID_SHA512, etc. Create a context for performing digest (hash) operations) param_from_iv(mechanism, iv=None) -> SecItem :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) iv : SecItem object initialization vector. If there is no initialization vector you may also pass None or an empty SecItem object (e.g. SecItem()) Return a SecItem to be used as the initialization vector for encryption/decryption. param_from_algid(algid) -> SecItem :Parameters: algid : AlgorithmID object algorithm id Return a SecItem containing a encryption param derived from a AlgorithmID. generate_new_param(mechanism, sym_key=None) -> SecItem :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) sym_key : PK11SymKey object or None symmetric key or None Return a SecItem containing a encryption param. algtag_to_mechanism(algtag) -> mechanism :Parameters: algtag : int algorithm tag (e.g. SEC_OID_*) Returns the key mechanism enumeration constant (CKM_*) given an algorithm tag. Throws a KeyError exception if the algorithm tag is invalid. mechanism_to_algtag(mechanism) -> algtag :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) Returns the algtag given key mechanism enumeration constant (CKM_*) Throws an KeyError exception if the mechanism is invalid. get_iv_length(mechanism) -> algtag :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) Returns the length of the mechanism's initialization vector. get_block_size(mechanism, sec_param=None) -> int :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) sec_param : SecItem object or None mechanism parameters used to build this context or None. Get the mechanism block size get_pad_mechanism(mechanism) -> int :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) Determine appropriate mechanism to use when padding is required. If the mechanism does not map to a padding mechanism return the mechanism. import_crl(slot, der_crl, url, type, import_options, decode_options, [user_data1, ...]) -> SignedCRL :Parameters: slot : PK11Slot object designated PK11 slot der_crl : SecItem object signed DER CRL data encapsulated in a SecItem object. url : string URL of the CRL type : int revocation list type may be one of: - SEC_CRL_TYPE - SEC_KRL_TYPE import_options : int bit-wise OR of the following flags: - CRL_IMPORT_BYPASS_CHECKS or use CRL_IMPORT_DEFAULT_OPTIONS decode_options : int bit-wise OR of the following flags: - CRL_DECODE_DONT_COPY_DER - CRL_DECODE_SKIP_ENTRIES - CRL_DECODE_KEEP_BAD_CRL - CRL_DECODE_ADOPT_HEAP_DER or use CRL_DECODE_DEFAULT_OPTIONS user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function pk11_need_pw_init() -> bool Returns True if the internal slot needs to be initialized, False otherwise. The internal slot token should be initalized if: The token is not initialized `PK11Slot.need_login()` == True and `PK11Slot.need_user_init()` == True Or The token has a NULL password. `PK11Slot.need_login()` == False and `PK11Slot.need_user_init()` == False +------------------+------------------------+---------------------+ |CKF_LOGIN_REQUIRED|CKF_USER_PIN_INITIALIZED|CKF_TOKEN_INITIALIZED| +==================+========================+=====================+ | False | False | True | +------------------+------------------------+---------------------+ | True | False | False | +------------------+------------------------+---------------------+ | False | True | True | +------------------+------------------------+---------------------+ | True | True | True | +------------------+------------------------+---------------------+ `PK11Slot.need_login()` == CKF_LOGIN_REQUIRED `PK11Slot.need_user_init()` == !CKF_USER_PIN_INITIALIZED pk11_token_exists(mechanism) -> bool :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) Return True if a token is available which can perform the desired mechanism, False otherwise. pk11_is_fips() -> bool Returns True if the internal module has FIPS enabled, False otherwise. decode_der_crl(der_crl, type=SEC_CRL_TYPE, decode_options=CRL_DECODE_DEFAULT_OPTIONS) -> SignedCRL :Parameters: der_crl : SecItem object DER encoded CRL data encapsulated in a SECItem. type : int revocation list type may be one of: - SEC_CRL_TYPE - SEC_KRL_TYPE decode_options : int bit-wise OR of the following flags: - CRL_DECODE_DONT_COPY_DER - CRL_DECODE_SKIP_ENTRIES - CRL_DECODE_KEEP_BAD_CRL - CRL_DECODE_ADOPT_HEAP_DER or use CRL_DECODE_DEFAULT_OPTIONS read_der_from_file(file, ascii=False) -> SecItem :Parameters: file : file name or file object If string treat as file path to open and read, if file object read from file object. ascii : boolean If True treat file contents as ascii data. If PEM delimiters are found strip them. Then base64 decode the contents. Read the contents of a file and return as a SecItem object. If file is a string then treat it as a file pathname and open and read the contents of that file. If file is a file object then read the contents from the file object If the file contents begin with a PEM header then treat the the file as PEM encoded and decode the payload into DER form. Otherwise the file contents is assumed to already be in DER form. The returned SecItem contains the DER contents of the file. base64_to_binary(text) -> SecItem :Parameters: text : string string containing base64 data. Convert the base64 encoded data to binary data. The text is assumed to contain base64 text. The base64 text may optionally be wrapped in a PEM header and footer. Returns a SecItem containg the binary data. x509_key_usage(bitstr, repr_kind=AsEnumDescription) -> (str, ...) :Parameters: bitstr : SecItem object A SecItem containing a DER encoded bit string. repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsEnum The enumerated constant. (e.g. nss.KU_DIGITAL_SIGNATURE) AsEnumDescription A friendly human readable description of the enumerated constant as a string. (e.g. "Digital Signature") AsIndex The bit position within the bit string. Return a tuple of string name for each enabled bit in the key usage bit string. x509_cert_type(bitstr, repr_kind=AsEnumDescription) -> (str, ...) :Parameters: bitstr : SecItem object A SecItem containing a DER encoded bit string. repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsEnum The enumerated constant. (e.g. nss.NS_CERT_TYPE_SSL_SERVER) AsEnumDescription A friendly human readable description of the enumerated constant as a string. (e.g. "SSL Server") AsIndex The bit position within the bit string. Return a tuple of string name for each enabled bit in the key usage bit string. x509_ext_key_usage(sec_item, repr_kind=AsString) -> (obj, ...) :Parameters: sec_item : SecItem object A SecItem containing a DER encoded sequence of OID's repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsObject Each extended key usage will be a SecItem object embedding the OID in DER format. AsString Each extended key usage will be a descriptive string. (e.g. "TLS Web Server Authentication Certificate") AsDottedDecimal Each extended key usage will be OID rendered as a dotted decimal string. (e.g. "OID.1.3.6.1.5.5.7.3.1") AsEnum Each extended key usage will be OID tag enumeration constant (int). (e.g. nss.SEC_OID_EXT_KEY_USAGE_SERVER_AUTH) Return a tuple of OID's according the representation kind. x509_alt_name(sec_item, repr_kind=AsString) -> (SecItem, ...) :Parameters: sec_item : SecItem object A SecItem containing a DER encoded alternative name extension. repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsObject The general name as a nss.GeneralName object AsString The general name as a string. (e.g. "http://crl.geotrust.com/crls/secureca.crl") AsTypeString The general name type as a string. (e.g. "URI") AsTypeEnum The general name type as a general name type enumerated constant. (e.g. nss.certURI ) AsLabeledString The general name as a string with it's type prepended. (e.g. "URI: http://crl.geotrust.com/crls/secureca.crl" Return a tuple of GeneralNames according the representation kind. cert_usage_flags(flags, repr_kind=AsEnumDescription) -> ['flag_name', ...] :Parameters: flags : int certificateUsage* bit flags repr_kind : RepresentationKind constant Specifies what the contents of the returned list will be. May be one of: AsEnum The enumerated constant as an integer value. AsEnumName The name of the enumerated constant as a string. AsEnumDescription A friendly human readable description of the enumerated constant as a string. Given an integer with certificateUsage* (e.g. nss.certificateUsageSSLServer) bit flags return a sorted list of their string names. key_usage_flags(flags, repr_kind=AsEnumName) -> ['flag_name', ...] :Parameters: flags : int KU_* bit flags repr_kind : RepresentationKind constant Specifies what the contents of the returned list will be. May be one of: AsEnum The enumerated constant as an integer value. AsEnumName The name of the enumerated constant as a string. AsEnumDescription A friendly human readable description of the enumerated constant as a string. Given an integer with KU_* (e.g. nss.KU_DIGITAL_SIGNATURE) bit flags return a sorted list of their string names. cert_type_flags(flags, repr_kind=AsEnumName) -> ['flag_name', ...] :Parameters: flags : int KU_* bit flags repr_kind : RepresentationKind constant Specifies what the contents of the returned list will be. May be one of: AsEnum The enumerated constant as an integer value. AsEnumName The name of the enumerated constant as a string. AsEnumDescription A friendly human readable description of the enumerated constant as a string. Given an integer with NS_CERT_TYPE_* (e.g. nss.NS_CERT_TYPE_SSL_SERVER) bit flags return a sorted list of their string names. nss_init_flags(flags, repr_kind=AsEnumName) -> ['flag_name', ...] :Parameters: flags : int NSS_INIT* bit flags repr_kind : RepresentationKind constant Specifies what the contents of the returned list will be. May be one of: AsEnum The enumerated constant as an integer value. AsEnumName The name of the enumerated constant as a string. AsEnumDescription A friendly human readable description of the enumerated constant as a string. Given an integer with NSS_INIT* (e.g. nss.NSS_INIT_READONLY) bit flags return a sorted list of their string names. pkcs12_enable_cipher(cipher, enabled) :Parameters: cipher : integer The PKCS12 cipher suite enumeration (e.g. `PKCS12_DES_EDE3_168`, etc.) enabled : bool or int True enables, False disables The cipher may be one of: - PKCS12_RC2_CBC_40 - PKCS12_RC2_CBC_128 - PKCS12_RC4_40 - PKCS12_RC4_128 - PKCS12_DES_56 - PKCS12_DES_EDE3_168 pkcs12_enable_all_ciphers() Enables all PKCS12 ciphers, which are: - `PKCS12_RC2_CBC_40` - `PKCS12_RC2_CBC_128` - `PKCS12_RC4_40` - `PKCS12_RC4_128` - `PKCS12_DES_56` - `PKCS12_DES_EDE3_168` pkcs12_set_preferred_cipher(cipher, enabled) :Parameters: cipher : integer The PKCS12 cipher suite enumeration (e.g. `PKCS12_DES_EDE3_168`, etc.) enabled : bool or int True enables, False disables This function enables or disables the preferred flag on a PKCS cipher. The default preferred cipher is `PKCS12_RC2_CBC_40`. The cipher may be one of: - `PKCS12_RC2_CBC_40` - `PKCS12_RC2_CBC_128` - `PKCS12_RC4_40` - `PKCS12_RC4_128` - `PKCS12_DES_56` - `PKCS12_DES_EDE3_168` pkcs12_cipher_name(cipher) -> string :Parameters: cipher : int PKCS12_* constant Given a PKCS12_* constant return it's name as a string pkcs12_cipher_from_name(name) -> int :Parameters: name : string name of PKCS12_* constant Given the name of a PKCS12_* constant return it's integer constant The string comparison is case insensitive and will match with or without the PKCS12\_ prefix pkcs12_map_cipher(cipher, key_length=0) -> int :Parameters: cipher : may be one of integer, string or SecItem May be one of: * integer:: A SEC OID enumeration constant, also known as a tag (i.e. SEC_OID_*) for example SEC_OID_DES_EDE3_CBC. * string:: A string for the tag name (e.g. 'SEC_OID_DES_EDE3_CBC') The 'SEC_OID\_' prefix is optional. A string in dotted decimal representation, for example 'OID.2.5.4.3'. The 'OID.' prefix is optional. Case is not significant. * SecItem:: A SecItem object encapsulating the OID in DER format. key_length : int The number of bits in the key. If zero a default will be selected. Given an cipher and optionally a key length, map that to a PKCS12 encryption method returned as a SEC_OID tag. pkcs12_set_nickname_collision_callback(callback) :Parameters: callback : function pointer The callback function When importing a certificate via a `PKCS12Decoder` object and the nickname is not set or collides with an existing nickname in the NSS database then this callback is invoked to resolve the problem. If no nickname collision callback has been set then an internal default callback will be used instead which calls the NSS function CERT_MakeCANickname (available in the Python binding as `Certificate.make_ca_nickname()`). The callback has the signature:: nickname_collision_callback(old_nickname, cert) --> new_nickname, cancel old_nickname the preious nickname or None if previous did not exist cert the `Certificate` object being imported. The callback returns 2 values, the new nickname, and a boolean. new_nickname The new nickname to try or None cancel boolean indicating if collision resolution should be cancelled pkcs12_export(nickname, pkcs12_password, key_cipher=SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC, cert_cipher=SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC, pin_args=None) :Parameters: nickname : string Certificate nickname to search for. pkcs12_password : string The password used to protect the pkcs12_file. key_cipher : int A SEC OID TAG enumerated constant selecting the encryption for the private key (see below). Also see `nss.pkcs12_map_cipher()` for an alternative method to select the encryption cipher. cert_cipher : int A SEC OID TAG enumerated constant selecting the encryption for the certificates (see below). Also see `nss.pkcs12_map_cipher()` for an alternative method to select the encryption cipher. pin_args : tuple Extra parameters which will be passed to the password callback function. pkcs12_export() is used to export a certificate and private key pair from the NSS database in a protected manner. It produces the binary content of what is typically called a .p12 file (e.g. PKCS12). This function does not write the file, if you want to write a .p12 file you must write it's output to a file, for example: :: pkcs12_data = nss.pkcs12_export(nickname, pkcs12_file_password) f = open(p12_file_path, 'w') f.write(pkcs12_data) f.close() Password Based Encryption ------------------------- PKCS #12 provides for not only the protection of the private keys but also the certificate and meta-data associated with the keys. Password based encryption is used to protect private keys (i.e. key_cipher) on export to a PKCS #12 file and also the entire package when allowed (i.e. cert_cipher). If no algorithm is specified it defaults to using 'PKCS #12 V2 PBE With SHA-1 And 3KEY Triple DES-CBC' for private key encryption. For historical export control reasons 'PKCS #12 V2 PBE With SHA-1 And 40 Bit RC2 CBC' is the default for the overall package encryption when not in FIPS mode and no package encryption when in FIPS mode. The private key is always protected with strong encryption by default. A list of ciphers follows, the term is the SEC OID TAG followd by a friendly description. * symmetric CBC ciphers for PKCS #5 V2: SEC_OID_DES_CBC DES-CBC. SEC_OID_RC2_CBC RC2-CBC. SEC_OID_RC5_CBC_PAD RC5-CBCPad. SEC_OID_DES_EDE3_CBC DES-EDE3-CBC. SEC_OID_AES_128_CBC AES-128-CBC. SEC_OID_AES_192_CBC AES-192-CBC. SEC_OID_AES_256_CBC AES-256-CBC. SEC_OID_CAMELLIA_128_CBC CAMELLIA-128-CBC. SEC_OID_CAMELLIA_192_CBC CAMELLIA-192-CBC. SEC_OID_CAMELLIA_256_CBC CAMELLIA-256-CBC. * PKCS #12 PBE Ciphers: SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 PKCS #12 PBE With SHA-1 and 128 Bit RC4. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 PKCS #12 PBE With SHA-1 and 40 Bit RC4. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC PKCS #12 PBE With SHA-1 and Triple DES-CBC. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC PKCS #12 PBE With SHA-1 and 128 Bit RC2 CBC. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC PKCS #12 PBE With SHA-1 and 40 Bit RC2 CBC. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 PKCS #12 V2 PBE With SHA-1 And 128 Bit RC4. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 PKCS #12 V2 PBE With SHA-1 And 40 Bit RC4. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC PKCS #12 V2 PBE With SHA-1 And 3KEY Triple DES-CBC. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC PKCS #12 V2 PBE With SHA-1 And 2KEY Triple DES-CBC. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC PKCS #12 V2 PBE With SHA-1 And 128 Bit RC2 CBC. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC PKCS #12 V2 PBE With SHA-1 And 40 Bit RC2 CBC. * PKCS #5 PBE Ciphers: SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC PKCS #5 Password Based Encryption with MD2 and DES-CBC. SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC PKCS #5 Password Based Encryption with MD5 and DES-CBC. SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC PKCS #5 Password Based Encryption with SHA-1 and DES-CBC. fingerprint_format_lines(data, level=0) -> :Parameters: data : SecItem or str or any buffer compatible object Data to initialize the certificate request from, must be in DER format level : integer Initial indentation level, all subsequent indents are relative to this starting level. Generates digests of data (i.e. fingerprint) and formats it into line tuples for text output. get_use_pkix_for_validation() -> flag Returns the current value of the flag used to enable or disable the use of PKIX for certificate validation. See also: `set_use_pkix_for_validation`. set_use_pkix_for_validation(flag) -> prev_flag :Parameters: flag : boolean Boolean flag, True to enable PKIX validation, False to disable PKIX validation. Sets the flag to enable or disable the use of PKIX for certificate validation. Returns the previous value of the flag. See also: `get_use_pkix_for_validation`. enable_ocsp_checking(certdb=get_default_certdb()) :Parameters: certdb : CertDB object or None CertDB certificate database object, if None then the default certdb will be supplied by calling `nss.get_default_certdb()`. Turns on OCSP checking for the given certificate database. disable_ocsp_checking(certdb=get_default_certdb()) :Parameters: certdb : CertDB object or None CertDB certificate database object, if None then the default certdb will be supplied by calling `nss.get_default_certdb()`. Turns off OCSP checking for the given certificate database. It will raise an exception with SEC_ERROR_OCSP_NOT_ENABLED as the error code if OCSP checking is not enabled. It is safe to call it when OCSP checking is disabled, you can just ignore the exception if it is easier to just call it than to remember if it was enabled. set_ocsp_cache_settings(max_cache_entries, min_secs_till_next_fetch, max_secs_till_next_fetch) :Parameters: max_cache_entries : int Maximum number of cache entries. Special values, -1 disables the cache, 0 indicates unlimited cache entries. min_secs_till_next_fetch : int Whenever an OCSP request was attempted or completed over the network, wait at least this number of seconds before trying to fetch again. max_secs_till_next_fetch : int The maximum age of a cached response we allow, until we try to fetch an updated response, even if the OCSP responder expects that a newer information update will not be available yet. Sets parameters that control NSS' internal OCSP cache. set_ocsp_failure_mode(failure_mode) :Parameters: failure_mode : int A ocspMode_Failure* constant Set the desired behaviour on OCSP failures. failure_mode may be one of: - ocspMode_FailureIsVerificationFailure - ocspMode_FailureIsNotAVerificationFailure set_ocsp_timeout(seconds) :Parameters: seconds : int Maximum number of seconds NSS will wait for an OCSP response. Configure the maximum time NSS will wait for an OCSP response. clear_ocsp_cache() Removes all items currently stored in the OCSP cache. set_ocsp_default_responder(certdb, url, nickname) :Parameters: certdb : CertDB object CertDB certificate database object. url : string The location of the default responder (e.g. "http://foo.com:80/ocsp") Note that the location will not be tested until the first attempt to send a request there. nickname : string The nickname of the cert to trust (expected) to sign the OCSP responses. If the corresponding cert cannot be found, SECFailure is returned. Specify the location and cert of the default responder. If OCSP checking is already enabled and use of a default responder is also already enabled, all OCSP checking from now on will go directly to the specified responder. If OCSP checking is not enabled, or if it is enabled but use of a default responder is not enabled, the information will be recorded and take effect whenever both are enabled. enable_ocsp_default_responder(certdb=get_default_certdb()) :Parameters: certdb : CertDB object or None CertDB certificate database object, if None then the default certdb will be supplied by calling `nss.get_default_certdb()`. Turns on use of a default responder when OCSP checking. If OCSP checking is already enabled, this will make subsequent checks go directly to the default responder. (The location of the responder and the nickname of the responder cert must already be specified.) If OCSP checking is not enabled, this will be recorded and take effect whenever it is enabled. disable_ocsp_default_responder(certdb=get_default_certdb()) :Parameters: certdb : CertDB object or None CertDB certificate database object, if None then the default certdb will be supplied by calling `nss.get_default_certdb()`. Turns off use of a default responder when OCSP checking. (Does nothing if use of a default responder is not enabled.) SecItem(data=None, type=siBuffer) :Parameters: data : any read buffer compatible object (e.g. buffer or string) raw data to initialize from type : int SECItemType constant (e.g. si*) Encoded data. Used internally by NSS An object representing a signature algorithmRSAGenParams(key_size=1024, public_exponent=0x10001) :Parameters: key_size : integer RSA key size in bits. public_exponent : integer public exponent. An object representing RSAGenParams. KEYPQGParams(prime=None, subprime=None, base=None) :Parameters: prime : SecItem or str or any buffer compatible object or None prime (also known as p) subprime : SecItem or str or any buffer compatible object or None subprime (also known as q) base : SecItem or str or any buffer compatible object or None base (also known as g) An object representing DSA key parameters - prime (also known as p) - subprime (also known as q) - base (also known as g) If no parameters are passed the default PQG the KeyPQGParams will be intialized to default values. If you pass any initialization parameters then they must all be passed. An object representing an RSA Public KeyA object representing a DSA Public KeyA object representing a signatureAn object representing a Public KeyAn object representing a Subject Public KeyAn object representing a Certificate DatabaseAn object representing a certificate extensionCertificate(data, certdb=get_default_certdb(), perm=False, nickname=None) :Parameters: data : SecItem or str or any buffer compatible object Data to initialize the certificate from, must be in DER format certdb : CertDB object or None CertDB certificate database object, if None then the default certdb will be supplied by calling `nss.get_default_certdb()`. perm : bool True if certificate should be permantely stored in the certdb. nickname : string certificate nickname. An X509 Certificate object. The Certificate is initialized from the supplied DER data. The Certificate is added to the NSS temporary database. If perm is True then the Certificate is also permanently written into certdb. An object representing a Private KeyAn object representing a signed certificate revocation listAn object representing a PKCS #11 SlotHolds a hash, encryption or signing context for multi-part operations. An object representing a CRL Distribution PointAn object representing CRL Distribution Points listAuthorityInfoAccess() An object representing AuthorityInfoAccess. AuthorityInfoAccesses(data) :Parameters: data : SecItem or str or any buffer compatible object Data to initialize the Authority Information Access from, must be in DER format An object representing AuthorityInfoAccess Extension. An object representing an AVA (attribute value assertion). AVA(type, value) :Parameters: type : may be one of integer, string, SecItem What kind of attribute is being created. May be one of: * integer: A SEC OID enumeration constant (i.e. SEC_OID_*) for example SEC_OID_AVA_COMMON_NAME. * string: A string either as the ava name, for example 'cn' or as the dotted decimal representation, for example 'OID.2.5.4.3'. Case is not significant for either form. * SecItem: A SecItem object encapsulating the OID in DER format. value : string The value of the AVA, must be a string. RDN's (Relative Distinguished Name) are composed from AVA's. An `RDN` is a sequence of AVA's. An example of an AVA is "CN=www.redhat.com" where CN is the X500 directory abbrevation for "Common Name". An AVA is composed of two items: type Specifies the attribute (e.g. CN). AVA types are specified by predefined OID's (Object Identifiers). For example the OID of CN is 2.5.4.3 ({joint-iso-itu-t(2) ds(5) attributeType(4) commonName(3)}) OID's in NSS are encapsulated in a SecItem as a DER encoded OID. Because DER encoded OID's are less than ideal mechanisms by which to specify an item NSS has mapped each OID to a integral enumerated constant called an OID tag (i.e. SEC_OID_*). Many of the NSS API's will accept an OID tag number instead of DER encoded OID in a SecItem. One can easily convert between DER encoded OID's, tags, and their string representation in dotted-decimal format. The enumerated OID constants are the most efficient in most cases. value The value of the attribute (e.g. 'www.redhat.com'). Examples:: The AVA cn=www.redhat.com can be created in any of the follow ways: ava = nss.AVA('cn', 'www.redhat.com') ava = nss.AVA(nss.SEC_OID_AVA_COMMON_NAME, 'www.redhat.com') ava = nss.AVA('2.5.4.3', 'www.redhat.com') ava = nss.AVA('OID.2.5.4.3', 'www.redhat.com') An object representing an X501 Relative Distinguished Name (e.g. RDN). RDN objects contain an ordered list of `AVA` objects. Examples:: RDN() RDN(nss.AVA('cn', 'www.redhat.com')) RDN([ava0, ava1]) The RDN object constructor may be invoked with zero or more `AVA` objects, or you may optionally pass a list or tuple of `AVA` objects. RDN objects contain an ordered list of `AVA` objects. The RDN object has both sequence and mapping behaviors with respect to the AVA's they contain. Thus you can index an AVA by position, by name, or by SecItem (if it's an OID). You can iterate over the list, get it's length or take a slice. If you index by string the string may be either a canonical name for the AVA type (e.g. 'cn') or the dotted-decimal notation for the OID (e.g. 2.5.4.3). There may be multiple AVA's in a RDN whose type matches (e.g. OU=engineering+OU=boston). It is not common to have more than one AVA in a RDN with the same type. However because of the possiblity of being multi-valued when indexing by type a list is always returned containing the matching AVA's. Thus:: rdn = nss.RDN(nss.AVA('OU', 'engineering')) rdn['ou'] returns [AVA('OU=engineering') rdn = nss.RDN(nss.AVA('OU', 'engineering'), nss.AVA('OU', 'boston')) rdn['ou'] returns [AVA('OU=boston'), AVA('OU=engineering')] Examples:: rdn = nss.RDN(nss.AVA('cn', 'www.redhat.com')) str(rdn) returns 'CN=www.redhat.com' rdn[0] returns an `AVA` object with the value C=US rdn['cn'] returns a list comprised of an `AVA` object with the value CN=www.redhat.com rdn['2.5.4.3'] returns a list comprised of an `AVA` object with the value CN=www.redhat.com because 2.5.4.3 is the dotted-decimal OID for common name (i.e. cn) rdn.has_key('cn') returns True because the RDN has a common name RDN rdn.has_key('2.5.4.3') returns True because the RDN has a common name AVA because 2.5.4.3 is the dotted-decimal OID for common name (i.e. cn) len(rdn) returns 1 because there is one `AVA` object in it list(rdn) returns a list of each `AVA` object in it An object representing an X501 Distinguished Name (e.g DN). DN objects contain an ordered list of `RDN` objects. The DN object constructor may be invoked with a string representing an X500 name. Zero or more `RDN` objects, or you may optionally pass a list or tuple of `RDN` objects. Examples:: DN() DN('CN=www.redhat.com,OU=Web Operations,O=Red Hat Inc,L=Raleigh,ST=North Carolina,C=US') DN(rdn0, ...) DN([rdn0, rdn1]) **The string representation of a Distinguished Name (DN) has reverse ordering from it's sequential components.** The ordering is a requirement of the relevant RFC's. When a Distinguished Name is rendered as a string it is ordered from most specific to least specific. However it's components (RDN's) as a sequence are ordered from least specific to most specific. DN objects contain an ordered list of `RDN` objects. The DN object has both sequence and mapping behaviors with respect to the RDN's they contain. Thus you can index an RDN by position, by name, or by SecItem (if it's an OID). You can iterate over the list, get it's length or take a slice. If you index by string the string may be either a canonical name for the RDN type (e.g. 'cn') or the dotted-decimal notation for the OID (e.g. 2.5.4.3). There may be multiple RDN's in a DN whose type matches (e.g. OU=engineering, OU=boston). It is not common to have more than one RDN in a DN with the same type. However because of the possiblity of being multi-valued when indexing by type a list is always returned containing the matching RDN's. Thus:: dn = nss.DN('OU=engineering') dn['ou'] returns [RDN('OU=engineering') dn = nss.DN('OU=engineering, OU=boston') dn['ou'] returns [RDN('OU=boston'), RDN('OU=engineering')] Note the reverse ordering between string representation and RDN sequencing Note, if you use properties to access the RDN values (e.g. name.common_name, name.org_unit_name) the string value is returned or None if not found. If the item was multi-valued then the most appropriate item will be selected and returned as a string value. Note it is not possible to index by oid tag (e.g. nss.SEC_OID_AVA_COMMON_NAME) because oid tags are integers and it's impossible to distinguish between an integer representing the n'th member of the sequence and the integer representing the oid tag. In this case positional indexing wins (e.g. rdn[0] means the first element). Examples:: subject_name = 'CN=www.redhat.com,OU=Web Operations,O=Red Hat Inc,L=Raleigh,ST=North Carolina,C=US' name = nss.DN(subject_name) str(name) returns 'CN=www.redhat.com,OU=Web Operations,O=Red Hat Inc,L=Raleigh,ST=North Carolina,C=US' name[0] returns an `RDN` object with the value C=US name['cn'] returns a list comprised of an `RDN` object with the value CN=www.redhat.com name['2.5.4.3'] returns a list comprised of an `RDN` object with the value CN=www.redhat.com because 2.5.4.3 is the dotted-decimal OID for common name (i.e. cn) name.common_name returns the string www.redhat.com common_name is easy shorthand property, it only retuns a single string value or None, if it was multi-valued the most appropriate item is selected. name.has_key('cn') returns True because the DN has a common name RDN name.has_key('2.5.4.3') returns True because the DN has a common name RDN because 2.5.4.3 is the dotted-decimal OID for common name (i.e. cn) cn_rdn = nss.RDN(nss.AVA('cn', 'www.redhat.com')) ou_rdn = nss.RDN(nss.AVA('ou', 'Web Operations')) name = nss.DN(cn_rdn) name is a DN with one RDN (e.g. CN=www.redhat.com) len(name) returns 1 because there is one RDN in it name.add_rdn(ou_rdn) name name is now a DN with two RDN's (e.g. OU=Web Operations,CN=www.redhat.com) len(name) returns 2 because there are now two RDN's in it list(name) returns a list with the two RDN's in it name[:] same as list(name) for rdn in name: iterate over each RDN in name name = nss.DN(cn_rdn, ou_rdn) This is an alternate way to build the above DN An object representing a GeneralName or list of GeneralNames. An object representing Authentication Key ID extensionAn object representing X509 Basic Constraints ExtensionCertAttribute() An object representing CertAttribute. CertificateRequest(data=None) :Parameters: data : SecItem or str or any buffer compatible object Data to initialize the certificate request from, must be in DER format An object representing a certificate requestAn object representing NSS Initialization ParametersAn object representing NSSInitContextAn object representing an item in a PKCS12 collection. Also known as a "bag"PKCS12Decoder(file, password, slot=None) :Parameters: file : file name or file object pkcs12 input data. * If string treat as file path to open and read. * If file object read from the file object. password : string The password protecting the PKCS12 contents slot : `PK11Slot` object The PK11 slot to use. If None defaults to internal slot, see `nss.get_internal_key_slot()` CertVerifyLogNode() An object detailing specific diagnostic information concerning a single failure during certification validation. These are collected in a `CertVerifyLog` object. CertVerifyLog() An object which collects diagnostic information during certification validation. get_oid_sequence(repr_kind=AsString) -> (obj, ...) :Parameters: repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsObject Each extended key usage will be a SecItem object embedding the OID in DER format. AsString Each extended key usage will be a descriptive string. (e.g. "TLS Web Server Authentication Certificate") AsDottedDecimal Each extended key usage will be OID rendered as a dotted decimal string. (e.g. "OID.1.3.6.1.5.5.7.3.1") AsEnum Each extended key usage will be OID tag enumeration constant (int). (e.g. nss.SEC_OID_EXT_KEY_USAGE_SERVER_AUTH) Return a tuple of OID's according the representation kind. get_integer() -> int or long If the SecItem contains an ASN.1 integer in DER format return a Python integer (or long) to_hex(octets_per_line=0, separator=':') -> string or list of strings :Parameters: octets_per_line : integer Number of octets formatted on one line, if 0 then return a single string instead of an array of lines separator : string String used to seperate each octet If None it will be as if the empty string had been passed and no separator will be used. Equivalent to calling data_to_hex(sec_item) der_to_hex(octets_per_line=0, separator=':') -> string or list of strings :Parameters: octets_per_line : integer Number of octets formatted on one line, if 0 then return a single string instead of an array of lines separator : string String used to seperate each octet If None it will be as if the empty string had been passed and no separator will be used. Interpret the SecItem as containing DER encoded data consisting of a triplet (e.g. TLV). This function skips the type and length components and returns the value component as a hexadecimal string or a list of hexidecimal strings with a maximum of octets_per_line in each list element. See data_to_hex() for a more detailed explanation. format_lines(level=0) -> [(level, string),...] :Parameters: level : integer Initial indentation level, all subsequent indents are relative to this starting level. Formats the object into a sequence of lines with indent level information. The return value is a list where each list item is a tuple. The first item in the tuple is an integer representing the indentation level for that line. Any remaining items in the tuple are strings to be output on that line. The output of this function can be formatted into a single string by calling `nss.nss.indented_format()`, e.g.: print indented_format(obj.format_lines()) The reason this function returns a tuple as opposed to an single indented string is to support other text formatting systems such as GUI's with indentation controls. See `nss.nss.indented_format()` for a complete explanation. format(level=0, indent=' ') -> string) :Parameters: level : integer Initial indentation level, all subsequent indents are relative to this starting level. indent : string string replicated once for each indent level then prepended to output line This is equivalent to: indented_format(obj.format_lines()) on an object providing a format_lines() method. find_crl_by_name(name, type=SEC_CRL_TYPE) -> SignedCRL object :Parameters: name : string name to lookup type : int revocation list type may be one of: - SEC_CRL_TYPE - SEC_KRL_TYPE Returns a SignedCRL object found in the database given a name and revocation list type. find_crl_by_cert(cert, type=SEC_CRL_TYPE) -> SignedCRL object :Parameters: cert : Certificate object certificate used to lookup the CRL. type : int revocation list type may be one of: - SEC_CRL_TYPE - SEC_KRL_TYPE Returns a SignedCRL object found in the database given a certificate and revocation list type. trust_flags(flags, repr_kind=AsEnumDescription) -> ['flag_name', ...] :Parameters: flags : int certificate trust integer bitmask repr_kind : RepresentationKind constant Specifies what the contents of the returned list will be. May be one of: AsEnum The enumerated constant as an integer value. AsEnumName The name of the enumerated constant as a string. AsEnumDescription A friendly human readable description of the enumerated constant as a string. Given an integer with trust flags encoded as a bitmask return a sorted list of their values as specified in the repr_kind This is a class method. set_trust_attributes(trust, certdb, slot, [user_data1, ...]) :Parameters: string : trust NSS trust string certdb : CertDB object or None CertDB certificate database object, if None then the default certdb will be supplied by calling `nss.get_default_certdb()`. slot : `PK11Slot` object The PK11 slot to use. If None defaults to internal slot, see `nss.get_internal_key_slot()` user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function find_kea_type() -> kea_type Returns key exchange type of the keys in an SSL server certificate. May be one of the following: - ssl_kea_null - ssl_kea_rsa - ssl_kea_dh - ssl_kea_fortezza (deprecated) - ssl_kea_ecdh make_ca_nickname() -> string Returns a nickname for the certificate guaranteed to be unique within the the current NSS database. The nickname is composed thusly: A. Establish a name by trying in order: 1. subject's common name (i.e. CN) 2. subject's organizational unit name (i.e. OU) B. Establish a realm by trying in order: 1. issuer's organization name (i.e. O) 2. issuer's distinguished name (i.e. DN) 3. set to "Unknown CA" C. If name exists the nickname will be "name - realm", else the nickname will be "realm" D. Then the nickname will be tested for existence in the database. If it does not exist it will be returned as the nickname. Else a loop is entered where the nickname will have " #%d" appended to it where %d is an integer beginning at 1. The generated nickname is tested for existence in the dabase until a unique name is found. has_signer_in_ca_names(ca_names) -> bool :Parameters: ca_names : (SecItem, ...) Sequence of CA distinguished names. Each item in the sequence must be a SecItem object containing a distinguished name. Returns True if any of the signers in the certificate chain for a specified certificate are in the list of CA names, False otherwise. verify_hostname(hostname) -> bool A restricted regular expression syntax is used to test if the common name specified in the subject DN of the certificate is a match, returning True if so, False otherwise. The regular expression systax is: \* matches anything \? matches one character \\ (backslash) escapes a special character \$ matches the end of the string [abc] matches one occurrence of a, b, or c. The only character that needs to be escaped in this is ], all others are not special. [a-z] matches any character between a and z [^az] matches any character except a or z \~ followed by another shell expression removes any pattern matching the shell expression from the match list (foo|bar) matches either the substring foo or the substring bar. These can be shell expressions as well. check_valid_times(time=now, allow_override=False) --> validity :Parameters: time : number or None an optional point in time as number of microseconds since the NSPR epoch, midnight (00:00:00) 1 January 1970 UTC, either as an integer or a float. If time is None the current time is used. allow_override : bool If True then check to see if the invalidity has been overridden by the user, defaults to False. Checks whether a specified time is within a certificate's validity period. Returns one of: - secCertTimeValid - secCertTimeExpired - secCertTimeNotValidYet is_ca_cert(return_cert_type=False) -> boolean is_ca_cert(True) -> boolean, cert_type :Parameters: return_cert_type : boolean If True returns both boolean result and certficate type bitmask. If False return only boolean result Returns True if the cert is a CA cert, False otherwise. The function optionally can return a bitmask of NS_CERT_TYPE_* flags if return_cert_type is True. This is the updated cert type after applying logic in the context of deciding if the cert is a CA cert or not. Hint: the cert_type value can be converted to text with `nss.cert_type_flags()`. Hint: the unmodified cert type flags can be obtained with the `Certificate.cert_type` property. verify_now(certdb, check_sig, required_usages, [user_data1, ...]) -> valid_usages :Parameters: certdb : CertDB object CertDB certificate database object check_sig : bool True if certificate signatures should be checked required_usages : integer A bitfield of all cert usages that are required for verification to succeed. If zero return all possible valid usages. user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function Verify a certificate by checking if it's valid and that we trust the issuer. Possible usage bitfield values are: - certificateUsageCheckAllUsages - certificateUsageSSLClient - certificateUsageSSLServer - certificateUsageSSLServerWithStepUp - certificateUsageSSLCA - certificateUsageEmailSigner - certificateUsageEmailRecipient - certificateUsageObjectSigner - certificateUsageUserCertImport - certificateUsageVerifyCA - certificateUsageProtectedObjectSigner - certificateUsageStatusResponder - certificateUsageAnyCA Returns valid_usages, a bitfield of certificate usages. If required_usages is non-zero, the returned bitmap is only for those required usages, otherwise it is for all possible usages. Hint: You can obtain a printable representation of the usage flags via `cert_usage_flags`. Note: See the `Certificate.verify` documentation for details on how the Certificate verification functions handle errors. verify(certdb, check_sig, required_usages, time, [user_data1, ...]) -> valid_usages :Parameters: certdb : CertDB object CertDB certificate database object check_sig : bool True if certificate signatures should be checked required_usages : integer A bitfield of all cert usages that are required for verification to succeed. If zero return all possible valid usages. time : number or None an optional point in time as number of microseconds since the NSPR epoch, midnight (00:00:00) 1 January 1970 UTC, either as an integer or a float. If time is None the current time is used. user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function Verify a certificate by checking if it's valid and that we trust the issuer. Possible usage bitfield values are: - certificateUsageCheckAllUsages - certificateUsageSSLClient - certificateUsageSSLServer - certificateUsageSSLServerWithStepUp - certificateUsageSSLCA - certificateUsageEmailSigner - certificateUsageEmailRecipient - certificateUsageObjectSigner - certificateUsageUserCertImport - certificateUsageVerifyCA - certificateUsageProtectedObjectSigner - certificateUsageStatusResponder - certificateUsageAnyCA Returns valid_usages, a bitfield of certificate usages. If required_usages is non-zero, the returned bitmap is only for those required usages, otherwise it is for all possible usages. Hint: You can obtain a printable representation of the usage flags via `cert_usage_flags`. Note: Anytime a NSPR or NSS function returns an error in python-nss it raises a NSPRError exception. When an exception is raised the normal return values are discarded because the flow of control continues at the first except block prepared to catch the exception. Normally this is what is desired because the return values would be invalid due to the error. However the certificate verification functions are an exception (no pun intended). An error might be returned indicating the cert failed verification but you may still need access to the returned usage bitmask and the log (if using the log variant). To handle this a special error exception `CertVerifyError` (derived from `NSPRError`) is defined which in addition to the normal NSPRError fields will also contain the returned usages and optionally the CertVerifyLog object. If no exception is raised these are returned as normal return values. verify_with_log(certdb, check_sig, required_usages, time, [user_data1, ...]) -> valid_usages, log :Parameters: certdb : CertDB object CertDB certificate database object check_sig : bool True if certificate signatures should be checked required_usages : integer A bitfield of all cert usages that are required for verification to succeed. If zero return all possible valid usages. time : number or None an optional point in time as number of microseconds since the NSPR epoch, midnight (00:00:00) 1 January 1970 UTC, either as an integer or a float. If time is None the current time is used. user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function Verify a certificate by checking if it's valid and that we trust the issuer. Possible usage bitfield values are: - certificateUsageCheckAllUsages - certificateUsageSSLClient - certificateUsageSSLServer - certificateUsageSSLServerWithStepUp - certificateUsageSSLCA - certificateUsageEmailSigner - certificateUsageEmailRecipient - certificateUsageObjectSigner - certificateUsageUserCertImport - certificateUsageVerifyCA - certificateUsageProtectedObjectSigner - certificateUsageStatusResponder - certificateUsageAnyCA Returns valid_usages, a bitfield of certificate usages and a `nss.CertVerifyLog` object with diagnostic information detailing the reasons for a validation failure. If required_usages is non-zero, the returned bitmap is only for those required usages, otherwise it is for all possible usages. Hint: You can obtain a printable representation of the usage flags via `cert_usage_flags`. Note: See the `Certificate.verify` documentation for details on how the Certificate verification functions handle errors. check_ocsp_status(certdb, time, [user_data1, ...]) -> boolean :Parameters: certdb : CertDB object CertDB certificate database object. time : number or None Time for which status is to be determined. Time as number of microseconds since the NSPR epoch, midnight (00:00:00) 1 January 1970 UTC, either as an integer or a float. If time is None the current time is used. user_dataN : object zero or more caller supplied parameters which will be passed to the password callback function Checks the status of a certificate via OCSP. Will only check status for a certificate that has an AIA (Authority Information Access) extension for OCSP or when a "default responder" is specified and enabled. (If no AIA extension for OCSP and no default responder in place, the cert is considered to have a good status. Returns True if an approved OCSP responder knows the cert and returns a non-revoked status for it. Otherwise a `error.NSPRError` is raised and it's error_code property may be one of the following: - SEC_ERROR_OCSP_BAD_HTTP_RESPONSE - SEC_ERROR_OCSP_FUTURE_RESPONSE - SEC_ERROR_OCSP_MALFORMED_REQUEST - SEC_ERROR_OCSP_MALFORMED_RESPONSE - SEC_ERROR_OCSP_OLD_RESPONSE - SEC_ERROR_OCSP_REQUEST_NEEDS_SIG - SEC_ERROR_OCSP_SERVER_ERROR - SEC_ERROR_OCSP_TRY_SERVER_LATER - SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST - SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE - SEC_ERROR_OCSP_UNKNOWN_CERT - SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS - SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE - SEC_ERROR_BAD_SIGNATURE - SEC_ERROR_CERT_BAD_ACCESS_LOCATION - SEC_ERROR_INVALID_TIME - SEC_ERROR_REVOKED_CERTIFICATE - SEC_ERROR_UNKNOWN_ISSUER - SEC_ERROR_UNKNOWN_SIGNER Other errors are possible failures in cert verification (e.g. SEC_ERROR_REVOKED_CERTIFICATE, SEC_ERROR_UNTRUSTED_ISSUER) when verifying the signer's cert, or other low-level problems. get_cert_chain(time=now, usages=certUsageAnyCA) -> (`Certificate`, ...) :Parameters: time : number or None an optional point in time as number of microseconds since the NSPR epoch, midnight (00:00:00) 1 January 1970 UTC, either as an integer or a float. If time is None the current time is used. usages : integer a certUsage* enumerated constant Returns a tuple of `Certificate` objects. get_extension(oid) -> `CertificateExtension` Given an oid identifying the extension try to locate it in the certificate and return it as generic `CertificateExtension` object. If the extension is not present raise a KeyError. The generic `CertificateExtension` object is not terribly useful on it's own, howerver it's value property can be used to intialize instances of a class representing the extension. Or it may be passed to functions that convert the value into some other usable format. Although one might believe this function should do these conversions for you automatically there are too many possible variations. Plus one might simple be interested to know if an extension is present or not. So why perform conversion work that might not be needed or might not be in the format needed? Therefore this function is just one simple element in a larger toolbox. Below are some suggestions on how to convert the generic `CertificateExtension` object (this list may not be complete). SEC_OID_PKCS12_KEY_USAGE `x509_key_usage()` SEC_OID_X509_SUBJECT_KEY_ID `SecItem.der_to_hex()` SEC_OID_X509_CRL_DIST_POINTS `CRLDistributionPts()` case SEC_OID_X509_AUTH_KEY_ID `AuthKeyID()` SEC_OID_X509_EXT_KEY_USAGE `x509_ext_key_usage()` SEC_OID_X509_BASIC_CONSTRAINTS `BasicConstraints()` SEC_OID_X509_SUBJECT_ALT_NAME `x509_alt_name()` SEC_OID_X509_ISSUER_ALT_NAME `x509_alt_name()` :Parameters: oid : may be one of integer, string, SecItem The OID of the certification extension to retreive May be one of: * integer: A SEC OID enumeration constant (i.e. SEC_OID\_*) for example SEC_OID_X509_BASIC_CONSTRAINTS. * string: A string either the OID name, with or without the SEC_OID\_ prefix (e.g. "SEC_OID_X509_BASIC_CONSTRAINTS" or "X509_BASIC_CONSTRAINTS") or as the dotted decimal representation, for example 'OID.2 5 29 19'. Case is not significant for either form. * SecItem: A SecItem object encapsulating the OID in DER format. :returns: generic `CertificateExtension` object delete_permanently() Permanently remove the CRL from the database. is_hw() -> bool Returns True if the slot is implemented in hardware, False otherwise. is_present() -> bool Returns True if the slot's token present, False otherwise. is_read_only() -> bool Returns True if the the slot is read-only, False otherwise. is_internal() -> bool Returns True if the the slot is internal, False otherwise. need_login() -> bool Returns True if there are some cryptographic functions that a user must be logged in to perform, False otherwise. need_user_init() -> bool Returns True if the slot needs to be logged into by the user by providing their pin, False otherwise. is_friendly() -> bool Returns True if the slot allows certificates to be read without logging in to the token, False otherwise. is_removable() -> bool Returns True if the token is removable, False otherwise. is_logged_in([user_data1, ...]) -> bool :Parameters: user_data1 : object ... zero or more caller supplied parameters which will be passed to the password callback function Return True if token is logged in, False otherwise. has_protected_authentication_path() -> bool Returns True if token has a "protected authentication path", whereby a user can log into the token without passing a PIN through the library, False otherwise. An example might be a token with an integrated key pad. is_disabled() -> bool Returns True if the slot is disabled, False otherwise. has_root_certs() -> bool Returns True if the slot contains the root certificate , False otherwise. get_disabled_reason() -> integer Returns a diabled reason enumerated constant (i.e. PK11_DIS_*). May be one of: * PK11_DIS_NONE * PK11_DIS_USER_SELECTED * PK11_DIS_COULD_NOT_INIT_TOKEN * PK11_DIS_TOKEN_VERIFY_FAILED * PK11_DIS_TOKEN_NOT_PRESENT user_disable() Prevents the slot from being used, and sets disable reason to PK11_DIS_USER_SELECTED. Mechanisms that were on continue to stay on. Therefore, when the slot is enabled again via `PK11Slot.user_enable()`, it will remember what mechanisms needs to be turned on. user_enable() Allow all mechanisms that are ON before `PK11Slot.user_disable()` was called to be available again. Sets disable reason to PK11_DIS_NONE. authenticate(load_certs=False, [user_data1, ...]) -> :Parameters: load_certs : bool If True load certificates after authenticating. Checks to see if token needs to be logged in. If so it invokes the password callback (set via `nss.set_password_callback()`) passing the optional user_data parameters to the password callback. logout()l Logs a user out of a session destroying any objects allocated on their behalf. get_best_wrap_mechanism() -> mechanism Find the best key wrap mechanism for this slot. get_best_key_length(mechanism) -> length :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) Return the best key length for this slot and mechanism. A zero result means that token knows how long the key should be, the result is typically used with key_gen(), token_key_gen(), or token_key_gen_with_flags() key_gen(mechanism, sec_param, key_size, [user_data1, ...]) -> PK11SymKey object :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) sec_param : SecItem object or None SecItem key parameters. None is also valid. key_size : int key length (use get_best_key_length()) user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Generate a symmetric key. generate_key_pair(mechanism, key_params, token, sensitive, [user_data1, ...]) -> public_key, private_key :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) key_params : SecItem object or None SecItem key parameters. None is also valid. token : bool If true the key is a token object otherwise it's a session object. sensitive : bool If a key is sensitive, certain attributes of the key cannot be revealed in plaintext outside the token. It is also more expensive to move between tokens. user_dataN : object ... zero or more caller supplied parameters which will be passed to the password callback function Generate a public and private key pair. Example:: # Generate a DSA key pair key_params = nss.KEYPQGParams() mechanism = nss.CKM_DSA_KEY_PAIR_GEN slot = nss.get_best_slot(mechanism) pub_key, priv_key = slot.generate_key_pair(mechanism, key_params, False, False) # Generate a DSA key pair key_params = nss.RSAGenParams() mechanism = nss.CKM_RSA_PKCS_KEY_PAIR_GEN slot = nss.get_best_slot(mechanism) pub_key, priv_key = slot.generate_key_pair(mechanism, key_params, False, False) list_certs() -> (`Certificate`, ...) Returns a tuple of `Certificate` objects found in the slot. derive(mechanism, sec_param, target, operation, key_size) -> PK11SymKey :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) sec_param : SecItem object or None mechanism parameters or None. target : int key mechanism enumeration constant (CKM_*) operation : int type of operation. A (CKA_*) constant (e.g. CKA_ENCRYPT, CKA_DECRYPT, CKA_SIGN, CKA_VERIFY, CKA_DIGEST) key_size : int key size. Derive a new key from this key. Return a key which can do exactly one operation, it is ephemeral (session key). wrap_sym_key(mechanism, sec_param, sym_key) -> SecItem :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) sec_param : SecItem object or None mechanism parameters or None. sym_key : PK11SymKey object the symmetric key to wrap Wrap (encrypt) the supplied sym_key using the mechanism and parameter. Return the wrapped key as a SecItem. unwrap_sym_key(mechanism, sec_param, wrapped_key, target, operation, key_size) -> PK11SymKey :Parameters: mechanism : int key mechanism enumeration constant (CKM_*) sec_param : SecItem object or None mechanism parameters or None. wrapped_key : SecItem object the symmetric key to unwrap target : int key mechanism enumeration constant (CKM_*) operation : int type of operation. A (CKA_*) constant (e.g. CKA_ENCRYPT, CKA_DECRYPT, CKA_SIGN, CKA_VERIFY, CKA_DIGEST) key_size : int key size. Unwrap (decrypt) the supplied wrapped key. Return the unwrapped key as a PK11SymKey. digest_key(sym_key) :Parameters: sym_key : PK11SymKey object symmetric key Continues a multiple-part message-digesting operation by digesting the value of a secret key. clone_context(context) -> PK11Context :Parameters: context : PK11Context object The PK11Context to be cloned Create a new PK11Context which is clone of the supplied context. digest_begin() Start a new digesting or Mac'ing operation on this context. digest_op(data) :Parameters: data : any read buffer compatible object (e.g. buffer or string) raw data to compute digest from Execute a digest/signature operation. cipher_op(data) -> data :Parameters: data : any read buffer compatible object (e.g. buffer or string) raw data to compute digest from Execute a digest/signature operation. finalize() Clean up cipher operation so that any pending multi-part operations have been flushed. Any pending output which would have been available as a result of the flush is discarded. The context is left in a state available for reuse. WARNING: Currently context reuse only works for digest contexts not encryption/decryption contexts digest_final() -> data Completes the multi-part cryptographic operation in progress on this context and returns any final data which may have been pending in the context (i.e. the output data is flushed from the context). If there was no final data the returned data buffer will have a length of zero. get_general_names(repr_kind=AsString) -> (general_name, ...) :Parameters: repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsObject The general name as a nss.GeneralName object AsString The general name as a string. (e.g. "http://crl.geotrust.com/crls/secureca.crl") AsTypeString The general name type as a string. (e.g. "URI") AsTypeEnum The general name type as a general name type enumerated constant. (e.g. nss.certURI ) AsLabeledString The general name as a string with it's type prepended. (e.g. "URI: http://crl.geotrust.com/crls/secureca.crl" Returns a tuple of general names in the CRL Distribution Point. If the distribution point type is not nss.generalName or the list was empty then the returned tuple will be empty. You may specify how the each member of the tuple is represented, by default it will be as a string. get_reasons(repr_kind=AsEnumDescription) -> (reason, ...) :Parameters: repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsEnum The enumerated constant. (e.g. nss.crlEntryReasonCaCompromise) AsEnumDescription A friendly human readable description of the enumerated constant as a string. (e.g. "CA Compromise") AsIndex The bit position within the bit string. Returns a tuple of reasons in the CRL Distribution Point. If no reasons were defined the returned tuple will be empty. You may specify how the each member of the tuple is represented, by default it will be as a string. has_key(arg) -> bool :Parameters: arg : string or integer canonical name (e.g. 'cn') or oid dotted-decimal or SEC_OID_* enumeration constant return True if RDN has an AVA whose oid can be identified by arg. has_key(arg) -> bool :Parameters: arg : string or integer canonical name (e.g. 'cn') or oid dotted-decimal or SEC_OID_* enumeration constant return True if Name has an AVA whose oid can be identified by arg. add_rdn(rdn) :Parameters: rdn : RDN object The rnd to add to the name Adds a RDN to the name. get_name(repr_kind=AsString) -> :Parameters: repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsObject The general name as a nss.GeneralName object AsString The general name as a string. (e.g. "http://crl.geotrust.com/crls/secureca.crl") AsTypeString The general name type as a string. (e.g. "URI") AsTypeEnum The general name type as a general name type enumerated constant. (e.g. nss.certURI ) AsLabeledString The general name as a string with it's type prepended. (e.g. "URI: http://crl.geotrust.com/crls/secureca.crl" Returns the value of the GeneralName according to the representation type parameter. get_general_names(repr_kind=AsString) -> (general_name, ...) :Parameters: repr_kind : RepresentationKind constant Specifies what the contents of the returned tuple will be. May be one of: AsObject The general name as a nss.GeneralName object AsString The general name as a string. (e.g. "http://crl.geotrust.com/crls/secureca.crl") AsTypeString The general name type as a string. (e.g. "URI") AsTypeEnum The general name type as a general name type enumerated constant. (e.g. nss.certURI ) AsLabeledString The general name as a string with it's type prepended. (e.g. "URI: http://crl.geotrust.com/crls/secureca.crl" Returns a tuple of general names in the authentication key id extension for the issuer. If the issuer was not defined then the returned tuple will be empty. You may specify how the each member of the tuple is represented, by default it will be as a string. shutdown() Shutdown NSS for this context. import() Import the contents of the `PKCS12Decoder` object into the current NSS database. During import if the certificate(s) in the `PKCS12Decoder` object does not have a nickname or there is a collision with an existing nickname then a callback will be invoked to provide a new nickname. See `pkcs12_set_nickname_collision_callback`. @;%*b;%a`=%A%aA%a`C%@E%aPH%a V%͓P@e%Up`p%ړ0q%jar%y%  {%|%Pa ~%9a0`%&a@%@%a@ %Y@`%a%``%XP%X%X0%X%`@ %,U%X7 `%`%T%T%`p%R% `%R%&`%D%Y `%s%x7`%AX%W`%P@%`%`%p@%e`%ǔ@%S``%:`%`%` %_%_`%_%_%r_P%a_@%J_`%=_%%'_``%@%_%^%^p`%EQ0%1Q~`%Z; %0d%dOe%KP`%LW%M _%^0 %%%QЎ%Q`%z^ %7&^А&Z[pO&,`&] &]P&]&]P&y]"&f] #&HP$&Y`$&t(&7*&0 I C'pC'C',&C'q'D'H3PIPE-&34 E' r'E'`4 p4H@-&`r'r'`F'0F`˕`H  .&n'r'F'@Kp 5HE0&4@5G's'G'54 6HE 1& 66`H'@s'H'75 `HE`1&708@I's'I'9(@H`E1& 99J's'J'9 /( ; H0E1&P::K't' L'@; :L; 2&L'@t't';P;[(<E`2&<<M't'`M'=;xJHз2&`N'u'P'=5&@u'`u'u'p=@=P5&T'u' v'== 6&@T'`v' W'FP>–GG`6&W'v' X'>ՖPGG6&Y'v' w'>> `P6&n'`w'Z'E@?`G`Z'pE7& ?@?Z'w'w'p>! @@@7& [' x'['E=0@`\'E7&??\'o?[ `hd8&`x'x' ]'h@g f0c^'P^'@&^'x'y'PUs(@`p^'_'p@I&@_'@y'_']0~  @a'Y&a'y'a'T PPZ&b'y'@c'SP@@GG@Z&c'z' d'RP0d'Z&e'@z'`e'pEӗF`Z&@f'z'f'pP``p#[&g'z'h'F\&i'8pBFE@\&AAj'{'`j'@E@2(KFk'E\&BBk'@{'{'BH@I`^&`l'{'l'b0I`m' _&m'|' n' '&@''`&n=30<1-* oxxxxxxx~ŘʘϘԘ٘ޘ c Y"$&(T*dQjT,.0 J25sV7tI}9})k};=}?ACYFfHJATNTg`LEdٞbOLRIzRniQWNPRTVX]bglqv{ƙ˙Йՙڙߙ  %*/49>CHMRW\afkpuzŚʚϚԚٚޚ $).38=BGLQV[`ejoty~ěɛΛӛ؛xݛxݛxxxݛ`inizimi|8!ii`!!diɜ !ٜ iݛxhޒޒoOݛxVsTdYsTxxxxxx"2"2ݛx<_*^GK]n~םZG+7sT\@SiZnvsrN|ZsTZx%VoOݛoOݛoOݛoOݛ7ݛ7ݛݛKK@KK KKK LL/L8LLLSLiLrLݛ,JAJ@SJfJ vJJJJJJJJKKK/K__sTžwўwpZw`w۞pZўx"2x<Z"2&2oO&oOxx`3Pr r`3mm@3Z;_&>c&mUc&EU`e&sT0E7j E8ZrJ$S`h&`0k&ep3lT08`h838|EEPv68s58rN59$S `h&`иk&ܟ4؟4$S `h&`k&5 95$S`h&`pk&B 7P9Z079dP79 p7$S`h&`@k&5D9>Kgp:` :$S`h&`k&d:dd:o"WPm& Wn&$Sp`h&`k&dY8:h;T`:\;M^`p&V s&Ѡ `u&ߠ}`v&NZ3y&V`{&V &V&V@&V@&Y0@&V&5`&[0A &$S `h&`k&: ;h;&;Zy8<:PNbv`<ui}<<šq<Ρ^=ܡ`^X=0^=D>DX> `D>4?LP8?6QPD?W&j` &p &{&@&`& @&&&Ǣ0&?&Ԣ&p`&P&& &BV@& &#&U&U@&![@E@& &;@EOZUp&kZ05&U&wPeV*^*^U @&Up&0&U &wU&@&P&bv?ou$Sк`h&`Pk&$S`h&` k& 5̣P@v@oPu$Sз`h&`k&h5@T@\4 A0eHA>>0T&0>X0>PYT0&T&(xAB A6 BCxBQB\` Ce0xCsC{н8Dpucp&dYD DD RD`0E$S`h&`k&c@`&04pE}@pE$S`h&`k&ЀEDE`@C$Sp=`h&`pk&4ƤFBϤPBHF$S`h&`@k&Zvu0 4p?L`8?VНF$S`h&` k&K0G]DnP8G~ Ћ````ם``0`p`ѓ&$S`h&`k&sTCXGTG6p@GF@HR@XH`@Hpout`p&$S`h&`k&$S`h&`k&F`oHeC(ICPI0C n$S|`h&``k&C$S`h&`k&$S`h&`k&c@&Qt&nss.so.debug%.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.data.bss.gnu_debuglink $o( H$0''8oFFEo I ITJJа^X  hc00n11tz ,i)%) )% )0)%0)@)%@) -%-.%./%/ :%:4 o'o oo