cainiaoblog 23.2.186 → 23.2.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/appConfigs/config CHANGED
@@ -1 +1 @@
1
- 1A399589A7FA0F24D60BD94F13E5AE8115690C5A589A312CDB7990FA047720BC82797471F64DD1F668BAAEA97B424AFC036B654B211B783DBD8EBEF0187D49B74FE42AD36551C46026A4763B7D2C5DA9434AE8AB15CDFD43FC924E60FE0F53BA18468531EF46D9137414A3BA203652DA5138ED819550C8013131BCA455D9DD52218372692E708E2A9A9A6273F7495DCE1CDDFAB4A01F7986FEC02B993AC0130210257B818DE3A4302A387F4224C0941C0CEBC1609C68A74DD2C614106F1ED6E6010FD1FA3F703D60016FC52FFA1D5928C480D4B5AE83FB824319ACCA8AABCCA056CCFC7626E140FDD7D93C355816C9022345D4B500F2DACEDD22FD2B73F92E038FE12487D9B3290AAED27160B8005D3CCEB482E7797823990C7FAA3C55D54DC373F6AF71C5A50C4EBD7BCE0D45AE006C24733131F4E3E56FBCF6AE2337BD64D5D5996EEB65FE7F7247E0119C19D2B0FCB201F4D6E70CE8552B76B4B7C13CDCC3219F5E62C61C3551A8E683888862D247C18EFA2B958654C68EEB6B70E0895FBB7590725BDF2DFB6B31F41873D38C08564BE80FE33A86839E1D1F8FCBD9224DDE5411DDF04D48FDE3481287EC7D7456DC75C2EFD5E7F2FFF2150AC310C462032C4FEECE38E827982419B02F20D0941FC909E859E8F2D34ECB2BD0F28857A14490700542D4DF5F90857C4F7F674256928068834170BF4E7EB985251383159125FCF0057C9A80AF7E4181A39CB0481313DC23F86B886D63FBD1D71FCFE962F8041A660E7D46B58FAF136F70B190060CB1ECA335CC044F4825E90DA3A79BE88E31480D0BCFFA4B921724C693049A8BCE898F6B77B1B3085DE9AA3CA43BA63CC580A2DE0D7FD4D0BFBE903683CDBAF92D0D40B4432ECECE5CE35E7F7A2CA9242AB15CEBC1D3A75AE20E1E35437FC615B39EE45AC09AC9A16EB5CFBB7787D4A8B9C0D56A2B5806562774F9494750E07D4BA0ECE4EB2AA7CA8D0356C79E01E339507118BA49E127938CD91C132B4339359808B861373A99EEB6C1B1E60015957BD22A4916872EE9360A6270154C270E9CB7E535071A3712D647DECD43F03C0D419EC9D9B98EDDD8BCB7634415FD68FC6B02DC0DA71212C3F10BF8E9563D83257617ECAFD050470E82BE3422700486F70D94B6960E2E6DD048DA3A4456AC959B5BE4A4C0EB647B5033A50AE2677BADD14EAFFFB43EFA97B209AB3B203A500A1728A986E55F09BE7923B90DD58D42758A76350C24AA04F50E4BBABC9DC0EA1926CA817238641B1B450518085D2E4038C2EA338AEA225AB59C29D6CA3A3F77F06A678E8056911657A2CE86E8D7B0E347DD6B8E2B57CBCE4B68E8439FCD7446BDA5F78E15AA6684873DD5B7A63D6E03C1D3B707A054BFE36BBDC88C65AF690FA169F5889E9A37DD751D44164FDC32AC7758CB6F2426229D00B8D2AABCCBFA3A56A26EDE96106A3F19E653E3826B499B2CF9DEBCA2276B9249307AE2CC97E0FF6924005645E36FC2A1CA3EAA0238A63AFE72AA996DB736F5FCA08B76FDADFEE41D7DC91DE0D3FFF809A9A111A310EFD333674CF9C8D7402C31BB19758AF0206ED1839F046CC3947B99E81CBD989F9662D9F201C05EBDC531563433A5A1CAEC5F7255A69C784BF9D536C30BDEEA5BDBFC86FC08A6C2162D1B06F64607E5039F6641BAABBA23B7C7A33C8838BF2285B69FCA892B64A16672D571FD4709CA7CC88AF66236A09AABB16AC759ADDEC3AA1CB484DE19B85F9BE9A4F2D5BA08BA9B1E6A3613FD033E02206D99F68D670B8198AB2BFD2754C085118EE994C496ABECED334D38B278B30F8CEF97C2679F5E4B6390338638D510756765AF0FE20FE3116DD21E15238AABC24F041A33329C3E58A4E47674E820EFA99BDD26B0333718491BF6399D7515684D329E6C1C65E5BC2FECC2CDCC13F11BF773A4BEB8D4E7248101912C7E50894F8E0E65B12BA8D6E4DC1A457630A6F5D888B00B749033FD4FE839F6C37E02CFC55BEBCE5DE5EDF073A064C8FB8D1E022F499C2E51740450325C5C49553008677708C2852CF6E905602C51F8B51E010E0F53B9E622C421A04CCD8827429FDE4CCB916F0439C63931ABCF4C8A0DFA6A88100AA5E6D4B1F542BB9DC66E19D3163925CA044E14567AF10F723EDC3F3E407D20DD8A312D833F3C491EA2B4ED2AB157415350F36762AAA3D08F4BC1DA8958958A49F6B13529AAB74FA924657B628C0858B7E29F07DF0895B1F3E5B756D78163DB7C0070DC87F30C53C6E1EEDD7799C8821498A74C21105CC9044E37B7AAB68341A801E55918BFEB19E8CDE0F5986D5BBE62C27D2032BA77564879117D7BE14E129C80E75187FA68F0E28E48DED2E644F3EEA05895E63C517227C40C161E8373CAC52DBDA624349B299FE54925B0324955E9196AC93F215A7509AC4C0890799703D1125DA5A1E344938D9920E9E53940E7F101DCCB564E619139AAB75C6C2DEFD924B6663535A6E547C22FA6D0CE69E1EC03AEA70FFBC53A764FA6BFEA4C31209589784EFEF9A9D02FD1EBDE0EDF713029B0136DAAA523C92102918F298FFF2EE77120F2569F99B50EA18CB5AADCEC9D92CB2072E3F1DF0C4DA388B473476F0C972293BDD6481CEA31BB6A561C6567DCC31082575B46D90936AFF5C64F0CECB9F4F4C84FB875CAB0F4A9EDE4506267F3F770B901F5095C5D1FAA7E1599F58B08A904C83246E9DC82E7948F8F6588887603479A0DB7A7E283D5517C818E88C9D1EB73A1E675C81DFFD4E287D74DE385D9600023A41BAE018AB61188E799D64A544F573CC73FC03345C5FC7E25B5B0FF26105F3715C4D217069278B913541F18B43A3BA02A93330286E567CF15E6A97D6DD973082BC8534A60CA8F75E23B52B5A209F87CD1F3528CF9393A7353215CC8F08DEF0EE11F8E537098EB25FE801EB02CE55156B78DBCC29F4F47E2BF306CB88C96A27F94241F1C6CFE127F67336B452E5248E8579B36DFDEFDE3644EB14B3BEAE31B3B5DFDA97B82145BB091153BD8EA7B26727EE1C2E86F4FEF7B740E65CBA2653DE26ABC6158977B9B10C58B2B601150AE1D84874B125EE98D1C1A9B6D8488C4585AA8917C6D405ED1801150F03B1FA245C238E7B5C9985D35448ADE86077758D625D7482145454A8827C3714B7255C17D09D1B91417893165296628DC27405B621B2462C0EA6CB5F3A0871760F9648AB04D903C6E0B107FAD6D22A7C4F7A0D587CDC9215AB3FBF244DA93A3EB08C04841AC1A1023E8B40931F4B85998FFFC5333FAA2BC6AE9FA9C1FAF993BB63B0F67D63EE2E7637AA77C05ECAF72931534954A6D8953B38424C8C7DC5CF43FA561030307A75A823CCEF784CBFE984AFC9D19F909439D392D6DE15D2E230BEF1209BA5DD4FFF82595824F4B6657D8BEBBFC52215066AA344A22EF7E73478239E37CDA9D23DA3AF20D223674F4BAF709502967B020775784131F25F25F29A76AF5EB2ACDFF3A070110D5F5F508B06530A382EBD760D6A601AFC20F9BA0066752B406ED357220017991BD5786A92AAB6D3836C3F5D05BB42E40FAA45A7C59C0DD26A0AF8F2EBBE5B06A41A6F7F0A5863FD671A24DB77FD59BAA00FB4F510D3B554395C0B5BD794E9D0EFD00EAE31C7F012E1800DFCDB943A432C2A6E2D1A974C2505EE092F23D55E1CB27B08461D9F84C97F6D51F21C008CAE74066CB5FE0D701BC5DA72983554AC4956DA2866CB8E3C56C3D3BCC1C56B67F504FA89A46A162C4542AA39CFAAA28940D6BB1855B6C7F31ADA66414844F09B983966BE13C9009F5F1DE0C017290EEFDA9D3D9FC40D0C613D991EEFA053C1BCE1C860EFDA59F783D239683BE3B081CC23628E3DA4B60E12FBB2257175F9023D2E304C083E00D1062D42D0A3E8B85BAD5428EF8777546A9367994E210BDB271E03448F50A2FAD7E7B148C8BFB906DB25168D1DF04724991A882A589C6554A8EF0C1A1113D3EBBAAA81A6D1A3E0443C16E6B30100A3D03F6972CC6E2F8847EDECF6C16608E1E2F844129734ACB0082BA9562AC0647081A2E76C4BE0F7CDA1A3E42F0A0D5BFAB4986F87482F9EAA8D72325292D3F81A7F6A97D1786901BEF5D795FA4606B95306617EA336389796D7181BB6E8B7F2538328CA7DE7EAE29FF4C334C42945B5BB7C73FE109D5AE83A36AC901CC7334B7A8EDD244816317270F0583B280FE5121632C4D8901D4C3DA1121CC25D4D92A670E6A93562B52F14FBD2BE3C78CA14A07BF32E69C7AC96A9FF84477CF8B38DE80DAE130D9D94B00B57AE841F080E4228D57AA237C34A1DC7D65465A32785E03D984D6B451EBE075251048C5419642D6609456A8BE0EDE3DC9602E6F69A3A6F1694E0BF4657C17AA291EEDCF8DDF0AC103DE825BA7EF4DDEF7C812B123CA2571AB65550611232787EB59178963D8CD1812C78AD08E45BDF7A84296DC0556ACB7E455379DE6E0B2A6C0149AF5FCDEFDBC19AE3912B1CCF2FFDF8830CBC4D4E3F7A2DF5E73092A2DD6F1CE331F0C1FE9D926CB72C16EC0126C77C3AE73B2C84E3EF4E5E513BF7042200850926C508B0261C344F25ED35F6716AA7B9C51E16929AF7797ECDC8B8748E2DA0AB22AAA13DDDCDE6C6F61875361632DAB3318E2E2227E4C4DAA79D412BADD93B2491D860AA253D4A1FDF6CA43C495425ABE0A6358009F3F2F050B66BD22E925CCA38251A5BD22DBBCAF75365F36379EE9850989BD63E7D8AE49EBEC3858D247417779E14D562152B9EF9B767B0001028CC889B827C9E4709733FCA43D00837DF928ECAFA9E8D3D3CB5FB27E6F86ED6552FC2EB061279C3D1AB513CBC3AF41174191D7896E292D9C12AA070B910EF7997562E41B6B82FCF1D36185085C03C2C5E7E68FB0C672F62A9DF0CF9201B226E565E2FFD77049D02B60BA67EEE3C08563CBEDF7CE7E0EE6B332EF17245CA35A073C83B0AB6ABD2C8D47145117ADA6E5DD99182A809F30A3627087721DDC300A49649F381F1409BB8DAABC8E6AC1080626431642E0EE5954071DCF1C046EFE50D41609A6FFA89D937DAFD7A44B29C91A8D2DF13617FC8EC00ABF9C4F738DBA1C473FB847DD0688C8FDCC3D71A70EFF17DD546A54DA5C4233E6C4C63EEF65FF741902B77F9D15C4039085525425F594C8D0D034F0B1964401A4210B668DDE6054332D55EB2EE2B72A00F7EBAC6DE28F03B538AAC413B0299F439DC5838DE9F59E50FF7D7579262EA17446F2FB5FBD581730668E961F2B022AEEE0EB962353667666D2C16149A7542566B6667C30B5088A0FC72F9B2405E6F15A09C853A93A07AF0A29A59B3475C42098141FF7B5553F5FE18F7764830F7BA5263C090811F067095344C68FBFDE06BA9B3DE20F768F12202C145A82AEEEDA9E2F6BA82FFF266DB7BB78125ADDAABC3E342DFF05909EC6CFA7A78056072D42F34851983588CED4F71B59B41344F44A7BF6A05CA96327C014F5BC2A834DCE237111C8B51336A12EE235C58AD7855C012813B6B05F6487CDD28E4B30DBF449C3DC336535FE51EC161CA8E91B4F8EC2488295105665351FEE6E1CC3D5B96CA1E2CEF80E324A5E86AC44CC38714FA4E7627B6313C0FDCA683F31566767BABDE2CD3F918046ACD73B57D89BC028017F33DC6BF5A9ACC4997186D393FE1539AB9114169AE2DC0CC271E9AE5E36E4E2EDE019B1D110010060AC9794081C557B8B4AD75FA9AE3B5F128461C9525DC309D645888B84AFEF639015D570B91DFF351E1E215ED47F2A8F06EA4A8762D92832E987139EC3AF4B5DC94A8B36CB53FB6BAEC3C53C36275D9F925CE9B4D3334A8848D733E7F5DF165A7CBA4DF0ACFB4BD291AC1D19C98187A9CA03F8C654F7F54424C7871CB1544A8C49EF52AE7C85CC85860513F2141A2C4FA7E7F05C3CF5775E29E0CF890D779F2119FF83104351183B749B3D1065E6F5DAC9D3A284B7DBA2CC8EBD81D3FD4FE745430E7974D0744E7E3E09596D6908E83168E164F4FA329EF4A02D16286D170CFB7A34B74A091F7F0004C966F9794C058AC3F82F9BA6BA8B80E1827D0E6BA10BD6AC5C159A5891D3833CED30A8DF6B257CE6EBA8A23819EC99F7939CCB4ACBDB277B96CE53115C884E085EBDCE25D8150081980C384201946555EC706D3974CB1F2A7B61F902EFCB330FE5E37FADBEE7B1102A04DFA8388179C00794867E097C87AED4B39B345080BA8E3C89BE1E3709B234FB1EAD522B0F56A0C69462BDDA10085AA7EC86BD93D98C5A9A818F21F7558B89BDE0372D673FE015045E0847606ABA7102134ABB1B41AB581AAE5F27BD7EF6E74E00E345C6AB3E8A88743D22AA2958F5194943EA07C3D2D84DFFCAF61170C5365C0083E2BE901BC671B799577055718AC37D1365C21626A3A0FD06FFCD55472FD1E58E0C0B89AFDDEED5EBF75BA35A5F79ECB9F84F2461D064ED33BFB2481AE872467089A9A5834E72E2AB15D06CAF3E9F0DC88246B8BDFD8AAA242C163A2AD75437151833F261EEFAB49BDFAF23A472BE2A1ED6A63E1977BA8F17A6EB1B5FCB03DA340500C82C719BD25892F947E9B6C3574E0EBF6E7BFC2AB270E5369B02311F65E73C8A779B66546D094F15FE135E78401E4109DB6873CAA68D38DABA9336B04841541AC880137206A335414248791CB0802A90236DD934872D838DA12F805FAAA47F7A9CCE3651419BE73EC2CEAA9E1E3CC83659968BBDAC270EDB9FD6B1AFA5D39CA5E4B85F9AE9A522B11BD1099DE5704C245306D941E1D8398B090D997BEBB51040BF0615A1D7D6597E8AFF1FB52FDB5FBF5950A2B3A2CEC73FBF8C7F6BD83B0BC8B22F9CBE6980D716F97A9A7F61A17612571BF32E6D686027AC5308C0391A65A0DEF5BCDA4A54BA7BF6E1F631A36A9499BCCCF22FF45843209F2A9D61827D8E9FE10A357444780015835AB6690652FA4B8E3E81180936938891AAB150DE7C79EDCDFA1014721E004744EBEEA6730B945A6479E9665941A486B4870252ABB82FA7FACD484DB275747E717DBB0283084144CF3612D69E50EC1C96BC70EC447ED15D2540B9128ECF8549896CCA53CAE1A0226C2C297C39737D31E809F68DDD2C1232D5E455FAC369A102A1AF5D17589C389E3B496F87C12386B9B1CD6AE5E270A34152E72540023416A3502A89364AC187D33F1B4235C408FB827720EDC5371622B586C16DB073DE2CB15F0BD2EF67430A24ACB24312FFBABAEA83C8F6FAFEBBB6420F2436124F786E5EBE7229E7A6FF89D3E3DBFB5AB7195C6265BE34F35EDF9E2F83674192B6D77AD27EDD88E99ABE09A9BF93A330B096D6623E4C8D4402361AAEECAC80274970B87444A2A9CA547C0B266268DA3B75DB7A3B7ACA6C00A2F4456840355B1A01C368574C913DC0C470C12A050C6A821EBE87CEDC03E8E9CCE6B94E56FBE504EAEB96F2E7FC391810D38B4EA497376CDB5DE81515B978CA44EE4088B09E60A7C62C1718A33E5351597848A06BEEB442BA89EF94D120BD5C318B00E75E319A2E6FA0515EDB878DA84C1009C19E1058AEB380529519DE842C563FE38A8A154431EF69AECAA5F88FD80377AAF37BBE163BB17629BC2A1E9486396EEA81D7F27EF24EFACC1E7284143181F1BDC0240D08540C157750A5030EB49C655695F173A27F9BCB6BA18692AA4BB15933BC7F6D2094AED3FE69267228D20CD0C99709ED31ED34D38B4046837137B1A269E490606E61649B14AA07027F24F9ABC980947D3AA9FB7FAED174FFF52AE352D092CD85DC49DEB119435045FB50E225A18EA9475C135CE9DD9EED35BD50C0B94F065BDC415624B771096F3D960825CD0AA2B22B68AF2079FC3FB8EC249CF031B6FFD521ACC8AD8E18EA9525FDC0BDA9BD0CE2573D4B2CFD4D735C3BA97287337B1ACFF14410D7DD0C0DD853C250DB800036DB42EDAFE70F85B93DDDFD56F4207AAC0ECF3279C1C54EB00AF8FD7897A52FAFA241D6FE48843072FBB1128556D8D8B7E5A0BA36FB23B5292638B655A8BF66B7503ED216CB2B7FDEA8BB8ACBC6EFEA1537BAF3DEC79EF70ECC8225BD915D62ECF58292CB620403CA9CC03C9B69480366B7C09BFD07975A6998CA06779D9AF6F076BC242784C088A01B5CD37D7E5903FB2B6BF1FE7C41C7FA0590E5B32B667EB8BE0B2F23843100CF3C1CBC5066885841FF018C3637A31D790EA74686BF99B49EECBA0CABACA9F3B3EF137A08C1286D83CAFA171C60CA7F061379349CFFF5D0C94CF6B7EAC169584063ECA2A6EAD49E0881FF6558539B039C5E2AA07F6910993D48CDB650894B408528280A82FE765BAA87838C2A6A741EED77D3C58DE59BEA6B96AED885434D25707CA9DCE76E62178E90C50FDC0FABBEF1DD36F0DBEB836A09511C38A62D43D71BCC7053270A000C512FAF7D51A73883B134CA36B3E16045054B082E9A2D802D4D237DEA54C87D66125F3A0CDED0064EBA8FA59A5CCE41C5DB15B5D49B96AC98479B28F3EEB065DD524A912925F15E9F5FC7C250EC271F30502E86F55EE23EE78615DF4D9521BC52E6081D6A951193FE1540E96F47E3C55C5827CE028570528B7CF2B0C8E6B9331FCEE8B2E15CA3FD76C3D008EE02B72D8DEC6A203231B02BE6C500A4DC747257F6AE61D379EB879573D4F42C7AFAF017B58698B0D6B606DD2CCF47460A61F4EE4E74BFCF76E3E5CC45EF24AAA3FE261922A9BD843C1A8899BF710CE6C5BAFA1A201F77EB8A862C97A1E4AFBFBCB7CF20EAADC6C4D1E315FFA7DF52D45D94D4C47AFAA83392B6508445E19C46F68CBE9413879ABA473F691FF036A13019DD1D0BB5335F2274CD9E0477176C5260028CC25DC26D3644DBB15E04F07897C5CC23654D78BF03F82D23D2FA358A74F0E30766F0DFBF630E73BECE51EF6CC5F52CC46EAD3EB5F584FEB54938A16C0CD7F23674976E4A6E6E7D02A3C8DF2A886083ADFF8AEC67166F3A33909AC282A1A1087C3BFCBA3CE174C8087DA85062BF765A62DB1A0638EED0B5B1E105EEC563E91C7A5AF93E6DC214CE713C6B4827139AB3E23A70B6A4301E3AD29A3EED5B965DF446C0B532D4EA4D429CAED7E14CDC7200BEBE1A194809BF116608F08376DD9A99CF174590A1AFF598637B0AB2961E01FCF5612858A153B0A063303647D0E0C8A2B30D1FAF6F38029AAA47EB0CD19A8D253223FB89102A199360A8317429965F030710DE87BB1ED617E370EDC370FC5FAB262238C7073E2598C85DB55CC2A508D997669D4FA299C09258184468F699F4311E56E60FB4BAE98341A93BB3FA251C7A0772FB87B104B0334B30DF0872B63C967ED5E2FDCF748CD6F77F4BEA4F96E05C12B00745ADA2792D9C9DC575C1B6C69E1C809ED0F4430BFE47EA34323208CA0AE4AD539505CE40FB0F4C777468A262F6D2077A7B19683348C7797AD9DD59D9C69C8545410363AA29FFD45A614CD16E6317BDBBD70B5B5DF7235B4925B01DEDE95AF03B42C9EBCF70248366621FEFF957F012C424AF62A4438446ADB8D3F0F8618DC50B00DA57495C3ECE45062967C6C7C2ADBCE1FCF947BC9C4D34E88EA8F739EEEB371CA8A4A082D1DF51B1E32B1A9F81B6BE014E9DCA1C9E6A18BACA16ADF234FBC8EB0910BE652ED50A97395263F1B5A3F61605FA1F7E638DCFAF174A0C54FA522732B33319F36F3A54E656D917D501A131895E6DC4A1DE88B945DC59B01DC4CB96B654CD29B1B6985ECB0B3F7D5A3CC3698DFACCBD0F25F9A679B12FB0B62BFD95010C8CFD8C583FB80372DCCDFAC8A1A43BAAC1C83747B05079C89CAD51D0E8EAC26F756AA79137F7C08AF2B3C77E512F30D21515728B2BD60C72FF4F9AAB0863132E5E4D51FFC32391DF03090994B00DB9FDD7D5ECBA981AC02F2FF1B50195BCBE56E3DCB02229DFE37C2F151B4A2BB38AE285BECDB24656E3C504CF9ECFD22853B7FE2DC0B7C13AA079D9377DA04B761D44F8F4AD224C0F8C69948F4DFD3D0D376CD435AF143AA50BF60105604043A321CCEF3A0D067257C7ED8A65818AD78146A81D05E6205613694D4D556B314D035922796AE5CD2E56D507A83111DA6B857EBBF9A8ADAA8571E5310EC365C2BD8AFEC13FA41A30951971DD55A026268A1C56610B81F1C1A2631EF85CFAB4A2ED45EFE2342E6064032D7DC332692E0F2AF8C854EC598A34ED25A42F82813D85E1805C3E45DA8096994449EAB134DBA4BBFB76A2EB314D02D65F862BC5BE2099CF4809B26D162C471347407D1840F4A615B78102CDEA20E63FC31D33AE0D1503A9E58F0C0DC0F4CF1FF04FA4945FFF017A8C745D2F933864679EB4387FD3D0F4F5884D557A6F337DB46E81FB4179E2E96A51952C2C5972C12B3C46A2A9F3CC364779A0E83308ECDD05D3C4A6F6B4CADBA810CD6347903B58FF6A47552F7F30286FC9102C91DDCBCB0320FC7034B479A035EA4C4958DC20D03FD7F60531D9BB6BB8978169E1750C78F10FCCD2DD81834412A4CB4F20531F3C42CC830675C14F0EE0A099A068FE14CA5E1EA2291BED39AF346B8FAB8D099B8F88287A547FC543C976891F784C40C1D8753C5206E2FC13E213DBB28962E86F424EF0C4420B536EEADABD8B07DC24AF1AF9C5A2DEBC5950EA80DD4E5343F5B632333EA65C53CA4A0D737800FAE7E60EE9E4FCC63338B50EB1E83398F89D4919AE680ABA7CBFE6F2D6F7EBAF66531E657C05D1FA48CD3EC1A34B705FE0B4EA8420BBA88B32EF7EED029E34D2E0A4697C435E59A23B99B890D2500ED3F77956BD7B45705AA3CDEB03936A5667AF65D1C24D88F9FD5BC0492269A090553B45AD90FA351DD98CDC373BF9DB07225535BFB41642BEAB24F094A5F67CB227DE0B624D046AE5C9810C5EB3CF9D2D14640AF2BFB1D82F8810FF36EF38780BC7876AD7AF8DD13CCD93DCA29F385E1EFC41B8B309AC2EA8DADE5EFD6B11C4CF4DA06191E9A8D419F699BAF28BF2AF08CB8F938413E5304162FE9996CC062538711E65953D242D811096EC42CB067239E1FFEE7F33D3A97ADD0B1FFDE98C51BFB3BDC3B979C342BA1B25F9AFFCA6CF7EF8BE6FF786C4073A57F6D0D98F052B7D00A1CBC3CB7777CDEC4730AEFC9819CF21BBD0A4A5F2024A6477D37F5ACE6B021BA7A1E6528A3B8B07377B56088419DDD636F159C035DFFC5BF5626CEF45015D08562D84C156B3885C3DDCF90868B4F7BB0D335971A86A7653B153AB8DAF8756C0A0D6BBCDE3269C98323D0A0DE4000465FDC24BD1574E6DE64AC09D6C190A80439BFAC0138A66119B4A6FF1163320E730626FD2EFF740482B0E76438387A52EF8FE83ED1A519B69E904C97407654AFDF70A53E7DEA868B3D9D0C6F56D23A4282F67386A8351182EBD441977EDA6AA1EC34A9E9E25CC45BE686B52181837350BE8B653F18C5968CD4614119EA79B5B3F57164A8779CFA6A07636F7D5BB6E2231A820984EB2375ECBBA634C5A8223870B6591121394F766EA1E178C99942A7B06E47ECAAEA88A1B07AC81584FAF14B19F08CA9D6DA1FDB402B6BD7F5260BB67D73548AE308452FE40D49AC5F2463FAC06CA16BB3296EA7B5EC63D6C6B81B03C368F905F2FD8036D7BC4262A0832F31F9F3522346280233A2D965D12162F86760DD535E812313C57CA3F47CE732D27FDFCD81A979931B03A83A4C2B734575693652A0620E3BFF982FBD47D678AF0D634D2112BB9C377824560EEC3A98DF9EF655B06D2792FBC4550E289E8B9989D1E14D8FE4576A270155E97B3FF5877DAA1C872FE165AD05C5AB6DD17A4BF754FADD7588234CA2F747984974BA988E17E96E43334B5BB02F10CF56370C161A29C29576F8813B263C32E0B5AC0F7AB39E8457AFFC83239A186838582E8AA43891B679F403596684D3B76CE354C706FE73D1084014D1A1F33FBC4156DA539E6F37FBAAE59CFACA57309865008C9558610819B825FC9E2DB70374D89B03E67EAB0DF61148839B771B5F24E407A36B76B9C49F76034B3659DBA5BCC444826F36C00DF56CD10572FB3C256D8C342399C9139CD49DCFAFDA49BACA2A45148CC9E290A9047CF1617B18FD33772EC1F10A5080A9529E0293BA91BD5486A7129C9675564136EC1A450DAB2ADB084B35764D54F8C00313D2B5D7BB0EE4E0FEF268D7C32C858F123CB2A63E02E0C8D9B1B48BBEC50C129AD20D0C7B6117203349857A3FAA13D920C9596607C044284ECA65A92BBC6B51AE8DEA57DB7DE03858694508F91399E8789E59140FE2E1AA215D102FEF6B5E63E11F996FD861BC22F00A3D988F60E7D8BC777C5B383528166373EDB951E6B9605A4742D4E8F34177189164EAAB8FE5DCC5A3FA4559D97E2AACE3CDEBC68D3D184EDF0D8FA304AE85906B4697061FD23C91B28D4754EA9953AD09E042C98456280359F9D4A273DCE186377AB4F0EB07D65E26BCB8C28500509442B69C931FB64DEDFB4F16FDCF76993087D88363D411E0C14E4D5A569991B3E123A16C64EEF0B435E86989513F0E4EF8F1375F4A4B920C67FA75CE938E998C8546A790B5EF28D76E930A68E4A49DF412FC463651E88D11D2C8FCDACF7A5311EA57D31A633EE5B0A7802B9002C6C54EBF64892C6E2647E59BEC47A66C0ED4CBCA74E0FD342B2AFB21AEF2F4FD9638A9FD28F606F3D6AC66AD1B88312D6A4D89C28F4DFC05EB5D030E6318CC3B56260F44B7CCCFD0B1AEE5C5B40248D0F883C639CF53C37D6B95D09589F4CFACA3BAF3EBA0E79658A263A484C9585B3A870856684D25EF924F6E7C70E7971232B26112729A33EBFD479EAAAA23CA0BC7133FB3305CF0ABDCAEBF37207AE4953A9853D56A12B1F2CBC1D112E53173C319B9F6BF55EF6CCA149E69812040EA261BA33EDDF5B3904126D95C7B4B0120FEF1771E4AA4EDF4554185E71825FB2AC078ACAE4214D86BE4A5EB3C2010B25C86BEB5C3F6BE897DC8BDDB7DD8F14A27C9D1EEC639CDA8DAFBA34A5BADC82A76F92BAA084319B0965FDDA2F12EB838CEEEE7360EC6D5B0445277563E99CF837D08E3171462B98F2D27FD336CA12A727BD07EFAA2C0609A0A402463F3882472FC29DBD9B111EB6EF3752F23432949572D7ADA79C8D05AF927454E9564A37B9CD779E7E3FD7D8EECF959E1338560A2C50C96D158C6002EA821A448D529642D44393330EEBA5898BEEEB2EF86CC795A20F21A559532EF1BE7C33BE76BF305C88125C7C9599666995AB0A2B9C2A4DBD48BE16F32BFE8E7CB535E4AC274EEEC3A10355559CC84855F82EF6C311A121391EBDC2776B8E78CC3E7E5589061F8887506E51674BBAAE7E805ECB7367ED80885E390201F19815260C71B100B059BA2C5C4C17160AFAF8A73C675381A7474682C11BF44B34DFB5B23B700ABED93A9807D2B17BD0CCBAF69E2876B71CECEFAC85ED19D4CDA05A5379A22EEF77F55313B2F78FA18A298CD521232F6009D9DF1AB65902A2AC4555FA9CA819B662015060655B1C56A3C9195B7EE93A8DD31239C2141E88FAFEDEEE81480C8F1A872DF9A2F5D760316638FA0D1C2F6FB4F813D73747E464DC89A65B13B4E424F44BEE0DAAB31D18F20E0561D9278A7168042842115A807E558E874CB6137417F7404AAAE09B19E5AECB708401A882BD5EC03E6A1412FB8FA796E5F3D05B216E920753A794711B7CC0B72285C0CB411E003E30549B7D8052D83B73CDB0E3831761E332150ECC4374505F66933171F6EA42C2AC24F99B877A425786F474C61AC8E712730014EE1F4D8B77790651538A889111FFD6757DE55BF44CF45D01315676CF1E7BA517CE0BA7CFD0AA11386144C340A83DB1F359CEA4EC5269B651AFF47AE3F0E34B8613C4E85E1874C7AFEAA7D79EA55B26969232C9FFD9EF19F44F7E97EF51EA98B82747C2A04C2A980AA46EB443675D165C108D1DB402ABE5C563B33A731265C89092294A221683CFFFB38502C1E6D11B40E817BDF0968FA794D76C12586830B3A3C73AB3B9E14AEF9A22B57BF8C79AC0A9EC8B9CA4649B56D1802B62C2433916864E626BD325085F8B8BE759592E9A5C7E9C8B42F1FB14D0C6988ED894D88FFEB37FB9E16C9F712A8CF6DE49CD4986D28BBE40BC4CDBCF25DA6162D4B4ED379A2A13DC40250AF3CF93C8EFF0FA573E5947704DEE8525F104F03319CAC03F818662A7129223003CA9995C78E7F3E6B1371CE760F4121CB39A6701F261153957200C52D71CCF0D840599AC3F985A51221354A18BFE78C98DC613C0551DD0F1628084ED75FC3BC2410F7F7D63D250E0508FC56986442848EAE34C99054D181B1C9E7772E01FF5E365D0603CC312AD8BD865DACEFB8A526BED8034936EA251D67D29D1C9EA2995B55BE9537725343EA32462153B6F1CFE3887D57C83EC682493C1E7139489C5C51D82FC7CE971C5F9511473C13941777CE85FC1CD6AA0AE5F5AFCEB518481236B784DB8FC969DA7CF753D9218E9E2244836B04980E3B18028C7EA370B820F3F1606C8C0496E9E73BC7A8D110A1DA35F1EB6F663C684D82C30F048AE16E4D679DF4FE1E66C308C64850DE2006443098C54C024206E8A05B48EFA6B4FB25227F8BB79108A7E9F15BF2CCE43F48C3CB70B60700106D7D436CB198DB4EA12B9E4B40648509278759D8BAA85BF3BD3F1600C6EDA4CC845CAC5394E0B0E749342AA9ABF540B8A3B236CB6506C926BD1D706AC104F8E0A7EBDEF9A30BBE15AEAAE5058D1F5FF0FD749249F2DD876D40649E77172214BE2B14E24DAB825D25C065285E1595C46D2C2B1DD6A72E792226F1E355C9A5D78DFA0D4F3DB7FBCC008BC6D17C6691169232F66B728ED5E383AC5D0BCE756AD9DCA10AB35AF9801AC566A3084987A563F3E054AF238E85385473CCA8F93DDFA056A9CED0C7BD3D934946B8D64C09FDDDE9E910E3BE450A552CA756DD97F5FD99FA58094EA8240A2EEB33DC65F78AF1F55EB6F06B5881292BE40A04F17D97DAD3F1E5030400FFFC1629B3A701294B7B204FF2746654BEEA52915429D16DD8C5FF18A7858632C45DC31C2009B6CEADBCB75F38E940CA3D8E73A7746232122D515114DAFF9313E4037218C2D6733EA47BFA36B85F6F55E2C31185F1986F9969134BD1310D2D47B053B25232210F06D32702FD22BBA5806A7CDC0A383350EC77CEFAEA910005F1F31726C223D52B826A4EA3D9BCD435B306872A5A90F897F398CA27363C3DF3E1D69DD8FDD426B12EFCE0D71786BDF59CE131DA72AB70621FDD031B14020693A17DF3ABB22A2290E6EF4F8CF6D25844F078B1EA4325B2CE393407866825471E34E4642CC96B8ECFD0F8E654F8349AA137D7FD03A1D514D1899E17847B3496AF5105A31DF4A4A71CA3CAA07B11829DD22E848EFAA23DE0EC77A0CEBAFA22924809FD54E64F9219AEDE66EE6D19CF0528641854E22DB18F9853017B7C0B5954170DB7D96310FAE8CFFC92CAF6478DBF4B265B9CFA76D8699AF733C8A4BCEAA914BDD4A70734CD9FA2FB94B59C5D6A206430F5384BEBB4E74BBC9C16C0448D5CB6EB3AA77C17544D5D6C8F504CFBDF246709D33742990AFA77EB64188936F49FF82291BDE58E733B1A7C2FCAF2B1014393EA6B591998CBD0910C9679D89C0A66D186C6653C9300B5FE5E30ECB175FBF200413B4A0AEEE699B59D7AE41962D01747E8F3B8EB4B91E92505212ED8A6EA88E48C1F3B049B86CA42A9054C2177692529DFB2E77D617A850CEDE9556051E6EB55FFD93196FC3DF28A112D7BF3C2E44AFC52A48538ED2289B8E35F8FF2740F79A62ECEECCE7EDA20468D9BED9609ABE7989D776D13B794CFF51A09F71F94505B93AA28119B83E8A69539D5B5A530390D4C0914DC16C6F41A12EE9DD586ABBA36FA9681F51E3A5CCF5BB1BEACC0AA9FDB377EF2136F48B6BC201D16E37D3E41CF6194F1418C9D91F5A71049733118CB9EEA6E7D1BCC26C319F2F88B4F1FB6AF4A4C5F47BDB117486C7A315C2BF114DF9DCFBD867D26B886722889DEE607698D354954E6AB9468AC07346A5B1B52CADD96C1B64AFCF380CA67BF02806A047BB496D37BCC264F09388E8F624AB0E806E75F3FC7A3D0B21DC65F8BD814DD2E08860663382AFA16C5268723F1F15A58E4785B9441D8CE80CBA47FCCADA02441A72C7C67308AA80F9B46D8F2EE5211A34327B08C315A862EC0A8FC560F8BFE71A24E0C11E0D87B186DD915CFB9410EADD96C7E472D50EDF05508DD9E8E557DB2E0F77B87DA61BBC49700CE46CDA0BB6E3F222794FAC93414E7BEE78915F7338BF97F117F9B3E364B9F0D3E1DC78B7AF1C45FA2054821EAF05220C533E2BA86FD6A2FE1AF64E2F7D25989F3DE44C5592327C3CCF464413C33FA73D82A04D04E394690608B0425FA70AFFE106369F5515A7A026564F4B7C0409650D9B02DDE5E09FA833C856423D524A7078DD1B2CB513D4974DC3A08D731A1A6A4383BAF92BED6F592FA605638615ED93A9F9D8FF1085403A2B1C54F0993E7C2B2A8CB5A21B18B41BB3D9546443DAE7D073164B416F39DAA4D34D127EF8F664AC896EC29F10EE6E2861E6A1B600C863ADF18E92E4F39697303CB8699A803DCFF98B594E4B5476E86D5FAFBFA8A79770AC56071EC4827AB5C066FEF1CB6325198817E598EDF1DCF33B4DE4382BE95A4C883F211ADB5079EA4EDC8A172FF90D0C8D7267361E84D8D19635F0873FC3C3CE9A17F34857282A105977AC175D40131E88B218D619722E4C6F9A703528FC470627892B85155300CF5A0C6AF13976809217731BD8F963BA688B3DF9024E941E3FF4851214DF88BF466484B477E0FF9830AF338DFABE56B2A37558FB7500C6226D1E29D586F37C334FD5AA3FA37674722CF38A5EF814B38E99533903E076E19371E95BD0B38ADDB71D0B4C5D95453D437259A785F5CCF9F4A6B314786862C9E517E6A5A1F5081D36ADB6F8E2CAF3F648DC06B0D1D23A8A6D64D61C8C1A01A9EBA2D73B07D5A406ABF71B001164CD295C7966D11F2AB3A68EB828EA67CB3DB0006A3A852996EB8E7D44525EE2FC945B42BB9128FD341093079C26ED913A20458D38AF65E231B0528096218B5BF4AD27C9DA3B294656E391988ABB08FF656E6C8216FA93FE97ACC7F5B15B7C81336EA12EF2D7F1603DB8FC1B9484BBB25CD76B35264A1C99D8547FB636C54201CDE0735EA81C5FC8EA29248C809B129A46B73CFD6A2A180D1804947FA68457341A2521013E57677440D5E8937E6696F5A6DAAE353D57AB97D3F27276327617604507096E2AD3071CFC2DA9D30EB05E9A1793F525F2A98F0DAC9427391E7E5707181F66345726E18C9961E263407930BDA462146447BFD325BAAFFD4E0BA885B761A4ABDB65AF3635D4FEF92BE7C056DE999482C304D84DFCFC815BF0232056CA4BC4DF64E67D68EE40CE5354C1446CAF9DE1C02988050D24547C5DB4DD401B1458A6E102A160DDBC7DA31CD7F2417D1854541DC04C2B7B76C416F1A2934F1AA9E58101BEAB141486B5E8D152CA3F3E8531D3E376B5059CD40BFB6C7A67E96588370A43E83CA66E69BAE419CB6D318670E119B436EA8949E3D9246DB5410A87325AA997F49AD46D64AB291EB61AC7122A60A5D010F0F153C6EC9706AB2A4CF38783B7E7164696117BA0A227083C2938C93FA9A3B63ED3E59D97101D13C8D737B8064D71BF0D8114D4DA7F7A48F8CA6D73DD33C3F114C8ED1FDC5ECC0403402AD77E35EA23B7AEB24500E55B77C90FCD2EDB067672B32B887203DF18A6BBF0AF2965716AC36D8EFE5D1F6A04CD1227DA93BC9098D187572E1CD75D555D8B887B41B1507FF595233D7F83A3711E3BEC2045F003E9B4118A133B52CDFAD0C6B9B090DE049AB21E470C2B93A1D6E87CC948798B3DC6E3A2DFF3B0A399B31D4E873463D3C876ECDE7692A9F5DE180DC7E18C39BCDEB7BC12D001FF1D41722FE09FED86EBBD293ECB2D5C13D7F2A2F4F2DA1105C82DABA811B37A67049DE072488BACE0A9FAF4E268A41EE0DC44CCFAC8514D893546F3A26B4D96841D1ABD35A939242731AD33796E7AEDF1A89B0D1027F51827787B97D20F72E05710544CD0C5826CE0E62244994816520D8F4B06B8B71B7E7AFA1DB1CEA2572DCA47E0666AE2E49F7848D65884742DF4E4BCEE4E25D270D7ACCA24E99D2A598845148FFB7E0D10CF9431CF36806277D1590397368B4461E248B3E45A8D80B6772B1643138915FE9B6D027DECC2A3C58457632805058B1C40B748E803EFCC77AE9DD1DC019C76A74B1F0E07E20679D7084F66892734DF226CF1ABAD2E71D5CED8BE8BCE5B4CFD4A2D6791280558DE0FD66F7EF6E5CE7F77098B051A9D137E72BB597C1CCBA07A761373A871CFE6E410D51A004A240722AD130CA1D56E98A8AC432B8EEB557123DFEBDD260E55E0394361E2148F8955F1199E1712AEEB308B23890FB6AAF7C78A06BB91ED8692A02767F6A533F00CF9B6CED291267AA5EBA11E2587EB5DC3E0D7C5DE118E46FFED52F6F174A08F4477D1E2D96ABE5A00E9AA01FDE74F44F08FEC88D1DAB4328502987A1617B660FC10F2903F0E3FE7D83B33CB25CD3C785EA14B383B0947341FC9A6742FE077D4F22F6C6D2737DEDF756F70B61F810E6DD2C2EED05D1C9C10AC1AD1E623AEF4700A8A4E5A29FA756B54B7E59EF3E0097CE4C09695ADAF625D4FF72EF48E1D7E0D2588AF3F939BCDB38BB0BBDB66BF850EA59DAFB33B293E2ADF286989004B9E4E385374680CD4B268E36899D0EA5A859717C495DB7551B1E75C83998E07C3E1B33A1A8AEB4CC2C4144E8F08FF02F1DEEF71F47E0C5B925BC753E14439E6B9F0538B759E28F8EC351F92FAE289F63F1731149ACD20455CAA65EACFA7DC5C3439A9CDC1A706B04949EFDE0759CAF71EA50821548181250630E394F65E9BD1097BE0707CAD6EF41F8FB8AE9C416CF61FC63E5A8404E595C3BF9DDD0DD7AAA1386E4D4539749CFE437552416C76E928CB6538836616746353D20F326A7B00F3FFBD8984F0A319D05D0519D5AC49116544612244F22909B9BD3F3150C82FDF571CCC4D1F068F2C23B656F0C733CDAA42D2103F8628AEAE44F97E9EE9487A97D54A6434E36CEE0AF3B26594A780106CC7C4E5A2BFAC6DDCAF1C5227F9FB93F2DCA85D5E85E5E1FE8B67E72D30D34C7EABC88241CA0C4EF85CB32345923FF98FA6C7885167342DE0C90CA5844D4AC2D380195EC3FF1DB5B3AC927C030F68279436A3109AD42F966C609C1AE88BE1FC9DFAC589D18F2CEE3F56AA4E32040068877FAA8777C4EA6CE8E326BED6DA84D63563AA5F9B696D505FC0D133314221C883DEBB14C70C569A83EE315C97D9BFCD3A35B0B506821CBDE661AFC51A90D751F4F5F04BF4B38C9F5D08715EFC1A8306848FA73BA2357F845D80A7FC80C9A38AD13339EE6F9939238CAE449202C5DC1F471E4D237D
1
+ 1A399589A7FA0F24D60BD94F13E5AE8115690C5A589A312CDB7990FA047720BC82797471F64DD1F668BAAEA97B424AFC036B654B211B783DBD8EBEF0187D49B74FE42AD36551C46026A4763B7D2C5DA9434AE8AB15CDFD43FC924E60FE0F53BA18468531EF46D9137414A3BA203652DA5138ED819550C8013131BCA455D9DD52218372692E708E2A9A9A6273F7495DCE1CDDFAB4A01F7986FEC02B993AC0130210257B818DE3A4302A387F4224C0941C0CEBC1609C68A74DD2C614106F1ED6E6010FD1FA3F703D60016FC52FFA1D5928C480D4B5AE83FB824319ACCA8AABCCA056CCFC7626E140FDD7D93C355816C9022345D4B500F2DACEDD22FD2B73F92E038FE12487D9B3290AAED27160B8005D3CCEB482E7797823990C7FAA3C55D54DC373F6AF71C5A50C4EBD7BCE0D45AE006C24733131F4E3E56FBCF6AE2337BD64D5D5996EEB65FE7F7247E0119C19D2B0FCB201F4D6E70CE8552B76B4B7C13CDCC3219F5E62C61C3551A8E683888862D247C18EFA2B958654C68EEB6B70E0895FBB7590725BDF2DFB6B31F41873D38C08564BE80FE33A86839E1D1F8FCBD9224DDE5411DDF04D48FDE3481287EC7D7456DC75C2EFD5E7F2FFF2150AC310C462032C4FEECE38E827982419B02F20D0941FC909E859E8F2D34ECB2BD0F28857A14490700542D4DF5F90857C4F7F674256928068834170BF4E7EB985251383159125FCF0057C9A80AF7E4181A39CB0481313DC23F86B886D63FBD1D71FCFE962F8041A660E7D46B58FAF136F70B190060CB1ECA335CC044F4825E90DA3A79BE88E31480D0BCFFA4B921724C693049A8BCE898F6B77B1B3085DE9AA3CA43BA63CC580A2DE0D7FD4D0BFBE903683CDBAF92D0D40B4432ECECE5CE35E7F7A2CA9242AB15CEBC1D3A75AE20E1E35437FC615B39EE45AC09AC9A16EB5CFBB7787D4A8B9C0D56A2B5806562774F9494750E07D4BA0ECE4EB2AA7CA8D0356C79E01E339507118BA49E127938CD91C132B4339359808B861373A99EEB6C1B1E60015957BD22A4916872EE9360A6270154C270E9CB7E535071A3712D647DECD43F03C0D419EC9D9B98EDDD8BCB7634415FD68FC6B02DC0DA71212C3F10BF8E9563D83257617ECAFD050470E82BE3422700486F70D94B6960E2E6DD048DA3A4456AC959B5BE4A4C0EB647B5033A50AE2677BADD14EAFFFB43EFA97B209AB3B203A500A1728A986E55F09BE7923B90DD58D42758A76350C24AA04F50E4BBABC9DC0EA1926CA817238641B1B450518085D2E4038C2EA338AEA225AB59C29D6CA3A3F77F06A678E8056911657A2CE86E8D7B0E347DD6B8E2B57CBCE4B68E8439FCD7446BDA5F78E15AA6684873DD5B7A63D6E03C1D3B707A054BFE36BBDC88C65AF690FA169F5889E9A37DD751D44164FDC32AC7758CB6F2426229D00B8D2AABCCBFA3A56A26EDE96106A3F19E653E3826B499B2CF9DEBCA2276B9249307AE2CC97E0FF6924005645E36FC2A1CA3EAA0238A63AFE72AA996DB736F5FCA08B76FDADFEE41D7DC91DE0D3FFF809A9A111A310EFD333674CF9C8D7402C31BB19758AF0206ED1839F046CC3947B99E81CBD989F9662D9F201C05EBDC531563433A5A1CAEC5F7255A69C784BF9D536C30BDEEA5BDBFC86FC08A6C2162D1B06F64607E5039F6641BAABBA23B7C7A33C8838BF2285B69FCA892B64A16672D571FD4709CA7CC88AF66236A09AABB16AC759ADDEC3AA1CB484DE19B85F9BE9A4F2D5BA08BA9B1E6A3613FD033E02206D99F68D670B8198AB2BFD2754C085118EE994C496ABECED334D38B278B30F8CEF97C2679F5E4B6390338638D510756765AF0FE20FE3116DD21E15238AABC24F041A33329C3E58A4E47674E820EFA99BDD26B0333718491BF6399D7515684D329E6C1C65E5BC2FECC2CDCC13F11BF773A4BEB8D4E7248101912C7E50894F8E0E65B12BA8D6E4DC1A457630A6F5D888B00B749033FD4FE839F6C37E02CFC55BEBCE5DE5EDF073A064C8FB8D1E022F499C2E51740450325C5C49553008677708C2852CF6E905602C51F8B51E010E0F53B9E622C421A04CCD8827429FDE4CCB916F0439C63931ABCF4C8A0DFA6A88100AA5E6D4B1F542BB9DC66E19D3163925CA044E14567AF10F723EDC3F3E407D20DD8A312D833F3C491EA2B4ED2AB157415350F36762AAA3D08F4BC1DA8958958A49F6B13529AAB74FA924657B628C0858B7E29F07DF0895B1F3E5B756D78163DB7C0070DC87F30C53C6E1EEDD7799C8821498A74C21105CC9044E37B7AAB68341A801E55918BFEB19E8CDE0F5986D5BBE622F037C644D0C81AE81BE4E18405BD0B46118A20C81FCB646647BBA9F946EFD90DAE409074CEBC4D3B55DFA17F79A1B4141B7DD69DEABE623C6FFC525908A627DB31681BBEDC6DD53DBBCF08DA2C076226C19C6FAFB603102F6F78000C794DBAE8696C7D2DFAD2A5F30F4134E55259F7A0E2841EBB2361E64328B42B19B0A848CFCD99C26FCBB47EDD9B7F3154A8078178FD651B90797C649CD69950BFACF75724F2CE7BA88C6EFEB9084C5FE68FDB594924593789EE3C248F4A1D0C1E5577C734923237177C6FA89DE2ECDBA0DD1AD520544CE6C2E22A3AB334411E4AEE1F5548F42DD71AD50BFCD3C8A4C0A6ABE9DE29BC9DDD68E2E3C500CCFCD2BCD28CF1F523A7D9C228484DFCCFE4793B86A092DA6C4E03A1808BF108BDEC8F1429BC813DDEA51CDBC28833D9F24DD263939338A6782766A39396C2E2CF886F83C220672FE7E300DD36265926D0F1A775E622D412BCCCB666C82C9BA91C516314392773B08E9C8E197597EB3E481181BF39E3DE98F8110332C944F9BE01D5AE865BF611E85928C740ECFB33F0FAB640D62721A77887ECD521246DC02DD8029BEC5E1D8E69A961548BCF1EC98EEB9F8752632DAD7ECE87431BF42A3D50B41215A45F83C53DBB8E935EE8183D7E2778622297C8C4AD3F2BCB063ACB61DF15E613078C386B3E5080E84B3EFE0A79B8D3AEE2FD1A64571CD91FC31B9EEC610F2CE5D063119B0BB9736FC75390622511C07D3173BD52A868774176CA4B53C1F03613A37BF7A6B9BA48FF377D38C50B1458F2E2B215210A90CBBD804FA305CB372353B3E8FD8422960A11668EEEE26780EB0B598F706FB869DADA57C2186D9A4B6963AD044EF42C21D83D682988B63F8BB299D9622D95B9C0B018A9682E6E69BBAFFA4612B74EA73E6180F65DA0A08E8BAA44DD51A9B99A97BB3D6AA9EEB71EE9FC902E45EB604925E64211FE8D491198ED16B0CB4703FA6C48683CBA510B075859D43C9157CB4E75B0DA4D01EB2223F99EECAC46DA29249FC6C4B895DF2873E1933F73F7BD5A79B9FD5A4755EBF6DE6417D0EF5B214A6848B4A1159B9EFF15BA098D07876AFFEF6675A0CB61777B6F4ABEBAD7F0652117D9EBB60A9ADA08497C104A12A56C927153EE8C960DE18E50112F7936C649B809759BDDF243B7884830102EAAA99B83DA65E931F696A847A7377EEADF696734CE8B6E019C995A2DFA709B8781C8D603F90E06FBF9F97A8E554B0EBA290C36D7BA7F08179FD3797AE8D26D683C35C78590A00F60E81E5B4CF62EBB49E67633945B7F034CC1DEDD165ADCA1B09F20F2B5FB297B2AD170737DA8B07AEF36AD9111AC98FF96D0E3E68429576373FAE26FD313190CAAE6D7FDC38F0079D9E6E3DD891C5E609E6D49E5377DF5DB6087CB375FADAA5440B30DFB673A88363D9BED21ABB51E994900A47F44F55CE0A6A8E4D68CC815611FE073A89069EA28B6B865A89115CDAF4C94E744277FD3E11BEC49AE2465060C197F2E16A87A4799FFC2679323AFE85F2321E8C31D0BEEED0923AD6EC5B5448EBB2C0C1DC948A2B7756416DE1E3D74520586CE50DC5470ACFD28275AB69CDB89549E58346E4E463FC9CF2F1BC05A637643942D48FB72636AD049FDB73C10D07C37F7262282414ECF469BAE8B3059F9319545B9C50CC889D420241B6EDEDCDD1186650EA100918D8DE0187524DE5CAEA43DAE171B8466537D52F226A519717B7AEF74796E53CA22B7C6F263F95A2A636AB03C2E0DD970AE347FD66B53CF8DCCCBA10C3F385863254DB291480EC649D7FCFAD75A94DB6669D19DC32E440C38050C09AE6025DAA134B59BC6B0443AFCDB3D53A89DD0F3F1503315CF7E31A91A1614526684B90EE14AF0A10BBD6916329A72B47F768E2E4CD262BB9CDEC370ECBE0E47C5138D950D0828A49E4AB7462B7FCB4B39CB8A952B06C3898583872C04A7A9E952AA9F695A4584647AC80BD7230699C55C2EAAA221B07543058A531A57DD45D784547D82885FB01D9ED77793E8D22AB13A8FD36D25EC369219FA8E2C7539265FA8779C9924E4215D1F838DE9F3974359220C544C9F7F89C1C6AE90EB385D24B8FE162F5498F86486B6598CEDD48D3B29450B25DD2219A62DF2117AD0E9857F5D0E19F1B7A89E2CBFC39A317800288A71627EE0F609009AB324110AD6F543D4F84FE62D37D060C2390C7BDCE32FB02C364BE7E6974FA8C88F469866E8A09DDC08A7CCE018A676FBE5CAB954E400C844BF3CFE539F8BF4FC82F8637F53DBA57815273955C5270040406BCFF77C327FE04CA0175F823EE6D3E8721E7C3ED7F20C2FC8062F255E5C48922077C222E7314931126C486E23974D8E5B7A5541AB5F051CB1501D86846BD0074599A34F7C37A2AD63D7009BC40BC7BC317509105D31D2C2BB84C152D6A993BC57F72E067699795AC92D5B058E8C4F076D52833ED466932EFF52F58D9E7C256E188D940318E9302236902F86AF684F83B18FC98B2DD66B99788416E16BA0D3A850AB50E0909C83D229B396A02604963C57775150D9FC6D365C4730D518FCD374FA95E8DB21EEFA2727F40046967A227758463047D8F424D214751CB09B96F702406AA305900B4B580E5C9332DB8F5AD74A1DD157941C2497A303D086023753493B9225452C57E59F014C0B8F1F03C90DF8D6549B9094F346EC382376DBA60BF30C87CF1B53DBDCAA2DDDE7709324A22C4E85B3E02D5A8B0017FB5ECDEDFA6162F8475B2E80D57E10A0F48A198BDF101F33D5B48EB7276361A01804D024EFF2D9A234DC888B0E0BA22B63438DF80EC86D1AB9A9E6F889F70BA2A2CB8E7B40F3EBC2E7D9DB5D70F100C674EE1837DCA1610E5EC7FE79F4381F8D91ECA99D4ECF0D3A0A7DB63CFBFDBA0C81268720CE69D6490710ECE97923AB0F0CAE9733D266EC0C34B00B0ACBD60BBAE9DF3D10F11EB009EF61C6E59D03B2DB83CC09BDCC24943737D4F1076A011FCE41327D2C85DFF44BBC59F057953368C2FBAE01798BD39F52F6B0BA0133F561A7954690E2B4ECA6D7ED0CC8CE65E04C6D7CA28A831214041A40D955E9477D3EF2BDFB1B083BE541E5188A46E3FA84F75BD8EA5CD148522E1EC370C229B98CB376D0A9606414C418AC86237D620FA477F9286AF2E930D008556E27553DB9C8E155A10B6943D720584A007CD3C8ABF4341BA1819471F006790EF3117D17792858B8D9CB9AE53E3F55D38C318E3C7719B031D5BF43A5B014FEAD28772D05F03B2B74A7B0BFE58F4CE22196D5B6B2A418A2165616C312D94A57F6CAC4A0B1666170A223AABA9EEB7A435BFA9D77F6F34E838DED018FEBAD0190FA51640FCE276AEC02AC5E93DB324DA361C42256AE3AD3212BD71C4A8CA817A17CB1905467902EB1C57BBBDE076DFC8F49C4DBD89926E197EAF3F809AE27B17CC2A6668951A35D6981016E225027972EDA7A3AA0A995D8CA61E974C6DBA5169D97DE0FE2CAFF3AA1C8072DB4C175ACCCE2C10B476107197C2F590E23D70D32CA56FCB70A273D59037D57E3B32F6644A2CDADC0CCF7FAEF1E39E3AE4459636712D4C62188428B09467760D694398197FDD1752D510FD4F38495CA55909D315758B53418C3017A0AA25B8CCBA9CD1BAC412C86BF1055910EDDDEFCCF982D504F39468936F0F562B6B58CA243702E51AE51CB3DB32D1D830DCC0184E21BF61026E3371DB59C531FB961E46C48E5C33447BFBF4E50827A71F1223B8D76C4AFE9DA3C054BD6B6EBE14BAA3BB5FEE42556323A6B88EB7E349F9B43F9686F935BA61781B09E398B42821E7EA2DC41B1C9D083888FF8A745E32B6ED7BBFCA391556C3910EA7EDCAD6A7BCA86A5D0C331AED4135D5076365F7040C2557DC059282C9BAB20E199CB4413F361C03FF9195A55A9424D2D41B98B815C3C93CDB158727822276ED0CE29689CF63DF7F6E98872F17B647DC178BAA879CA9595BF101F5FE3F6690C526FED92796ABA2772AEF6C5760CADD2A63304D9C94C6DC4F9D1F2FA1E66BBB0218B4DAE6251235C411E9C734F0C3B79812D6408D5E9874242DB64C159DE31E2A0C3680CED80F77E49BFCA933AE46FA45BA5DF21EA066CC0FED711122F57ADF610AF823E9EC284AC9048487E820AF0C8217C21CBF3FA989D9EEBE81DFF0D7454C6251DFDBEACB70E0AA749DD70F5A368C4AC2ED2B03C4F6A2F570697B3A16FD5C3F381313C43B185DCE93EDE0EA3DF8B5AAD9AD4E71F236781589E25B5B9B65E438558CE1436CE811C9186EF4146FC07EDB058175C5DD877C7A767018D8AD797D9260E9010DCA3DE62CA780E06EBEB4FA7077DFDC92CBA212B282C810EEFF11BD51539632DF7FF317F1A3BA3434C3220CFA4ADF731A61628964DEC989FB2F3D3485AA1450700C3A2B56960CF1B9213EFCF2D62F20A29117E38257A58647FEAD26C4E5B406F3D22FC7262702E97E70EEC9649F0DD9ECB659AFF25AF35498FCCE9312774959AFA9C1F54F8F75A00FC9B1169F20665ED8976318A93624F6077C3FF195DF27C82A743309F417219DBCD609D78CF35EC8A10A6B20985C63D5C95E5825DCEC8E7B22825F05598767820658C907390A6BB31CE0869D53448700AFB791D5FCFF68907DDC41A00FF053B8CF53C23A02E65BD0D2863004B4EBB4070CBB4EEF92BBA3F9573EE68F7625314B2DBA799F6084AD79B5D6F2150960D2669667B2F5E241C6FBD8B45D4B668CE93E140A65CC4490BFA02F029A1EDB2C5B13D3FF63EC559D568B04B7D048425C9619A3E9EF6EE8BCCCABED616E83CAB5C47EA4EC1B015FC3D5CA2467E4861E30A913719837E7C3B8396D8EA65DA60C0590745B83C0196018302B506A158F3988710ABC93B6C6D10EF23CF9FAE8678613A400045384B1A98D97C635764C9B88A00AFD4C5B73F1EBFF1482A6F18839B4BFF1296BEC05DC124C47241DC9986A9F12F03C0B33A7AFD122478310C1DEA4A2F31320096C0CF1BB247B83606E2EA3BDF305350A066B396FFECDB5C2EB6A89F2BA6CFF95DF3F5D91D55B9ADE860524423BAFA72864CEE4469EFF5A3667205C5F9D5364A1CD04768FB773681A05C5C7F8A7A892ADE44533F25B527613A2A59DD417CF8F482035108322B5C68A623E77D1A2425ABD142FDEAA2012FD81E9D5F8EA9505C7BF9C1A460333C55F2CE1998C5B32AA1F8BB2AE4FC30364E0E5775298FEE6A3FE873D48D033D0EA92710C8ABE41BF3FD1C549891F81235AF0242F06137A0873EDE65C38434E26CAACE6C8A225A36765A1980AA40C68E384F69F0FEEEDB88F1D3FF88F7789F93EC607C6C542D41E9E9E37D872AF3C1C388DE808C5D3B27BAA510D2175EDEE2CF03BEFA55CF23E57CC5DDBC728E4ECF5DADE84895EA9F48F1B869D33D18CFC3E6ECBBC3E2E27A13B75E759279ED1A7251A2733A75AED01B9449016A3E16D566B159C88A9AB2D5A045190C98396C3F32EF4942CD04187DE486BEED97F966FB8F235AC8A3F5AB879536137756A0942769DE53E2AF96C2FDDB61D5C5458AD823C60ED08E775A2F515F6279EDCC779DC572BDE0A03060788EC08EB68F7D87E3253631862858D6DFC8F35B5883A3C6376FEB2123FE7858CF2F9DDB23AD58793EB4BEAF180CC6089418CA46A06D2E79CA1FB65AE91CD99E67529C8234C187B93F1D7695C9D14341DD9161F367D24A3834999AC5D51D7742E090656E9E2DB32954607D42D91504435CCDCF17719CFD3E6867305147A84796E5D8BC6B6476D2D715524179443424E0F37D08CD3B30406BB5611D4424CA7A9545419DE3478DD2BC2DBD17C5D856F4C2E8C3607BA3A67AA00D4C1D736A8D9EAE25110CC6BE424FD63A0226BA60960FD5CBE6207D1A56549A351EF81C3B800784C76A90910647CAEDEAB0E45DCFF9A73B974D76BDD40FE027633E001AFFD50A00E225AF60E66F506833C8B914310CBFC2961F5DD5A42FEE03D324AA71556555EAB635E06AE26FD8B5635BF8D5997F4EF46A523159ECD17A59C38E0325F6285D4D679CDE0CC5C51E483895621AE9341F881598F537B24EDF18E33209AD904A6C728252E2C439440A127EBC9DF1B90D7BF4EC562E25C4D9C4473C0FBC0D0F15C24551D0C4242BBEA4580C4E4D5FF37777843C4B742D6D7A29A885321F59C52BE42459B93ADDB13A87734C6EC51552D98D412B85076DBAA83B4EC56F76F4974206BF6E555A259A553F528002788D60A5C6675B6881903BEB2F9B96BB799CE5C3808012ABB880DBEED8E99DD25E126A3BB2F2E84D07AA4B3276D5D8FCC62C87C35351E43BEED3C1140A51CB0C2FE89B356D932C2C4270296485E100B8A3C9E43F92F4B92D3C03E5351E90A6C44C152937AEDD989BD261A52B54CDAC5F54BF3D9B67B4643F9C807727280F33F627920C6C27C3331D49A9F0C40BFB427BF98FEFC308432061AA5DE4321B09A5FD0AEBCBD0D0FDF7705DDE353FBCF58DF32DE9597A33DB69420329E8D93A1B7717E6E708F492144EEF2F2809F6A1EAF21C0A38266107372F86D714CCC41B070FBB459F584E1EB2B29179E09D16FC48DA5677EB3C7B30E4C68AA9604ECE5EE3B2CC97AE58EE83FFD99EAD5F473A9A3EB323F3ED11EB0FCE32D81E02818D4C9430CCE055F9F1CF370A71429DC4DAFA905B3380B4EDCE10A5E12FBEA868F7FEC0AD4671E618AD5320D29A5EA41E799C8B1BDF18C77F90C8E8681B5D556DFCA77DCCDF9E388EC141F8CD47C49B0CCBF2F214B7ABAB9DE391332030C8E2C137E49EC6306FA879D6AE658010AF2EAF0069C1650CA25B44565EACFA98D34037ECC3EA6138B976B4D6CE118F69167417DEB2B18D2ADFFEAA98299ACC93B62F5B7D296559B5592AEB4EC0EA77FDB823A2B57F5F08E4F190C08B96878B0533C9CF165A9BF9B619A064598EF5E9762C2AF076A793F38C98C786DEAF526FE96AC4DCC35995896F26361850B4F5257F662A839E6575F9A5D3DADD0619F15B2CCC34E246EEE27C8375F7D73DEFC9B93E072EFB7B697385CCDD9B9CB74AE73960FB5AEEE16D11C4AB0417A9D96C0B2231A67F2730B4CA5E7D1445D1606CA689F23BAFEBB100B066082A92A6BBC90AC6EDFEB9F494F282194A8537FDB58218655E5224BA15CAA2B8D73C558B857E11FCAD8A44EBE7C6C6C5AD355DE99C9AC50B905E104C3EA819D2A261854B95C1DDCDCBC995B56BF9402604C4AE859B8D1F55D141249FAF8B1977771053C56E6A5FDFE51EC4436510E3A26658B427010CD6874CFCE71A234C75F2BAC9AAAB11334825A6B71A91DA399F24FA687A041307F1FC3B598695F3B483BD595BA8D9D776AB1CBE71F6F16C88E9BBC1671134C851926B9AEFC3FAE8C81BF3540756152E57BA1572E6230AEF51C63B130F80D07CBC4DF6C1B4738952A01B8F4FB073379D4DA8882B4A81BC94F2A6E73C7E4EB9031B3560688486074362885A49E13FB3A624811AF7B8B0016445D7CA8041442DFD4B2984E1D2104DAE426086807876719F62438198062DA92A04140F80028FD01C30F229063BE6D1A29E52FB5FCF66AC68A1B68FCFE2554B0A47529404C7C5AE3E29E5A510288C8376E895E5343DB30C5AF474F9CEA115BAF44C0C1DA19C9BD27570D308986DA575637AB93809057E454BE4B72C172AD440FEF16502E15A225012DBB8E077D518A0873AE7BFBFD7D7E7A4BF262D0EB89DABF39C93C4A655973922804A04504AD4E9E3E898AD6D19F5E06E11AD40009FE97E961BFE10A13F70A8D038DF90F9DAA60C187C9DBDCA36E60C3CC55C12B4028B867A2073BF53438FEF6620256DF89748A2B320D3A04D746529032D251EF7493A194EAD218B1252DE161A19C06B450EF2D5A6CFB48646694899E4CA7D7122FB2CBD462CF2D17C0E1EFAF777D904DF12D0A377736BB0EAF8640CEA3B3267B82D4AA288F01E0AC4A7965734C62BB3DA672161703519B206736E5B714D445EE7350804933369EBDAE2AB7E47A8FA92492CBAD3398B3B42CCDBB089F0A763D05CF8DF44611743B57DEDF7269AD0E31856B28AC4BFD9BB04CB11A8072A01767F259D861A2D79FB8AE24DC651E6B98026F945614B90CA4841156FA4C544719EF6C47730C8AB5287869027C10FCF52413FEA37071CBA35BC206E2391E4B51C7CF582DAF4204D0A09F70B83E6EF7221E5D13AD0E99548DA6FD0436B1C5F9053C2C3F1F851C872C5415B0D5AC2189F6A544BE87CDA80122BBAD360EAAC5C70417710BB7A4C04DAC59A7D8DD82768B20AC86F4B7EAFDA0EA85093A0D9C54CDC8811C74D8F0E5B82E9674F8A11863D59BA90E17143CB67724CFF51E38D1450DCDF836D75FB2D5F2A49AB36448BE308D5E5B47A6064FBD756B044597EF25E44C5485D00520344FDA2E5F608AEEEA980FEA87404437A6813EC4CFCFA8F55B79163D379D00501B7996C2992E0BFBEC0A7CB9D56952A048367A4B69E94CB8F7F38F0D8CF3609657F887B33A42509005D5580804A1BA828F16B85AC55645DA22BCF3BA47044E9C977DF4EA74A70106E968308802AC23E3F8ECD4752F172245EB020DA51410044982749674FB9E02D2AF41C5E748FD36AAF3CDD2A2C751A55DFF0D685C335E63536F574289624A565FBD3F58135E1C284004132124C77BE592CEA6F0FAD130F8892D147D053C01B9E221312BE30D13AF4A7DC57F3DF09B15339A6E74D4750B2886AA34CCEFE5C51C4983A75888BA3D1C32207409FBBB190B6493CD5377287EA2824CB3DB2846F72B8C89E5C662A3B8F0A2106045AB7951E86A98C498DA15C123F3EE150C664F68B27781A95AFEFA8F949406FABCC468205B284AEF1A2B2C4908CAF67FD2A44184E8F900C7C859DC2C95BADFF700E4C80E75BF03CD158B8A8B6D7E7B9F80E390C7B3509CF8F39737C21B4448673E7D39C9265A582EC9981215A2B952198010489C68C34B7C85E385A1DBC36FCFF7A02104F1A7A9F2F7D37F4DA33E03130D5FE8E555E67E9B6D8A0AE14EBFF45B18311D156EE6C993D078B6075039D4812D75D399AC79490A7D8C03B55056C92897CEBC2152C64D0161FA4F84F2DE1AC02E6B4B97A467E0E8FB2588BF2AE50EAF4CD133F418587C8F8212D955F77B3A2DB9D9E682287128AEA0B61E14298D050B04D96128BD5B73E07564D11FB0AD0CC5661FA6DDDFEC9562227728B37DA7ECD67D7CC505F8220C22D94CC499F939EF90F722B1E90DB69D9B47158450D0462015490379D68C6D1E386CC84558C7FA9DAF6AFDCA5FF48176821295608AF8FFA24D76906F59AC0D2FF0FE4A4A1981C8437C7C8F32EDA3A7C1BCBAC6C93A0862C6EB7F9620AEE20B834ED516A8A097D56BDE6ED72F90BAE046C4497A9298014F0DD3B4D42A28DDFE778814F28F3078B24231931DC1C4E431571DF80FFFBC5D0FD3C48CB8FEB4286945BBEB7C38E26A583C4B4ACDC585500368C8EA8D94662B0BBDF2EBC68AAFFC0C2BD6337DC6A52C9C325923A6F43012773C9797B201BE8466B012DBBAA070E729ACDEDDF5967FFD2C777AA5BD7D657271BBDA35471757F2D3EBDDCABB1AA57C8AB1630CC09FEE13BD4BFD5BA2922DBD962E8B7736360039F27E16145DF32BE02E0D90AAD9BB871CED5097FE091266B56A8FBF003B8DF52D4EC5BDFC42D47F1B6C8878D7FD9D41D9BC06154201375A49EE2FD32513FA4D2C52FF16FC801C4AD1DBCDB4C4BF5B5DDF9EFB7DB7F8D0743CE0DF0BCAC7A616CB0107BD874AF69AF94A86374058360BAC6A098F5EB88E77DF2E67D276D890C1A1ED0F0B4794B7FC91493CEC205AAD662983E434153D271D893614267A253204708E7E96075E21F541B9972E12693A631DBF2C7C6D3DBD042FB4F685ABCC92716752EBADE6D0CEBDA389D152FB02DA65D475382202506A179AA287FCF299CCE65549673E73102574CAACEE2C5D6AE5336E1C007516910012666D429B87B8443A24126D6EA5378A70C7B15730A06D53952550290E1B7370193E032A9689A80FEFEFC619FBF9302D896177E2ACABBB9A17DB94A75897CEDC137CC5903FCFE64D131C1BCE0E21147FFDB39EE9842368125BB8B9A6BCA11EA78C7921D94AE19A124D2DF4B7584E2BD371819660580EA0FF76133C55F8A52C996A59F2DEF586A75E0A352ABBFAEAF8CFF9882583AB6D3BA7DD5A7419B56D09B7EBAEC406594514BA727A3C3C485E0F6C2D0017ABF05E59BAA1A1D4ECAB51DD00EABAADEFA8EC1CAFC0A7AC2D674DBF9B3E63E85F7AAB256F924C8F2BF3DF0602A27BBDDFF8420F1E4EF8AC789DBC3F36B9D525E6922E24933466BFAA2E65F8956561684CC1D7782581AE85C9FF5BD13B52AF2B62F1BDD4B41A7194D7FA191846350E2C583A4D634AF2C2563399E5BCF31CF120997A080ABD52A4B915F9659545CC8AA2326A2CDD385B5BFAA8417B416B2AC2AD0FD713B0685470AE568BA7DE342188B00D86DB7A668AE08A908B875C56895447B608951AFB89147D8F8FEAF2879F6D0C836F26B0F3A4A902CDF8CE4865A63496A3B43BD90C535213CF2C036B337648ECF8414B8C71850E05016C403E68C7EFC35A59559B6D5ACDF2A904B0BDE6DEF39DCDAA272699601584EDCF0414A208AB3C7F92DEBB5C37ED41CF14E4602D544F608D2026D6125AEE6F1E240E4CBE8E18A0801BE0B46D51EFE0C5166F60A5801E41B2C1B32819DF8FCE30AD80E837B64133883E591403E784256F01D529716790559EAE89F7A179DC9046DEC1599B28EE683FE78B3C36748B04B786A58DBFE4DFF73AC78B014462ED87BBFA58078F76355096EE7E81D2722D169206E362003B6666D6FECE11C1F767EAABD2ECC2EBF07B9E169A26C0C3CCDD0DE297B689FA412E63A292F566ECEFB1E33F9448259D6A489C506E171CB47DFF2FF9811BE925ED17BCE31839DBF2E955EF89FAEF9C118F632982138716EE0618945164BE4E4983DF78A34732992F4FD91B736A0E67055C40A1F35C2BF3960013E9DCA39571A913C93034A7DA6AF8FF9AB59AE37FFB536C382D87BED5BD8EEC27E5D9E650E82E97E48BA41E89B56BFD6F5327D7B47E49178C9E8B112A59409249A5037E20EC91F1E59FF8CB8C553720AB4275E2BA31D2CB8E2BFAD1192EFAC3959D6AC9FDB862019F6EA85427C4A8F0CFA506CCB36DBBBDFD8ACDE2FE351FC2B0A939AB59010ECDF767D4480666D8BA19943FF2D0363EF100559F86E13E5DFCF744A35094E4890C66C83A2FA050A2CA0CE67CAB4E2DE873F50E9AC2114DBF10938CF1105F8E5E6726713EF1C9E69DC07FEBCC4CC73B384A2BA93886CF9D6BCA4838DF2A77353BB39F305E06719A7EC2714A78E1A9D45A689E5F4E7A39AC6AFAE72BBEAB87C81C732E0EDD6CA54B3A5FE61DE0BB4DDBBE88124334D1E771C4FA781A2C1AE6E1F6A54C41E1A2A7BBE97DB01D76EB9A34B24DB5607919596693045ED6557BDC0CD40108B89BAAD6770F53F475784389C30CE430FFCD09B1D7043D14B932521063511B6F601C1956FF67C2B72D2D82E6F7C5858E83CB1C7B13C3D6D4252B40860FD51246EFE86685124A3ACBC2A7846F8502D688C0EB6BA0B3FF5138A451DB70B5F254C7D286AA98145EE193A811DFD2E18744D7E0874ECB649DEE8B2F75593FAAE7217677DABDD39B78A392929EB3742F69207DECBD0AB7AA54ED00A330CC383CD8C2F29C169DEB3A41AF0EFAF57763AA4D18041EAFA507E1544D2CFE6C9CD7CE002ADB932FC600C1F8463F3F900440F2985097B337332975D28E516DBFFDA83DC52542D3FC05F29E26DE4EC0194488539A8C7B26D1CB72E4774FD50B8EF4385E63C68828C68EDCC6D8D742D68032A6288B4F1225B4E1D187364775F3C8BE4A932AB3A78CFC076B6CA80353355CF63FF7B6F2BF18F76AF079F9744B91866B154BDD497BB43C6EC1A57B723DA0B91D4A14FF17F714F56426EB055BC496E5CBACBFE0C00A44EB07C602FA9B7FD657B0985BD3D66B754205F5375FB9A71F5A0A9867E64D2F3F8EFEBF1284EC08A8B9C314C8D034BD3405C197CAE90B053C77C4B790B6666396FDD42FF5234CEF2C205BCFB7462D053EAA5D25D0A62DBF345C6E432BC972DCB8FDE7290762C4959A1DD4647A5686681FD824D3B205B6B696234120F7AD61B8A100F7C682EB4757EEBE0221BF3AD7E80CBC18E116759E14A04086B0D222513F51D8DE2540BA2C4195936F7B0C0A9FE03B4E9AE7E0AFACED8F8D04CC54476139EBE021409854CC4667AC193B5F969A72C27ECCCC37A2C4C1824D73F336C4580A728851C9C341D8694E8957618489EC4DA70139A3B5003226B8B22074D1D7F5368C641FE3DE8E0E1A2279EA4D0B7AFB41CF1F8ADF00D0D429DEBFDCDF921E50022127901B7926A72AF5F4F3F22D76D7FA8C8797C7778087DD9E91727245ECE062228C720DD1A83CF7EA8CEA0B6CECF65E1212CD87FD158FE07BF0EC15A79742BBBE9CB14CF917011CE72A7E92248830E7D68AFC5E1B2B35EB3D7263178F84F914FF2588B8A805D4B409D18B900623BA47FC52AF268380304BD362E0638284D5A74CFD1F6D9F29BAFCCE2EBD242E8B71D51266BA870212B18BB6809D53FDA19247AF386FE8431191DD333D8C78A0D419C4216C715656D987B0A020AF2C71A2CB99B11C6CF501CBE909B115008641BD84FE24D6CF03C4DC7E34AE9DFC329EBCFB52BDE9EFEC5BDCF44EAFF723AA151B7B96AF4A10881B6EB128CF7B8311F074FA4C50CBB2306648C783BAD56FA95521C4720C4C411D9A4D6E285F219A2BE2AAEDDF2B9A687CF67B992AF0ACA6CBDDE746C86209857B2AF389CE546AE0AC6BE8F133A39322D2EA24AD2A4E13093C6191A0069E0A40B8D835D03F16B0CC8E3A68C0F8165E8F33C283A2152A250699C69E96F7B13636C2C4427C9CE82B2299718967B406751A38BDA8C02EAEBF11D5599A7D724D8B04115EFFA16B9AD63857423824901E58B629E28588C98DED5DA44FBE916C436A5CC3A07515BDCEE561E9314C4168BCA54E4566588E617D1BA9824748A9834A5E0644AD1AEABFDCE7EF331131B7B3660682E7DC097231F131C221DB24B71D028DE8DCDFD4A4C96059A7C9B5D24170312F18C9F300399F155733962440262491EF630D4EFAB2B5640272699D38954317E039510F957CEFFF31FCDF87018E04E82B641721B187A5353886E18A3549A9E58846E28939D462FBB103C10F38432223FCAA1A3C016B421A411474099A3D380CE3B5634D0B67351B9EC6E58F60B457F07F95073E2146825791F0CE03F1AB4BEE2C6101B9C1AAF9D3D71B7D81C93D8FE3C61D1D7C481470FC1247C50419B6A5E1899379E751F1760AE80BCE445B471E451EBB05BC28DFF06A88BD818DA3E1D1DFF60A37E1211D968926654F5D545A87B37E642EE3743634D90DB0270A84A35A543527170DB3624091180C1AF1E36EBCCCAA52BC6BCEE92F1C14DC276610BE7F8C68682516B27AAE2E71E2A8678747B76520C2978B6BFA0692FE936A9BD678BBC1BFEB65CCDCDCEF9361EEBE96CCDBAD791AB73DEAAA77EC1D694F0EECE617EBAFD3A3EE12F36F184FC5221301B5250F5CEE1287A7439E3E969C12811735629C0B70B16FB8A6C45C7BECDB46A49EB45A24B0C7817042D688DE53F5AE76727ADC8B1EBF5B3ABF0FEFA45F7172502CC56D24410CB8A3CBE5015C5034068930F33EFC83ABE85626FFC765539CF1F6DF1D4A4F3E794750468027905AB588108EF954AC2CD0E282924E59B38CA92B395AB7079B27308F172E288A41391F1D85F1D20AF567B0D3E4C171B0B7A708EAA32ECCB958F433AF8E850320C1092465044C39C7FA9750C09D98A02C6DFEFEFCA8266A40B58A1B534604C46D712AB25EF5372013DAF6EF809EE9C1FEC8C7BCCD145504D574131890C5D8E3D7D7C3DC3B6C4D4A4596A89775E09C7A3468270DA06CECF9009F66D8F23301A56F36F3D1381F3B629AE3BADB6BE7EF9CFB66F5D4434B97B31D727C6174F4C4FE1C0F66FBD4490AAEA7D59FA722C04D3A98B46BCE26A12DBD35484B5839AD9745A1198FA7EB48C31DCB160D34D9DEE6BEA79549648F9FD48CF25D700458F5FDA1B30E0E5DDD178DEC032F27EE32CC8E662419522FBF30806011656C465FF915DA048A4335B1C3D1C259A6CB9F6984E1E2B8838952A26E3A0F55A77713A0E922C0D1DE63C00C1A63A4A4C29AB1F967683863C08EEFAD4F85935D1679458931439FBE158E478AA5F3660C824C9AC58503EF10E3F46FC0456D4F6C18B157952AA572E9904CA6998432DFF17500150D3666A4CDB0ACC86BC02829DD0515F8B633D389232FBA0939906E90F877D1D4D68C22185140E427B54B63A9787EF6666C000C31DCBEE72E6E1EE6E14934A68A824E87E48495AB4B589E124C407B86F75DF4FC1CAADAD7757E3E279128EB09FD661E471B469A006D05B82659EB20852404B81F6996ABFDE452B511A0FEE9756E3210E56C974D3B743F8F4E661A7E1F70ED7ED561A2053D3C218A9F31D99A6C30265E3EDB4577ABD4FA3E94218B2D90ACC95DA75CFEBB738DC7187C9C226AD27526EEC13969E13C179B680058057558E8DDE24FC1B2897C5C31DBBF95901410D6ED49B83C59784B8D74ACA1C8EA3793C51F2E2B3E106680CF555AB446DB431DDC5A758CA40728F596B7B785116568260DF0477AAC3469BA4AD63088F755E71B265EEEB057667ABC642BFD831892CFB52F082E69AEF6842311156DF26B3E9C79837BCF9CDEE1E64ADC7C1EF57A7CA1AF52A6B2A20620691618EB432A8A041824789FB6575BB89992C0EBB3C700B90C7A1E00C79927F9CD477C1390CDE15A8050FD4AE5DE8A8398BB938FF09A5A22F492663B9DC7C8F2290E2256D062A66D77E742F41D631F95B06CB39C475055400DDDC268D298DAE62E194A559AE22B23CCF91B95EBB400440C12E1D58C122FA526C27DEDDB62CE948301D75BD62E87BB624CFEE30EC175672438F735CE2BDCF13313F116962A2D1969FA79291B9BA66225159BFC3A2B5F04B6861D97BEFFF096DA81B07B323E037A7B2D0529CB8BCFAE0D4F713F703357AD7472C708F4C62A7DB0454048ADD76C8821C8977A31740B4C0C1B7C5BE6939236A92AC5F6E40623D3C378A74E05A4F543BCACF620F176A212DD2BED85AE3AD0A050347C81B76B90CAD9E36AF0159091BA985285A571C2B59488BFAA8AAC98E9285327F6A87D7D092B21D1C9850CD2F8B8353367AA12407DBC5A663D6FF6EC52C7FF4F04CEECC8E7A09F7326752E4C90BEBBD81365A62635CFB3A33B49B715C910EF6453692ED88B6F4DC2E30EEC177ABB0D2FD467478BCC2B95A29DE6A32F2ED3D1B0C1D915D68CA46B9C665877874F0133687D8B0C2724A1EAEFD7958C91F94EE06295866F65C187F084D4D05111AAC08AF89DD935282F51B99B8B1E4F4258535DD9DCE38679383B70F2219B0215D38EC5E8A7D16227F532DCA0B789777F96DF2971957D876B50FDC616A95908A3CF61619FA7C1C00A38C4E7AF6F756CE127269380A7E091F710E23E0C0F4700994A2D7E38EAA976C518A66B6C9D49C313C920D559606B097049FEB5DD5CFF4644753BA6AA403E83E7FED5664A7E8F5DCBEF09DA2BEDADF47F95E0DE2FAC74FC3B001667DA3A4310DC38026BE4C920AAAB3031299CCB1B751AC896B0EE0CEC2EE11706560307F9CE87950CCC6552EC6A33626B7B853711819CE1D5630A3F12C14AEDF24F485D8B6DE3C67B51DF013E0571AE77F87AABAC2F492373967EAB78FE97B972F134C2C466DB04AD4A625A530CA36A09FBC401770117E545D44B995DD32831A5320241518CDB42E5B2F7EB35F379E6076A06002D60E49F3FA02FD8CE1636BB1B5B9EC65133D0351AC19D4AA9A951E1FC513AAE47C9A07A0737223A56B7A66B826EBFFE478BEBB70ACB849F49DEA1A75CF4861C3DFCE3A3449283C7AC717AB1C0B2998A8D26788D0F559D9708AF0F74B043BA2B6D52303EFE636C0F94B05CD3739C223414B9160BBBB32A443A2E29D87A701738AC73AC5B3C3924C4F527EF237C95497030E1E9389169C2F0C969C7F931CDA9E73D5E668B7DEAAD1034BC7528431CADC0F22AE8257481DE5EFF86FBFA07749C84204B525A28FA4ACE21613DC530798D152A03749C953C543B8C5932C6E5756A42BBDF230A75413096FA6D537A19EA74F53D6CFADE297E7CA0EF77397535C619D362A8261C59845318BCE7460A2BC5D1969EA5D8631492F751873EE63B651D72D140F6B7E52427102A108ABC1EA075717046AE33E83C4986CDD5583CD183B2047227E7D69555D365C04BFF3B7D54B882F485AA6BE0D6123B79FFFFA401AD83CCED331CCA035080646420E09D7AAA08377A74EBEA896B9DC13BEDDB4426E0BAD852B7E16FA9B56B05AACCF8957732B5D81DEC664ED13F0B08647B14BE996E6D6E552C1CCA2ECB611262B23AE85062D2B81DA0834BBDE1F72ADEA3F1EEE3867ED4C54F4C41ED309453EBF336
@@ -506,7 +506,7 @@ server.listen(3000, () => console.log("正在监听 3000 端口"));
506
506
  </ul>
507
507
  <h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><p>源代码增加了一些按钮的状态,交互更加友好,文章表达比较晦涩的地方可以跳转到源代码查看</p>
508
508
  <p><a target="_blank" rel="noopener" href="https://github.com/yeyan1996/file-upload">file-upload</a><br><img src="https://user-gold-cdn.xitu.io/2020/1/9/16f8859bdc09fa25?imageView2/0/w/1280/h/960/format/webp/ignore-error/1" alt="xuehuayu.cn"><br>谢谢观看 :)</p>
509
- <h1 id="字节跳动-EA(Enterprise-Application)前端团队招人啦~"><a href="#字节跳动-EA(Enterprise-Application)前端团队招人啦~" class="headerlink" title="字节跳动 EA(Enterprise Application)前端团队招人啦~"></a>字节跳动 EA(Enterprise Application)前端团队招人啦~</h1><p>坐标上海&#x2F;北京,校招社招都有,hc 无上限,有兴趣的欢迎投递简历至 <a href="mailto:&#49;&#x39;&#x39;&#54;&#121;&#x65;&#121;&#97;&#110;&#64;&#x67;&#x6d;&#x61;&#105;&#x6c;&#46;&#99;&#x6f;&#x6d;">&#49;&#x39;&#x39;&#54;&#121;&#x65;&#121;&#97;&#110;&#64;&#x67;&#x6d;&#x61;&#105;&#x6c;&#46;&#99;&#x6f;&#x6d;</a>,校招内推码 Q7QUGMV</p>
509
+ <h1 id="字节跳动-EA(Enterprise-Application)前端团队招人啦~"><a href="#字节跳动-EA(Enterprise-Application)前端团队招人啦~" class="headerlink" title="字节跳动 EA(Enterprise Application)前端团队招人啦~"></a>字节跳动 EA(Enterprise Application)前端团队招人啦~</h1><p>坐标上海&#x2F;北京,校招社招都有,hc 无上限,有兴趣的欢迎投递简历至 <a href="mailto:&#x31;&#57;&#57;&#x36;&#121;&#101;&#x79;&#x61;&#x6e;&#x40;&#x67;&#109;&#97;&#x69;&#x6c;&#46;&#99;&#111;&#x6d;">&#x31;&#57;&#57;&#x36;&#121;&#101;&#x79;&#x61;&#x6e;&#x40;&#x67;&#109;&#97;&#x69;&#x6c;&#46;&#99;&#111;&#x6d;</a>,校招内推码 Q7QUGMV</p>
510
510
  <h1 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h1><p><a target="_blank" rel="noopener" href="https://juejin.im/post/5da14778f265da5bb628e590">写给新手前端的各种文件上传攻略,从小图片到大文件断点续传</a></p>
511
511
  <p><a target="_blank" rel="noopener" href="https://developer.mozilla.org/zh-CN/docs/Web/API/Blob/slice">Blob.slice</a><a target="_blank" rel="noopener" href="https://developer.mozilla.org/zh-CN/docs/Web/API/Blob/slice">developer.mozilla.org&#x2F;zh-CN&#x2F;docs&#x2F;…</a>)</p>
512
512
  </div><iframe src="/donate/?AliPayQR=https://store.xuehuayu.cn/store/public/alipay_qr.jpg&amp;WeChatQR=https://store.xuehuayu.cn/store/public/wechat_qr.png&amp;UnionPayQR=null&amp;GitHub=null&amp;BTCQR=null&amp;BTCKEY=null&amp;PayPal=https://www.paypal.com/paypalme/OrdinaryPerson" style="overflow-x:hidden; overflow-y:hidden; border:0xp none #fff; min-height:240px; width:100%;" frameborder="0" scrolling="no"></iframe><div><ul class="post-copyright"><li class="post-copyright-author"><strong>本文作者:</strong>雪花雨</li><li class="post-copyright-link"><strong>本文链接:</strong><a href="/article/14192.html">https://xuehuayu.cn/article/14192.html</a></li><li class="post-copyright-license"><strong>版权声明:</strong>① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 转载文章来自网络,已标明出处,<a href="mailto:cainiaoblog@126.com">侵删</a>。</li></ul></div><br><div class="tags"><a href="/tags/%E8%BD%AC%E8%BD%BD/">转载</a></div><div class="post-nav"><a class="pre" href="/article/45157.html">新型肺炎疫情最新动态播报汇总</a><a class="next" href="/article/54313.html">70个JavaScript面试问题</a></div><div id="vcomment"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.min.css"><script src="//cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.js"></script><script>const origin = window.location.origin
@@ -67,7 +67,7 @@
67
67
  <li>render()</li>
68
68
  <li>componentDidMount()</li>
69
69
  </ol>
70
- <p>注意: getDerivedStateFromProps&#x2F;getSnapshotBeforeUpdate 和 componentWillMount&#x2F;componentWillReceiveProps&#x2F;componentWillUpdate 如果同时存在,React会在控制台给出警告信息,且仅执行 getDerivedStateFromProps&#x2F;getSnapshotBeforeUpdate 【<a href="mailto:&#82;&#101;&#97;&#x63;&#116;&#64;&#49;&#x36;&#46;&#55;&#46;&#x30;">&#82;&#101;&#97;&#x63;&#116;&#64;&#49;&#x36;&#46;&#55;&#46;&#x30;</a>】</p>
70
+ <p>注意: getDerivedStateFromProps&#x2F;getSnapshotBeforeUpdate 和 componentWillMount&#x2F;componentWillReceiveProps&#x2F;componentWillUpdate 如果同时存在,React会在控制台给出警告信息,且仅执行 getDerivedStateFromProps&#x2F;getSnapshotBeforeUpdate 【<a href="mailto:&#82;&#101;&#97;&#99;&#x74;&#x40;&#x31;&#54;&#46;&#55;&#x2e;&#x30;">&#82;&#101;&#97;&#99;&#x74;&#x40;&#x31;&#54;&#46;&#55;&#x2e;&#x30;</a>】</p>
71
71
  <blockquote>
72
72
  <p>运行时:</p>
73
73
  </blockquote>
@@ -16,7 +16,7 @@
16
16
  })();
17
17
  </script><script>var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src='https://hm.baidu.com/hm.js?011f0b44e8452bfa57fbfa23c5fe7683';var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();
18
18
  </script><script async src="https://www.googletagmanager.com/gtag/js?id=UA-150860401-1"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);};gtag('js',new Date());gtag('config','UA-150860401-1');
19
- </script><script type="text/javascript" src="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/js/fixedPage.min.js"></script><meta name="generator" content="Hexo 6.3.0"></head><body><div class="body_container"><div id="header"><div class="site-name"><a id="logo" href="/.">前端壹菜鸟</a><p class="description">关注前端知识,收集精彩博文,做技术的搬运工</p></div><div id="nav-menu"><a class="current" href="/." target="_self"><i class="fa fa-home"> 首页</i></a><a href="/archives/" target="_self"><i class="fa fa-archive"> 归档</i></a><a href="/guestbook/" target="_self"><i class="fa fa-comments"> 留言</i></a><a href="/about/" target="_self"><i class="fa fa-user"> 关于</i></a><a href="https://laonongmin.online/" target="_target"><i class="fa fa-group"> 看看</i></a><a href="https://love.xuehuayu.cn/" target="_target"><i class="fa fa-heart"> LOVE</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title c-post">面试准备</h1><div class="post-meta"><span class="date">2023-02-21</span><span> | </span><span class="tag original"><a href="/tags/%E5%8E%9F%E5%88%9B/">原创 </a></span><span> | </span><span class="category"><a href="/categories/%E5%89%8D%E7%AB%AF/">前端 </a></span><span id="busuanzi_container_page_pv"> | <span id="busuanzi_value_page_pv"><i class="fa fa-spinner"></i></span><span> 阅读</span></span><span class="post-time"><span class="post-meta-item-text"> | </span><span class="post-meta-item-icon"><i class="fa fa-keyboard-o"></i><span class="post-count"> 445</span><span class="post-meta-item-text"> 字</span></span></span><span class="post-time"> | <span class="post-meta-item-icon"><i class="fa fa-hourglass-half"></i><span class="post-count"> 1</span><span class="post-meta-item-text"> 分钟</span></span></span></div><a class="disqus-comment-count" href="/article/c5576490.html#vcomment"><span class="waline-comment-count" data-path="/article/c5576490.html"></span><span> 条评论</span></a><div class="post-content"><p>面试准备</p>
19
+ </script><script type="text/javascript" src="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/js/fixedPage.min.js"></script><meta name="generator" content="Hexo 6.3.0"></head><body><div class="body_container"><div id="header"><div class="site-name"><a id="logo" href="/.">前端壹菜鸟</a><p class="description">关注前端知识,收集精彩博文,做技术的搬运工</p></div><div id="nav-menu"><a class="current" href="/." target="_self"><i class="fa fa-home"> 首页</i></a><a href="/archives/" target="_self"><i class="fa fa-archive"> 归档</i></a><a href="/guestbook/" target="_self"><i class="fa fa-comments"> 留言</i></a><a href="/about/" target="_self"><i class="fa fa-user"> 关于</i></a><a href="https://laonongmin.online/" target="_target"><i class="fa fa-group"> 看看</i></a><a href="https://love.xuehuayu.cn/" target="_target"><i class="fa fa-heart"> LOVE</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title c-post">面试准备</h1><div class="post-meta"><span class="date">2023-02-21</span><span> | </span><span class="tag original"><a href="/tags/%E5%8E%9F%E5%88%9B/">原创 </a></span><span> | </span><span class="category"><a href="/categories/%E5%89%8D%E7%AB%AF/">前端 </a></span><span id="busuanzi_container_page_pv"> | <span id="busuanzi_value_page_pv"><i class="fa fa-spinner"></i></span><span> 阅读</span></span><span class="post-time"><span class="post-meta-item-text"> | </span><span class="post-meta-item-icon"><i class="fa fa-keyboard-o"></i><span class="post-count"> 1.2k</span><span class="post-meta-item-text"> 字</span></span></span><span class="post-time"> | <span class="post-meta-item-icon"><i class="fa fa-hourglass-half"></i><span class="post-count"> 5</span><span class="post-meta-item-text"> 分钟</span></span></span></div><a class="disqus-comment-count" href="/article/c5576490.html#vcomment"><span class="waline-comment-count" data-path="/article/c5576490.html"></span><span> 条评论</span></a><div class="post-content"><p>面试准备</p>
20
20
  <span id="more"></span>
21
21
  <h2 id="Vue"><a href="#Vue" class="headerlink" title="Vue"></a>Vue</h2><h3 id="基本使用"><a href="#基本使用" class="headerlink" title="基本使用"></a>基本使用</h3><h4 id="v-html"><a href="#v-html" class="headerlink" title="v-html"></a>v-html</h4><p>原始html内容,有xss防线</p>
22
22
  <h4 id="computed"><a href="#computed" class="headerlink" title="computed"></a>computed</h4><ul>
@@ -27,8 +27,6 @@
27
27
 
28
28
  <h4 id="class-写法"><a href="#class-写法" class="headerlink" title="class 写法"></a>class 写法</h4><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">data () &#123;</span><br><span class="line"> <span class="attr">isblack</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">isRed</span>: <span class="literal">false</span>,</span><br><span class="line"> </span><br><span class="line"> <span class="attr">black</span>: <span class="string">&quot;black&quot;</span>,</span><br><span class="line"> <span class="attr">red</span>: <span class="string">&quot;red&quot;</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
29
29
 
30
-
31
-
32
30
  <figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">:<span class="keyword">class</span>=&#123;<span class="attr">black</span>: isblack, <span class="attr">red</span>: isRed&#125;</span><br></pre></td></tr></table></figure>
33
31
 
34
32
  <p>或者</p>
@@ -76,7 +74,121 @@
76
74
  <p>mounted:渲染完成</p>
77
75
  <h4 id="父子组件"><a href="#父子组件" class="headerlink" title="父子组件"></a>父子组件</h4><p>组件实例创建: 先父后子</p>
78
76
  <p>组件渲染: 先子后父【子组件渲染完,才能挂载】</p>
79
- </div><iframe src="/donate/?AliPayQR=https://store.xuehuayu.cn/store/public/alipay_qr.jpg&amp;WeChatQR=https://store.xuehuayu.cn/store/public/wechat_qr.png&amp;UnionPayQR=null&amp;GitHub=null&amp;BTCQR=null&amp;BTCKEY=null&amp;PayPal=https://www.paypal.com/paypalme/OrdinaryPerson" style="overflow-x:hidden; overflow-y:hidden; border:0xp none #fff; min-height:240px; width:100%;" frameborder="0" scrolling="no"></iframe><div><ul class="post-copyright"><li class="post-copyright-author"><strong>本文作者:</strong>雪花雨</li><li class="post-copyright-link"><strong>本文链接:</strong><a href="/article/c5576490.html">https://xuehuayu.cn/article/c5576490.html</a></li><li class="post-copyright-license"><strong>版权声明:</strong>① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 转载文章来自网络,已标明出处,<a href="mailto:cainiaoblog@126.com">侵删</a>。</li></ul></div><br><div class="tags"><a href="/tags/%E5%8E%9F%E5%88%9B/">原创</a></div><div class="post-nav"><a class="next" href="/article/84c9ccd6.html">精读《SolidJS》</a></div><div id="vcomment"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.min.css"><script src="//cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.js"></script><script>const origin = window.location.origin
77
+ <h3 id="高级特性"><a href="#高级特性" class="headerlink" title="高级特性"></a>高级特性</h3><h4 id="自定义-v-model"><a href="#自定义-v-model" class="headerlink" title="自定义 v-model"></a>自定义 v-model</h4><p>父组件中</p>
78
+ <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&lt;CunstomVModal v-model=&#123;name&#125;&gt;</span><br></pre></td></tr></table></figure>
79
+
80
+ <p>子组件中 CunstomVModal</p>
81
+ <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">&lt;template&gt;</span><br><span class="line"> &lt;input type=&quot;text&quot; :value=&quot;txt&quot; @input=&quot;$emit(&#x27;chage&#x27;, $event.target.value)&quot;</span><br><span class="line">&lt;/template&gt;</span><br><span class="line">&lt;script&gt;</span><br><span class="line"> export default &#123;</span><br><span class="line"> model:&#123;</span><br><span class="line"> prop: &#x27;txt&#x27;,</span><br><span class="line"> event:&#x27;chage&#x27;</span><br><span class="line"> &#125;,</span><br><span class="line"> props:&#123;</span><br><span class="line"> txt: String,</span><br><span class="line"> default () &#123;</span><br><span class="line"> return &#x27;&#x27;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line">&lt;/script&gt;</span><br></pre></td></tr></table></figure>
82
+
83
+ <h4 id="nextTick、refs"><a href="#nextTick、refs" class="headerlink" title="$nextTick、refs"></a>$nextTick、refs</h4><ul>
84
+ <li>vue 是异步渲染</li>
85
+ <li>data 改变之后,dom不会like渲染</li>
86
+ <li>$nextTick 会在dom渲染之后被处罚,以获取最新的dom节点</li>
87
+ </ul>
88
+ <h4 id="slot"><a href="#slot" class="headerlink" title="slot"></a>slot</h4><ul>
89
+ <li>基本使用</li>
90
+ <li>作用于插槽</li>
91
+ <li>具名插槽</li>
92
+ </ul>
93
+ <h4 id="动态组件"><a href="#动态组件" class="headerlink" title="动态组件"></a>动态组件</h4><ul>
94
+ <li>:is&#x3D;”component-name”</li>
95
+ <li>需要根据数据,动态渲染的场景。即组件类型不确定</li>
96
+ </ul>
97
+ <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">&lt;template&gt;</span><br><span class="line"> &lt;component :is=&quot;compName&quot;&gt;</span><br><span class="line">&lt;/template&gt;</span><br><span class="line">&lt;script&gt;</span><br><span class="line"> import myComp from &#x27;./myComp&#x27;</span><br><span class="line"> components:&#123;</span><br><span class="line"> myComp</span><br><span class="line"> &#125;,</span><br><span class="line"> data () &#123;</span><br><span class="line"> return &#123;</span><br><span class="line"> compName: &#x27;myComp&#x27;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line"> </span><br><span class="line">&lt;/script&gt;</span><br></pre></td></tr></table></figure>
98
+
99
+ <h4 id="异步组件"><a href="#异步组件" class="headerlink" title="异步组件"></a>异步组件</h4><ul>
100
+ <li>import()</li>
101
+ <li>按需加载,异步加载大组件</li>
102
+ </ul>
103
+ <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">export default &#123;</span><br><span class="line"> components:&#123;</span><br><span class="line"> Demo: () =&gt; import(&#x27;./ImportDemo&#x27;)</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
104
+
105
+ <h4 id="keep-alive"><a href="#keep-alive" class="headerlink" title="keep-alive"></a>keep-alive</h4><ul>
106
+ <li>缓存组件</li>
107
+ <li>频繁切换,不需要重复渲染</li>
108
+ <li>vue常见性能优化</li>
109
+ </ul>
110
+ <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">// 每个组件只渲染一次,且不会销毁。</span><br><span class="line">// 简单的用v-show就行,稍微复杂的用keep-alive</span><br><span class="line">&lt;keep-alive&gt;</span><br><span class="line"> &lt;A v-if=&quot;a&quot;&gt;&lt;/A&gt;</span><br><span class="line"> &lt;B v-if=&quot;b&quot;&gt;&lt;/B&gt;</span><br><span class="line"> &lt;C v-if=&quot;c&quot;&gt;&lt;/C&gt;</span><br><span class="line">&lt;/keep-alive&gt;</span><br></pre></td></tr></table></figure>
111
+
112
+ <h4 id="mixin"><a href="#mixin" class="headerlink" title="mixin"></a>mixin</h4><ul>
113
+ <li>多个组件有相同的逻辑,抽离出来</li>
114
+ <li>mixin并不是完美的解决方案,会有一些问题</li>
115
+ <li>vue 3 提出的 composition API 旨在解决这些问题</li>
116
+ </ul>
117
+ <hr>
118
+ <h5 id="问题"><a href="#问题" class="headerlink" title="问题"></a>问题</h5><ul>
119
+ <li>变量来源不明确,不利于阅读</li>
120
+ <li>多个mixin可能会造成命名冲突</li>
121
+ <li>mixin和组件可能会出现多对多的关系,复杂度较高</li>
122
+ </ul>
123
+ <hr>
124
+ <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">&lt;sript&gt;</span><br><span class="line"> import Mixin from &#x27;./mixin&#x27;</span><br><span class="line"> export default &#123;</span><br><span class="line"> mixins: [Mixin],</span><br><span class="line"> data () &#123;</span><br><span class="line"> return &#123;&#125;</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line">&lt;/sript&gt;</span><br></pre></td></tr></table></figure>
125
+
126
+ <h4 id="vuex-使用"><a href="#vuex-使用" class="headerlink" title="vuex 使用"></a>vuex 使用</h4><ul>
127
+ <li>基本概念、基本使用、API</li>
128
+ <li>state的数据结构设计</li>
129
+ </ul>
130
+ <h5 id="vuex基本概念"><a href="#vuex基本概念" class="headerlink" title="vuex基本概念"></a>vuex基本概念</h5><ul>
131
+ <li>state</li>
132
+ <li>gettters</li>
133
+ <li>action</li>
134
+ <li>mutation</li>
135
+ </ul>
136
+ <h5 id="用于vue组件"><a href="#用于vue组件" class="headerlink" title="用于vue组件"></a>用于vue组件</h5><ul>
137
+ <li>dispatch</li>
138
+ <li>commit</li>
139
+ <li>mapstate</li>
140
+ <li>mapGetters</li>
141
+ <li>mapActions</li>
142
+ <li>mapMutations</li>
143
+ </ul>
144
+ <h4 id="vue-router"><a href="#vue-router" class="headerlink" title="vue-router"></a>vue-router</h4><ul>
145
+ <li>路由模式:<ul>
146
+ <li>hash<ul>
147
+ <li>window.onhashchange</li>
148
+ <li>会出发网页跳转,</li>
149
+ <li>可前进后退,</li>
150
+ <li>不会提交到server端</li>
151
+ <li>可刷新</li>
152
+ </ul>
153
+ </li>
154
+ <li>H5 history<ul>
155
+ <li>history.pushState</li>
156
+ <li>window.onpopstate</li>
157
+ <li>不可刷新(需要后端支持)</li>
158
+ </ul>
159
+ </li>
160
+ </ul>
161
+ </li>
162
+ <li>路由配置:<ul>
163
+ <li>动态路由 {path: ‘&#x2F;user&#x2F;:id?’, component: User}</li>
164
+ <li>懒加载 {path: ‘&#x2F;user&#x2F;:id?’, component: () &#x3D;&gt; import(‘.&#x2F;user’)}</li>
165
+ </ul>
166
+ </li>
167
+ </ul>
168
+ <h3 id="Vue原理"><a href="#Vue原理" class="headerlink" title="Vue原理"></a>Vue原理</h3><h4 id="如何里面MVVM"><a href="#如何里面MVVM" class="headerlink" title="如何里面MVVM"></a>如何里面MVVM</h4><ul>
169
+ <li>很久以前的视图<ul>
170
+ <li>asp jsp php 已经有组件化了</li>
171
+ <li>传统组件,只是静态渲染,更新依赖于操作dom</li>
172
+ </ul>
173
+ </li>
174
+ <li>数据驱动视图(vue MVVM,react setState)</li>
175
+ </ul>
176
+ <h4 id="vue-响应式"><a href="#vue-响应式" class="headerlink" title="vue 响应式"></a>vue 响应式</h4><ul>
177
+ <li>组件data的数据一旦变化,立刻出发视图更新</li>
178
+ <li>核心API - Object.defineProperty<ul>
179
+ <li>get</li>
180
+ <li>set</li>
181
+ </ul>
182
+ </li>
183
+ <li>Object.defineProperty 的一些缺点 (Vue3.0 使用 Proxy)</li>
184
+ <li>proxy 兼容性不太好,且无法 polyfill</li>
185
+ </ul>
186
+ <h5 id="Object-defineProperty-缺点"><a href="#Object-defineProperty-缺点" class="headerlink" title="Object.defineProperty 缺点"></a>Object.defineProperty 缺点</h5><ul>
187
+ <li>深度监听,需要递归到底,一次性计算量大</li>
188
+ <li>新增,删除 无法监听,需要用 Vue.set 和 Vue.delete</li>
189
+ <li>无法监听数组</li>
190
+ </ul>
191
+ <h4 id="虚拟DOM-和-diff"><a href="#虚拟DOM-和-diff" class="headerlink" title="虚拟DOM 和 diff"></a>虚拟DOM 和 diff</h4></div><iframe src="/donate/?AliPayQR=https://store.xuehuayu.cn/store/public/alipay_qr.jpg&amp;WeChatQR=https://store.xuehuayu.cn/store/public/wechat_qr.png&amp;UnionPayQR=null&amp;GitHub=null&amp;BTCQR=null&amp;BTCKEY=null&amp;PayPal=https://www.paypal.com/paypalme/OrdinaryPerson" style="overflow-x:hidden; overflow-y:hidden; border:0xp none #fff; min-height:240px; width:100%;" frameborder="0" scrolling="no"></iframe><div><ul class="post-copyright"><li class="post-copyright-author"><strong>本文作者:</strong>雪花雨</li><li class="post-copyright-link"><strong>本文链接:</strong><a href="/article/c5576490.html">https://xuehuayu.cn/article/c5576490.html</a></li><li class="post-copyright-license"><strong>版权声明:</strong>① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 转载文章来自网络,已标明出处,<a href="mailto:cainiaoblog@126.com">侵删</a>。</li></ul></div><br><div class="tags"><a href="/tags/%E5%8E%9F%E5%88%9B/">原创</a></div><div class="post-nav"><a class="next" href="/article/84c9ccd6.html">精读《SolidJS》</a></div><div id="vcomment"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.min.css"><script src="//cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.js"></script><script>const origin = window.location.origin
80
192
  const serverURL = origin.includes('cainiaoblog') ? 'https://cmts.cainiaoblog.cn' : 'https://cmts.xuehuayu.cn'
81
193
  const locale = {
82
194
  placeholder: '请正确填写昵称和邮箱,方便接收回复通知~',