Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 îbE…ã@sddlZddlZyddlmZWnddlmZYnXyeWnek rZeZYnXGdd„dƒZGdd„deƒZGdd „d eƒZ Gd d „d eƒZ Gd d „d eƒZ Gdd„deƒZ Gdd„deƒZ Gdd„deƒZGdd„deƒZGdd„deƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGd d!„d!ƒZd"d#„ed$ƒDƒZd%d#„ed$ƒDƒZxed&ƒD]Zd'e>ee<�qnWxHed&d$ƒD]:Zeed(eed)Aeed*Aeed&Aee<�q�Wxed+ƒD]Zeeee<�qØWGd,d-„d-ƒZGd.d/„d/ƒZGd0d1„d1ƒZdS)2éN)Ú zip_longest)Ú izip_longestc@s\eZdZdZdZdZdd„Zdd„Zedd„ƒZ d d „Z d d „Z d d„Z dd„Z dd„ZdS)ÚQRNrcCs |jr|j|ƒ rt‚||_dS)N)ÚvalidÚ ValueErrorÚdata)Úselfr©r úE/tmp/tmp4i9tl1d3/lib64/python/reportlab/graphics/barcode/qrencoder.pyÚ__init__*sz QR.__init__cCs t|jƒS)N)Úlenr)rr r r Ú__len__/sz QR.__len__cCsF|jdkrdStt|ƒt|jƒƒ\}}|t|jƒt|jd|…ƒS)Nr)ÚbitsÚdivmodr Úsum)rÚqÚrr r r Ú bitlength2s z QR.bitlengthcCsVd|kodknr"|jdS|dkr4|jdS|dkrF|jdStd|ƒ‚dS)Nré ééé)ézUnknown version: )Ú lengthbitsr)rÚverr r r Ú getLengthBits9s   zQR.getLengthBitscCs t|jƒS)N)r r)rr r r Ú getLengthBsz QR.getLengthcCs t|jƒS)N)Úreprr)rr r r Ú__repr__Esz QR.__repr__cCs2|j|jdƒ|j|ƒ}|r.|jt|jƒ|ƒdS)Né)ÚputÚmoderr r)rÚbufferÚversionÚlenbitsr r r Ú write_headerHs zQR.write_headercCs”|j||ƒx‚tt|jƒg|jŽD]h}d}d}xNt|jƒD]@}||dk r<|t|jƒ9}||jj||ƒ7}||j |7}qr?r@) r/r0r1r8r9r:rr)rr'r!rr r r r r;bs  r;c@s,eZdZd ZdZdZd Zdd„Zdd„Zd S) Ú QR8bitByteérrécCs"t|tƒr|jdƒ|_n||_dS)Nzutf-8)Ú isinstanceÚunicodeÚencoder)rrr r r r ps zQR8bitByte.__init__cCs>|j||ƒx,|jD]"}t|tƒr*t|ƒ}|j|dƒqWdS)NrB)r%rrDÚstrÚordr )rr"r#Úcr r r r.vs    zQR8bitByte.writeN)rB)rBrCrC) r/r0r1rr'r!rr r.r r r r rAjs rAc@s4eZdZd ZdZdZdZdd„Zdd „Zd d „Z d S)ÚQRKanjir@rrBrr6c Cs2y|j|ƒ|_Wntk r,tdƒ‚YnXdS)NzNot valid kanji)Úunicode_to_qrkanjirÚUnicodeEncodeErrorr)rrr r r r ƒszQRKanji.__init__cCshg}�x\t|ƒD�]N\}}y>|jdƒ}ytt|ƒ\}}Wntk rT|\}}YnXWnbtk r”}z td|||d|jdƒ‚WYdd}~Xn(tk rºtd|||ddƒ‚YnX|d>|B}d|koÚdkn�r|d8}|d @d?d |d @}nRd |k�od kn�rB|d8}|d @d?d |d @}ntd|||ddƒ‚|j|ƒqW|S)Nz shift-jisZqrkanjirrzillegal multibyte sequencerBi@�iüŸiÿéÀéÿi@ài¿ëi@Á) Ú enumeraterFÚmaprHÚ TypeErrorrLÚargsrÚappend)rrÚcodesr-rIÚdÚer r r rK‰s0 *  zQRKanji.unicode_to_qrkanjicCs,|j||ƒx|jD]}|j|dƒqWdS)Nr@)r%rr )rr"r#rUr r r r.¥s  z QRKanji.writeN)r@)rBrr6) r/r0r1rr'r!rr rKr.r r r r rJ}srJc@s<eZdZdZdZdZdZdd„Zdd „Zd d „Z d d „Z dS)ÚQRHanzir@rrBrr6c Cs2y|j|ƒ|_Wntk r,tdƒ‚YnXdS)NzNot valid hanzi)Úunicode_to_qrhanzirrLr)rrr r r r °szQRHanzi.__init__cCshg}�x\t|ƒD�]N\}}y>|jdƒ}ytt|ƒ\}}Wntk rT|\}}YnXWnbtk r”}z td|||d|jdƒ‚WYdd}~Xn(tk rºtd|||ddƒ‚YnX|d>|B}d|koÚdkn�r|d8}|d @d?d |d @}nRd |k�od kn�rB|d8}|d @d?d |d @}ntd|||ddƒ‚|j|ƒqW|S)NÚgb2312Zqrhanzirrzillegal multibyte sequencerBi¡¡iþªiÿé`rNi¡°iþúi¡¦) rOrFrPrHrQrLrRrrS)rrrTr-rIrUrVr r r rX¶s0 *  zQRHanzi.unicode_to_qrhanzicCs>|j|jdƒ|jddƒ|j|ƒ}|r:|jt|jƒ|ƒdS)Nrr)r r!rr r)rr"r#r$r r r r%Òs   zQRHanzi.write_headercCs,|j||ƒx|jD]}|j|dƒqWdS)Nr@)r%rr )rr"r#rUr r r r.Ùs  z QRHanzi.writeN)r@)rBrr6) r/r0r1rr'r!rr rXr%r.r r r r rWªsrWc@s$eZdZdZdZdd„Zdd„ZdS) ÚQRECIércCs*d|kodkns tdƒ‚||_dS)Nri?BzECI out of range)rr)rrr r r r äszQRECI.__init__cCsd|j||ƒ|jdkr&|j|jdƒn:|jdkrD|j|jdBdƒn|jdkr`|j|jdBdƒdS) NérBiÿ?i€rCiÿÿiÀé)r%rr )rr"r#r r r r.ês    z QRECI.writeN)rrr)r/r0r1r!rr r.r r r r r[àsr[c@s$eZdZdZdZdd„Zdd„ZdS) ÚQRStructAppendr5rcCsVd|kodkns tdƒ‚d|ko2dkns@tdƒ‚||_||_||_dS)NrrCzpart out of range [1,16]ztotal out of range [1,16])rÚpartÚtotalÚparity)rr`rarbr r r r ÷szQRStructAppend.__init__cCs:|j||ƒ|j|jdƒ|j|jdƒ|j|jdƒdS)NrrB)r%r r`rarb)rr"r#r r r r.s zQRStructAppend.writeN)rrr)r/r0r1r!rr r.r r r r r_ós r_c@s$eZdZdZdZdd„Zdd„ZdS) Ú QRFNC1Firstr=rcCsdS)Nr )rr r r r szQRFNC1First.__init__cCs|j||ƒdS)N)r%)rr"r#r r r r. szQRFNC1First.writeN)rrr)r/r0r1r!rr r.r r r r rcsrcc@s(eZdZejdƒjZdZdZdd„Z dS)Ú QRFNC1Secondz^([A-Za-z]|[0-9][0-9])$r>rcCsD|j||ƒ|j}t|ƒdkr,t|ƒd}nt|ƒ}|j|dƒdS)NrédrB)r%rr rHÚintr )rr"r#rUr r r r.s   zQRFNC1Second.writeN)rrr) r/r0r1r8r9r:rr!rr.r r r r rds rdc @sxeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggZ dd„Z dd„Z dd„Z dddddgdddddgdddddgdddddgdddddggZdd„Zdd„Zdd„Zdd„ZdZd d!„Zd"d#„ZdZd$d%„Zd&d'„Zd(Zd)Zed*d+„ƒZed,d-„ƒZdS).ÚQRCodecCs(||_||_d|_d|_d|_g|_dS)Nr)r#ÚerrorCorrectLevelÚmodulesÚ moduleCountÚ dataCacheÚdataList)rr#rhr r r r s zQRCode.__init__c Csdt|tƒr|}n>xBsz+QRCode.calculate_version..rrrB)r(Ú QRRSBlockÚ getRSBlocksrhrrlrr)rr#ÚrsBlocksÚtotalDataCountÚlengthrr r r Úcalculate_version>s  zQRCode.calculate_versioncCs(|jdkr|jƒ|_|jd|jƒƒdS)NF)r#r}ÚmakeImplÚgetBestMaskPattern)rr r r ÚmakeLs  z QRCode.makecs¼ˆjddˆ_‡fdd„tˆjƒDƒˆ_ˆjddƒˆjˆjddƒˆjdˆjdƒˆjƒˆjƒˆj||ƒˆjdkrŠˆj|ƒˆj dkrªt j ˆjˆj ˆj ƒˆ_ ˆjˆj |ƒdS)Nrécsg|]}dgˆj‘qS)F)rj)ruÚx)rr r ú Ssz#QRCode.makeImpl..rr\)r#rjr(riÚsetupPositionProbePatternÚsetupPositionAdjustPatternÚsetupTimingPatternÚ setupTypeInfoÚsetupTypeNumberrkrgÚ createDatarhrlÚmapData)rÚtestÚ maskPatternr )rr r~Qs        zQRCode.makeImplTFcCsì|dkr`dgd|j|d||d…<|dkrHd|j|d|d<q€d|j|d|d<n dgd|j|d||d…<xft|jƒD]X\}}||j||||d…<|dkrÎd|j|||d<qŒd|j|||d<qŒWdS)NrFr\rrB)rirOÚ_positionProbePattern)rrorprrr r r r„ms  z QRCode.setupPositionProbePatterncCsLd}d}x>tdƒD]2}|jd|ƒtj|ƒ}|dks<||kr|}|}qW|S)NrrBT)r(r~ÚQRUtilÚ getLostPoint)rZ minLostPointÚpatternr-Ú lostPointr r r rs  zQRCode.getBestMaskPatterncCsdx.td|jdƒD]}|ddk|j|d<qWtjtjddgƒ|jdƒ|jdd|jd…<dS)NrBrrr<TFrC)r(rjriÚ itertoolsÚisliceÚcycle)rrr r r r†ŠszQRCode.setupTimingPatterncCsœtj|jƒ}|jd}x€tj||ƒD]p\}}|dkrH|dks$||krHq$n||krZ|dkrZq$x8t|jƒD]*\}}||j||d|d|d…<qfWq$WdS)NrBrr5) rŽÚgetPatternPositionr#rjr’ÚproductrOÚ_positionAdjustPatternri)rÚposÚmaxposrorprrr r r r…˜s  z!QRCode.setupPositionAdjustPatterncCs¨tj|jƒ}xJtdƒD]>}| o.||?d@dk}||j|d|d|jdd<qWxJtdƒD]>}| oz||?d@dk}||j|d|jdd|d<qbWdS)Nérr5rB)rŽÚgetBCHTypeNumberr#r(rirj)rr‹rr-Úmodr r r rˆ£s (zQRCode.setupTypeNumbercCs*|jd>|B}tj|ƒ}xrtdƒD]f}| o:||?d@dk}|dkrT||j|d<q"|dkrp||j|dd<q"||j|jd|d<q"Wx‚tdƒD]v}| o®||?d@dk}|dkrÒ||jd|j|d<q–|dkrö||jdd|dd<q–||jdd|d<q–W| |j|jdd<dS)Nr5érr<rBr>)rhrŽÚgetBCHTypeInfor(rirj)rr‹rŒrrr-rœr r r r‡¬s" zQRCode.setupTypeInfoc cs¶tjt|jddd ƒtdddƒƒ}ttd|jdƒƒttjtdƒtd|jƒƒƒttd|jƒƒf}td d „|Dƒƒ}tj|jƒ}t tjj d d „|Dƒƒƒ}|jd }�x |D�]}||}}|dkrÈd}n||jdkrÜd}nd}xÌ||D]À}xºtdƒD]®} || } |jdk�rJ|dk�r.| |jd k�r.qøn|dk�rJ||jd k�rJqø||k�rœ| |k�rœ|d k�r|| d k�p–| |k�p–| d k�o–|d k�p–||k�sœqø| |fVqøWqêWqªWdS)Nrr<rr=rr>rBr\css|]}tt|ƒƒVqdS)N)ÚlistÚreversed)rurr r r rwÊsz*QRCode._dataPosIterator..css,|]$}|d|d||d|dfVqdS)rrNr )ruÚpr r r rwÎsr?éþÿÿÿr¢) r’Úchainr(rjrŸÚtuplerŽr•r#ÚsetÚ from_iterable) rÚcolsZrowsZrrowsZpposr™rpZrowidxrorIr r r Ú_dataPosIteratorÄs<    zQRCode._dataPosIteratorNcCs|jst|jƒƒ|_|jS)N)Ú _dataPosListrŸr¨)rr r r ÚdataPosIteratorçszQRCode.dataPosIteratorc cs.x(|D] }xd D]}t||@ƒVqWqWdS) Né€é@é rCrBrrr)r«r¬r­rCrBrrr)Úbool)rrZbyteÚbitr r r Ú_dataBitIteratorìs zQRCode._dataBitIteratorcCs |jst|j|ƒƒ|_t|jƒS)N)Ú _dataBitListrŸr°r&)rrr r r ÚdataBitIteratorószQRCode.dataBitIteratorcCsT|j|ƒ}tj|ƒ}x:t|jƒ|dd�D]$\\}}}||||ƒA|j||<q(WdS)NF)Ú fillvalue)r²rŽÚgetMaskrrªri)rrrŒrÚmaskrproZdarkr r r rŠøs    zQRCode.mapDataéìr�cCstj||ƒ}tƒ}x|D]}|j||ƒqWd}x|D]}||j7}q6W|jƒ|dkrptd|jƒ|dfƒ‚|jƒd|dkr�|jddƒx|jƒddkr®|jdƒq’WxD|jƒ|dkrÄP|jt j dƒ|jƒ|dkräP|jt j dƒq²Wt j ||ƒS)NrrBzcode length overflow. (%d > %d)rF) rxryÚ QRBitBufferr.rtÚgetLengthInBitsÚ Exceptionr ÚputBitrgÚPAD0ÚPAD1Ú createBytes)r#rhrlrzr"rr{rvr r r r‰s,    zQRCode.createDatacsöd}d}d}d}g}g}xº|D]²}||j7}|j} |j| } t|| ƒ}t|| ƒ}|j|j||| …ƒ|| 7}tj| ƒ} t|d| jƒdƒ} | j | ƒ‰| jƒd} ˆjƒ}|j‡fdd„t || |ƒDƒƒqWdd„t j t |Žt |ŽƒDƒ}|S)Nrrcs"g|]}|dkrˆj|ƒnd‘qS)r)Úget)rur-)ÚmodPolyr r rƒ5sz&QRCode.createBytes..cSs"g|]}|D]}|dk r |‘q qS)Nr )ruÚddrUr r r rƒ8séÿÿÿÿ)Ú totalCountrtÚmaxrSr"rŽÚgetErrorCorrectPolynomialÚ QRPolynomialrrœr(r’r£r)r"rzÚoffsetZ maxDcCountZ maxEcCountZtotalCodeCountZdcdataZecdatarvZdcCountZecCountZrsPolyZrawPolyZrLenZmLenrr )r¿r r½ s0         zQRCode.createBytes)r/r0r1r rnrqrrr}r€r~r�r„rr†r—r…rˆr‡r¨r©rªr°r±r²rŠr»r¼Ú staticmethodr‰r½r r r r rgsH       ! rgc@seZdZdZdZdZdZdS)ÚQRErrorCorrectLevelrrr5rN)r/r0r1ÚLÚMÚQÚHr r r r rÈ>srÈc@s,eZdZdZdZdZdZdZdZdZ dZ d S) Ú QRMaskPatternrrrr5rr=r<r\N) r/r0r1Z PATTERN000Z PATTERN001Z PATTERN010Z PATTERN011Z PATTERN100Z PATTERN101Z PATTERN110Z PATTERN111r r r r rÍDsrÍc.@s¤eZdZgddgddgddgddgddgdddgddd gddd gdd d gddd gdddgdddgddd dgddddgddd dgddd dgddddgddddgddddgdd d ddgddd ddgddd ddgdd d ddgdddd d!gddddd"gddddd#gddd ddd$gddd ddd%gddd&dd'd(gddddd)d*gddd+dd,d-gddddd"d.gddddd#d/gddd ddd%d0gddd d1dd2d3gdd d ddd4d5gdddd d!d6d7gddd dd!d-d8gddddd"d.d9gg(ZdtZdƒZdŒZedEdF„ƒZedGdH„ƒZ edIdJ„ƒZ edKdL„ƒZ dMdN„dOdN„dPdN„dQdN„dRdN„dSdN„dTdN„dUdN„dVœZ e dWdX„ƒZedYdZ„ƒZe d[d\„ƒZe d]d^„ƒZe d_d`d_d_d_d`d_d`d`d`d`g fdadb„ƒZe dcdd„ƒZe dedf„ƒZdgS)�rŽr<ršéééé"é&r^é*é.éé2é6r­é:é>éBé0éFéJéNé8éRéVéZéHé^ébéféPéjéTénérévézé~é4éhé‚élé†é<épéŠéŽé’é–éLr«éšé„éžéˆé¢é¦éªrrrBr=rrrr6r?r>r7cCsZ|d>}x>tj|ƒtjtjƒdkrF|tjtj|ƒtjtjƒ>N}q W|d>|BtjAS)Nrr)rŽÚ getBCHDigitÚG15ÚG15_MASK)rrUr r r rž€s zQRUtil.getBCHTypeInfocCsT|d>}x>tj|ƒtjtjƒdkrF|tjtj|ƒtjtjƒ>N}q W|d>|BS)Nr6r)rŽrÚG18)rrUr r r r›ˆs zQRUtil.getBCHTypeNumbercCs&d}x|dkr |d7}|dL}qW|S)Nrrr )rÚdigitr r r r�s   zQRUtil.getBCHDigitcCstj|dS)Nr)rŽÚPATTERN_POSITION_TABLE)r#r r r r•˜szQRUtil.getPatternPositioncCs||ddkS)Nrrr )r-Újr r r Ú�szQRUtil.cCs |ddkS)Nrrr )r-rr r r r žscCs |ddkS)Nr5rr )r-rr r r r ŸscCs||ddkS)Nr5rr )r-rr r r r  scCs|d|dddkS)Nrr5rr )r-rr r r r ¡scCs||d||ddkS)Nrr5rr )r-rr r r r ¢scCs ||d||dddkS)Nrr5rr )r-rr r r r £scCs ||d||dddkS)Nr5rrr )r-rr r r r ¤s)rrrr5rr=r<r\cCs |j|S)N)rŒ)ÚclsrŒr r r r´§szQRUtil.getMaskcCs<tdgdƒ}x*t|ƒD]}|jtdtj|ƒgdƒƒ}qW|S)Nrr)rÅr(ÚmultiplyÚQRMathÚgexp)ZerrorCorrectLengthÚar-r r r rÄ«s z QRUtil.getErrorCorrectPolynomialcCsŽd}dg}d}xd|D]\}|rldd„t||ƒDƒ}dd„t||dd�Dƒ}|t|ƒ7}dd„t||dd�Dƒ}|}qW|tdd„|Dƒƒ7}|S)NrcSsg|]\}}||A‘qSr r )rurÚbr r r rƒºsz-QRUtil.maskScoreRule1vert..cSs(g|] \}}|dkr|o"|dd‘qS)rr5r )rurrr r r rƒ»s)r³cSs g|]\}}|rdn|d‘qS)rrr )rurrr r r rƒ¿scSs g|]}|dkr|dd‘qS)rr5r )rurr r r rƒÄs)Úziprr)r riÚscoreZ lastCountÚlastRowroÚchangedZscoresr r r ÚmaskScoreRule1vert²s   zQRUtil.maskScoreRule1vertc Cs˜d}|d}x†|dd…D]v}|d|d}}xZt|dd…|dd…ƒD]<\}}||kop|kop|knr~|d7}||}}qLW|}qW|S)Nrrr5)r) r rirrroZlastCol0ZlastCol1Úcol0Úcol1r r r ÚmaskScoreRule2Çs$"zQRUtil.maskScoreRule2TFcCsjt|ƒ}d}xX|D]P}d}t|ƒ|}x:||kr`||||…|krV|d7}||7}q(|d7}q(WqW|S)Nrrsr)r )r rir�Z patternlenrrorZmaxjr r r ÚmaskScoreRule3horÕs    zQRUtil.maskScoreRule3horcCs:t|ƒd}tdd„|Dƒƒ}dtd||dƒdS)Nrcss|]}t|ƒVqdS)N)r)ruror r r rwësz(QRUtil.maskScoreRule4..rrerÖr=)r rÚabs)r riZ cellCountÚcountr r r ÚmaskScoreRule4ès zQRUtil.maskScoreRule4cCspd}||j|jƒ7}||jt|jŽƒ7}||j|jƒ7}||j|jƒ7}||jt|jŽƒ7}||j|jƒ7}|S)Nr)rrirrrr)r ZqrCoder‘r r r r�îszQRUtil.getLostPointNiéir­i rCi0ri4ri6ri7iiiiiiirir­i ri$ri%i@iiPiiTrCiTriT)r/r0r1rrrrrÇržr›rr•rŒÚ classmethodr´rÄrrrrr�r r r r rŽNs‚                        rŽc@s$eZdZedd„ƒZedd„ƒZdS)r cCs |dkrtd|dƒ‚t|S)Nrzglog(ú))r¹Ú LOG_TABLE)r,r r r Úglogþsz QRMath.glogcCs4x|dkr|d7}qWx|dkr*|d8}qWt|S)NrrNr)Ú EXP_TABLE)r,r r r r s     z QRMath.gexpN)r/r0r1rÇr r r r r r r ýs r cCsg|]}|‘qSr r )rur‚r r r rƒ srƒrcCsg|]}|‘qSr r )rur‚r r r rƒ srBrrr=r<rNc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) rÅcCsft|ƒdkr tt|ƒd|ƒ‚d}x$|t|ƒkrH||dkrH|d7}q&W||d…dg||_dS)Nrú/r)r r¹Únum)rr#ÚshiftrÆr r r r s   zQRPolynomial.__init__cCs |j|S)N)r#)rr*r r r r¾szQRPolynomial.getcCs t|jƒS)N)r r#)rr r r r"szQRPolynomial.getLengthc Cs†dg|jƒ|jƒd}x`t|jƒƒD]P}xJt|jƒƒD]:}|||tjtj|j|ƒƒtj|j|ƒƒƒN<q:Wq(Wt|dƒS)Nrr)rr(r r r r¾rÅ)rrVr#r-rr r r r %s  zQRPolynomial.multiplycsv|jƒ|jƒkr|Stj|jdƒtj|jdƒ‰‡fdd„t|j|jƒDƒ}||j|jƒd…7}t|dƒj|ƒS)Nrcs(g|] \}}|tjtj|ƒˆƒA‘qSr )r r r )ruÚnnÚen)Úratior r rƒ1sz$QRPolynomial.mod..)rr r r#rrÅrœ)rrVr#r )r'r rœ-s  zQRPolynomial.modN)r/r0r1r r¾rr rœr r r r rÅs rÅc¥@s*eZdZdddgdddgdddgdddgdddgddd gddd gdddgdd d gdd dgd ddgd ddgdddgd ddgd ddgdddgdddgd ddgd ddd ddgd ddd ddgd dd gddd!gdddgdddgd d"d#gdd$d%gd dd&dddgdd'ddd(d&gd d)d*gd d+d,d d-d'gdd(d.d d/dgdd(d&d d/dgd d0d1gd2d3d4d d5d6gdd4ddd6dgdd4ddd6dgd dd d d7d8gdd8ddd dgd9ddd dd:gd9ddd ddgdd;dgd2d4dd?d6dgd d1d@d dAdBgd9d3d4d d5d6gddCd:d9dDdEgdFdGd&dddgddHdIgd?d5d6dd+d,gd?dd:ddJdEgddddddgd2dKdLdd0d1gddMd(dNdOd/gdd4ddNd6dgdd4ddNd6dgdNdPd7ddQdRgdNdOd/dNdSdGgdNdTddFd dgdd4dgdNdUd"ddVdWgdFdXdJd2dYdCgdddd dd:gd2dJdddCdgddZdIdNd[dgd\dYdCdd]dDgddd dd=d>gd dGd&dddgdNd^d_dd`d)gdd8ddd dgddd dd=d>gd dGd&dddgd2dadbddcddgd2d dddedJgddDdEddfd gdd'ddd(d&gd2dZdIdNd[dgd2dd/dd dGgddTddNd dgdddd\ddgddgd1ddKdAgdd dGgddd d9d=d>gddCdd9dDdgd dhdidFdjdkgddYdCgdFdTddd dgdd6dgdd`d)dNdldUgdd]dDd&dmdfgddTdd&d dgddJdd&dCdgd9dndAddodpgd9dXdJd&dYdCgddTddd dgdqdCdd dDdgd?drdsddHdIgd?d]dDddmdfgdFdTdd d dgd dJdddCdgd\dcddd dtdLgddYdCdd]dDgd dd d9d=d>gddCdddDdgd?dldUddudVgd dXdJd2dYdCgd?dvd>ddTdgddJdd dCdgd2dndAd\dodpgd2dXdJd>dYdCgddTdd%d dgddJdd%dCdgdFd0d1dFdndAgdEdXdJdFdYdCgddvd>d6dTdgddJdddCdgdNdKdLd\d0d1gdd]dDd\dmdfgddTddd dgd>dJdddCdgddKdLd2d0d1gd dYdCdwd]dDgdGdTddd dgd>dJdd dCdgddKdLgd\dYdCd>d]dDgd\dTddd dgddJdddCdgddKdLdd0d1gd&dYdCdEd]dDgdwdTddd dgddJddCdCdgddKdLd9d0d1gd&dYdCd>d]dDgddTddFd dgd5dCdddDdgdd`d)dFdldUgdd]dDddmdfgd'dTdd&d dgd dJdd/dCdgd9d`d)d&dldUgd9d]dDddmdfgdCdTdd\d dgd dJddMdCdgddldUddudVgdwdYdCd&d]dDgd$dTdd\d dgddJddCdCdgddldUd.dudVgddYdCdd]dDgdfdTdd&d dgdGdJdddCdgd:dndAddodpgd(d]dDdFdmdfgddTdd d dgd\dJdddCdgddodpd9dxdygd.d]dDd%dmdfgddTddd dgd:dJdd-dCdgg Zdzd{„Zed|d}„ƒZed~d„ƒZd€S)�rxrrÏérCr@r>é,rÑrÕrÎrÜé7ré#r�rerçrÖr­r^réróròéCé+é!r�r?r6ráéDrrårÞé1ér7é'rséyéarôrÒé=ršrrøétr5rØé$é;é%éWéEr<ééeéQé3érBé\éué]rÔé/ér\rÓé…éké-é‘ésr¬r=éAémrêéXrÚr×ríé{écéIrÝé‡rþréKrùéxé—é�éqr÷rëéGrÛé�é‹éoéŒrõé˜rúé“é”rìrÐrürèé�é™é5éé•éwcCs||_||_dS)N)rÂrt)rrÂrtr r r r 0szQRRSBlock.__init__c Cs tj||ƒ}|dkr(td|d|ƒ‚t|ƒd}g}xbt|ƒD]V}||dd}||dd}||dd}x t|ƒD]} |jt||ƒƒq€WqBW|S)Nzbad rs block @ version:z/errorCorrectLevel:r5rrr)rxÚgetRsBlockTabler¹r r(rS) r#rhZrsBlockr|rŸr-rrÂrtrr r r ry4s  zQRRSBlock.getRSBlockscCsˆ|tjkr tj|dddS|tjkr@tj|dddS|tjkr`tj|dddS|tjkr€tj|dddSdSdS)Nrrrrr5)rÈrÉrxÚRS_BLOCK_TABLErÊrËrÌ)r#rhr r r rfDs    zQRRSBlock.getRsBlockTableN)r/r0r1rgr rÇryrfr r r r rx7sF rxc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)r·cCsg|_d|_dS)Nr)r"r|)rr r r r RszQRBitBuffer.__init__cCsdjdd„|jDƒƒS)NÚ.cSsg|] }t|ƒ‘qSr )rG)rur,r r r rƒWsz(QRBitBuffer.__repr__..)Újoinr")rr r r rVszQRBitBuffer.__repr__cCs&|d}|j|d|d?d@dkS)NrBr\r)r")rr*ÚbufIndexr r r r¾YszQRBitBuffer.getcCs4x.t|ƒD]"}|j|||d?d@dkƒq WdS)Nr)r(rº)rr#r|r-r r r r ]szQRBitBuffer.putcCs|jS)N)r|)rr r r r¸aszQRBitBuffer.getLengthInBitscCsV|jd}t|jƒ|kr$|jjdƒ|rD|j|d|jd?O<|jd7_dS)NrBrr«r)r|r r"rS)rr¯rjr r r rºds   zQRBitBuffer.putBitN) r/r0r1r rr¾r r¸rºr r r r r·Qs r·)r8r’rrrEÚ NameErrorrGrr3r;rArJrWr[r_rcrdrgrÈrÍrŽr r(r!rr-rÅrxr·r r r r ÚsP 5-6 ! 0:!