python3-doc-3.6.15-150300.10.60.1<>,(fp9|[ۋ3$8^?#sn;!y|E*7['f8h \L5 :15iSK =[}um46] ^/S`}'+6֜הgPnp$TFNcuIy: ,}BAT?Dd $ G  9Ze {!4! v! "! 3<! 7! ;!LD!`!uu!Hx(89D:BFG!H+@!I;!X?Y?Z@([@,\@4!]P!^i!bcdefl u4!v z@Cpython3-doc3.6.15150300.10.60.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.fh02-armsrv3VWSUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxaarch64e?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" @9i;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&L Io 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큤fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6aa499d7c3461364544167e66f6dbbfd8b05c8e4a4dd7c61645e0b3fc1d5789368316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e9866ca0604b9e41bab114e68b7407cfb2a2ee65558d3d31ab364847d9e0cb3ef26667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11cc3e06d9a0f7f4ce7bb72638fad64aa1e599e77716b8d26e2ab9c6e81ff28006a258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b835b8f5e80976761c96d55886d7b209375e91d8fce830fa409f7c219c46429ee284353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f28723ff25da3450e9e5e9a5b09d4e0e1bb3e37b6e7c12d18542c9f071c9b2fa36765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2d0edbc897c10e9e1082f4e1405114cd8c0929429fb0b7ad86b37acd6ce03f7deb60b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22851cd1638d72118a9dbc5c180bb6efc2a363c180a9bf41bc8a8c4e8a8b41bca4e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18841c8b6db6f3ef37a3da7c68e382145f4ba546242ccf479f24552987856cdbf14d9ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b869832334fcd68fc3d067e59b8cacf9232703cff2bba36b0f22f462f104353997a040ec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ee6ce2cb2e672498b518a56110a0d725921a2e082b00e218994841663c0a305a3b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409afb32f38dcd19822171a5e98d2c697b55056333c2b5a5eff32b697864b1c56ede57bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152be46b5135c04f9efce7cf8ae874228a1f33b80fb6d6c5fe675f3a5bc77e5afdc4bfd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be94beb522f66876030f4852169237e7efcf97e98bedf1b703a337d9090941d8fdd46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dd49927ae32ae90dd05ab18c9b8256bbefc705e2dcc04a0cf6ed218405609c5127fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd428096d833154032b440e77d1ee6ec39698cb1462fbca20f43cb87a2aae139381da29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe95caac01d5fbfa6abe6cc9e7fdb67dea8d42893e3171e368f3e5e80d21d7b855c767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a84282d139db71eaec0133f52fbc3ef244952e9770ab6a0c3224b3fcdcb30cb8a75706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdfb3ea918e73c85189d053586e45ce49840999d039ebfdb1f1f578288d03d58cf12a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c241a358483676da9842820b74326dccd555a008c19a0ba134cbe4217a4d1e585dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e665d43c1163978f436952423a8f41d5787c7037d8c0d3226a50a9072d377741188fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0763120aadc9a03abc9f84afc295a1ab7e940415ee3d26da585355fcdf0e03378f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5abc0d7f02b785236fb0824c9e46f645b00f199d8f7f63dba2e53012fb8269078b8fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e3a0d0adaef30f7733346c8d99f224576020b2912a8fe6e43e352d899c2fc1b3450f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2fa3d6cf351f97f403ee8128e55317e4ab17d88010ff3408bf10224deba6d7786acc84d1ad3e40648425cea6402468fb4ae5ede479b5314b2aacc6e164272dde80737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1f63a9274a946b68069af217f81e270b89473c8c61280d4fd5dc663d46a00bc6e576cecc8f40d39334e3e1ed29274bf78ed761fc754708f78d82a7dad2e2814c8c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008f85ba3a086cf955d3b46e51a00e19adfb56c1b984f7cbf05137c6eadfdae7dab54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835faf21e4e3f5dd5c44358c0e41840e73c7e9617bd6c5ef05ee30a46b2b9c0662597047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa0d55104d7739d9fdb738c8151837b9fb19cd85b03885bdd76ed0a07c03ba35c1bf808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e93502180fb63dc404b6f3d32584692fdd10755edc8f0a2b79e60ff73cf40e689b4c1f6ea7d8cc0f888b5221a048e3fff4fc8a1e7b7929ff8d473dc0aaadf45a9a669b9d207c49652d3c4d4b0c03772145dd9baf45519d0b577ed0a01d471a7e858b78417107e7041ae3c9e606c904847627016fcfd337063022756ca33358d9e8542cab98b72425ec51fe9df9304da6f93a05d17dd37319ae7e2cb6b1eb2cce5ab4caf937dda1f7c27ed47eb8ade73bd6bd056e1fd5e93eb6ee25350b3bbabe8020a820e8662a62f053e6290c975797878557e7590e4cccb0e0b13cf74dc6ee8d3b95eed8e490b187d6fafd42d35c65974de7cdf2e0051affcdb2f876c298054f6aa89819086ba3ea2a4fc27983cbc9f706db9a1c3c2e81a40225fa8a5014c689b1cacf295c934f4784ec57472fc3416fd5a5fdb6dcbe5d86bb40d36b5eb69161c02d0980b3b18e382582ad5c0e5ad7fecee7b2282d8d1938aaeb80deef3e792945680f527f727a9d3bcda5e7dcf76a1d52311f423b7858fbab9526c587f132adfa78c910dd762d4499797eba8eba72dc67e056a699b316ef4cd9dbab3ee4450f319809be87a295f89dd27ffeb5c466df5cbe541483863eb737dc1d0f1547f0adfb657c05eec070c452839ba19d5151fb42d64efd4ab79ae175d4490bd88bc9b8b7230b382641cef9533fe8470b42c73ad492faae6b03f9c98bb7f409357f2465a76ff8f7dbded67403cd9f1c3671fb171e4abe85f2d3109cec9247360bca49ee386a0793faaca652f84870255888951bb8ea8f3ad9b28a7831b098b86216413bafcf08ec99ae64af40fbddb6bbf65fd1efb8d2d864ef4a14ab5f66eaf526c721849d30094fc46504d1f3073066eec7de4e33d2275f2996b0abd69c85c53620847dd412fc2d6c4e8534eb30f7ab20045544ab560436885bce79bfda4cd5aad6e188d8f3f87e2a7ad16ffbc1bde939cf2e762939c9db54c9c8979b2da878b12e9fefe0a594e24516a5aa18fa9540ced8c9c7c7bfa9cce86bd9253c45beb8478d8a6b6a03e0c0a1d860231320f0d9ebdc34279c2e6cc756cf1a9720c590f9deffffeeb6fb6a786d3ca80978e80c51a754435eaa758a39d3ac5cbd487a60b619a99c6e2284e6f641a73b176d261ff517347ba94176c25b533cfc2331184bf8c1e881edcd745b49a0294ca160f43e9c3b4a48f1a4d1533b3d48406b3542b9523aa3df33b6efe590924866cfc8d5b6622c686728977f7938aa3fc62df15c7a96ae83fb1cc156c7a0ce03292d6f0962773f2ec24e9371d8c8e42b1aa52d9ad5f01f805e27c657aeee144ac9669f9b463d6b028ccb27cccc738eb59f312ca9c1f4aff9576128953df11026bb8775111b80d8374574e691dbb1c1de1ae52638279daf572c873a8fe0685a240dd75a391111f787314c2518fa34ac396a75956306fbe8a63fea3b1730fbb87808a0a2ea3ebe9195cfa53201a0af75b5ad49370baa16b670416fe28954017c0658f421873fa99bd3a7fe1e888ae5c579436adf27c659b8bbcbd89a5c0acf6562ca9745863492878cb60c896f2ea380ce79061d1060dbe12f6d19d496c04ce39120e6fcba51c964bd0d2864d0e58eaf6c24b8c79c093c636782e666c052199ad4d1214be8a7f64f588e85b5dba4c4fa01bf430deffb868f8306672ed7a7c29d74a45708c4e0434312e85b32c9b2a4e743942169ee09ae6ae8ed456804c0af140cfa08308308f4d903c6fad99d36d410e315b1bdf538bd13d083e703fa18662731462cb01e4dc23c0442d175ce410ad036adf47cc0cc998120b446bd9927190577b2c7c87f8cbd32076f8b7b6fbaf2324a2ffa5e906dda49e3c46c64f3273e81779b62b274b56994bdc0ae8cc2d6bef3b9aa3c7d5ac3b1d8d6c68f179a16805cdc5cd33626385c229dc328503e03fc42caca85fde5f55baeff76a0ade712b5cc86d6043b6cecf96716212bac9352471f0af449ea38778178d10bcf64c8148fb6b60d8a6650baa7cb70aa2ea914f13a757146e788f661ffa254eeea852c281663747409e9583308891e3b1d8d65a8cec58d3e28c5818fe7adc481a59e0e025596fa23f84bb24916d1bf7c84bb58bace032d4e0430eeecbcc000742bb11966b6f0d5c1fa72acbffb8a04d7f96423ec32ac4a1007585fe3f1992d563111c97efd832eac32a0e24a426d45cc4a481bccaebff57e578cbd562792965cf30945f61ca3d6460cb9ce643368bc241e84a6eda01ca6793b1e688c36eeeba9121e4b173575af4ad5064c23228dc068106188b66b31151ec505255160456e0900b5051b9fea7f33efef6768625ecf7f8fd35fa9f7b85040456dfb9ff9efefa90cd6d97d0c6ac8a72cdd797cc7e59d0822953fc1d7d3dcfddb5b640fd669fb9c48f146b43b43e74e7b7f8e4d6e5ac8840822333767c3ca63deaf23ef89acb1763a4012d63cbb81bc58f7b5de9e203d1dc36165360119430f977d9caadb9a59ca2e0ce3c6be8330cb0739b1847fc7d8c4370177444ec4a801f692b51229cbd9eab7dc6ceb9f060ad8216218610eab1a1b6d0a9c3b5d5527804217993543032f0b9f7bf6521b6a1c76ecf670b5d76562f4a392d5d10eb7f35b433e855203939d2f26c6e66b9e1394677bc0c522f4b385754b06874fc716eadae6e7e529c7718026e1137786c920a6dae294a419eff9cf1a4404fe09dabd7cb52eb23ee1937ebc2b5eb4a18d34936cdcdf6f38a5bf567351883cdee8fd729f4bbebc19bd13f8e31041e9a2051785bb4ad45c46d4a93d1f7622f9c3c3c25019d5fb3ce8e64a3e8199578940b986357ba9e3c846908b43b80bf2d837c27ebf6c3682e209136f41bce51c8fc7f956095dc3b5c790abaf8ae268b48fcb6bfe6bf73db49c7212ed313a22c9865f9958a6aee862e70580b01feccc83a84026f530b5e2585c70d14d77fa687376853ede71447347b5d67dc310f3d6ac67dff612ea467f201518291f31d5f2c9bee032154639684b3d78f1493575d33f12b10620abd541ff6cb52ffb0ed367b99c7f0a926ebc497d9cc4784692b24a5e85eb432af0e735db2fefe9bdf2bbe932cc8c8c38cd9ea7bcfabac1ec7ba8ae5a8f4c72f292d0ce6871bab61108222c5634a9e017688db174ff291b8a00032f3a669c1172c33a35989d8232b1ffc3ed3f5d4e62730b65dd5422fd59342a8d5b24c9c7b0d3fc13182c4f1ca036a836d761a5615b0a719cb3f9e283c80ee0ad28a53618d8e19e75c4960f97383848ca542e60221bf513ebc2052d5de51be9ebf2819621424d1fdb37e143c1c198f2d15f92b21d883e55942bc4d5130489b496308c27cb4b15edd97f417f25c0b2ddb347295985d4d11dd3294fb275f2bb7e5edff8dd0fa34d12466654efcafb53b49206b546536cbbfba059108345b0fcddb61cce3fd380d274b89e976003176876fc5c0f9465bab97b7bc0270b0397b0bd9183a8b60c7079db907c22b58c6e660d85031062a93638123c97a5f5039ed6812f6b542f8c9bab02a063d926bf6ce944d5979f3d17cb8cc0fbe740470b887240484bd8c47afbed5c085217f930ccbd00cd98b2c10d90293738c53f9099a17c82e65a67766a61221b1b146d8bb303a458f7d77c8cf60e775b98880e002ae110c922180e0bc8362ff7abf17cfd7b549140b6542d301affeba1e2d7aaa1bf4aa35f88e47b7334c3045152ad8a1be92bf16cbff405619636dc1c64db2ec61a6765e046857e7b4addeb201bcd7276c1fae9f9772e6499e0a530ac16dc47c0e1e812ef3c744003e818f95946aeedfb646273b58ded54148c4039b82b7afaebd9eea43aa11b4621dc2a7bbfb074505a4b5d4df9346516344b27682b9f985da2478e52de211d03d6c6808b0a1b52f4d217ee82459fd169ad78a0363f8d21cd7e272d71012f45e5a2ba23ab5d1c669dd2475ee60ce76f35bd1ec315443d799899584dd6cc7014616a1d4d0285890313aca4f06cccc8b4e9da5ad8662277677be1e444083c82f50f284d00bcc6e1a8b05a6c3958b2f6f9ed51cd98953027bfc14a56cfc26877b8676537618434de306d440cf3715f2ce0d3010b1deee25fcbf036ee11e45044da29dff459e794fb2ae4dd195d99523789ab35b4b631e333b15dda0d03eaa9ac97b0c8bee13d546f851dfda9b90b356ab069d10ca65cc0aeb14036deb9bcc42346621c4cd43503881a39e8e1470822f9341a6174394d90740b9839444b811cbfb7f4a1b5ff33cc066050e4739e0c91b5d05a23da8a68904327d0857df7d12d6f44454e1d616b260f9e15a62e470afaad524ec376364eb87b88c2408f8b21110fe1be4fc134a4a733a3319bbd723bc8164df67bfe02a182c02e9e5fe6c6d9524753960578601eaa71c6da390db3b43664bb983607ce1ca93bc5a1a26cb679351c19272baf43ddb3a0abb661e0aeb7f2fe5afb89e9b793b4ed1e302967a765cc3c5c8e6b0307ec82719aa676354716789f2d7ebcaf2ab3671473ebeea9b0b3e3b3ff3c03acdec0aa5ed0e985d72e0b54bf0735fe5e09d7d8f7d8d4c539a749bbb2dcc666af2558d59e513bfdf99a43afa046c33a611e53e601db4db1cbbd429581c64a46dbfe43a7434eb5bad0be1091e661f4ddd17688423c9e1ef8619e9df462825fc93531faab25ca4c162773671963add91a417370d9450df78e52f5c295fb01591009e999730d3e6dae06b329a68143644231129ce6ea25409cf1136c3712a8ae1105aade7557d049513098b647ce3762fdbaa82b57d37610279f91ec121e8aa144776282cf7d222d3664dbb6defc81ead1ff2a39598d671932048904092f8de43c52b3d7e2ee316a9a6035807ae0500b5a1c25bc71c1ab9131a28ee9efdd82b17c134d4b02beacb817a7e80404da0ddbbfb0c10800b9d4e1859ed0e325280dffaf7d5b0f176ed3eb283619761f1d5a1e759b4902a356b1702368e28acc3dd74179fe2acc2ed073a9c6a30b76c0bf049e91b0d6731b97da6c930f9758449f9fb8c0cb1bd9a2806cafe589e9a23119f2c75cedf4076d22e2606021e2abe82ec765f09ec47cdfdfc1e05c67c60cd2e4d87a15126b77e2e75d7b94ccc6007a8c94828addf7311ab466f2b83ff27e0b473fb5c136ef3706727b3172c136ff984858ed149fdea84ecb48177732ab14963d403f4a9419769448257b65582f2028e59584250522b8a0a187fffa08a0a95b93f1c60868b44195820c2b1fe1c95878270868bffde03de615a943e1b09ea1bca55100722912725907bf63dce1094eff53212b3559a8a196c0c267563546f38025146bc7f951cd52d396ed1bb572dace33e733cd13824279b0fcb0ffc062e92add9eabf5034b36a99d4c2aa1f6c2cff5c3145b4e1388ad8bd8b6b3e4497ad29a2969204bf9f864f40f3876e6082e08a2d11ab33e147e9835fcc68144ff31bc283373b6924dfedbd271c71fc51e6455051218668434b7186c732d4baa6fa76d47d927b7967ac3efd974a3d858d8da6abfc69a026797ac708d07f6f6733b372dd79ef8b740f47f7f71078846e804359b39086e2e847c722eff4454a6e6c61f82931cabf50437e5f1fd366dc5b4d129bafb3ce3ca1f41c01869d4e96dd0f2d7bda32a0b3e45e59d58cacabdd3347940bdecf2f8b62a75d20d707972bf4da0c2fd18dcfbeec10101c31b65e214f31384a08287df26810c7a1bea55c6fa3f191758dce3ee1dbf2667382be97e4be3f31396664179b3027d75ab232b8816d50ee88b32039ab7054dbf94b89327b4c9cab74115d1f7f3af69201440c38db8ab140f773c59896b39fce770419121f2215a600a61e6e8e9e697b707ee31f723464ba293269c67363f7a6f45b363880c2345f340ff5b95963f560b96c1c7f02090f9e3d6a499a995545e516e7363f02a0268dd1c246336b93100079d3be97b07bf23e9e71870f0d2eba2c0a147e2c1080508a835c34ea6eb9a3062df5cb651808e00d26ebec860c3db45e18287f49ad8e975bed625b6f7f8551a57087ca5642fcfcc0b61282477c40b1b4c010eb5385a1f91aea6b77aab53aa85a6d56651157391d54cf6af077c75f4b8e5c7c9358f1e525932afd7e624ab7c49aaa7a1c91c5c542cfafadd8b25ef8c4a5fca7ae5414c1177e813ac5ce7fa925dbcb286152a5fc0a0b72974c78ce419acb508027b1d2e9d78c022c4df45215d9f6c43faf1c9bce8086386b61e83e70a79c03d6251e09dbabbd7cf712d53e67a35080bb3e5c6650d50177c6d00357ea02a0c65afe45a1af93820079cb836867a0af0d340890dd9f98b9177177fec6315053ab2f60c0b7c62c3453493e7c0981c724d74b4c9bc6b624e25350fb400023e9e948396591932d534bd41ea7cbd498145a160291850c71e532f1331d3a9d22de397356c3a0051b222488bb8a328233086493221730bfcb30a11cf6d04e1a13cc5f61c9de82bfd557a8bd5ac1f45c1d8a77942a882d81c41ac415807543468b2d17cbd269dd779bb6b9776cde61dc8e0649223e6f0f4178f4d843cbebab7be8c9b5e3f7ad26fa397f0857c87f370c138b61fb8d740663114f4186ac83542a029b2cf055422434e889df842180076c68d9dc15eabfb7400e9f8818eaf1169ea400f9bde41694129047361779e7e23cc44b7b82813033823cc44f354f458ca2ec9ee44546f9bf85880145a558c8623fd4ffe05cd20db1b20d6da7352d4553f82600210787a1d0e5bb3db89afa721221830bea02c2f59b20bfb25f597a7b6f078b73d406bc6779ac748f6f9276c4db727bbb15302160342040c52b913eeeee163b87f7523b46de9110fa18f241d6c8d10ca8607dc49a017d878f16b03f8269c8ba11c2b8bbd12f55bd1a71677e3c79b1df75378ecc129b1e1ff21f8edce21aa27ca25422d0f74ef20718a102e63d46bf2261d9c7db231d9045831d5606a157a72d11b7c1016db00ba0f528d2b9eeaf4907047b04bf078d8be92d6a263483beb16aef6f30ce0170740d27b0311daad5fedc71c7ed208fd201d1dffdf6d01af547a5254c24274ba4032266713571d0cccf8622b8608bf914ad985cf6c0c7ef0aaccc081bad946fcc7840e0a27e4edbc402106ed79c36d00b7d666cc59ba25e98e55cddf09a2014a20963a7ed2401437f8296124f7e7fc02a8f73337ee186518d212744f34edc5b79841237f4f8f3d2a738e0eda2862032df17c2f83289db47967886d580091a21ea849dff8504ad973681c51e95bbb567f66e28d1792bcd72eef0552f686a025b0a04c7512ea80d4c5c9c092442f2a6d8d216e068e4dac4ccdb1fd2e402da9a4500696201e6f1e243455f665981610fd154154275f5b59e26610cd5743e0225c17eca1c169b5bedbf8e9561657ecab1b6ae7ef55c9cbdb2acf080aa242d653076fcdd8c65e8a9ac32766d4c4e01653733c9366f5d49606dd575e709c20a105d6471e05b492f4a21f41c10cfe6595d00aeb3115eb30b31bcec935ded63f27f17811323a26fa28d78cc07eb78e69c354a39f17819a13a6b36123282ef7718e30fec62986bb2b3f96f1a30b5a55646fa908248497d6c1ca5ec376f39a3feb686c82e60178029f2ada18244115730302eb7f05a4f2816ee8deb6dab167a4b3468a5a2d0e6c68e4e21c8f9f1f4d98883f8a67ced104f99b440a601311c48f0b01b68d4597431206f66b70fb5a3076638e040b7b3db01c19ed1849c3b98b61005cda5e5d94106568cc09a6c63f174f22783fca41da2adf0ab678fabb6a9d5da5e9be1f34f8aa85f877ed67ac5ca906315e0362952c8dce5d24b9c1ba9af4e78aaac46581feba5b8baf9e271285243cb1e65929c3c373fdaacad8c4ba5845d051b16d029910e3b170ae7143e020d662a5b5d0b93eec5bbda5adec9b99228cbfd753681c0b34e3cc7d821c98fbd4c1ef009c9b5df4ba7f20c1b25b9f26df58dafc678d51c5a1f39ec575e3a559af142978a1ad5043482a6f17482370a6732a36a3a8fec75b9e6d75754a627f58c2c927a2e8451c3a1d7eb5103ec94826cef9e337e778c1dba525d085e59d41616803de0817af24423b0e8c1c40f456f7b3c4d666a1ece1a7dc9916b9101eb2400bfe3793287444329572239845dc232dd928a79038d33e06b093eae782ae0ccf1fd8ac521638bab0e71f4012142c09122804984af2486ef8953aeed62305a6a59ec952e61c28b0b67cba2ccd1f889e8e5225ca23445360201a01c7946bd2a4c7cd3aeba9344953f54dd5bc98885007a4adfc84d1864dede0aaf2194bc1e279f3a0acf78814d0a6ea17c70f2efbfc945555517865183954835962d68ed282be83197be8ce0827a9394ef5db7199bded4d9d96a33b4ff1a1002a24533f0b1b051ca4cf3254a130dd45df1eddbed63a609973436369fa64a2c7c3a50a43a3bdb2041b9ac1e2242a20f691327d16a1940bc01555d6b005c84eb198fd69ba7a6bc6b84637d65c35edc8323ad55d8ddf3bb8cb2e3da8c6637c24af3c595daab6cfe9ec372401eb2f487cfe297b62cf5413b3b2656b8e4b5a7fa74c8f36a854d68a270c36637647b647dc9d2cb93b8c035d940bb788750b91c1fa1bfa77dfcd39a4985204f0edc13d30e0598c6571779e13a437a8cf369f41631e4cea9a15a12953b71bb1977950cdf254c91dfc1cf1ba0ad54c18b0028f96d15617da9d82973f7a47ca0673b19979f6cc7d9d190e3d9e9c8d635d9a2413ffa5cea67155c1befd61337b8654cd0d41051fb3fc5977f54fa821c8b3cb3ea69ed20222fe7e2676eaa39ed60a591b0f7521013c6a97deb6b013ed0b7e51e3a9874b06e79c8b1fb17c537c1530c3825642dc7e53608fb69639ad1fba1b068d597090c95fd2d94e6f6446ce467d51690a5b7fa6e315bf054893f21810a18bf91cd0ec99e333a9355d5e638fd0507c2b4f8744d3ae094296ba22f9e6de1690678c11ff475f7ceb0cbbeda2186e3fb859302e6a5d8626550b196b3f41d2c3c248783b0750a7bb854ccc29423fa5a090254b82dbbfde0912cc61a5cf6b2d48bfd9f3a2923cc625f8008a55a4baaf505b798737bd5a04d5294ae4a9b764aeaa01e0ecc9d9f6a7ad5c66600951e99d65020f8a7ebc5f5d3e1995f878201ab7df373665ad5f285bf0d2b05d3b9ae7a6d189801ba41a0cf6df29a720611c8c3367b2e67e3f7dd6c37dfb4d057986df892bfefd3e75682ad8360f42952349d8e83262a0408719afd1592aeea50fda50571a70a9174bd503e5fab8e67d6f57fa71b7865eb16cc183c85ed882e8e7be2341c18f7d07c98354c98e226f22c1736e1002c32f560f3847a3c5c5fb1f17d88fcc06037069f8f18f6738cd0d30d5586c6afba32974e0927bb131fc92c93730797d77414dca5d39f0c6af5d71d54c0a3b68dc50cba43e941fb97cccd1ca48ea41f342b98b9df253523734567e4ead73b607c67efd10da98d14e8d8a00ba360797f534b03cf5ccb31a9a8135d349a7f1292ffdb2f297c5275081e229c5f5e5be9b42cada86ffed3bdc40f5f6ee0cdcb4b58bc212a9a0aee671728511ff2c36544ca294fc0bba1fd8891e890f5ccf3f954a5162a6df076b2bf334ce50aaa5f0de077dfa500033cdf806af8cf572d9e06faf7d1fbbdc137ce1fa375bf2a13da5d0d79ad1f310cc9ea03af915520c4d67cd7a70ce8639f9f259df120ce11513c81ea37df41ab2179956ae5c358a6a14883b34127691b92799cfc2094f5523d951f5dc6624106a550941fd1a45dc95682f6a312a85eaea7f2f72cadd1730ec55cbafd0846b7011f5a972ffc93d0709cc6390479f30531903ceec7eb214e6383a0e582b5d02518de59a9b0953bee23f82ff3736307d8669e6cc68b7b891ca67114d64c140789350b6af2e6cad6c5a6bb5704bbe4e5398c7c57c6ea8c1dd3e3600d630abaa9cbc4cb68913ad4134046ab56f5185a49e0a5e0abfa4b99f6f57fd975732f68032d2753606a5755dfb729b607754315c02f0e93c0f0ff181530b607017c27aea4f164d0ca68308f97e4426ba89ae89142a4d0d6de1ad378915f33af3898f60470a551bd3513fb9fad447aba5a21ff970f752a532ffbb6e1e653242ac3edd6d79de4b9f6ac00cb486fd4a9dd87d7613076812c29a54b1b78605780253f482d037955d57806b27d4aedb34c23d36b76c5a69bedc9914ef8b4bc126fbd369b9b6e32bed4eec42dd71a207dd09b4cb58d825503958fee0615c65e3637f028bb0aa10bbd6707dc1f18c80d82a8cf342a640c2db245d0b90168cd6fc70ff41a67e21cf0f4794af8dd493c2513192c6f00d48666644543722243b635c24b2b4a09a6081e8880e04d4355170c41d886c410bd5955720126eb0be6d448cf81305a932fa85138b02e25b296646a186ec270060af7d893db1b1dd56c2579e5630b697893c3cc355c7d775d7e67510de3e9a4a5aaebc8aa5cb8577254e37d132fb0e727fffd2b5f91201d737dd1738a435e40cfb8e62458037d59aa649c34b268d5f1c097bf8d628af6599d489846a9cb283764e281550bc81855c332be21334630c1c1d10caa53d983130e693de77844366f99d377ab2dffaa655a5d08efc8f48216ffa4bbeb94dc08937ab4479b61fe1f3be1fa3360c9321fe6f410d0d452534fdd0cae399345a58e5d7288bd4db8700ef52496cb51648019adca04f0a234e2927f6ae6bdac9c2972875279c3ed525269f99cffac7a111c06134a8b6a5eb9b77b2f6ca1cdd3dc21871ea9c4fbe8809959bc8e715405cb975bf648316c0999e1abfe4987663ccef0b92dcdafaf944b5b195d57b1cf2a5c927e52c13dc4cfe9dd60c8a1896e81da396b42eaa6372ab2bd905d73e2ea78bc3bcb45f9c2b27981433d4c2df08dfd2c21bdfa132232fc78050b81391ab07fa3a0ced8867597426d7fce654a36c1ad4cb246b468d092e3f19d32b8c486ccb08ed29f92fe4e3503a62777fcd925b99442177a436ae730582f81deea6e5c0e7e4268e4b91695b15466cf4f0f0fdde3da2df1bba1ddc1051b55f773a49785d88d4c4d98c7a69b5d07d883d721055b65a264b7f51b25a588944ee853d44fc6642220f554dcee8cfa76bff7a4445dcbc36322096b65d066a768874eb891cc864337a4528e81dfdac48e0616ff12ed42b253cfc29ced9c88f8118326ef202387702ac756f368c251ba32cbdc9f3441c727efdce323c496454ca53b4bd62674daa6681a83128430a682aea0d8a6b776dd4358722dc1411a7136c6fbc2171d751bce4ee9f311908c248d324d79e169c15a03ccc2d1f651330ae4c5375c9817baf2a17d2a378175029ec87f51b6f6b3fc094ecf5069ae30603dea5087767f7f39a4832953294e8bc2baa17bfbc690df16d6ee79a27a99e9b8a5be6d19b4c9c08cd47f79935e0803d60600a848d1c8347bf280936cb67216a88b93675d59ac16b10146d3bc9c8e7a94184d3f6101e4bc063094ead5306b34574f63e3cbb56be090eeac705b017001de4473eab91bde4f2a3576ab002472939dde2c0e53e5e17c7ab79edc77feec8fe74fa18a266f58093389a88d91659b0dd7847e728be483a045a613c23a3adec8c00cf1e0ef851c0e80c44f11b021e3e0eb0300b8a03cfbb96088847855dbc138ed825e3491e747393add3d19fce09c1322eee730aa9af1f60eeb522fa6b174be586da7d44b78f128fdbca70a8b3052efcd26fcee818a9edf3950c546dc8e49ffb1d4ad505776af4bb49cc78b2dbcce1324359526084a3f54a1127fd6f6b3f761d6d5284dc28c195bb86ccbe9c8fcf9bba214ef909fbcdf61104ec7e484b8061e7ec5d12a42f371259112cc1e322b4c8504caec53553bc019605f9009c9325cb4cc0040126aed40d83d55a3db266d12dbe9bd9085b49fe4a6d282720cc47a1722ca4bb1b13b18f30a8b026469a6b21c0b7c6ed159892b8d10abdd807fef756ba200814bbd2b4b92011d074aa3388aab908bfb8a61f2e6c4dbeb540627bd42b2e7234a28e59e846b8a5730caf455237c3aad2ff0f96a3f2c4f7885a2813bac297691a0e8ae5fec9711a837897b5ca68d2b879e6decbcdeb969589896dee0eb0cd8e8612c6ba7e3a9ca2c304da395d8ba42f7cb1d21f0850ad81fee4dc623bdcb2fbf803debce387f3383b253f5fdd0231d5548e19f7ee8d2e8d2fe1a6b48fb6682df3a006ab01881f43ee24cd3a87b0ddc55114ad8b5a122bd19b0719c8edc3b7a41e2d78b853edf26144766e65c18687d87051e840913a1bc4a1fe0797d3fe45429cb3f65583d105b8765acb2ffb782453601f6e81061e6b81228d4c7385dc12612dfb8bf126a6af531ed82a01b414af8681a8eab948ed882bfa5b508ac9df83380e2008fa2a23a389df56f7bf501dc338d315e278afe55e20e0094e924a83a50bc2f5ff11d20847ef63f4108244abef5cc8c0a8a09694b1dad9a063dd5c891f57ad20ea30908caa2048b31578863f2f70663ca2bc9d645d5d179b3702a6ca5aee8d137f921caa044deb169ab3159c298565b9f34ba614b3daf488b9f3be6ecb2f0e1e8cfbcc610f40ac1b1f6d96b9c6bb4efbcbd2e8aaaf8dc5f31b044ee69557e7d2d8bf89b247527cc36a6cf76bd2d363e5bcbf30c4445892cea17dfbeef78a874d80d4c4214462f121c2f65e2af768635afa84d74e7915e69050d1c28c08edbbde843f248c9a796ec82fad475d0669e45740bbf92623e7ce4d64897f2a2cf66b8a43e0c729a21a5a0dcedb45df155ff7c88734c4f409479ae9fcff5ae763990f334dbfde5438095e602b8992b4a40b7a57bbf1635acd3969a0aeb5616027a9f6ef3db87dac1f5d2f72537906d7dd06e83bb24c14d8f33e10ab373244a3dd5d1c4cf990ebbe45c513c161eb404862d0bbdef560c2af1d22f29b1c0c6c556bada6bcac07a7278e7aa6b5a21b00d2a5b884a34b92e7aaf61fc188ad3543fcda12231e8598c8ac97f9bd6e4c1292859fc0243b4e92d078daa0a753f3bc57155571abe7a1ebbbf6f951e50dc9d6b6bde8d6cdded674cd46c0f1389ac3f94532ac207fb82771aabfed9812d928ac7adff7efc902e8e5d9362f69f382cfe2d1d30918ddcae8c0e23293b8832aad44eb948e42abcd2a92ce720a403eaf9cbe92822a0c798f2863c1b5a40f100f95524502b9d26e1552afcbd84c49901c1d2e86c8cc58e8d7a5aec25c6eb2def689079aa7f47700323477ae4e871bda36d5ae57035d9ac802d7f038c23a7fc2083f3a05e29a2d9f84324dabd874b408d59bcb839318e4cf413040a0fbfba77610f713f852f0d2548786171d8a0045cffebd0d1c1b5dd5b76d9cdeb202a3fcb6b90d5113621694f6621233745f6764e39aada4c50b4932f6ff231eebded99284707da8e774905ab34db83724d15e9dc8862ed25a48de5adb6a59fd1cfe49ed0675512bb042ea16a9dca0afde3c701c786a5ba962c37fe51385b6c9dd8237532e052c256cb4b908e4b56eb3b446c51a5f71423f5159e08ed7abb9d5c3e93013b41f1ceac7a2cbe6674cf62de3a407cd56acd53637ad10472c6b5fbfc543fdb852d8d1b304728f456e364061ec1ea2238affe43949dc11f40d8d8cea9521ac95c24ba7da5bf93e3799251b594cfadc624831c0f551c23d6e14295921d34aa14b1cd5d57e7c5d73c2717bc00c0d44508a0760f691cb1617f6334b95cb108d294f4d992274a0336fe1613e956ed265b6c67af5f83632b20f5c2d35545a89ca83089a3d02e542dfcdb0e4c4732528fc0a4eabbbd55b12ed11fdfc3b05be9f83e40ed397bcd81b8400b4af8ef78e2df7c5e9168b9ec137b4745fb93795e3338e19fa2a490501ffc6390a93217e337782145b83dc4823cbda9cbfbf18de5ddd5c06f3a0427c4b384499c72346064dea6e77b3b658758600720b7c91ef3bd4340618610985c1249b33703d5d779bb82e3b5bf033b381c427b80a9c03a684c7ed764e8d66bcb62d006c3f52bb503736d8b7b29ae6e34fd352568f3b49bb88bce23810f2a6e9b381e4d7a18e9bc1ea839cda1e660276e9edc7ead6df64ab5554393a842b1c3f8e1ba3ce57b2e4aa94682e4b05c484a7c585b06c94e93c2cb3b89919822a8b5ff7bb1a1af70868b197d6799584967544a06054c5403cbb7e2aed9244bd1c735501ed7395e0b7943b9b6e6a4b3e16faece132dfba1fb848558e9cc319bf7b21ac079ccc9a652f1c9aaaf8c12bba4aa151e72bac66b8f7b716260734edd18f46cb2314ff9053dc05bc94dac29d357319523c4b0e79925e5a46fc541f3b6a9c5b41a71ce2cab6216b6f5a14cdf0c67ce8f84739412e7a16b59a998ceda13210d9e790e0dc5d34b5a0611f255252d568183a05f932c7368d478249e9f0a43916785f90abb9aa1c230676862cb4453a6de0c41826ef6b397f8c7eae902d1744aa13e20a7a484f9a6f500a647b168129b0620a3a16e7f76161c097ef7e3194e9f29b6c3a342b7c6ef452b616ebc94cfee93a663086bee0f1a144579adb5245e169688f6da29c8303e08d0e88d33b166cf4104911f2c3527d89f9807be32035c4fdefd7e9fa211bfad9df72b1f7bf39735d9845c6bd48eec47ee3e1f8871b31378ac65b013e32c3a03d96bb91597d8dabc4a3baadf9fe99dc3018a42aa5cfc5e8c4f02bed834635a739f316f0b1446d42dc5161a258c3f1bb5160e60d942fa7c2b60088d45a3d10c9ef26bd9a3b457092e7a3fde1bf984ba1950db90b5a7bfec407f8043787d2adbc3457e332ea9e995cbe9a91796181c3de54cd1eea7ba94d87a4d60ca23537c51bddf1fa0cb081f1c709ca2dd42d2fc49f7048fa1b6a5201e9e9f7eb4021bba37a461fc3ab3ec22284cfedbf70f207e41dd1b88e894311e6ab2101791572fc678896ccf50875d2fbb1a68790bdcdbe699f751eeb63f495ffa801ba6687a3d6f49ac68ba4b78092343249d805ea99dad59767bdd3803648e35c6b10174a3d7d719f223321b6cf12746a9056560b019a3261aff0599986890d7df25a4c25abeae1c85827ea5fb36788ceefacb0759259515271d960324f34e306a7c276f1b7d8062b68839f6d260c3a3979e20e70bf531eeadf04928d157a0392b7d8a1e337b5e5bb51e79cfab3a34a9c7c9f34ff5dc1772fd71e13ed99b6c1bdf0b0e05b980bfdebba82d2ebd8fe9b3d733fd1cb8dd21079fe3faa9b5121278cc4f906f45cddd9f49de83b26a2c2c53d74c9f88b71032695c59ec24d559f4dd38727df1182600ad3ba5a601b16ab837f154295e1a7963e0f492f340f9d4af899b93eeadc1247e9fefb856350dcf10c9099d8022da854a3ecd8a0e9eafe8ef36c6dd691018e72498bae29d9e216e47b7cfbeed8f269199be7b3ec0d703c4332e8b1b19f377c034f9b920e816945c519ccd991eb9452df2bc54d6fd13fa387a4e07ee650c98d1d2b5e5e06fc65a31fc72e722f317b1865917102686b2d02d25b0f1aa39918a95283d611b379cb62b60d208b35bfb60f949f25215dd4bf5ad190db68503458d8c054faa72f0952b10c1a8925659d9ec181a352b385127c508ee046211a75b31854c7ddcbbf080e5cba3db9595e8fcdae1b466dd26f15f4aa44d3fb57977cc94b7124855d1b60ac142b0c0d6f7cde7750066b737d07cb7f30441f38877bc03deb10742d43363998593fb97c22ff4354e3e0f6dbc322bddb111d59b7c24905094ccc09dc75195201184a2a2187216d1705bfabbb7f55cfac32dbf7e2753494e7d2a501cc84f7f8a43f378a197981b5e0200b9ba77fa071e589166c166a50d10b43e22aecf45527d6de70da30746aa3da6040617cb014143860636017867bc76f43f26edf948afc491c1fbc745da620de269d6c7934271d3df4ff5ed774a5a6f07425e26a43cc3b417d3ca9750e07856a97c9284d0e7ccb980a14d885c15118a8f21967bd4ac9306aa164202302b1852d3f8b1aa4bfd68bfd7615773ee9cf2039c5a9911373967d33602d3881827239451ff9371e00f9b1b703a894f5b37b0ab75eb4f89f15e37b2eefd11e68e3e0731467ca72d7a727bdcb832af5f1671e36f7eef94f6149c0783bc6f8717a2ad8d501392891fef80edee63dc8985fb9f1a8c0fb59e5e22eb60a99b4c749d748ca383bc4b0c746a8d7f31854afc86ac2299fe57aff0341f187fb8e627197e36518889e9cd6f20f14e4c64a0afdef01bd9b30459f013964350b84f2e13ce4d4d8cae06a84adafb8c84176d592e1590adcfa8a7cc5c6470ae365924b79bc496dd950bb91d30035dea01f49b0c8411efeb650cdf6b18e112359500386be936adbd0a3795bf672d161d0fd831f34528c2c6a30055d77c6039d8e5b75fb5a2bddeb2b36968b3e492fba290d79aa7f5b6dd21ad01287d4a445b27dcf6d54eb5bad03e099947c7fd9abc185c94f253237b80094c7224540af4b2ce2533db3899dc82d7c298e2065c4229c93bcc8f46f3878273af639f7ff70c78f99bc3899f691840155fc66c217d732cb6bb1acb54091656e6dfc3aa1555f4d869110863556be5ff68f9d4919c82e3a0ce1a6b46181b3112fb237580eb62a3e9f7619e52917b24d903dadff2d08db98e62fb818e9d35e31218db26174a63a0e3d93654aa291871facf1ca5090bc17787fc8277eaf3139b85922ba9c62eb1e82a3069f68487cdf1c28e509793b7ce5c6c921ee1c02d47ff1f7fac684942e2f484c9732f639844070120cb4ce34a46723349c31a9325512ba3e97b7723c03012052a73fe074db5536160becc29462b1ac14f828da61e066582343070e34bbd49721d2bc659eb2054fdc99051be2efe07fac47120a978b501cb6fbd19d1cb3430af07fdbe59bf65e5db525641d58a588abaf3e2b7d1786e884641b682f39baa3b6a265923841558650c427042e1ba077570f75767f9dd075f062695853dd43c5c008db843f90d08c2c31fcefd9bfd1fb3b3f70fc7f3b221a23aceb2494302ee03f974d7a2d1ec6c8ef9b5d52f644ec5b6ae529be034d8674fc39c8b3a1db06c28d0a10b084559b12d7d59d1b375c9591e6388c95d127c897f63e24a1b3796ce33cdc558a439476412e69e06ea730d3f4b86f95741fb7766a5ec9239ff88cb2d276e0f48553d34a04ecd18bb6ad7966849b9920bbdecff0120ec5a3ff65f7e53ea525903a56b4b9cbae3ce8483d046d30719f5eca5d2befcbccbdc84b0666ac09266044fa98a3ddf3320f8f1f303191d54dc2e4c6566f40d7a81fd0cfe1f3288d0d4b40c6af4bed77a7c3193642cf86bd474dda87e3f06ae70b0ffea69d8ab7968f8643e447c44b9fda8745011868e79d3da0b67ae6c059c6545ee9466b94238996426c6ff7910fd86e3b1655e6504c6bcb07c5e1dba94691ebd369a4d9d74a241b5fe3120702c0b99d9feaa393ed5470d44ac0a56f1b3a33fbbcfaec6d6ab77a7b0ed5554d647c7844c46c23ce61eb5b6c92973ea735263cde863c6363a8f0afe5c06b661ac2a653381e43490024902291b4a617e44cb419841028fefa4b82f87a7c2c7ac1a46a591c4b46a393ca766b2c194ec741f3f45499a5838a3b7b94cb28d6960151d779038ee374203a2393526b836e29b3998d2c69a22c9fc0a89dc86501a997761a4c1651c5f988a23e17e2e42e69f8da83e085b8db2444f5877770b8454ccae546f2fa6f7dafaaf6491c4859c1dae28cea80aba4cdd6e789533aae08cdfc7c7c009bef5cb619502a026ad3b94aa3c7adc8a641a3ff6ce8e606d4d25eb138eb6545c794abc42b371c15c658e977b94e246bdd08d9119927200c9848531e280a446442d59822e0c1c833f26ce838438435b7689b8e7b05cb6c801eb1e47958fd6fc06f0d188c44d3721c328ccbcdc792c061a5ba7849e531982930e0af3a975090b8d215ade99c2120d74b1cc574f6d317489a461609ca90932c100c30c54667b1e5ec9b09ad42227cf928481f014d1621034f75a7fee3e313509f1b52e22ddcbb2e90cb26918f677ad479c2dc9269a40a3aaaeba6164ea14b22dff73a62d253f2d91f1b8e003265deb4f99e84a982189edb7e276a8fd7d0de10c9e3797fc62406ee48fcdb2ccf5271e05288c5e6acea2a6514fed3bca2d4e7a475cc6a5daf65099b8ef949c49683b4367ce799d5ba246223f38f971d2bc9f649e11a8140a7be8021f056d2d9224391b971570615a107964f164611bcebeae4475e1f0cc14798a40dd866ccc62760efdcb4b78f3289c54ce1c277b5715262d57c9bd74a75d29f76d0c35802e90247ecec1857a08cb26f9de3a0b629448539426867572328d68f45c5ff58b055c52ea9092bbbe20a489415c815de7381174d14b8cb10bcd26a1226c2b4d47f665f67f30ff9b8750f9d5d3560abd8a710bd5d3907ce65fd23092583104fe8100b3ac44be2404aa85215cc4ae75854a52bd464572b2adfe1da25e51298556292a91aacd5010f7e01c3cf089ffc677b717b25c26d27aac8dcb04099fcb6e94b5f5fcb784f41e115d3d6a76fd4b669fdc0a9e5d4cf1ee488d39fe33bd023d48a0f23c159dee0eb9efa44ed5bcbe072fffb5834894b70a227c7552d2069ce842d2da0cb1fb36f461cd67f7722b418bc8d20e5c112258e89389e13a010586327764d26364d3d99eda5ea199701c49818ef93e6b423bddf7bb38a7c3937e4d3e5c67ec435cdb9cd8c37c65809c789d6c895b5ba8c8facdadc8a776f991dc6ef1853a7e27ef414fe9ed41a6b3af7c372188609f9707dd5a35b66c9a573e7cd0b2e659e19f54841dcba021cea2ea331294a9818598c4b4413506e01251f0640a10cbb44e19e67940857259b319ce14ffefc92a52fb6d9d4569c1953761aa94e0e2eb387cb9f11b75fa9399dfa0412d46761578be3c4009b2dd7b1321e33c1d7a9639f8568cee92b294cd65e666dd9566122c23ba250e49b51e6cf4caa3dc6028200de9418897db28abf405765df03d1cc136e11258d408de737c0f19beef066c7e857904b01ad70129a878d833c60258748139405fbebefbf6fe9b9cc66371543481401abe8d25112194647e34fbff8162445db824420368d50887b9b11f4f9996f2c1a17bc2bc7fe70060062940fe7643cca1b98ea2ec51ed70c16892df88e6e0040ec0d90e4c6eadeca311df2dfb08ba14db9f6fe51e8a3275dc1e57b4ecfd85a5306406b79e5a03ae54c2507cf4e98618974d40ca781c557f4ec5027329d80af57e6ac3b21dafdcdc28f8a0158312a69a720286f9aefb4585ff1c99e93497900edc8599d3a52321a9407c03cca3bbaf19efcd605d8c99d8cf90428671225d68f93fdb0b593960e65199b7d61ba93a6a0218e49e3b113ce646f87d8e3b99d0bdb2a8f5da48b1d1377f021fb180478b5f34fe4a29be87fe1ad8ffd154525590eafadf5ceed1876800d2ce27ec7e15814ba757d1d1ef70a5948c9aba8274823638b635ef1d77ffa7ae2018739e59244092d03f5cf7fe6433425fbdc259be88e994d0f208722be3e86ae025dafef99baed4a84cad2e35116957168be67c90f62fbe30cd7ea3ec839a4fcffd3f21de0726d784dd25a94dfff6413489b94c696813b4b03b046a4d15c3ed643cdb3a204051c3951c71bc02f07b4d5e8b6dfdb421e1063dd02dab6ec16139df474e99eb37710a9428fc0a2bd372214684462ded1fca7a8341f166cc871ce871add333ec7c0114c53d513d647ac120da1968bd39b1f50364a2848b41f15da93d6cd69b9d1897436bf3f0ba1dc87149f71cb5b9b5649ceb796dfe38dd0e6b4196a5a2899632d46f95ebde408b2615975567a62fed013b74dfe9c6b3be5ce630bd2e39d90e051d14b341c9999f6a9c464f0927e1d0d33d1a1824473830cc2a94ccd295f76073e4e2b01a2090eadd5ee94c238881ea2524af62f361652e79890a6a5fcec1cde3631beabbc12672b573fb31c41b61e5e4b2b25ca6d904f77a7a1ed1b78218b8e7cb555680e046f523d5e92b40ed229829c65894d5c7fb45455e028f2fa620462d81112d5edb4ba52fa64c481882f2376993ec0408f2b99b4fbe4fcef85925b653814f9eae1f9c04a615b219b1861a9aa9f31df255b5b92e780ebc3d2d376f6609c728bfe05bdc3c74ffbb5695d35007c83d0cbe22f0ce9bd499463a5fe83992e54c46f0eef7a56f6247783f68c222b0bc4bdf4371b345202ba381c6f5a2840669feb0fe18a75a80d4d61854f1301630af07d0a7dfd317d34eac4c5225ff4493dfe19b4101764f1a47d5c792b7c96454a0b0c66d3886bd6bd59ebe27b66a4674cb18a8495c484caeaaac979c31bfe16dd808bc7fdfcbd84d2b9a33cab1e0523cd12a7a99254cea6dd763160befb67e2a478ff18f2c20aeef815a0de5d033184282f9cd3c7f01867247c0f3ca34e2c2dbda53231b1a674cb9eac665d0feb818b8fa779b988deb9e6d79dc563af266496fe3c0c690ff6e07fbd9a81dcf136455665a0579d8a22f1e8b4860c58f4cfa2a8573d20e8215dead3e22e9b29833edc42a651692649ad363d14e9a738ea7e7057d3267230cbe880d6e452b3f27260debc4eb292e071940a21a2a4d56a55e396d7033a51e3b4f9ff63fb7f5ed7663637b3cda367c449118483174782c1b49fe897d0666f647687b9d0afbe525761871204930f12ccd1801a031838b6eda0b888ce6295cdcfb07f1e0767974954d739b4799d604bcdcfc75be18eb4a14a50afd5cc11d8c215786048ba740d2b7e778b2d493c23bb8ca54e2e613be26a220520ba0317953165afe52825c32adeaa04d5ac9ee2dde541c1943c3aad77b8847a592cef7f56665b6bd4fe9b6fe242c2e110979e54ab847bb4fb0644972ddac7bef030fc7496e0d56ed72a98b74b2903af97089ac1f5fcbf13208ec2e1c075b3adaa28274a8dbc56e5af21c58a32cef8c227bea4f88c954f712cba65d7e213f478a8f9314aaf2ac2579c859067e019444489b709ed7664c0416efafb5c091f37b7bec9848f37301cfbb52b9337de8bff3b3dcc7c40b81aae0f3282d806e35391b0b7db1a146078d00f091d0f2a20366bd30fde25840971bd5764213d7bb5ea0e937982dee74ed7878a38532e8a6b813d774f313f166162c7db50d3847b2225fe54fe76515708fb19a974dc669cd5adf1eee013a1c76a1db3a1dc3ce7f8991e8c4ddd2872aca3ac6ecb50421ec598a8c226c25bffb3e77307a44358b5896e32f42efa1ffe71c6bf75215c98ae5596a5b3ec81c999179324afcf05baf4dd500d488d8447cc7684db98381266875551c44586871a9aa79b9f3b3cd41c1914f3abf8def91156ed4db5f91917affdfa45ab778d57c16206a3f62831c635c6c62a52110985bbd817225831e31f427a60e69039cb7618afedd6d7f56dc144d91a55acd070b8b0600d64ad9e6c95fa2ebb140e8a555eea7a5a8cbd020a277d57ac5036f4885ad8c1a4fda53cd864e287c812d89039339d7535e9783c8f9f69a89ba77eea45e0932dbe6d4d55927f2fe067f2cc0f2272c9b7bf42b9ebd27e22efa9f445ff2b60cace83b582b5bd10e1f223b08419bb3061e18b96c459894e7f4223296acb43e6a3b8d0ef1c3d69f255f0cfaf9aea632b1a8864012e7ac8004e03cce1f7013c6344ec8de8febf1023b527fd137978dc58a392dc6df03979508f78eaa052530d8120ed6b7ca053236aa333daa41401924419381d14a437a57818440654bf5403a9a9f0b83e963d1a378ae636a75f46b8448fc047e9907c2301a492a57581b8877178805550a868b899e654e7ce9132161c754f3979f9481701e49e598110f19e93233cb4d63d626f3f7b33ffcf33b28f427ff47d6c28b2b14c27bdf9c3729de2f2a61721e94cc7f3ea8ba22d165511d7686b275cf140657790650648535a3901a988c1a745a1370bf31ad0b36efa6051f0a3705c299364ebbd0d12a25d2da380a54004a92e7c8404441578ea9182a34913c276a79b54021f4d56b92b542ec7d6cac42ebbccc9ac93a279343e4ebe17cf15d96ba1bb6886b33c225a4142095bd2755fc1b849d7e24190c394cf315b9a76d14eaf68b86fd718d9d0d54eddd13bdddd58d80eaf5763999575ade830838d4c33b21aba415be0b385a0f7d2280223e65336f37dec07ecc9d3902e30f75054db247c2bb56a607ce04e444ea0f1ba594dd83eba90b747382013faf50b2eb1346ec6b0ce12c1fc5145045689ae1b96087d66ff0d8ae04f78e47ea01cd8dce96503f20eb838772e464bd8437e1389092085a2b9110c1a1b4cd6ecd60d8819ee6589fdcf32607a34dc8217b39c142f7f177371060d895d17709ab476c8c29cba719493f3a12d17ce8a929c00dd2e744d31cf27eaeb8bd381610506738a149e9d94aa4f2c6cde7c3df4cc867ab9595c27dde6b9fb4fbffdfedeb9b810273516a4144f2085dde4f44ee47066b71764f7e94986feb337fe8d3f387ebe6d978ac1534955ba914c7679665123082ecb191966e92aeb48dbf0c3eac57ffbbef5f7faac55c182fb0f165957421eacfd2e23033508bcdc0687a3dae08751a99aad31590ce0e2bc3ad4b784113715db324e70e095121000bf4462d44aa378d1a504c632fbb08551a598f426b5c77edc53e37eaa59f109b5f27a572b0f735dc450bc6434d362456c6adff2a4eef7dcb22b938762c4fa9a88639638642d546b729aa6ae43745cfc575b34b9a18b5caa30d50fbcb7a3a5c3d2dd938b43bd973e37adfdf6925e5a919fc2b894cb0b1639f54a617c568d823163a623c1727db9e5347eb461f3fb24693f6246389ebbf7d12c65ea15298024794b99ecacdddf979c479d8bf6bc756ab36542c894665baa505fd433b130b772aa4fff653217b48ebdb4dac9aeea0addaaf0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.15-150300.10.60.1.src.rpmpython3-docpython3-docpython3-doc(aarch-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3f @e؈e4@d@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;mcepl@suse.commcepl@suse.commcepl@cepl.eudaniel.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 bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0].- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- 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. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - 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-doch02-armsrv3 1712656625  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !3.6.153.6.15-150300.10.60.13.6.15-150300.10.60.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:33304/SUSE_SLE-15-SP3_Update/787731e77fff0d06ceb8f755b517dd75-python3.SUSE_SLE-15-SP3_Update:docdrpmxz5aarch64-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\}r7 Mop python33.6utf-8f590d93086c7a0d68a7d358efb310380b1934d66fcfc27827a6a1464f2280aec?7zXZ !t/*\]"k%a ZmۢL,%?cްCC(b\i;<"5kEy-,B=(X#=`ͦ5Z[ԯđj0 ^oXPIJv-QY#πWnN?kdZR9V?i;+s0qP[E`mN]Ml{a@Z"mFh 57$%\}yI=shdf449涉K  ctu?B7(*AٳWlMls2$͸D{P<c UJÓEb=j =ėyHö%6\pŏtui " D"LPxU^6w3%Ƥ-x/ ϣ8eC JZ?/l)+MdZEQ˅*+Tdk_d2ai o,*̾٬'O@5ԈfyXF'tGNe~Vs$q*t*!+Ő713_3y dWtB 9q@$qA/t+VŠ2;[`ҿ`:Y#FƄuҫ}4+.(?Sh$JB/`ocVsL ]R6;/e 3QmMCk["} ŠSԲ[t%R Cc;u%ۣk{ ;gIx/]#PՉ~_wt[0ҭ AqZ~_ep 5KiX`x¤dQcvd$bG{zk 3ZE5ǹ䁉E4gzyI,._C0ј!=nkh᧼kX#w<""]ytdk0߅Ö Rd#mi@ZRсaC]n5&W^#9H؂8Ye K "ENi|`|s#rQ ޓ kKv(T0W A&< P5|m;/rzrNexl,%Z=f[hQYC`1a<{HהrwJX~+^ ]d7d1;+ogyzf9@Et *)MɆg(-) U;_gYteItA"`So;peЕ?89e}$:GJ RFMS]J{ރbFkyKck0JU+ֻ-+z7tݾ{gtsxz97; Bc#02;[ֵx.v˯,g(QEbNEg_1|Ll XWx5"GH -}cd>mny'<Ӽג y~g ;¯oG` (ܲi IxzoRdI}O:tA}NJp XH0<e,Xz=PS@jf~VQx4{~*8`á>΋r 5VmS<TQR }+P b>uu0iMMVX>1(I3x^oK' iGTwCް]'i4{#|u.ne?@ V^K!bwho|whdꭤ-bzQu)i&QigSY:Eժ1JDH&he;Oe#$7KfFC?PpQ*ęIj , ~4!RꏦbT_`j&F:IKa ࢿiST7)+u`"ygsh9[ V=ksaߞHQc&`ƮmW}r"#h'{z€f.X3$7Y ɜ!PUCr+JJ,am[7dI4^xE+SJƌ6E^2 1|e=h-HF0 %&>͚{˜L$o]مGn2,gUèى^ۗJCTyL 28aQ.Iw"(^C܉Ʀ}(/ֿ9ׯl)}q4cWP=ybB֦z\qJ`mVT/Wg2zY]^/pQDJN!JyEҹI `C*_rKv'̘@%}wA!/Ť(Wa7Zzʸ/;3.xb\ }QOtEw`EMR8 = s lrܣ+lcbҳB9ÿXc#$2鞚1~~C)ǂƘHd~^<~BQ+JM+  Q|T v$gg qdΈ$Hț-ciN6i|[~ַ2B=cSј&sb hsw5j-OyOv)?jhߗß/D!*+f}w^ ڸ~cuVbqREIU^69#_ 8K-'#xW9  ™{sh[ZL@P!Ud-n<@kD'iiR@:,_&[ʽL2٘RS"N}:*Εͥ<] jf<'#GՖ Spm8N`L̹#HR E [,˭KgIqpg|ңTz ij5Uмauf?y t/n\aǔ2zm&ySFV]7C7^ӒK,b/|<)Lha?բC{ xPg_wĬN ƘߎRRZUwh>p6"4N,-/+bRM0j$A\878 , sluSXWU+ס̶@9I1<= ZFkK`j.ϜfN]YO7 `fZA|b@jNj{~%#I1dѹF/yUUorܭ \3ز.s0|R7솙Г ęDp=+֓f ^CS^ڛ?wSrIf ؏La{ͼOa ݣfhM`vVĢhlF9m/.Hp={GA 7:m[_v3&r: $Pñ>oGXprzALfP""}<))RC]2blT/4聍9p4 Е[2KM}˂#^-( Mx;(n3> +tB͌[@fN a%T@aL9< _S,&"譮>y" iK$߻s&ƁIv/f*1%b&Sv ( *_!}ZKѤ"ƾcf5@:f`9 ߄'&[<[I^Jӣ39ѶWϩӂ42q3,2y [gя*u!R $d:Hh2fNCɣM:,䪳˴_GǺIz"oyN}T̃6%]G<S; 9S0Dk v3[0ނ376)O\龠'LA ݣܰR nr1| ?B {$jG_3z ž"M~мUHEBBPâsB]{Fn*r*c_u(h)*R*Ŷ*p-!k#ȟ}*Dwެ*=LLpivE& :Љ}Ոvt,:06kú4  F?c>oq5u*,F Qa(.RJt7^7JV2_Nnj Wir. +.U ]:tSp7Ӥ[Q:Z(( k0&Fw_( Xa#+靡=5xa'ضݚ(B 3LPy2`!ğ Љg8 ExNiuo`FH.ᅺ=ѵڥjR-V@cL8ykY> 5ݩm$6٭yEb?,"1ݱWLÅh'g͑)epV‚24Kb!R|kWd%Y%id 2ˑMf'r^.R-\iTSa!g&RL*J#tZ Бd2i!6l,D+jK۟#6<،wBd[z>|Y✤{CRa6@*ܶjAt3{pE4Y3 ކۊ2prWRų iej _bW:XF!&gL;źlpdܜbF7A ws.TjcAM豻$Ϯkli^nkN^7=nHaVd3UMY YZ