python3-doc-3.6.15-150300.10.51.1<>,(ep9|*٫b?4=* VAl\RG 4n)fDts >)Zegʨ)Zf.spya}[OLCÌ7tL^:Hl:]*dtppђVW/X9 r@{p`oJfDs]Ͼ=oOEP#ua6h pѢCA?pd $ G  9Ze {!4! v! "! 3<! 7! ;!LD!`!uu!Ht(8 94:gBFG!H(l!I8!X=Y= Z=T[=X\=`!]M!^!bcdBeGfJlLu`!v z $*lCpython3-doc3.6.15150300.10.51.1Package Documentation for Python 3Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in HTML format.emourvedreO|SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxppc64lee?M(a- +CC5B%Aq +,b ]wW<#mj4W Y  32e̟pOih( Sy , GZ)y E0 ] d6&Z A KOuXz(A!R!w%@12 .bD a=[Qf zLa/̡]$cA7-WH+{`T%>}.3O/H*<(!P4VYbR8<#vc>58U)(2"y*X f$n6d( 2=#B& Cn @MZ%#8 *m9b7$ut7i$M# {5E#F% -7 i#{cs -3TDmI%Zd' q mg4x', Il!EczO z<o U~T;oi hc)^WCO8'&o,t cH(.S U5J-,@E ;,u]KO "% n;*mA 3  Pod HG.P0 ]*n" @9h CB%*6[ j\ w&M; Md",6!fH)?Y/2gX}y /'EVII5' Rlhu  S"8PNSP&7^W'BS_<'/e=Z:Cb6Xv#)S[  wh_:+ RC lD]*M;& l''v^C ,0Unk+K*= $a6R*_Z@Z +:`/lc !a1&W9*^(:;]cU&/ 0XSwE%L%Og/93;G^p+T= '.XKINB5)BX"3aa4,q`z@4$LuOK7W#iՏ5r;I y!-?:dISdK iD)&c%CC3SJGL:J'>'{t,?)U1-)"/BM6.&t ˅C8Tn??!8 >O )jV"vh*[O &H{]p>#$LZn5~O52f`eU]Hcm5Hd2a -de-y2@BKmQ &8CS]1nS6z'E[U7Q9O+ b"A"]:7tbx2)m*q$gQu8M[zYl5CURT&LIo M[kb0+u4BDuF5*#scl/+H}072XF,+Ex' FH)Cco4|  y'ߞ2<@#955Gp=$f>KG{ 'H+VHD9K-;=>мb(s Z<ǼC7>|ry?E+- E3<@>[CPn6'b+8hRNahp' {~c 0P@a0yhvIA*|p68"fc<vR0Pgw-Gg76=8-$]$Ev'HX}r<{)f'x$@R.g8%CJTCg0}8!uuix)6Swq:}j^Ld Bt!FZo`SWonN?jHk YgY¨Y ~HAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6aa499d7c3461364544167e66f6dbbfd8b05c8e4a4dd7c61645e0b3fc1d5789368316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e9866ca0604b9e41bab114e68b7407cfb2a2ee65558d3d31ab364847d9e0cb3ef26667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11cc3e06d9a0f7f4ce7bb72638fad64aa1e599e77716b8d26e2ab9c6e81ff28006a258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b835b8f5e80976761c96d55886d7b209375e91d8fce830fa409f7c219c46429ee284353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f28723ff25da3450e9e5e9a5b09d4e0e1bb3e37b6e7c12d18542c9f071c9b2fa36765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2d0edbc897c10e9e1082f4e1405114cd8c0929429fb0b7ad86b37acd6ce03f7deb60b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22fd44a39021e1a14f1d6555e95189882033ebfd6f0c1c9e1d78addfa4652c3339e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18841c8b6db6f3ef37a3da7c68e382145f4ba546242ccf479f24552987856cdbf14d9ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b869832334fcd68fc3d067e59b8cacf9232703cff2bba36b0f22f462f104353997a040ec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ee6ce2cb2e672498b518a56110a0d725921a2e082b00e218994841663c0a305a3b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409afb32f38dcd19822171a5e98d2c697b55056333c2b5a5eff32b697864b1c56ede57bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152be46b5135c04f9efce7cf8ae874228a1f33b80fb6d6c5fe675f3a5bc77e5afdc4bfd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be94beb522f66876030f4852169237e7efcf97e98bedf1b703a337d9090941d8fdd46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dab1ef0d91ed4e1b16ff2962cb9ccf4ef385e6c560b21f958728861ea2558d2f77fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd428096d833154032b440e77d1ee6ec39698cb1462fbca20f43cb87a2aae139381da29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe95caac01d5fbfa6abe6cc9e7fdb67dea8d42893e3171e368f3e5e80d21d7b855c767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a84282d139db71eaec0133f52fbc3ef244952e9770ab6a0c3224b3fcdcb30cb8a75706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdfb3ea918e73c85189d053586e45ce49840999d039ebfdb1f1f578288d03d58cf12a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c241a358483676da9842820b74326dccd555a008c19a0ba134cbe4217a4d1e585dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e665d43c1163978f436952423a8f41d5787c7037d8c0d3226a50a9072d377741188fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0763120aadc9a03abc9f84afc295a1ab7e940415ee3d26da585355fcdf0e03378f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5abc0d7f02b785236fb0824c9e46f645b00f199d8f7f63dba2e53012fb8269078b8fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e3a0d0adaef30f7733346c8d99f224576020b2912a8fe6e43e352d899c2fc1b3450f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2fa3d6cf351f97f403ee8128e55317e4ab17d88010ff3408bf10224deba6d7786acc84d1ad3e40648425cea6402468fb4ae5ede479b5314b2aacc6e164272dde80737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1f63a9274a946b68069af217f81e270b89473c8c61280d4fd5dc663d46a00bc6e576cecc8f40d39334e3e1ed29274bf78ed761fc754708f78d82a7dad2e2814c8c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008f85ba3a086cf955d3b46e51a00e19adfb56c1b984f7cbf05137c6eadfdae7dab54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835faf21e4e3f5dd5c44358c0e41840e73c7e9617bd6c5ef05ee30a46b2b9c0662597047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa0d55104d7739d9fdb738c8151837b9fb19cd85b03885bdd76ed0a07c03ba35c1bf808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e93502180fb63dc404b6f3d32584692fdd10755edc8f0a2b79e60ff73cf40e689b4c1f1f39f5553bbfd280357085751498245662277e907e0d5724cd3fb5bad9ab74d928daff939e566f4c43b6dee304f1a037952d4796044ec1c98afed999320149f32003b139496ac13b6839bbd5cc91f020e89587fc1cfcd0f2b191f3feb0e0eea15c0aa12f037b91ba3699477995b7d73ed1e35ee92705df9d050c9358ed1e8c62a59f43c32289742dd45a6eafedf59f231c748838a12b46a647dd122dc1e91c4e5bede39949d274fdab8b12b4571e7bb38a1480f26d38e171f65d02873da08623edfee6076c56d50b60a8180ca0609ec1744d8608cafb71a051e02a1180888f03fb478c416ac425c61dcfa0c514997318a7e4427f29dc455e69cecd37018ccc236c255b03d69933cef0051df3d2a8da0a9d7e8bc545381d567a3058a95720257234304f50842516f69a5373ace7ffc32abae54c71e33e10424475cc25dfee1c9ad3bc3d9485c35f4690c9c6122f8e7de8c5ecfb89858741d66f547144d373749934e29c765a24780f22c3de05ab8e66c14100ef65b373eca47923cd2c79df9cc4aad8b27180e761f0f13c01dc6028729e01748f03a6fd4d8fc8dcafd0c531b5870918578f2f254f082da4194f3218b30e4a0bb98f108564d8cabbb44c50e613a4986abea62889a29ca063a95d6de063c24cad5a201ff5242b35809267e873737431e957717505006fa2f45af8086b2a38b9489a9babbcf69b5e01df2f38c22f1d73a488d7671c342835ad909f10eb4f6cb7654881eebbae4691f9ff8ac6a18b15896a55499430ab9cab45b21752a0640296cd1c979c7cf04acaf379868c7bf7a19b01ddb414611ff1afa785598ec57b34c136154f352ecf602fb45e3cb71c6896ef7cfd22d6c49112463e8fcf16945fb3424a48095a11982648c57396bf05e65181bfd0ed433d4ed77627cd09a2eac97bb2f0fdd6ed7df24a87ba620e81d860ec82c2c2f09dfcb79d2cb4c7b23467259d2b8659e0cd24dd0a89cf85753724051b722b7a97253616ecdbef568258eb5891949d5b081f06c5ae5a08998ab5fd8e79fc2f6edd90b9e2928220d37f37e797525848c1ff37aa6a771e83bb7de75bf2db21616466942ce8fe47f8098eb64a03eee15ace32ea9dcd12a0c750f8de996400df0f846af05020fa345a76943792036e8a106c14d7a59522e2b5afdeec2e186552468a3dc9099fb7fe12f5b8288698b5a820c7c501cbec34394b495988416f4c379b9e3aedd6b9250eeac672ec4c4665423c7a5d3315fc88b96fdb29eccb93d4154a066953d14ac8c2618559603abe96b2a37db0776a7e8411e9439398aa033894eebf9d6ea0e05f1ccc688a4534f3fd781f601155b159086842a29f1de9c7f7dec41c941799d82a98c9f3a31d786f3d706da8eb12a6fed3e746a7dc092f3ce94b29588f38a7667ffd5f668c5445b73b31910579f42e8962f3d4bc3b90ca7e75fe19c06bc88998cf2a77fdb9d9000c4b20c6b3495f11700ac0fda16d23a1e070f0969578fd511afd26f841ee92df96715e2f703ef4d6b77267040b3ffd4b775c8dd77766aa57a87b448c0b1cf9b446d70327362c3365e3bb45e1f7019d99571bc9a7de25f68c8aa12f280718bb1a7eebf2ef707e667153cc0e4acc9f4e1e3a79036ccd5504a9f17043cec8a270e03908eb0f427652e1deae9aec80e2843332aad8c21b15083fc827dbf6bed12ec0c71969546d57093c538244d8d80b0ca0d1ba9e4d6c1cad2708f8ddfaabc0d982031ba2146c376980cbd24ebd7284eef8dcdb0fc70bdffa3ae75c895529fe7065b994eeb2c57950caed8cfb8e5ce669a88d7b02b5a57417efe8a24a6e4b2d18cdee9a0ab7e71ffd8f43c6cfc63986807e5108b537e50a39ee30a165994955df626e6cadc2fcaa73d0ab75696459a128f7b433e3ed69ffb5e5fe2bb654a1cc1d0a26317fe6d5b2de761fdbfc3a056fd057d1c5f90a92501ce641c6c55e84d4d92163341257bcc50b06bb91442e867d89ab9d7814090da6995254d8fc1e5a8de9a0aeb60449f6ac4e36b266d41354dca6c96f4899db681d4b60557bdabaf423eb81cca989ea132c7aab4fdbdea5acdbd4eec0ac3a00b7db02fefa667674c14cedac862050ba2b95b1a669e4f1e53b3fff1964698f89bcc44e52f1f77c715407a4321ece076f9fda37d8047869d648dd52fecc2a31a54ee78efaf19ee53b587c082c1bd74b2821398c020dcaaadea212c048ff7633af034d5b29f641d8150d2943b765f715a2f4deed073ba4bfd1f0479cc2a5fce1073c251fd43c5cf4cce17e441be2e2e8fdb565de088d58d7cf5a8892edddbb71e38a21d3a571038c86593aa78b3afdd480fbcc798ec881017279e0f8ae2365278b3c001f286434200a2679d2547694526bce59212b1a1c47c0df389cd2f065b6f6c62d468a92818efd02e05941bef07bb5826ec172475c3a4a192b9e8d99f6837eae4e227a403d32e6904c44117e0d6b0e7525f02c62efda1fdd8510911731f5399446529e38b5e6fe6a94c51d6a991749b4188a80d67aa3aa36b81e0ce12db71336bbcbbf94315c22b2326d2690f56bfede8fe54c862b64190cffd979aa5e8aa7637ddd5f98d4315b255e361406c7e7eadf86e84d162c06bd72da782a861d4a5ecb42938c5dd3f656705be8ea33f2cd61983036c7af9e9b886eb288d97bc16a80f443aa62e24b0541b5c9bac668571809312e6b1f15c8049113173b9c4314f14b65c1b36c8c896d60b08479824d9bc770a1d1ee56f3c1a604f536c8063386983f20cf7d2704bbe4c60b6199c8706fa34c3e9f457c9d3d6db1d21c1bba45e0e3642bfc3a97185f94d2b0f53cc2eed71415c23b4e0b1cbf4abec1c20c4079386bd31288e4b669c8ebb1d71f28a0f274b02703c10ade0198b3c034d4b3a8287bb34073ee14533d437ab8b75422a76126ca1a5327be112d25facf438d09e3da9850c199987197db0404204b51ca4bc0c16aae6124bf55675ec0a59d875c01dfb7c4d9b2c217a1a909a25f9677fcca06c06581f593b07b1d1742552a9d2cf7cf87b5c1c2791f0e651cb3c4db13ed6f08e196c2b19ec53506e3013c4cf942ef1b0a7c2bb172d3c4bf0186a9bc17ee5b3e052707b0cd0e2d3557924b7d901546460c8d3de3a5df83c3a81462c5004f0d6311598864f98f49532dbf725a5f1bd0c6dbb0c41ab3e8e640d2086336809241acab16d6b8dce2d9697a5dccd7ea7b0ef53aa7f8576f6516e3f8f3cea47fa00c003a04cb6a43c8e642df871f3692fa712c2386348e0e07df390cf8362054656e781e5c2dcc10abe82a248e051fcea9ef7a455c9efaddf97d122d2e00bd8da101d6bcdd0e723031a2febc4ada7b1f42c249f1b3b1374cfa46468c11a5d69b455af5320d10cb6f0406b42de08e18ed4d6c61b0a2d6663acf9a586a4131d51965633d71955b400586c4e1c2e5d00fb6e2777bb663cac6d38e36f5d001c54630b5de0e6ce9b19d001eb3cbb8cdf6ac0ca17b4823ded98bd8f75b2221e87bbd20164727e0df46602f5fe561d40674072756ce4e0beeeb7a16e6751b5905c78938c3c7f58363fb71971fa6a3a2d26021524493d98ed2539e38884fc8c340d3f3cbe5c9fe92b1deaa7e5b1ea0a7e62a0397a032160844c9d1c848f69d58a38f29c4a28577233f6c66c7fe155239b8e406987c914e2243869f3c14e59f862268dea4f8e2cb05a2fd809e1d874ca0bd755d9140ef65dd060517b83eb3012223bba93300e6f0bc6afdcd8c663fee526cbac3dd5f4a07fc235731686849b1de8dfffc58946b00ff128fbcc5956bd3a8bf0e6bcf273861b75e74a26f172e4ecb0ffc8f7ae5ac83e21f8141dd356465e8cb36c57a3f2e19ee40bd20111e39cb8a2202228036cc7e6a992a107d641a6fe8290c649033ef2a45c5a649e27262ea087e4c03b48c72f0da3ab579f89ca5a499b62c1c4c50fb7df28fc6321b6bffb35adfae39a96bdf712cb6a291f0121617ba0a6aec390620dcac28836d57ffa92c3306e0142a4a9f3ec6df27770d65d0b3a0f90ba01729a6444bd668d8c71f68700a8b7804affb61dd2fb0326b4bebc9a8c9a60c8ccd0a41b83a1df6f7b3d45d8899cf8f4ba3dcf7b980697b4078b10512193aa12e02e4c5cff9b5c2d5e8fc14abfdeca6219bc44d8d8b0b7d0ff78626d2ee3b015d4b74523115dd394d1a4ee3504c3ef2abb527f65bfb5d0b32d6b55fa6390d9574c30511de4924896d1c52ec23a031365d2141164530bbbf12c8c5dfa998340916fdcf604aa593c4fbbe16f8b8df38e12014a4a7e8b5dbf785ae757396bc754410226c738375f7b2125a216ff045edf5df08bbac808856ee4dcff770a71247c9a0a8cc9a222ccb1e5fd767c961c30dae281cdb2a89cde14f47f4f9ede49293f2c9bb0b9361ed52f5f5a6218d9fd0bcd7bd07c16312bf64e08b2851043c68e22ba55f2e42d7f9fd901c7638438baa35e4b1a7c132ba8c67ac358e2d867f95e8aa7e756fec5ffad8d10c797cb37c219dfe2673768cb334f0437dce4326a89f23fcd3acf2bf774661fc8e5dc44254850aa09523d1bbaedca70e4ff1b20da2b700bcd8bbed72acc59226d83eefea892d5bfdbdc61e15cab08c640f514cd9e5064762f27f77d01ba7c453c260ed78106d4e5fd99ad5442b7ac774159e72009dab36c380a2b852c45522d02a2b7aeaa46bb603df27fc879eff20e52fb1ce4687309d1020b908a6153522b1622e61b140893c6c9de56d4b58b64ae42392a5890a29d66a11837634fcd3a30c2794a4171f32cd030b8c682e207bfe1ba7fb5904928fc72fbd44e546dbbd2fa92a6290c0d93ebc036efcb822b0abdf617bb01f2c9b59430eaf766c5990c58a38f5eefb4b7bda183b187e96548d81a029cd576f66d6579ff026722964e388de33ad9ca6eb6679f3c08b7aacd267704b5a447fd499f5a386006e7fa2fe949d4fdad8664505182650d6db894cddfd68e49477e2c165aeb5057a645a9295c3121efae3de3cfcc5c5bb627d1d3b5dab546f333f15c03184c6d8ac49df3a881b99aff5d8b28fd7c9f5127e2c3fccaf57bd726c287f05933e26a70d99eacaaec3b7de8644f58853fc3cf1e2e5e9e9c5f10d185cdd7c89efadaedcc976a5e1aaee6dc4bd7752e7684a29bb5ae010e34ff35b8a2d511d10f9671369a299fa47ae0320b063ec219439f8ea844522d0405a87ea13b3ee8a938ecf9416199b4c3a81e95d6200fc2364d0fdbd8e97b693d570522bb203342637f751ff6e3d9878b20211db72b350d786a1c9cd52bc59725b3f8867968c50361054ebfaba54b419fb8c2f9ddda65cbb8f5d22e893ed22d67d7a86425ad449da0a61546360be2ea93e8c3ad0d4c755abbf94c260b125864445540cf1f94b283ccf9b66936b553d4a7301d6cc774716695d42daee3388d1dde1f0acdb86bbb7f71bf34c8aee9a97430128de0f9b2afc89e6cf484c40b2f7df14d12f338099436d4de4255bdb6afbca461a7b8233dd5f189a54b3a411adc854510af2475b37838c663446809a4b3abfe750e9f2a1f2e6435c696b3f56d843905e987059146b3db873462c0b0a92d2cdbe1319e0e2ef58394e56b2306a229123a4d4da25aa3f9602fbdb48022ff5fb2e16eba4e790abb77d3c8a359191bd6a63a1fce456ce960ed919611366ab32bf27db4783c41597812a236d0892e7fed2d183e8dac348618e5cdd65143e74f0f59495ff0f4331686ad7691ee2942fba4b424ad639f8c6adf9134455e07948a28908c9252589f9ecfc17c551f6270b726b06f7db6af12d1bbb2948219d119e378b6562f7679f3de92bed0c74989a37f3e1d8d6d02133322f73f97b9ebb6522c6094be1e536116918f43839c6882404d7564052d1e2be532394828caf5eb936dc8ecef25b92e10df8d07b4553234ed19c5b0bbca4051731fedf9991b47aa1c0bd3d6f66825d064a3c9f1c439ac812cd6811c82af31197fa95512ac5ebc2ae38d75fa001999c9ef6926e5b16295c985629c859182585670644fc90e26dc5582a190d7c8cdfeb6f64fa1e32d91ce7611f59c6a00467230698a564e4280496dab26980b2cb1a3057b6f6f9877ddca11a36fd94a052576c7595e67767d161e1dba562de1d54488fbb1051520e291846358e60d2b0bd6d7d5966e91ab5f0c29f1849c2bae41c6ca41cab146a3a24831cc3d8b84a8542b56b409e48262936fece0ab30d71d6f3ff2f31f679ae27d0b4104d878b5d29e92b67e6bc0360cc041432f68053e9d8d14917c0cf50a4a03c11d988888499f610174863c39b52f2ca56580df39dab2602176c82cac13c66d930fefb254876225e2d17fa3b95abc9ef87b195e8b20e8eebd031cc99c51a66b89213e500a22a1ce60d3c958ec1f4e5fcf9b7052d485fb821ae34d6446f7e38d6e5f6e1dada9d2a54cf6445599c4b18b698db7b622aef2c26c9182b4d943410d4e5413ccdba2a2a030320750f115a594a84296a30ee24cf43c87dfe93eba61ed6ab62ce3e28488e235f04a07996e9183204d583749a8ebd851b0ed088e4abbc3570d822eff183bcede7f2b01cd3a34d10383fc87244032db14436c936d145d8b1ed8c424f8602ac49c96182cd709d8143f4ef96420d717c3cd56c9447a3f574525429751d697f8c8dbe886195cc9fcc70736a8b2e56338d136d8d828446240656196b30fc70b7dce4026ef5b14adc4e88bb6cb2487b14381b5f8bd8d55e1af2b999715edeef326d64eacf32466e1353cb535bf9a5c048ad4cc1d30d707093cbb241b231d9504f05bcad728d96a6aa81c6d8f8fb47774009515c6d1a11b61ad99c4fda64ae255f6433b4217110938b37720e0422c430ee82b4ce1c50b18ef6d5106372855ff66277a342fbf42ffc7d1820f05dfec6b571a04f195656ee037ef23a51e5587a6e512953e629b696b2545be1b47e277d13ba893fdb682a9ba1c765041de777272248f0f5b1c3232b95f3a401d380d5f0f6f17dcf992cadfd87ea7c2d2a894c1717aef9a49e1124c8e68c376f1ea757a4a85f545c654b24ecc925324141e13f0d8848024228f8dc79c94859d01b420cf8989f00bccbd4cc92365b9c0f574f6cfdc8da5c4e58ceb3303660d051891ec35e83e3296b0c6023d0661e0819cb3268a06732353e9b5ee862f5b7abfd9960e98d23d520f3b7472452d3d7c409328de2cf32c3020516a48a7dd15d014b676fe019f031a10760084e23a69e44407e76ce53ce6b9aa5ed1b548a4dd45e93864659f352df8655fb157e5b789202b2ab0eff7acfa90dad04d93bad8418fa6e295ce0b2c8eda2af0b55510b7ab892b59d4389d7fb8ff071c092975fd11ef90b14f22f9d608d6f8c3bd68c38155c4424cf5e0adeddc6a0c231ba9ba049f58b253526bc06471d573310d7e350840c6e23b5be335c581d46944b5536c5dbbd028b3fa8a330068956c8c981a64f92e1eb3731f8e6c6eb05e4fdbb7fd2e3f2171a24af0e9001533d9b16e18624775afa97973e8df5602adccc2f99a458754dd717ee6c00e348c43ad817ac168a7756430f42deedcfb06bf0451719aba1861244de0c8ce9075acacb4c9c725a734f43e4ad21713c7d542f01b050c2cddeb632040dc3eb984d0e49ca9a5cc2c9e63ee7090ae5e8d094bf574aabaaa1490d01bba04be8f96f0b99a2adf76738a85d1e081df79e6c2ebf77284aba550755736fd8c7b9997317117c54ce5f5987996efbc390ad54dea2561690329fffe40dcb755adcf077a90d9264efc821e760138186ad16ff523e464ed7ba2141493ac2fd2e789dcdab3e6eb8089a527733ed977573015870a3fdb319259f8d9fae05d8567f3a1072a074f5ace49a355970285a58929abf837175a8b9e14143c8cd4c551b9d995943691bed2532b61b7d9cb82db799dfd088dad574722f12866fb0d80a5c70f5fa17992deff5bbf40f6cbbb9f976e1324e42e2fca22012cb9c33d18cbc32e32224360a7768103865cf8abfbda5bc2364d33f5dab734899369cde41954266879b4193bd132d8d6974c4312530c8475267dba8d308d44f5fb9bdaa212b21b6e7ea53f52fc3389c41c077146b4ae5e109549711a99afe92f839cf77ed612e8862891285cacf27bfbe4b4befcbdd3fdae28a730966204073f3a6543139386e761d3e1523eae00f6ef5edae44e36a5dea84a01a47d922fc19bbffa30f5b0eb36337bab3ca72b061dc4cac5b9ee09e085b9abd6de0dc3140ce59a3be147aa2ee8f34f0ef347379a6c6cc1422615a8970c162546a86ec8847658f29ad6faecbde79e8efd0823a6dd52a30e1f008e5671392dfb6396117ff4b09b7a9ec477a2dc897645f149caf1b61ef670f48289715c3768f7dfcb62e477a6e3aefeee2743f5fa329ca07040d93c0f14b55429a4e0876a4b0c05de60411b59d259db452fbb2339b240bb1e7483d7f4d6fb321925827ecf4d697a4698a8831dfe5cfa72a7643fc12caa6f4e0239dd1a20fb6182a6afd6e10566f377840db85332dba24ba4533e57bab788ddd1b99ca9f158ba5d9c46ac51a969641ef3486d5b998fae6d99bc463557e30763782ef363eec4f9bbdadf17f417b1c6ee95c172e046d22701bdd4d2412b18ba22ee328359d0baf35980d756d1eed258465e5c34d637d18d5dda94e874807b5e5b4e920e2126ca9ba057a111340152744734325d3d31649a8f5b604b4b50da26377ee164084059a2ed3627f13c6c72888a3dbcde9359c4aeb901d7e27335416257e7b59ec0eb07fc5c53bea058f52947f170edc8e433d35ee55b8b0c024449308a97ffc1896fe1ffdc220dceaa2529cee86b6ebb59235c8f8f413815f8352cafafdd5248efdbd18c0c935785d8aabfd2a4a0480848e3f2525b2967bf5459017a46bade4869488c6a6a569b1faac7cb241958ce29bb506ae65c4201611418145b1e7249b34bc9f131d24999ad1c8c5f9c1947ef50ae91ad14c50c6e20e4413fe745a85c9d71f26855ebbe1a3a16ae1a62b6dd6b286f0dec4ab4ca879a3b7eb2879418f079357a82642ea669cfc5dff9b56e31e84ee3acaa4547ff6d88752569bca329e585188ab8a7d8f3c9d8b6619b53d755f16542736e86620dfdfa8f2344a87bdc750fb5f2344d558c6eccf903e3ff6ad0935e1218535669f779207e5d50f83563b00685c4fd8082b1bc7444bf21abdf04197aecc597d769b7bbb38b1cf88a377990f167faad145b823fd1112615c826d9a5d1c61ee1bd02fd73d53bf247c276e9c66bba46ede79a8879a591184f1ef0a4c968bc832d9faea070a1b033e329c03610971dd3efad9b2aeac8b5bd86f77cf39bcf9659985ff0b299c42f14f1d3e60429cf020458cf62c14a11597ffeae0b11a97bd2b0f918ec107a1a4421474c51352a75d5cf7061ffa8df852351a6b00e1c3fa217f216a94e1b399de218a30458b96e0ff2b278528171a0246f0d6b63c1fa16502c8ad6afca8d85b7c2e4f17f29b254e101f80faf170f1151566987929d86ea71e9b65bb7410084917f2893486116a84979a0ae1bdef353bf53bb92b7a4820fb47ac2d9f518f96feed5093b5c90d49bf8d03634ffcd35f4a29ef9eda059c237c66dc423b3dd1bb251de4b36add55f25bda75ea50e63b6d25f5f6432d4296e07013eadfd96b717d3adf521b0970e02481028bd01f29eb8da69e17ca422832b7fb6ce557c9aa9d95939c1b6d535e5346f114b2575c683f0e76d1fdc3eb608ff066ff0967a7232c845e1bed923cccbd9ba3b996cae710b7ecf732b132f1997ec4172bdfd8265dceb6c2382f9f024529b0391b937ca4ffe0f7e7aaab3e877c7fb31a36fa8305c4e83530ef20b569217cf714e1fcd52770eefb732ac8baa107d1e584afb93da65bc3ec9f0aa4e5d989deb354e195ba33f0b0e38ec72005bbbbd51742fe93a8b877cf4706f6783ea1bc290055bd35c34079c566206392dd59e595af6e0aaf556d27dc68ad2ff07f9a42875fc49e159c169dbc4e9c52e12b8b8f7824861a16bf6027a8647de377a66d967e6a8697154d179d6efbfbbbcaafd02f82125974d609a8772caa92ee151fe1edfd52dd46c493583bb0250772741ea247e5508c0813346665300e28a14bfc75ef9f03d163c9b1dd76d5de0ff9d589f04ea7a2b3f83c2443a2a556a24d912302a992154bc3dc6d484bb0927b36c7de89e1fc553cf99b3e34c6f96254b57fc24dbb8d9b3ba1bb72d7e1eef04865e872418909fe615fd9f0a851f65905723531d02b22aed695d792ceaf860a51de97758a4d55bd9b9dba9bc3db1dd52453b9c7a5e2119943b45ec0b7be663858e35353299e18d2e7d182a7a20e6dac1464b459683fc45cb59ace67fd1ed588c40e644ac12a1cd3c4a7200a5bf4fb63e0edd5afc019e01b91d75ed6f59be56454f1f6be90133cc27ea43a39d1d3197b3f240715c4ca0f63a5cfc4f65b5389bc33f97ca1c1bc1217a8a958ba9e239ba6902df027b0b44713c52f8db8e62d826817188691c9d5999be7114be0f4e31c7beb22edc3a0e44b5c3a12ec91cd3c29fa04727c89e74f2e2422ff7113e7387d295282a51f2ca501fe75c6f4a3ad53a00cd9a7f6ab36e7f63a0bde192a87568fa86e8be0d8a24723c70421dbb94318203f933bfad54bea81b6ef8a87d2d8d61d434d7a05fd5e356a8213012aa7e1921815a6f9a86e447372d9221e53442412dbe8c96e0df951c3efbeaf9d5b85f705f479252354f1768cbf9d478bc51d7e0e7583fdc1f978fa91163d231efff2ba03c4826c38e6d55e9b21cd82c4715ffcad04a36ba6f6c580b1197d86166b0243f1486c7e808639dae424b5e1e8f583ec3299ba876e6fbdbd478780f788d120c210cf8220f5aed4a27dc364e0c73a2687ff62093d608638e15b4157f95335148550cca784ca1617c6de33131db0ce8eeee6e0f678d8b73fa9a775174794c17343326ec46debfdb472b7812fd79af68336b954a793b068edff86c3c0c5c04afc3cd02e077e95629d6c908eea24a0447949e211a14b11b58d7df3e6187a2c16e1a85c644e0f5ff851a70e9dabb48aac7f995621b01512d386fa2a3bc6738c0fa1132d1e7959e89ee776bf660df7c153911b4c79fe32d632d1ad8289fefdcda8908f45fae8716ae1726a521d98b38ed2bc86baccc11412f7fc1cd65ae53f951b86a2cbeaddcee2a6ecfc13df9f6f83fb336ba92e69fa96a07c126d24525f396edd2f429b6c381fe86d33cacccd99747cd99c984a2e7d37332baeea390101277c177fe86238cd604711c4153315ae362f718c5a500cecb4425a64c3463f447b8fc807de3f86f4f0fa5601ba356919e56471e58b607ff71293bfd2a213cf1bbfea09a6214e04310ef2138841bdfcd5af93f4e94fb98c5d20ca1401282be0ef27a72b0018b7e524245c5fd0cd363428ef96920e9adf121132f9f8f9cdbd1e13e1e19cbe96ffc8d190b94900f0b1c64a741f9e93034252d11476f29142e241ebecc3ae575da4a7767756b1f172aef179c5459a18b9e968a2f5ceae078d445ce3b2b06bf4cf52fd02cded1c425301b2a514c7491f48ca6e8cb1e22200f9d8d6f2eac80c60016fe0dbf2ab11e6994e0aa9dae0b795ca7949bd691fff872891ae2470263163451ce17160a97cae388d5d2c75955c5b9a8646e808e95a3616c44d62d6a243e62985f2e13e2d5f5ebf364e615708f06a5047ef4b134e914c2a1b71a473a92d767d0f36207a70d60a7d8374926b1b5c371800ae40511e969e3735c7376cff592cb862aa832eb39107c3bd78737837e4f0fd4692cd1b6d904d4ae9dd3c3c833dd0bdea14de820c1acc331e6ffc15677217b5cb37deb62eb7ba7d98f1df4f84caf8a7baf6759534a1ddb39c30ae284395e690d82a5e59f4e99221c5af9bd8ec0ad0dce205c228b05102a71888ea6c1374af49b23e57883944d5a94997af0e83cc87299f249266b69c6b6d18e776faf62dac22127f2f8984d4df860d1e342abfd500685c59f1edc1707a76ad5eff5bc56a62fd7fa48624b20546b27551ee9b4cf3fa56ee22b9a1497bb555122b3aff50cc32130d0798b8e504ebd93adc293fbe897520b5a127480fa5fd0eb83c66e4061f273dd3ae0f3a3196356469253fd73e3ad8097f5cbe2af7c3d056a579fcede54bcf1ab8a8cb37bb0c236765d24d7d66f8e2b913331d2356812e19e81ba8306db4dafeee4d8b6373ddf74e114679d133fc9d2dab81a5895a9f9d4ce2075a2f883532ea118ac9d49e117e6e036204839da8540bfdfc4a8c500247a8ab06f458e8fc80cfbcdad5a195014b7a02cefe36ff7e2d7e867912fd2b79dc96699d12b26a20b9bef369373682ae9e9bd1718ad84e5006d2a541c296ec9601224a89c9ea2aef73802e8fd3c282a180bcc204ad656b88532c4e1d0dd2b7a90d4251f9e681c559f05858c7cdd59279a7d36b396895531d9d10afaf20bee63692761ff2831ea15fe2f636d5f98d3eee3e24c018efb8e6185670368ee2dc57912e11fd739231d24f96727b48ff2c30527c1fcd409578b4823b559faad08dd6fba76d0cecdf47dc67941c85a82fea1c14cb4a9c7a14487f54b967e554fb6fd4b71621b16b33bff2c96315d9057df77fe4faf3429cd439f98554dda2e9497c9c2c70c46f906f137a256399cba65bc127385fdd65e1d4e3195cfb05469a78a518a3d1fa317dd72c8e3ec85720cefd8bdcd0aa76fddb92bcc30d716013219a50f9228d3cfdc48aeeba1a7dcef61f180a864165cc97d4389c89c104a0ee8edc6a3607c717cb886a96328a6f873b119aaf06c4b1f69c0d042bccb42e0b683dc7cad6c5fa5d0ebe994933c46accf76cee49181c8b24f3381299760ae5d365d706abe378458bdda83dbeb9d9e7b5685802ce13b6687dc992817271dbd521c91e2136a5fda2c4ec914d0f8017ac3bd19405f7d376ced1c14e5c6ea4f45bb1aba26f9bc7a00054e690a7d096df7d11db3aca8b1e3979165fa4aa8505abe7098f6b581f2189f759467efb66335841cf9ea76b3b51b8ec0f57cc1b3b6eabc524cc9300a80d7df899bbc9fc0d1549273b85a8ad3d53a6fb9cc448ff60062f6a55318cfe10f46e05b2e0b270e95af625ddde87ecc8e111f24c865db6efc1b6f1f17601671f70d408eb8d8d6064a68b79e589d22e9bb94088cb91f7d53afd7959f06ae5d46d2344b66af09d554e2b5261f62a81784e4aec496a9b63ee40bbef08b09cc6c4df871573b5f07accd1d38de8b641f35b796607fe57cd455ddaae66ed346e09cc1f5d78c642867ed2b6876f90c984c3de600b6478350a5e02475353731b1d090f11566b765259864651905cccf0249cb684b7cc15a501ae345b9a4669991f067a5b4650001b3d8adee7085f6569d027e69c9d83e1df8f85b37afc80ea8cbfc1220a2c1ad7fc767c532429a8a464eb03d79541ce00388d6d4e9aa443a0844dee80f655b8447a30f532c35a4a26a86bf3783fcd068c4a1218300390478ac60313490331ca18a1af26ca094d3e94347b7578932ed70aae5aa525c15d763f4d3c14a64f497b9725bcead04cdb630329ddc3ddf96e39e0749ec5bb608d87277022c40f36bb1618962e57c7ea5018df4a05a6e71b50bd29a02c07abf5ecb76e7eaee3c95580acae72d6191dc773c9d247d3331d8091827505788495a66cf569c2337d085de30e56481882bd7bc09168f282d170e3074d88bad3025125f21bf844411d90586aec851fa86d9489438d1ce900cd6235168ba07704786afc68698a4a5e2a482dea2f99e85e2122ec48f6e73d325ce435acf25efca5c8a3bd6686ee1732c4c67b00e65310bac1e4cbbeb3e12ecdffcb24e43e43e00481b553c056ceaccad3243d51211f46234ce0a71d8eb5718079673c446ad97f47266136626b2d154827673c3cfd1f7045cb0dbff8367a668a0480f342dbc68e16e11a43bd7e746c99d63aea446a05e44a1bbb78060dece4c0c32ac06fef7f39a7da35bea061ac68aa6a1dbc3f41534b7c202582d4e60963649188a7e81ce26c22c8a4f35bcb889680001bd8e2ad915a39632fa764c9a2d796bcba2f52335fd488587b4bcab42922be30c9f00cbba1880b13640de7b680c458afc1f64dccf16dd3652f75ddb2668e8f550bd655e939ac613ab446d30248996e848c07f24838c95bbd8059054609a6d20d8d57896a74fd9007346259c20e331d83046e8f207565e4ed8c195b5d89bef0358b8444d6f2cc40815ca82d3ff725f43bde7f7872e81e16c811e0cb9a176fd3530e661239a28ec578f21926c7c5609f6f6906aad4c4dfee00d1e7116c99140bc2e5c91fcf96d37b0d52f6e46663362feeee63ad490aefc14f22b72edfe12dc5d0c4bfe7719b1f11e11cbc022bf264ce47eb9fbdaa704b4407a0e31bdf343ed08aa453cf3d0a8e58493c2f309df2975a723daaa09d3a933170466c33115079a1ad5175956cc6b7097563f856c51a52c232ccc8568e474667f9d846251ea652a6830dfe5c8a497654ff0d43f6ba24672d96fdfdc58a17048e6999ac9cada408056215b4a943d59c646a6d20c3510662c19d82956a11c8cfa0d95189bcf4796e51e086af4cadf1904d68e0b0dfa3f13bf02360c08c820d388d296670e949f9772f926d316106f7d5a6f02162c2e72ea13904e578ab5b3e60219e9eb45ed0480b1f4bb0efd8932fc67829949d0bd3f1c8213f5c47e310afe485dc4407fe307d54a52b3c31355488dfab2e6a76a4b52ff985ada758ac26935f9598bdb901f5245df4dbb10b9a26cb1cef7cb74ba67970ededf36f65cb0c05000511fd68f34e6a94f21151213fad2caaabdfdac69fdfbba26800934b136eba49ca78b1d1ce49979124ba5ef7413bc08720470f3485e9c647dcbbd10630d54eb86efe47e5fd0bbf95b22ad6ddd916b56afbec44b96d036cdac16117e875389532ce5c17eb4316faf9e3a548e945c187a60c2a6306b38a527aa4bf43a89d2c44fc644544392ae5ba43455d2e937471027818e1cafa98b90ae6ff3ceb3bb6791998662079729d67f444503267e43b2983ef5f1aa0b0619b55d23b55a53f3bd2b5cf1c83e0551534785794a4031aff89a4a887d4c1349e014533a8321a63bb30d0fb14fd018017145098c1729ae184f63e891d30cca376c2e85b2bb325c2be023103cc4916bcd6b5bd4398045494e48bcd2ee6d3e9fe65a10cde08c54928050bc734f9301c2eb14b39f18847069f3981bfdc31334374d8a2aab77b310ec23a89faca0bf02f26b0a9402d6c51f04052857d0a880b06f22b376ca53dbcdf176e5d70f5d97e970f5f5164708c8b90519c6935e922ef517099c4da74ecab7d284bb1ab855da6fdaa258e68805c914445656bec2d4be1133496446a76f1df84339d5367b9f1e8ce4a86be61f80976618836b1362ba2ae0621876c78b81af617076ae2e717083032f6a815af908504123eadb642f81c6455d7868510cf0157dbe4563df81c62e221fc47cb56b5d7e5eb14430237fb577458b07ed801c5113ac05d8a2a7ebf0ad3e5aa98ca70072e77a4ec0c6dfe5e8a247f12e544af62409d2c72309410e4fd038922cbd14d352138e87c79a890cf0c29b0e114fb475c3a9fe2ba35ca9fb203aff73fef08423ba3b6fc953fe3ef7016cdd219fac29e2473d9faddd2228c6df821bacb724051ae939d977e3bcfaf59e3bacab9fe513cb300e64840024aa992344f116a993a53bcb790a7f409db75ad64bad420f568b8060fcb5e7df8abb1acfb23f8d7966e07bce944183a8b83a1b53de02af9e49e90b8494b2ae37717b567b452c5bdbe005c757ec2b4c58abeba23e138f5af72c972483031be41622e8d2bb643ba1f87768675e6c36101d9effa487440fbd3cba19af00618d97191e61459783787eb87264ec3da92786c2cf4845397236a296df3ac986d100a00d39c6e5fed8e672b98218706063f53edfad7604304ff46415c3d0d652ac7d4ba310d20c9c27abcd0a75bef7ff4044d1baca4edf0ac0f66361230272671b5725ab65c3cb31af4206687b3ed4807f1e36629bbd08edb7df6735edd049ec28ef5dc4becf091a804189a1354af696ea448e82313fc14af721ea6adc88968339667121865419e7ac5322a5ed1a0e3493a66d17b231e58c03855fee74d01fdb91c6752a15deb75eb575832411fec8c864b3328d27839aeca1a257cb687fbc46f85d143bd15b523458a96fab4c5e59cd88b4f176346742774ec48de97603d9ea1b095ca6e9cc3bc01470690f9bdfaf4c41ded4c0a6396cf4c705d8babe536510c5d79133b362f50c2e2cfaf6ad5cfdc0e86ade8c5d80897e71c95bdbfba5e50aa52103f54fd38c031f59215271a37745e084b69761608cdbb0dc3e75cff18064fcba56a11d2bbf33de94069616bad40f776852610684233d2a3e899f42d3a623c058991462774239fbf6dcec917f003bce188da269b04c6475e70100c0b943a11e126cf3434989162d2febeaf2e89b8a02d2522a57ee82ee023b3bf51eb3834fbc0584c1284aea039d31b1e8c1684743efe09a6a5467b15ef5cb7eba3964647962c6364e6dae4572e42b573b14e5d6c6d98978e645e8b91dfc43f147908c97a136137e6994f02b2680af1008552de8335473d53c6d34a6ec5c0ab3ef3b8eb3a106f3afe9e8ca6a472a5adf670969c6e35271753e161b5d6c93a14857c673229f071dbf729b099580d8dc2dbe35fe40481af19212073765d5ecd5800380042bb49bdc4c7abd5a3511260e2942c23ed0a748ca6cec64450f46b5175c6e2fec6e2395a050b2e3cfdab3ba58920b33d6c192847d2ba54d76e0a2578b36b90ceec246b7acb2eb2d91f975d5cef6f4ee1bb2f622d12c81804ad48489d776d537310fccdc08f353578456bdcd6a7d097a53db035901741510e97807b59a0c5e73e8274cbd6dba2d3ee180076efd01e844f5c8d02e7e36e6136f6985a045a1f8cf1873829733c0f900a52ada2d55a4fc0782fc9029f94d21b4bf3f17074e04c46cea9ae03b29f786dbd1091e42dc57d6e88839f6ae14b4cd731fa9927cb0b6fc50783befea96107e1ef50bd6f67e23c62d03e3c5b2794ed6e55f2a22418eccba387f60efb50e95c2ddd7612fa284eac8422b9642a4326fe729c88c8604247e9aa258d2321041d0fa95e1fdb9e62c0a4a3443c78440daff7480ed4ae43921f9d62e339fd0e942b0bb458054e052b432392c68bc35c3e41f3abc4b82e115418a9410193dd927770a585a36ef01597b65abaa7261cdd5bf11c76bc34b1d059b87222b8f273e7ff04e91beb283132a84d72535d0aac422f532869b44d32b05f08e7c466d144f28bd11b6413818bc06ce8c6af0b149fb6932a39e7c8527d5c78b7d3d18d7fdf915d9f74ca36592d9b28a3317b25a79a8009922f2ad4b3c0fab8f9f264cef8d9042958fb302eefb480e6a56de3d60766ff41b0241d7c7e9f2795ce8ed58579a78c4517135430c8699a8d5d4b8033500975e7ab67c13f226c82189aee072dac0fe044f800ed1b35f14e6a3c0e7274e9bf27c732cae4f7bf2a025c35f1673665f3aceb1bd18278a4a5e19c7e5c589e9f2b5dd40a9cab9f4ddf9c2cd293b6b80a94fcdef85376d02a60aa2e64093abfe150dafc89a164b4ea358239e6af83bd537f0b9ca7e471d9b188699f82cdb37a95e6efc952fc724497929ad613e36e77b7fee53a29b1edc768c8a1c3a8b32ee9125215630a943dd40e8394bdda87a2dc19e846eef784a8c8776426aac0a6dc88c0786793014fa3d41312f9c03dd2a778a4ab4fce8a88dceec76a10234e38845323fe5b8c58d42ff169fa574286d695e443044d35aebe73a5ba2513e7fbe5f7eed5eeaf252b580fdf1821f48aa64dc4de9ed3e5f2ed7c47cb050938b64e9a3400e8e6fdbe3297829fc50634d11dd8f813cd2d694c80abb7fe55cc575244277a171986bc8d75098b1d42fd883024d77ba85a1b7e1897cd743d47eae250b49d291b579c0e650255dcc6208c7d25d083c76e9e7588d9276ed96bb9018929024fadfa6fa70afb2ba3eefe860ba06deb9bb61825dee45630a853f5d14aa515192cb724720bfd8276924473158bc87b8a0c2c368e67577447ca009526e79e8bca343379ce7c6001efa62f00a4cb5903f39bf24dfff237fc65e9e5d692809b6bbae088244d24bd8b9f7a74401a169b2f5384a4fc64599368cb0ced2f13fd8911c55e70f6643ceb9061827e7101d3cd70c08902ddbfbfcc4b2c136a4618717084f6a5cfb6c026953c7b15e3f70d8be188ac70da66383513a60415bb9fbf6874ca169947aaf981b2d251ca926d359f361248b24e6644fe5042e4e84056e9bd1cc43f0bc95482646b4a3fcaf24304ddb9786d43acdffdf5d2670b89da1f216ae4007a9c348bc1eb6c3c010f599c372e1301b846235912ae2bc5cbe5ac2362a1d29c2094cac78157023bca644aa4e503e048bd4d0a7d16f9edb1b964d0246ce7cb315d6148350fdcdf905213a48bec9ec84add23210baa48d7aeb651b87f2469143ddd8df8b9bb782af711507b3b6f695f61c58bd60ce67c2a6b2124fe0bf3b11f9c475151b33d9b587f76cdd4ca0ffd0f36f1a8634ff9f5ddeb98df5844c056b4aed7bca87461aee00232c3ac53f7e55a2d5828605c921ce556af374441703c1e410feb13966cf07c8dc9d8bf3bac0c17a727f5db2995d69d57880d8a4939ceb56f235d4998c621cbdd52285c5413d12a36114366c4af39b5a06d8eb08b4353c6a235486a8f3fa990c7a90cef7d42e1164d0e9e273c9138952bcc5fff817980fc362a489fc2daa18d964f049dc0ab8f0b2cd653078ae879008060dd351dba2b78853f2935bca3ec47c4d5055e6b4a1dc05a6ae1c62dcacfaaf8de42a3086e42bf5a91b095906236cc3864e3266ee20e1d1a244369253f8041579a767edd2bc8dcb24cd8c1ded74d22329b18ec3c733ba158a1385c20d04d0c22243ce4ef562ab0d5e93573d6202cc5045d733e9dc06152afb8876d89592dbaa5b2a6a17ed40a5b61f7c01633627d123c49993fbd7e873d73ae53f14a42d061ded1075b534f85ad001eb287148b1cba575eb7b1df0aca4c3e7c5f017594f0c11597d8bb5bc8a0b5d3fc8aa882bd12fc07efda707126bbd1f1f10b9db6c75fc021a70d3ff853dafebbbf82307e95610902db228d864651b2c97ad9282280b9abb03645e64274634726636d24b224ed5894e2c7278fa02039e1218a21c229d11e41f5114f1b62a1732e7942a09d1b354d1819fb2c2fa783fa5fc5836937bbb954f53a655d45231cef5b9e6b30160971cde41bbcd36b8fdbea7e4f19bd8f7d60a039c0ce9106de08b06eae16c278315607543bf7ce0ecbf5f794233650010c72ec3372b299d12acc5e937e6ebaea39cb5ce9192242d959da3523843afc9ff308238dc83b60239cce0d5e366f03f8271244d4dab4f864b85b5025a11eb809e868b3638ea9098bb6049da0441d626679712f612a34c6e1f237cf74ab47866628ebeb2136eabe8c3199c04708f4c3e26fd208561629f4a1a0acfe719e6d0c8961b26040f7fe3b394e22db7b250efe9e302c7726de4237a3cde14bdf4adba3500fad4042afaa6ddb9ede60abfdcc6064d8f63704b5c3d7e2e00ac71934f3024e529e218fce1ca24a919f22654c0e47ae022f428311e17b533b56c9da7f7caf1854f8ae19ef689b224fdbf000c180ea5295ef84f4effd0b28564bae4ccbc679d055693cbf1f62133b9de16f83701d85fdf601bae335f6f02d96ec7fdee2a8badbe50cce77a15ed0b06cdf0e040fc13d8bc51609e6bca51016fef815ef1ac5026dcc52246e473c6ac93e87f4ce8ac8068069786e667d215266a6197bc6a34ed1c7fdea3b4d4c604b3d607ffc1706a7fb6c85d7965eeeed1725bbf0ca7d49df07a5b02ac453e0600553df54fa28e29e4fea3d11bce6f5f4b7b09e43b3f2d0f69dc2a663d7410cb1de75bb0dc4615155141a1307b6a2b94a5b013894cd96cfd19a6e6327f85683fe2e7fa112799f585ce10d127b8f00665d8f804683b77fabd7dcd2842f9e30f265b9ae59ac11bd1737a6149af4f63a1ba4c3b78ad82f787629762ec6e53949ddbfba163e0a7ee165b24f70eea3c0dc5fb694eb69de9d9c3c25abbd178005aafd7a5bf71b7e0062262d52cb11572a60d94e170d92cbfdd0f54024528818e1bfc8d4fc4d9c6bf8300a596ead3f133b3c3e5ef10dfb5fa5320f574b1a0895f6e75e4747ac6424ce440b839d5013c8a4b91282ef2b5525aaac11774244b8d122ed376503e870892eb3df2cedb861dea647001c66c4b06a6a7a19bb4c5ab19858902101291492f8fb7b4089143ae08fcda894d23d818b8fa779b988deb9e6d79dc563af266496fe3c0c690ff6e07fbd9a81dcf1367d117d12117cbf08697da13782702b655c3e79fda3da2b2309a9676f9612b5b1fa7e0ebdff6167e535c47285f947340b07860345608b9660cbbc5ae0db474145892e17b6ef1d9c7b1b2ca8bd8e362edfb41eeeedec12befbe74c10842a677626a6e99af13caa9140c841d1fffbdf11b74a1fb9c6031fe1d9c93ed8e4ae40504770d8f8b54e15ba48acb41b2fdce357a0bf208b317df7d1c618e254f22e3cca169c45edf63ff794150635b674fba103d42c1752094483868fffb00f189bc3ce49572fe3a6f0d4cb39d6ec50f5935734d4e45509d4e27c7b1183eaeb08e72d83c059fc8741994cff09fe154c589663abf8111b93a65d213146a3272ccce05595d307e9795ef709e0a03d5c9dd08f5994312b8ae40a96d2fdb07e907396e389877ffd9eb7d5dafa9055a5cfa0762253eadc52d7c5fd07294697862af298859869840e40288f54f5e145520ad9a6ffb45545bda61811022da7de17525ea240bd720765391b34534d9c9fe235ac0908d23cdf9fe459e41c3968f0e929e030b68132819963219991a4a0c069ea377138d1e9425a1a0697a7dabbb6df6797fa97398e5038a48114de061d78651c00263b77797372ca5de2f7ec0718e4d5d1f5578aabf3faf1aa34d1e47b1cf310fe8c7eb638751a2653ce3f2df40c6ca1fc5417b30022a0a705ca3cad3c687f374a73aebc2fbd726d915223f3088ba0cca2715bd243f347ac051fbff39d311022f4b3adb1e25025c552efcac41ea35b6e7997db652944c6b9f2a54a6c3fbaa61c338f994ee2f1af80d29631aacec20e7616f1fd0ac5d8c9cbebed21583fae34d2e30e71ba832e862fecf808bb64febf1fde4ecdf2c3fae81eecc3f3db4980f5118fdf0fb32a6ea355d51a967d5d39c10bcc7b3ba2a706d17b5013ce4f12457865a1b12821759e7b8fa1a6da8e8c5df2eed6ff198c89d502cdba3a11c78f1124e73536144aa437fbce324363c7502c7b205b2a6150210482d52271c1aaa0db087595359af8167398f3b6bc5997e3a2659b87b1b72e16760eae01fbfa0cf1c1fc34c6f6eeab1c61bfc3028560885c0b7e51870700dc2e1fd806934e21902b9aa9f59694cdbee43b3948c875668374e5b4e49ccc78a938a7c79278a00aa22eb75ef0902ac740eb74501e4d497e552b1c1aed02a9beda349108e38f35ccf6020f67fe1067f38ed665b2615481c0fd405eb33ea09a2d8c14f49cc5204ef6840fcfeba833503ded6247b568f89d7aab1c6d4cf5da3a05cb126a00989319a60b39f1696a755df1e30735313afc78377ba635d1333a47139d1ad5970409eed85ec890df8ec86bd579e39c6dc406ede12e1bc6635aa3c161f58ffc5435c6ecbe2a30c8953066747236e8bfcee491270b362cd3b2400acbb8f78946d2c3aef446f14ba5df568f5c76d5642c33bcbe359b026c6fbcc545e729fe034802f82977ffe82a2419c0ac6aa5bed9492a834836c8cae58c35600f8b8e3d69ab7221543b605d3c9abd9c55fc55715a654b64e8d19ace34efa9d2f8b9e47003bd8da5924afff16e4fdd4288936c172e5c04c78278312f41962206d36553e224a0f814d5b99ba56c3f8d231eac63c49b74c6099abfa7bf5a7d9213d821a1c8ee316d83c4e89666c15bba8c71293c530ca716b78d5b650c02554bb81375fcf3d51942c6bdcbcd524c6572568c7fbd2328d7c0e499228f7c4ab2ad88682991201c59e61ccd9f69e5eccf721d2735efc6f7bf22430e713e3c6763abd5865af56f16780487477cf13be161036b90797820a27a09965814f0296dfa6018a35e499d9845703e8674a8c874440fac6d119de40847db3fa342f2a557293ab15229fa2956cac475d2c58f5c4835436740828adbf4a28a1549d27ef093fa77855ae07ada087786b5900263f77934bc95c553001dbdc44f1145cced80ba14c4dd5d1aa06d9d8c7704b317efe3de4da940f6ebf60f7971a54ef9db37a81360662d1141d618d853581605c1ac22f332576827f20fff3881cd7ca266275a0931ae39ecbb0221c7d04b943000280b9e8c31b8ce95746e810fed4c74eb9811ad97200d649c4783a6df94e1aaa05ae9b39332546452693c78da92bcd0c419675f4c5bcf52ce7dd76dabd41f3206391859788750e0c87c85846d70d6a7e023a39d2f4793ce437c7825beb37272ee1d3a4ad24cc25ed6467ebd05609fa3da5a9921416377c06ed7bf46882e88b69c829b11c0c4332f1cb0baf9401a11d16f6df7bd42f5a5bf5b7675e0746fce08d1aff3fd7a4e5632a41bc40da8364a1bd444bc0f49b78de402c5d90415cdc8a7d33e850786f0e12acde6dba1a717937de5f6270f9a8813e733efcbd20a3874321eb7d5d801221a02cea9e17db904ecbe85d1926555d39a53e01d522b20rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.15-150300.10.51.1.src.rpmpython3-docpython3-docpython3-doc(ppc-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;daniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels (bsc#1179756). - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.patch.- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674) - Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised. (CVE-2019-9636) Upstream gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillapython3-docmourvedre 1694610671  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !3.6.153.6.15-150300.10.51.13.6.15-150300.10.51.13.6.15      python3.6MiscACKSHISTORYNEWSPortingREADMEREADME.coverityREADME.valgrindSpecialBuilds.txtcoverity_model.cgdbinitindent.propython-config.inpython-config.sh.inpython-wing3.wprpython-wing4.wprpython-wing5.wprpython.manpython.pc.insvnmap.txtvalgrind-python.suppvgrindefshtml_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtulip_coro.pngturtle-star.pngwin_installer.png_sourcesabout.rst.txtbugs.rst.txtc-apiabstract.rst.txtallocation.rst.txtapiabiversion.rst.txtarg.rst.txtbool.rst.txtbuffer.rst.txtbytearray.rst.txtbytes.rst.txtcapsule.rst.txtcell.rst.txtcode.rst.txtcodec.rst.txtcomplex.rst.txtconcrete.rst.txtconversion.rst.txtcoro.rst.txtdatetime.rst.txtdescriptor.rst.txtdict.rst.txtexceptions.rst.txtfile.rst.txtfloat.rst.txtfunction.rst.txtgcsupport.rst.txtgen.rst.txtimport.rst.txtindex.rst.txtinit.rst.txtintro.rst.txtiter.rst.txtiterator.rst.txtlist.rst.txtlong.rst.txtmapping.rst.txtmarshal.rst.txtmemory.rst.txtmemoryview.rst.txtmethod.rst.txtmodule.rst.txtnone.rst.txtnumber.rst.txtobjbuffer.rst.txtobject.rst.txtobjimpl.rst.txtrefcounting.rst.txtreflection.rst.txtsequence.rst.txtset.rst.txtslice.rst.txtstable.rst.txtstructures.rst.txtsys.rst.txttuple.rst.txttype.rst.txttypeobj.rst.txtunicode.rst.txtutilities.rst.txtveryhigh.rst.txtweakref.rst.txtcontents.rst.txtcopyright.rst.txtdistributingindex.rst.txtdistutilsapiref.rst.txtbuiltdist.rst.txtcommandref.rst.txtconfigfile.rst.txtexamples.rst.txtextending.rst.txtindex.rst.txtintroduction.rst.txtpackageindex.rst.txtsetupscript.rst.txtsourcedist.rst.txtuploading.rst.txtextendingbuilding.rst.txtembedding.rst.txtextending.rst.txtindex.rst.txtnewtypes.rst.txtnewtypes_tutorial.rst.txtwindows.rst.txtfaqdesign.rst.txtextending.rst.txtgeneral.rst.txtgui.rst.txtindex.rst.txtinstalled.rst.txtlibrary.rst.txtprogramming.rst.txtwindows.rst.txtglossary.rst.txthowtoargparse.rst.txtclinic.rst.txtcporting.rst.txtcurses.rst.txtdescriptor.rst.txtfunctional.rst.txtindex.rst.txtinstrumentation.rst.txtipaddress.rst.txtlogging-cookbook.rst.txtlogging.rst.txtpyporting.rst.txtregex.rst.txtsockets.rst.txtsorting.rst.txtunicode.rst.txturllib2.rst.txtinstallindex.rst.txtinstallingindex.rst.txtlibrary2to3.rst.txt__future__.rst.txt__main__.rst.txt_dummy_thread.rst.txt_thread.rst.txtabc.rst.txtaifc.rst.txtallos.rst.txtarchiving.rst.txtargparse.rst.txtarray.rst.txtast.rst.txtasynchat.rst.txtasyncio-dev.rst.txtasyncio-eventloop.rst.txtasyncio-eventloops.rst.txtasyncio-protocol.rst.txtasyncio-queue.rst.txtasyncio-stream.rst.txtasyncio-subprocess.rst.txtasyncio-sync.rst.txtasyncio-task.rst.txtasyncio.rst.txtasyncore.rst.txtatexit.rst.txtaudioop.rst.txtbase64.rst.txtbdb.rst.txtbinary.rst.txtbinascii.rst.txtbinhex.rst.txtbisect.rst.txtbuiltins.rst.txtbz2.rst.txtcalendar.rst.txtcgi.rst.txtcgitb.rst.txtchunk.rst.txtcmath.rst.txtcmd.rst.txtcode.rst.txtcodecs.rst.txtcodeop.rst.txtcollections.abc.rst.txtcollections.rst.txtcolorsys.rst.txtcompileall.rst.txtconcurrency.rst.txtconcurrent.futures.rst.txtconcurrent.rst.txtconfigparser.rst.txtconstants.rst.txtcontextlib.rst.txtcopy.rst.txtcopyreg.rst.txtcrypt.rst.txtcrypto.rst.txtcsv.rst.txtctypes.rst.txtcurses.ascii.rst.txtcurses.panel.rst.txtcurses.rst.txtcustominterp.rst.txtdatatypes.rst.txtdatetime.rst.txtdbm.rst.txtdebug.rst.txtdecimal.rst.txtdevelopment.rst.txtdifflib.rst.txtdis.rst.txtdistribution.rst.txtdistutils.rst.txtdoctest.rst.txtdummy_threading.rst.txtemail.charset.rst.txtemail.compat32-message.rst.txtemail.contentmanager.rst.txtemail.encoders.rst.txtemail.errors.rst.txtemail.examples.rst.txtemail.generator.rst.txtemail.header.rst.txtemail.headerregistry.rst.txtemail.iterators.rst.txtemail.message.rst.txtemail.mime.rst.txtemail.parser.rst.txtemail.policy.rst.txtemail.rst.txtemail.utils.rst.txtensurepip.rst.txtenum.rst.txterrno.rst.txtexceptions.rst.txtfaulthandler.rst.txtfcntl.rst.txtfilecmp.rst.txtfileformats.rst.txtfileinput.rst.txtfilesys.rst.txtfnmatch.rst.txtformatter.rst.txtfpectl.rst.txtfractions.rst.txtframeworks.rst.txtftplib.rst.txtfunctional.rst.txtfunctions.rst.txtfunctools.rst.txtgc.rst.txtgetopt.rst.txtgetpass.rst.txtgettext.rst.txtglob.rst.txtgrp.rst.txtgzip.rst.txthashlib.rst.txtheapq.rst.txthmac.rst.txthtml.entities.rst.txthtml.parser.rst.txthtml.rst.txthttp.client.rst.txthttp.cookiejar.rst.txthttp.cookies.rst.txthttp.rst.txthttp.server.rst.txti18n.rst.txtidle.rst.txtimaplib.rst.txtimghdr.rst.txtimp.rst.txtimportlib.rst.txtindex.rst.txtinspect.rst.txtinternet.rst.txtintro.rst.txtio.rst.txtipaddress.rst.txtipc.rst.txtitertools.rst.txtjson.rst.txtkeyword.rst.txtlanguage.rst.txtlinecache.rst.txtlocale.rst.txtlogging.config.rst.txtlogging.handlers.rst.txtlogging.rst.txtlzma.rst.txtmacpath.rst.txtmailbox.rst.txtmailcap.rst.txtmarkup.rst.txtmarshal.rst.txtmath.rst.txtmimetypes.rst.txtmisc.rst.txtmm.rst.txtmmap.rst.txtmodulefinder.rst.txtmodules.rst.txtmsilib.rst.txtmsvcrt.rst.txtmultiprocessing.rst.txtnetdata.rst.txtnetrc.rst.txtnis.rst.txtnntplib.rst.txtnumbers.rst.txtnumeric.rst.txtoperator.rst.txtoptparse.rst.txtos.path.rst.txtos.rst.txtossaudiodev.rst.txtothergui.rst.txtparser.rst.txtpathlib.rst.txtpdb.rst.txtpersistence.rst.txtpickle.rst.txtpickletools.rst.txtpipes.rst.txtpkgutil.rst.txtplatform.rst.txtplistlib.rst.txtpoplib.rst.txtposix.rst.txtpprint.rst.txtprofile.rst.txtpty.rst.txtpwd.rst.txtpy_compile.rst.txtpyclbr.rst.txtpydoc.rst.txtpyexpat.rst.txtpython.rst.txtqueue.rst.txtquopri.rst.txtrandom.rst.txtre.rst.txtreadline.rst.txtreprlib.rst.txtresource.rst.txtrlcompleter.rst.txtrunpy.rst.txtsched.rst.txtsecrets.rst.txtselect.rst.txtselectors.rst.txtshelve.rst.txtshlex.rst.txtshutil.rst.txtsignal.rst.txtsite.rst.txtsmtpd.rst.txtsmtplib.rst.txtsndhdr.rst.txtsocket.rst.txtsocketserver.rst.txtspwd.rst.txtsqlite3.rst.txtssl.rst.txtstat.rst.txtstatistics.rst.txtstdtypes.rst.txtstring.rst.txtstringprep.rst.txtstruct.rst.txtsubprocess.rst.txtsunau.rst.txtsuperseded.rst.txtsymbol.rst.txtsymtable.rst.txtsys.rst.txtsysconfig.rst.txtsyslog.rst.txttabnanny.rst.txttarfile.rst.txttelnetlib.rst.txttempfile.rst.txttermios.rst.txttest.rst.txttext.rst.txttextwrap.rst.txtthreading.rst.txttime.rst.txttimeit.rst.txttk.rst.txttkinter.rst.txttkinter.scrolledtext.rst.txttkinter.tix.rst.txttkinter.ttk.rst.txttoken.rst.txttokenize.rst.txttrace.rst.txttraceback.rst.txttracemalloc.rst.txttty.rst.txtturtle.rst.txttypes.rst.txttyping.rst.txtundoc.rst.txtunicodedata.rst.txtunittest.mock-examples.rst.txtunittest.mock.rst.txtunittest.rst.txtunix.rst.txturllib.error.rst.txturllib.parse.rst.txturllib.request.rst.txturllib.robotparser.rst.txturllib.rst.txtuu.rst.txtuuid.rst.txtvenv.rst.txtwarnings.rst.txtwave.rst.txtweakref.rst.txtwebbrowser.rst.txtwindows.rst.txtwinreg.rst.txtwinsound.rst.txtwsgiref.rst.txtxdrlib.rst.txtxml.dom.minidom.rst.txtxml.dom.pulldom.rst.txtxml.dom.rst.txtxml.etree.elementtree.rst.txtxml.rst.txtxml.sax.handler.rst.txtxml.sax.reader.rst.txtxml.sax.rst.txtxml.sax.utils.rst.txtxmlrpc.client.rst.txtxmlrpc.rst.txtxmlrpc.server.rst.txtzipapp.rst.txtzipfile.rst.txtzipimport.rst.txtzlib.rst.txtlicense.rst.txtreferencecompound_stmts.rst.txtdatamodel.rst.txtexecutionmodel.rst.txtexpressions.rst.txtgrammar.rst.txtimport.rst.txtindex.rst.txtintroduction.rst.txtlexical_analysis.rst.txtsimple_stmts.rst.txttoplevel_components.rst.txttutorialappendix.rst.txtappetite.rst.txtclasses.rst.txtcontrolflow.rst.txtdatastructures.rst.txterrors.rst.txtfloatingpoint.rst.txtindex.rst.txtinputoutput.rst.txtinteractive.rst.txtinterpreter.rst.txtintroduction.rst.txtmodules.rst.txtstdlib.rst.txtstdlib2.rst.txtvenv.rst.txtwhatnow.rst.txtusingcmdline.rst.txtindex.rst.txtmac.rst.txtunix.rst.txtwindows.rst.txtwhatsnew2.0.rst.txt2.1.rst.txt2.2.rst.txt2.3.rst.txt2.4.rst.txt2.5.rst.txt2.6.rst.txt2.7.rst.txt3.0.rst.txt3.1.rst.txt3.2.rst.txt3.3.rst.txt3.4.rst.txt3.5.rst.txt3.6.rst.txtchangelog.rst.txtindex.rst.txt_staticajax-loader.gifbasic.cssclassic.csscomment-bright.pngcomment-close.pngcomment.pngcopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfile.pngjquery-3.2.1.jsjquery.jslanguage_data.jsminus.pngopensearch.xmlplus.pngpy.pngpydoctheme.csspygments.csssearchtools.jssidebar.jsswitchers.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlfunction.htmlgcsupport.htmlgen.htmlimport.htmlindex.htmlinit.htmlintro.htmliter.htmliterator.htmllist.htmllong.htmlmapping.htmlmarshal.htmlmemory.htmlmemoryview.htmlmethod.htmlmodule.htmlnone.htmlnumber.htmlobjbuffer.htmlobject.htmlobjimpl.htmlrefcounting.htmlreflection.htmlsequence.htmlset.htmlslice.htmlstable.htmlstructures.htmlsys.htmltuple.htmltype.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutilsapiref.htmlbuiltdist.htmlcommandref.htmlconfigfile.htmlexamples.htmlextending.htmlindex.htmlintroduction.htmlpackageindex.htmlsetupscript.htmlsourcedist.htmluploading.htmldownload.htmlextendingbuilding.htmlembedding.htmlextending.htmlindex.htmlnewtypes.htmlnewtypes_tutorial.htmlwindows.htmlfaqdesign.htmlextending.htmlgeneral.htmlgui.htmlindex.htmlinstalled.htmllibrary.htmlprogramming.htmlwindows.htmlgenindex-A.htmlgenindex-B.htmlgenindex-C.htmlgenindex-D.htmlgenindex-E.htmlgenindex-F.htmlgenindex-G.htmlgenindex-H.htmlgenindex-I.htmlgenindex-J.htmlgenindex-K.htmlgenindex-L.htmlgenindex-M.htmlgenindex-N.htmlgenindex-O.htmlgenindex-P.htmlgenindex-Q.htmlgenindex-R.htmlgenindex-S.htmlgenindex-Symbols.htmlgenindex-T.htmlgenindex-U.htmlgenindex-V.htmlgenindex-W.htmlgenindex-X.htmlgenindex-Y.htmlgenindex-Z.htmlgenindex-_.htmlgenindex-all.htmlgenindex.htmlglossary.htmlhowtoargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlfunctional.htmlindex.htmlinstrumentation.htmlipaddress.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_dummy_thread.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-eventloops.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbinhex.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.htmldummy_threading.htmlemail.charset.htmlemail.compat32-message.htmlemail.contentmanager.htmlemail.encoders.htmlemail.errors.htmlemail.examples.htmlemail.generator.htmlemail.header.htmlemail.headerregistry.htmlemail.htmlemail.iterators.htmlemail.message.htmlemail.mime.htmlemail.parser.htmlemail.policy.htmlemail.utils.htmlensurepip.htmlenum.htmlerrno.htmlexceptions.htmlfaulthandler.htmlfcntl.htmlfilecmp.htmlfileformats.htmlfileinput.htmlfilesys.htmlfnmatch.htmlformatter.htmlfpectl.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgrp.htmlgzip.htmlhashlib.htmlheapq.htmlhmac.htmlhtml.entities.htmlhtml.htmlhtml.parser.htmlhttp.client.htmlhttp.cookiejar.htmlhttp.cookies.htmlhttp.htmlhttp.server.htmli18n.htmlidle.htmlimaplib.htmlimghdr.htmlimp.htmlimportlib.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmacpath.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmisc.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.htmlothergui.htmlparser.htmlpathlib.htmlpdb.htmlpersistence.htmlpickle.htmlpickletools.htmlpipes.htmlpkgutil.htmlplatform.htmlplistlib.htmlpoplib.htmlposix.htmlpprint.htmlprofile.htmlpty.htmlpwd.htmlpy_compile.htmlpyclbr.htmlpydoc.htmlpyexpat.htmlpython.htmlqueue.htmlquopri.htmlrandom.htmlre.htmlreadline.htmlreprlib.htmlresource.htmlrlcompleter.htmlrunpy.htmlsched.htmlsecrets.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymbol.htmlsymtable.htmlsys.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.htmlundoc.htmlunicodedata.htmlunittest.htmlunittest.mock-examples.htmlunittest.mock.htmlunix.htmlurllib.error.htmlurllib.htmlurllib.parse.htmlurllib.request.htmlurllib.robotparser.htmluu.htmluuid.htmlvenv.htmlwarnings.htmlwave.htmlweakref.htmlwebbrowser.htmlwindows.htmlwinreg.htmlwinsound.htmlwsgiref.htmlxdrlib.htmlxml.dom.htmlxml.dom.minidom.htmlxml.dom.pulldom.htmlxml.etree.elementtree.htmlxml.htmlxml.sax.handler.htmlxml.sax.htmlxml.sax.reader.htmlxml.sax.utils.htmlxmlrpc.client.htmlxmlrpc.htmlxmlrpc.server.htmlzipapp.htmlzipfile.htmlzipimport.htmlzlib.htmllicense.htmlobjects.invpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmlsearchindex.jstutorialappendix.htmlappetite.htmlclasses.htmlcontrolflow.htmldatastructures.htmlerrors.htmlfloatingpoint.htmlindex.htmlinputoutput.htmlinteractive.htmlinterpreter.htmlintroduction.htmlmodules.htmlstdlib.htmlstdlib2.htmlvenv.htmlwhatnow.htmlusingcmdline.htmlindex.htmlmac.htmlunix.htmlwindows.htmlwhatsnew2.0.html2.1.html2.2.html2.3.html2.4.html2.5.html2.6.html2.7.html3.0.html3.1.html3.2.html3.3.html3.4.html3.5.html3.6.htmlchangelog.htmlindex.html/usr/share/doc/packages//usr/share/doc/packages/python3.6//usr/share/doc/packages/python3.6/Misc//usr/share/doc/packages/python3.6/html//usr/share/doc/packages/python3.6/html/_images//usr/share/doc/packages/python3.6/html/_sources//usr/share/doc/packages/python3.6/html/_sources/c-api//usr/share/doc/packages/python3.6/html/_sources/distributing//usr/share/doc/packages/python3.6/html/_sources/distutils//usr/share/doc/packages/python3.6/html/_sources/extending//usr/share/doc/packages/python3.6/html/_sources/faq//usr/share/doc/packages/python3.6/html/_sources/howto//usr/share/doc/packages/python3.6/html/_sources/install//usr/share/doc/packages/python3.6/html/_sources/installing//usr/share/doc/packages/python3.6/html/_sources/library//usr/share/doc/packages/python3.6/html/_sources/reference//usr/share/doc/packages/python3.6/html/_sources/tutorial//usr/share/doc/packages/python3.6/html/_sources/using//usr/share/doc/packages/python3.6/html/_sources/whatsnew//usr/share/doc/packages/python3.6/html/_static//usr/share/doc/packages/python3.6/html/c-api//usr/share/doc/packages/python3.6/html/distributing//usr/share/doc/packages/python3.6/html/distutils//usr/share/doc/packages/python3.6/html/extending//usr/share/doc/packages/python3.6/html/faq//usr/share/doc/packages/python3.6/html/howto//usr/share/doc/packages/python3.6/html/install//usr/share/doc/packages/python3.6/html/installing//usr/share/doc/packages/python3.6/html/library//usr/share/doc/packages/python3.6/html/reference//usr/share/doc/packages/python3.6/html/tutorial//usr/share/doc/packages/python3.6/html/using//usr/share/doc/packages/python3.6/html/whatsnew/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:30637/SUSE_SLE-15-SP3_Update/9151d79a481be8c9d75595d99cd90add-python3.SUSE_SLE-15-SP3_Update:docdrpmxz5ppc64le-suse-linux directoryUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode textASCII textRuby script, ASCII textPython script, ASCII text executablePOSIX shell script, ASCII text executabletroff or preprocessor input, ASCII textPNG image data, 500 x 320, 8-bit colormap, non-interlacedPNG image data, 955 x 758, 8-bit/color RGB, non-interlacedPNG image data, 538 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 1062 x 513, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 670 x 414, 8-bit/color RGBA, non-interlacedLaTeX document, ASCII textPython script, UTF-8 Unicode text executableC source, UTF-8 Unicode textAlgol 68 source, ASCII textHTML document, ASCII textUTF-8 Unicode text, with very long linesPython script text executable Python script, ASCII text executableASCII text, with very long linesGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminators.iَgpython33.6utf-82701cd419f0a3ed1121e5dca3a23d0a6c053c034966c95768410c18aa894cf98?7zXZ !t/*.]"k%a ZmۢL,%?*&T<[F:ž;t3Xܬ$xĸa',1,_Uc> o~Usv؄gaVeǐ) b s⯟~%TA@ :q?NV!cVԓϾ:'mrJ k,ć+W9Ѣω]|-P&Je'+~?'6_ҘE:'cA8tRXMqu-Y ʔ3.d3"X~Yl'EASx NI*=/j2bQ1-+XD.P/'j7UO0.Ig`姜NvFP:~v.!{٣PV-#UG)-rꏇȝ%*C_X:Da=Ri:1Vf=Y%OAA F&acHӌNN95`ڗTVxw6 5\9.JP͐[BgmcrrKvTۈ EE6S_>UP koz[B#]zaG9CTetfQm3""),֕,W0y7r<]o!껸"8r(ث 1FyS篲c;`\epYgk eRsJ̦Ym<s6O^J5Sm$]6SR5‰P0]. +}) }97!3<l]&? Jpᣭo ءk7^6^Ggg: 8ܶ4+5GTKNGǝ*ϕ2= 0I.B4 L9 ȝNʛPS,fƽLgswkkB\mf>N(+⛻P&Ge2Xs&DĐOt"&c1R1Uk'*Qql4E<Kt) ;S8`݉rwz7$3uj}a =ӿgt#,0O a/g9T6qX{t%vQ@{Cm) ޅ)lzdSOd7SENn %iPD̢KKz: j巻Ii2M7 G'(s\Òu) /nAr)3P>K z&=RQ J+6YVTja:U}ƛx sMkPބp.$ˆ_R.ς4f- ]A'C q%Y,*+Q?azoda˦Y* 7.C^aaMHyK[f'dlV4AӨ/V0h"6!|uUuf*d_Lo)F;{z18ȋ: D SEߵyqEX9 ,$'|(=@VOP'cEn jZ*=#琁Ki tI8Fwч .'DÉAk=EhDyc RK{dh .5;cS pc&;:%I|鿖dAHx6j 0NRQv |Y/9~ 'aPq~`'w܂jE-#K,J VIA%`\)+`x HLE`P>TOm"qG/}̿ٝl lzA2K_֟MȮ5S6C.zg9&O,˝j3#"st98Gk̄,Gkc#AiO8e?iop+B JU'߫;_^Iġם *PZӥ9uvclria-Cb?2xuܠnyʶIC02ı(l${:sQh,e>.(~0a}@/-Eա _[z,UfXş85A*)T[ĺܰzz?_B3T%tX<sm>6|a{3&1$'?ẓH ?UY<.K=zN=inʽp~v!)[ w"$K,yop c(zzϤN2 x[\=7/Ce9eƾҠP.J;OL 4uB8 cd0#q4))xUhp;)E"+4/dQ! T3yoFYBn ?cRŭQ>r U {k.^'E}n(>ߝ]BgwJnUf )>R`\* **<#?.b/kYW^n~U/F A?^NX7V.ej`<ݎ<RΗuF1 isFp9"XhW.8+爎 Ly [z|u4 UnM&u(K4.0 S@ʥ|8+y~/Ï5kiӰ{CJL{8pbDbDж[i'Em]W_vrGj4']Xcf' N?:ba[_O7Vci>DnܽЍ{4a Y[ 0"ʹ_9&$;Pp6UAb0xAzo1jS1:|kךfl.G(LB֙&rgyњlǭH8"^MM ޮHk`:"i3׵) ,ic;qݑCpqp֎Y)`.n'=?@RڧZlM܀Xz/l\r$WxZ/?wkVg>E/ ;_NVIq6RJK֖ y%~tsko̹hh(d8# tS$DI <)^ λUJ_U$֘-/Կ:11! kP-U[!:d&x"T-M9ޛ5Ar g&f(V0ٛկw^p:;??`Zꀓ2U=kM2;)l;X8*)O8, ޗ!d>5KAQa~y;!tJ'muօO CrzNOrD>UBɯ!Iie|tK:[#c"gymFJPX 1u4NW.[NȚ$PSL?^*5O1lRsuc.GDʯhViJhq Q&`r䃆iR>0s97}0x< O:/i9&D@: 8/Y@SzˏpJ qh4x=;@Ňbv9%c_SSo@X-/=nn Տd^K9)M xwߡJB'KL#T1N e}1rJa|-orr <ot\l xe`=OGuZa9L䃚;Jcl (7%4zZ]h8?xӿ KML i{&x{p[ FP;RyMF_h [sD:,kO˜u_D۷57O2`~MݎlB2VM8܉$9Bosmܶ%֗K騡f6fRk^WJHXI`юъ+͇ӈH j VJCY^61'}*@$/4MzP2U(, YZ