1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Ë
gñúh®+ãó2—ddlZddlZddlZddlZddlZddlmZddlmZddlm    Z    ejdk\rddl Z d„Z nddlZd„Z ejd    k\r ejZnGd
„d ej"«ZGd „d e«ZdZd„Zdad„Zd„Zdd„Zd„Zd„Zy)éNé)Ú__version_verifier_modules__)Ú ffiplatform)ÚVerificationError)ércó<—tjjddS©N)Ú    importlibÚ    machineryÚEXTENSION_SUFFIXES©óú@H:\Change_password\venv_build\Lib\site-packages\cffi/verifier.pyÚ_extension_suffixesr s€Ü×"Ñ"×5Ñ5±aÐ8Ð8rcóŠ—tj«Dcgc]\}}}|tjk(r|‘Œc}}}Scc}}}wr    )ÚimpÚ get_suffixesÚ C_EXTENSION)ÚsuffixÚ_Útypes   rrrsA€Ü.1×.>Ñ.>Ó.@÷,ð,™?˜6 1 dØœ3Ÿ?™?Ò*òô,ð    ,ùô,s™ >©rcó‡—eZdZˆfd„ZˆxZS)ÚNativeIOcón•—t|t«r|jd«}tt||«y)NÚascii)Ú
isinstanceÚunicodeÚencodeÚsuperrÚwrite)ÚselfÚsÚ    __class__s  €rr!zNativeIO.writes*ø€Ü˜!œWÔ%Ø—H‘H˜WÓ%Ü ”(˜DÑ '¨Õ *r)Ú__name__Ú
__module__Ú __qualname__r!Ú __classcell__)r$s@rrrs ø„÷    +ð    +rrcóf—eZdZ            dd„Zdd„Zd„Zd„Zd„Zd„Zd„Z    d    „Z
d
„Z d „Z dd „Z d „Zd„Zy)ÚVerifierNc  óÌ—|jjr"td|jj›«‚||_||_|st j | «} t||«} | |«|_|jj| «|    |_
|j| |
«|_ |r|rtd«‚djdtj ddzt"| g|j$z«}tj dk\r|j'd«}t)t+j,|ddd…«d    z«}|j/d
«j1d «}t)t+j,|d dd…«d    z«}|j/d «j1d «}d|›d|jj2›|›|›}t5«d}|xs
t7«|_t:j<j|j8||z«|_t:j<j|j8||z«|_ ||_!d|_"d|_#y)NzIfeature not supported with ffi.verify(), but only with ffi.set_source(): z)can't specify both 'modulename' and 'tag'úz%d.%dérzutf-8rlÿÿÚ0xÚLrÚ0Ú_cffi_rF)$Ú_parserÚ_uses_new_featurerÚffiÚpreamblerÚflattenÚ_locate_engine_classÚ_vengineÚpatch_extension_kwdsÚflagsÚmake_relative_toÚkwdsÚ    TypeErrorÚjoinÚsysÚ version_inforÚ _cdefsourcesrÚhexÚbinasciiÚcrc32ÚlstripÚrstripÚ
_class_keyÚ_get_so_suffixesÚ_caller_dir_pycacheÚtmpdirÚosÚpathÚsourcefilenameÚmodulefilenameÚ ext_packageÚ _has_sourceÚ _has_module)r"r4r5rJÚ
modulenamerOÚtagÚforce_generic_engineÚsource_extensionr:Ú relative_tor<Úflattened_kwdsÚ vengine_classÚkeyÚk1Úk2rs                  rÚ__init__zVerifier.__init__ s€ð ;‰;× (Ò (Ý#à/2¯{©{×/LÒ/LðOóPð PðˆŒØ ˆŒ ÙÜ(×0Ñ0°Ó6ˆNÜ,¨SÐ2FÓGˆ Ù% dÓ+ˆŒ Ø  ‰ ×*Ñ*¨4Ô0؈Œ
Ø×)Ñ)¨$° Ó<ˆŒ    á ÚÜРKÓLÐLà—+‘+˜w¬×)9Ñ)9¸"¸1Ð)=Ñ=Ü;Ø'¨ð9ð"×.Ñ.ñ/ó0ˆCô×Ñ 4Ò'Ø—j‘j Ó)Ü”X—^‘^ C¨¨¨1¨¡IÓ.°Ñ;Ó<ˆBØ—‘˜4“×'Ñ'¨Ó,ˆBÜ”X—^‘^ C¨¨¨1¨¡IÓ.°Ñ;Ó<ˆBØ—‘˜3“×&Ñ& sÓ+‰BÚ.1°4·=±=×3KÒ3KÙ.0±"ð6ˆJä!Ó# AÑ&ˆØÒ5Ô 3Ó 5ˆŒ Ü Ÿg™gŸl™l¨4¯;©;¸
ÐEUÑ8UÓVˆÔÜ Ÿg™gŸl™l¨4¯;©;¸
ÀVÑ8KÓLˆÔØ&ˆÔØ ˆÔØ ˆÕrcó®—|jj5|jr |€ td«‚|j    |«ddd«y#1swYyxYw)zkWrite the C source code.  It is produced in 'self.sourcefilename',
        which can be tweaked beforehand.Nzsource code already written)r4Ú_lockrPrÚ _write_source©r"Úfiles  rÚ write_sourcezVerifier.write_sourceIsO€ðX‰X^‰^ñ    %Ø×Ò D LÜ'Ø1ó3ð3à × Ñ ˜tÔ $÷        %÷    %ñ    %ús —+A Á Acóà—|jj5|jr td«‚|js|j «|j «ddd«y#1swYyxYw)z„Write the C source code (if not done already) and compile it.
        This produces a dynamic link library in 'self.modulefilename'.zmodule already compiledN)r4r^rQrrPr_Ú_compile_module©r"s rÚcompile_modulezVerifier.compile_moduleRsZ€ðX‰X^‰^ñ    #Ø×ÒÜ'Ð(AÓBÐBØ×#Ò#Ø×"Ñ"Ô$Ø ×  Ñ  Ô "÷     #÷    #ñ    #ús —AA$Á$A-có"—|jj5|jsH|j«|js,|js|j «|j «|j«cddd«S#1swYyxYw)a"Get a C module from this Verifier instance.
        Returns an instance of a FFILibrary class that behaves like the
        objects returned by ffi.dlopen(), but that delegates all
        operations to the C module.  If necessary, the C code is written
        and compiled first.
        N)r4r^rQÚ_locate_modulerPr_rdÚ _load_libraryres rÚ load_libraryzVerifier.load_library\so€ðX‰X^‰^ñ    (Ø×#Ò#Ø×#Ñ#Ô%Ø×'Ò'Ø×+Ò+Ø×*Ñ*Ô,Ø×(Ñ(Ô*Ø×%Ñ%Ó'÷    (÷    (ò    (ús —A$BÂBcóΗtjj|j«}|j    dd«d}|j d«rt td«r|dd}|S)Nú.rrÚ_dÚgettotalrefcountéþÿÿÿ)rKrLÚbasenamerNÚsplitÚendswithÚhasattrr?)r"rps  rÚget_module_namezVerifier.get_module_namels]€Ü—7‘7×#Ñ# D×$7Ñ$7Ó8ˆð—>‘> # qÓ)¨!Ñ,ˆð × Ñ ˜TÔ "¤w¬sÐ4FÔ'GØ  }ˆH؈rcóH—|js;|jj5|js|j«ddd«t    j
|j «}|j«}t    j||fi|j¤ŽS#1swYŒYxYwr    )
rPr4r^r_rÚmaybe_relative_pathrMrtÚ get_extensionr<)r"Ú
sourcenameÚmodnames   rrwzVerifier.get_extensionws‚€Ø×ÒØ—‘—‘ñ )Ø×'Ò'Ø×&Ñ&Ô(÷ )ô!×4Ñ4°T×5HÑ5HÓIˆ
Ø×&Ñ&Ó(ˆÜ×(Ñ(¨°WÑJÀÇ    Á    ÑJÐJ÷  )ð )ús £BÂB!có.—|jjSr    )r8Ú_gen_python_moduleres rÚgenerates_python_modulez Verifier.generates_python_module€s€Ø}‰}×/Ñ/Ð/rcóœ—|rÄtjj|«r¥tjj|«}|j«}tj
D]c}||vsŒ||}t |ttf«std|›d«‚|Dcgc]"}tjj||«‘Œ$}}|||<Œe|Scc}w)Nz    keyword 'z' should be a list or tuple) rKrLÚdirnameÚcopyrÚLIST_OF_FILE_NAMESrÚlistÚtupler=r>)r"r<rVr~rYÚlstÚfns       rr;zVerifier.make_relative_toƒs±€Ù œ2Ÿ7™7Ÿ?™?¨;Ô7Ü—g‘g—o‘o kÓ2ˆGØ—9‘9“;ˆDÜ"×5Ñ5ò $Ø˜$’;ؘs™)CÜ% c¬D´%¨=Ô9Ý'Ú+.ð)1ó2ð2à?BÖC¸œ2Ÿ7™7Ÿ<™<¨°Õ4ÐCCÐCØ #D˜’Ið $ðˆ ùòDsÂ'C    cóš—tjj|j«sr|jr'    t |jdddg«}|j}nd}|jj|j«|t««}|€y||_|jj«d|_ y#t $rYywxYw)NÚ__doc__T)rKrLÚisfilerNrOÚ
__import__Ú ImportErrorÚ__path__r8Ú find_modulertrHÚ collect_typesrQ)r"ÚpkgrLÚfilenames    rrhzVerifier._locate_module“s³€Üw‰w~‰~˜d×1Ñ1Ô2Ø×ÒðÜ$ T×%5Ñ%5°t¸TÀIÀ;ÓOCð—|‘|‘àØ—}‘}×0Ñ0°×1EÑ1EÓ1GÈÜ1AÓ1CóEˆHàÐØØ"*ˆDÔ Ø  ‰ ×#Ñ#Ô%ØˆÕøô#òÙðús·B>Â>    C
à   C
có–—||j_    |jj«|j`y#|j`wxYwr    )r8Ú_fÚwrite_source_to_fr`s  rÚ_write_source_tozVerifier._write_source_to¦s8€Øˆ ‰ Ôð    !Ø M‰M× +Ñ +Ô -à— ‘ Ñ ø— ‘ Ñ ús    “:ºAcó —||j|«yt«}|j|«|j«}tjj |j «r4t|j d«5}|j«|k( }ddd«nd}rEt|j «t|j d«5}|j|«ddd«d|_ y#1swYŒXxYw#1swYŒxYw)NÚrTÚw) r’rÚgetvaluerKrLÚexistsrMÚopenÚreadÚ _ensure_dirr!rP)r"raÚfÚ source_dataÚfpÚ needs_writtens      rr_zVerifier._write_source­së€Ø Ð Ø × !Ñ ! $Õ 'ô“
ˆAØ × !Ñ ! !Ô $ØŸ*™*›,ˆKôw‰w~‰~˜d×1Ñ1Ô2ܘ$×-Ñ-¨sÓ3ðC°rØ)+¯©«°kÑ)AÐ$BM÷CðCð!% ñܘD×/Ñ/Ô0ܘ$×-Ñ-¨sÓ3ð*°rØ—H‘H˜[Ô)÷*ð $ˆDÕ ÷CðCú÷*ð*úsÁ?C.à C:Ã.C7Ã:Dcó~—tjj|j«}t    j
||j ««}    t    j||j«}|s5t|j«tj||j«d|_ y#t$rd}YŒLwxYw)NFT)rKrLr~rMrÚcompilerwÚsamefilerNÚOSErrorršÚshutilÚmoverQ)r"rJÚoutputfilenameÚsames    rrdzVerifier._compile_moduleÆs—€ä—‘—‘ ×!4Ñ!4Ó5ˆÜ$×,Ñ,¨V°T×5GÑ5GÓ5IÓJˆð    Ü×'Ñ'¨¸×8KÑ8KÓLˆDñÜ ˜×+Ñ+Ô ,Ü K‰K˜¨×(;Ñ(;Ô <ØˆÕøô ò    ØŠDð    úsÁ B.Â. B<Â;B<có´—|jsJ‚|j%|jj|j«S|jj«Sr    )rQr:r8rjres rrizVerifier._load_libraryÓsG€Ø×ÒÐÐØ :‰:Ð !Ø—=‘=×-Ñ-¨d¯j©jÓ9Ð 9à—=‘=×-Ñ-Ó/Ð /r)NNNÚFú.cNNr    )r%r&r'r\rbrfrjrtrwr|r;rhr’r_rdrir rrr*r*sN„à>BØ@EØ@Dó'!óR%ò#ò(ò     òKò0ò ò  ò&!ó$ò2  ó0rr*Fcóؗtrd}|s*dtjvrd}n    ddl}|j
|urd}|rddlm}|jSddlm    }|jS#t$rd}YŒCwxYw)NTÚ__pypy__rú?r)Ú vengine_gen)Ú vengine_cpy) Ú_FORCE_GENERIC_ENGINEr?Úbuiltin_module_namesÚ _cffi_backendr‰Ú_backendr¨r­ÚVGenericEnginer®ÚVCPythonEngine)r4rTr±r­r®s     rr7r7Þsu€ÝØ#ÐÙ Ø œ×1Ñ1Ñ 1Ø#'Ñ  ð $Û$ð|‰| =Ñ0Ø'+Ð$ÙÝ!Ø×)Ñ)Ð)å!Ø×)Ñ)Ð)øôò $Ø #’ ð $ús¡AÁ A)Á(A)cóf—trtStjjd«}|r|St    j
d«j j}tjjtjjtjj|«d««S)NÚ CFFI_TMPDIRr-Ú __pycache__) Ú_TMPDIRrKÚenvironÚgetr?Ú    _getframeÚf_codeÚ co_filenamerLÚabspathr>r~)ÚresultrŽs  rrIrIöst€ÝÜˆÜ Z‰Z^‰^˜MÓ *€F٠؈ ܏}‰}˜QÓ×&Ñ&×2Ñ2€HÜ 7‰7?‰?œ2Ÿ7™7Ÿ<™<¬¯©¯©¸Ó(AØ(ó*ó +ð+rcó—|ay)z:Set the temporary directory to use instead of __pycache__.N)r¸)r~s rÚ
set_tmpdirrÁs    €ðGrcón—|xs
t«}    tj|«}|rd}nt    «dj «}|D]•}|j «j d«sŒ#|j «j|«s |j «jd«sŒb    tjtjj||««Œ—tjj|d«g}|D]ƒ}    tj|«D]h}tjj||«}tjj|«r|j|«ŒTtj|«ŒjŒ…y#t$rYywxYw#t$rYŒ]wxYw#t$rYŒ±wxYw)z}Clean up the temporary directory by removing all files in it
    called `_cffi_*.{c,so}` as well as the `build` subdirectory.Nr©rr1Úbuild) rIrKÚlistdirr¢rHÚlowerÚ
startswithrrÚunlinkrLr>ÚisdirÚappend)rJÚkeep_soÚfilelistrr„Ú    clean_dirÚdirs       rÚcleanup_tmpdirrÎsj€ðÒ ,Ô*Ó,€FðÜ—:‘:˜fÓ%ˆñ؉ä!Ó# AÑ&×,Ñ,Ó.ˆØòˆØ 8‰8‹:×  Ñ   Õ *Ø—‘“
×#Ñ# FÔ+¨r¯x©x«z×/BÑ/BÀ4Õ/Hð Ü—    ‘    œ"Ÿ'™'Ÿ,™, v¨rÓ2Õ3ð    ô—‘—‘˜f gÓ.Ð/€IØò    ˆð    Ü—j‘j “oò "Ü—W‘W—\‘\ # rÓ*Ü—7‘7—=‘= Ô$Ø×$Ñ$ RÕ(ä—I‘I˜b•Mñ  "ñ    øô òÙðûôò Úð ûôò    Ù ð    ús6F    Â*3FÄBF(Æ        FÆFÆ    F%Æ$F%Æ(    F4Æ3F4cóT—t«}|stjdk(rdg}|Sdg}|S)NÚwin32z.pydz.so)rr?Úplatform)Úsuffixess rrHrH$s5€Ü"Ó$€HÙ ä <‰<˜7Ò "ؐxˆHð €OðwˆHà €Orcó²—tjj|«}|r6tjj|«stj|«yyyr    )rKrLr~rÈÚmakedirs)rŽr~s  rršrš/s9€Üg‰go‰o˜hÓ'€GÙ”r—w‘w—}‘} WÔ-Ü
 ‰ GÕð.€wr)NF)r?rKrCr£Úior¨rrÚerrorrr@Úimportlib.machineryr
rrÚStringIOrÚBytesIOÚobjectr*r¯r7r¸rIrÁrÎrHršr rrú<module>rÛsžð÷%×$Ó$Ý*ÝÝ$à×ѐvÒÛó9óò,ð
×ѐtÒØ{‰{Hô+2—:‘:ô+ôz0ˆvôz0ð|Ðò*ð, €ò+òó
ò>    ór