From c07a7e2780cb8b9e70fe85730b1c9ab3d15bb6e6 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 25 Jul 2018 12:48:12 +0200 Subject: [PATCH 01/34] Update chain spec to conform, with Rust --- packages/client-chains/package.json | 14 +- .../src/chains/{chain-dev.spec.js => dev.js} | 0 .../src/chains/{chain-dev.json => dev.json} | 5 +- packages/client-chains/src/chains/index.ts | 11 +- .../client-chains/src/chains/krummelanke.json | 50 +++++++ packages/client-chains/src/index.ts | 21 +-- packages/client-chains/src/types.d.ts | 12 +- packages/client-db-chain/package.json | 10 +- packages/client-db/package.json | 4 +- packages/client-p2p-messages/package.json | 6 +- packages/client-p2p/package.json | 4 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc-handlers/src/system.ts | 8 +- packages/client-rpc/package.json | 4 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- yarn.lock | 130 +++++++++--------- 19 files changed, 184 insertions(+), 117 deletions(-) rename packages/client-chains/src/chains/{chain-dev.spec.js => dev.js} (100%) rename packages/client-chains/src/chains/{chain-dev.json => dev.json} (99%) create mode 100644 packages/client-chains/src/chains/krummelanke.json diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 489081d7..6a954ac8 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.20", - "@polkadot/util": "^0.26.20", - "@polkadot/util-crypto": "^0.26.20", - "@polkadot/util-keyring": "^0.26.20" + "@polkadot/storage": "^0.26.25", + "@polkadot/util": "^0.26.25", + "@polkadot/util-crypto": "^0.26.25", + "@polkadot/util-keyring": "^0.26.25" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.20", - "@polkadot/primitives": "^0.26.20", - "@polkadot/storage": "^0.26.20" + "@polkadot/extrinsics": "^0.26.25", + "@polkadot/primitives": "^0.26.25", + "@polkadot/storage": "^0.26.25" } } diff --git a/packages/client-chains/src/chains/chain-dev.spec.js b/packages/client-chains/src/chains/dev.js similarity index 100% rename from packages/client-chains/src/chains/chain-dev.spec.js rename to packages/client-chains/src/chains/dev.js diff --git a/packages/client-chains/src/chains/chain-dev.json b/packages/client-chains/src/chains/dev.json similarity index 99% rename from packages/client-chains/src/chains/chain-dev.json rename to packages/client-chains/src/chains/dev.json index a4e925fc..54716f84 100644 --- a/packages/client-chains/src/chains/chain-dev.json +++ b/packages/client-chains/src/chains/dev.json @@ -1,4 +1,7 @@ { + "name": "Development", + "id": "dev", + "genesis": {"raw": { "0x1d007e138cb61e2524a67b15ec01d8cb": "0x00000000000000600000000000000000", "0x81c1e7165a6371a30eda241a30ea26dd": "0x02000000000000000000000000000000", "0x3a617574683a00000000": "0xd172a74cda4c865912c32ba0a80a57ae69abae410e5ccb59dee84e2f4432db4f", @@ -52,4 +55,4 @@ "0x6cac40e934558080fbf29c55c113b461": "0x0000000000000000", "0x1d72be21946c0b245c026b7be8256cc5": "0x00000000", "0x62201b976748f389b2c7d8759ee5e0f8": "0x00000000000000000000000000000000" -} +}}} diff --git a/packages/client-chains/src/chains/index.ts b/packages/client-chains/src/chains/index.ts index 8aeddaf1..45d8aaa9 100644 --- a/packages/client-chains/src/chains/index.ts +++ b/packages/client-chains/src/chains/index.ts @@ -2,10 +2,13 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { ChainGenesisState } from '../types'; +import { ChainJson } from '../types'; -const dev = (require('./chain-dev.json') as ChainGenesisState); +const dev = (require('./dev.json') as ChainJson); +const krummelanke = (require('./krummelanke.json') as ChainJson); export default ({ - dev -} as { [index: string]: ChainGenesisState }); + dev, + krummelanke, + test: krummelanke +} as { [index: string]: ChainJson }); diff --git a/packages/client-chains/src/chains/krummelanke.json b/packages/client-chains/src/chains/krummelanke.json new file mode 100644 index 00000000..756106e7 --- /dev/null +++ b/packages/client-chains/src/chains/krummelanke.json @@ -0,0 +1,50 @@ +{ +"name": "Krumme Lanke", +"id": "krummelanke", +"genesis": {"raw": { + "0x9768f3cbdd14c1a63474dfbdbe052f42": "0x80f4030000000000", + "0x3b700687fecdff5ec1c4a5b714521eb6": "0x0000000000000000", + "0xa059ae3b3ef725721e97452642803b61": "0x0c00000000000000", + "0x81c1e7165a6371a30eda241a30ea26dd": "0x6400000000000000", + "0x45e71d57a2e3a4eace16dbc9286652e3": "0x00000000", + "0x1d72be21946c0b245c026b7be8256cc5": "0x00000000", + "0xd68ee884e4baac617d9823d543ab9295": "0x0000000000000010", + "0x1d007e138cb61e2524a67b15ec01d8cb": "0x0000000000000010", + "0xbfde7c86a8efd60ee5db2de6446703d5": "0xc04e000000000000", + "0x3a617574683a6c656e": "0x04000000", + "0xb54b186fe8782c2a03f2fd15f95c26bf": "0x00000000", + "0x9dd24013e492bdbb3544fba06734baf7": "0xd002000000000000", + "0xd52c584b1e542130e5b277f1af7b7714": "0x00000000", + "0x3a617574683a03000000": "0x8101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0x916dbd78366f27a9597bd4c831e7914d": "0x00e9070000000000", + "0xf37d2c26c6953b18878dbc1dc65edbc0": "0x1800000000000000", + "0x8d62e0fbc08e8694f8991f88d763c5fb": "0x5a00000000000000", + "0xa659ecb253960cfd890e08809104b815": "0x809d000000000000", + "0x3a617574683a00000000": "0x82c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf5", + "0x3a617574683a02000000": "0x063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca5", + "0xe885ffcc2245c8b7d128685cac6b1a0b": "0x0100000000000000", + "0x94b01408fc662bcf2e97df23ce6d67e2": "0x0100000000000000", + "0x6cac40e934558080fbf29c55c113b461": "0x0000000000000000", + "0x8379e35e0cd953085e0404b9223c0cb0": "0xc04e000000000000", + "0x5a3dcf1edb28ea65a038d1eef6767380": "0x003b010000000000", + "0x7a5bafa684003bc748abe89bfbd20f76": "0xe803000000000000", + "0x3d5680071e92ff27a2914bba661e5d83": "0x400b000000000000", + "0x274351e20682cb2ed212b6eab04ef89f": "0x00000000", + "0x3a617574683a01000000": "0x4de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7", + "0x482b5d7b62ccccac45d55bd43c767266": "0x6400000000000000", + "0x35b8ced31f34a951bc3b56db2f425c51": "0x00000000", + "0x98b9e95963cac608a3d0d537fbeaf5c2": "0x0400000082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca58101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0xce83497694648564e47482d0dc444564": "0x18000000", + "0xa0c2154e69bce912f28e890561fcb95c": "0x0400000082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca58101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0x9b7ecc8eb0fade7c91d94b8715fc9ee1": "0xe803000000000000", + "0x3a636f6465": "0x0061736d010000000197011760027f7f0060057f7f7f7f7f017f60017f017f60037f7f7f017f60017f0060000060037f7f7f0060047f7f7f7f006000017e60027f7f017f60027f7e0060037e7f7f0060017f017e600a7f7f7f7f7f7f7f7f7f7f0060017e0060067f7f7f7f7f7f0060047f7f7f7f017f60047f7f7f7f017e60067f7f7f7f7f7f017f60057f7f7f7f7f0060027f7f017e60027f7e017f60037f7f7e0002f1031603656e76146578745f6765745f73746f726167655f696e746f000103656e760a6578745f6d616c6c6f63000203656e76086578745f66726565000403656e760c6578745f74776f785f313238000603656e760f6578745f7365745f73746f72616765000703656e76116578745f636c6561725f73746f72616765000003656e760a6578745f6d656d636d70000303656e76186578745f656e756d6572617465645f747269655f726f6f74000703656e760e6578745f7072696e745f75746638000003656e760d6578745f7072696e745f6e756d000e03656e760a6578745f6d656d637079000303656e760b6578745f6d656d6d6f7665000303656e760a6578745f6d656d736574000303656e76166578745f73616e64626f785f6d656d6f72795f6e6577000903656e76176578745f73616e64626f785f696e7374616e7469617465001203656e76126578745f73616e64626f785f696e766f6b65001003656e76166578745f73616e64626f785f6d656d6f72795f676574001003656e76166578745f73616e64626f785f6d656d6f72795f736574001003656e760e6578745f626c616b65325f323536000603656e760d6578745f7072696e745f686578000003656e76106578745f73746f726167655f726f6f74000403656e76126578745f656432353531395f766572696679001003d001ce010003040505050500030000020404050400060000060505000804040900000505040004030004060a040b0005000c0c00040405060404060d0504050002040400050505050505050505050505050505050505040504050405050405040505040504050405040504050405040506060000060007070f070f0710070707071107130906000409060000040500140014061404140a06041414140002060a15000000000400000004040000040c000405070a1400000000000413060706160704140616060000060000000000000000090405017001161605030100110609017f0141d0c3c0000b07a8010b066d656d6f7279020011727573745f626567696e5f756e77696e64004d066d616c6c6f630052046672656500530b617574686f72697469657300a10110696e697469616c6973655f626c6f636b00a3010f6170706c795f65787472696e73696300a5010d657865637574655f626c6f636b00a7010e66696e616c6973655f626c6f636b00ab010f76616c696461746f725f636f756e7400ac010a76616c696461746f727300ad010930010041010b158f019001910192019301cc01cd01ce01c601cf01d001d101c701d30195019b01d4019401d501d6019c010abbe40cce01ea0403067f017e057f230041106b220224002002410036020020012001280208220341002001280200220420012802042205200241042003100022032003417f461b2203410420034104491b6a22063602080240024002400240200341034d0d0020022802002207ad420c7e2208422088a70d022008a72203417f4c0d01024002402003450d002003100122090d010c050b410421090b20022007360204200220093602002002410036020802402007450d00200141086a210a4100210b4100210c03402002410036020c200a4100200420052002410c6a41042006100022012001417f461b2201410420014104491b20066a2206360200024002400240200141034d0d00200228020c2201417f4c0d01024002402001450d00200110012203450d0a20034100200110171a0c010b410121030b200a20014100200420052003200120061000220d200d417f461b220d200d20014b1b20066a220636020002402001200d4b0d002003450d01200c41016a210c2001ad22084220862008842108200b2002280204470d0320021018200241086a280200210b200228020021090c030b200310020b200228020021060240200b450d00200b410c6c21032006210103400240200141046a280200450d00200128020010020b2001410c6a2101200341746a22030d000b0b2002280204450d04200610020c040b1019000b2009200b410c6c6a2201200837020420012003360200200241086a200b41016a220b360200200c2007490d000b200228020021090b2009450d002000200229020437020420002009360200200241106a24000f0b20004100360200200241106a24000f0b101a000b101b000b101c000b0a00200020012002100c0b810101057f410421010240024002400240200041046a2802002202450d00200241186c2201417f4c0d0320002802002103200110012204450d022004200320012002410c6c2205200520014b1b101e1a20031002200241017421010c010b413010012204450d010b20002004360200200041046a20013602000f0b101c000b1073000b05001041000b05001041000b05001041000b0500104e000bc11105097f037e017f017e027f230041a0026b220224002001280200210320024180026a20012802042204412020044120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20032005101e1a2001200420056b22063602042001200320056a22053602000240024002400240024002400240024002402004411f4d0d00200241e0016a41186a220420024180026a41186a2203290300370300200241e0016a41106a220720024180026a41106a2208290300370300200241e0016a41086a220920024180026a41086a220a29030037030020022002290380023703e00120032004290300220b37030020082007290300220c370300200a2009290300220d370300200241c0006a41086a2204200d370300200241c0006a41106a2203200c370300200241c0006a41186a2207200b370300200220022903e001220b3703402002200b37038002200241206a41186a2007290300370300200241206a41106a2003290300370300200241206a41086a200429030037030020022002290340370320200242003703800220024180026a20052006410820064108491b2204101e1a200141046a2207200620046b22033602002001200520046a2204360200200641074d0d01200229038002210c20024180026a2003412020034120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20042005101e1a2007200320056b22063602002001200420056a22043602002003411f4d0d02200241e0016a41186a220320024180026a41186a2207290300370300200241e0016a41106a220820024180026a41106a2209290300370300200241e0016a41086a220a20024180026a41086a220e29030037030020022002290380023703e00120072003290300220b37030020092008290300220d370300200e200a290300220f37030020024180016a41086a2205200f37030020024180016a41106a2210200d37030020024180016a41186a2211200b370300200220022903e001220b370380012002200b37038002200241e0006a41186a2011290300370300200241e0006a41106a2010290300370300200241e0006a41086a2005290300370300200220022903800137036020024180026a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20042005101e1a200141046a2211200620056b22103602002001200420056a22053602002006411f4d0d032003200729030037030020082009290300370300200a200e29030037030020022002290380023703e00120072003290300220b37030020092008290300220d370300200e200a290300220f370300200241c0016a41086a2204200f370300200241c0016a41106a2203200d370300200241c0016a41186a2206200b370300200220022903e001220b3703c0012002200b37038002200241a0016a41186a2006290300370300200241a0016a41106a2003290300370300200241a0016a41086a2004290300370300200220022903c0013703a001200241003602800220024180026a20052010410420104104491b2204101e1a2011201020046b3602002001200520046a360200201041034d0d062002280280022208ad420c7e220b422088a70d08200ba72205417f4c0d072005450d042005100122070d05101c000b20024180026a41186a200241e0016a41186a29000037030020024180026a41106a200241e0016a41106a29000037030020024180026a41086a200241e0016a41086a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b20004100360208200241a0026a24000f0b20024180026a41186a200241e0016a41186a29000037030020024180026a41106a200241e0016a41106a29000037030020024180026a41086a200241e0016a41086a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b2007200329000037030020092008290000370300200e200a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b410421070b200220083602e401200220073602e00141002105200241003602e80102402008450d00200241e8016a210941002104034020024180026a2001101f024002402002280280022203450d00200441016a2104200229028402210b200520022802e401470d01200241e0016a10182009280200210520022802e00121070c010b20022802e001210402402005450d002005410c6c21052004210103400240200141046a280200450d00200128020010020b2001410c6a2101200541746a22050d000b0b20022802e401450d03200410020c030b20072005410c6c6a2206200b370204200620033602002009200541016a220536020020042008490d000b20022802e00121070b2007450d0020022902e401210b20024180026a41186a2201200241206a41186a29030037030020024180026a41106a2205200241206a41106a29030037030020024180026a41086a2204200241206a41086a290300370300200241e0016a41086a2203200241e0006a41086a290300370300200241e0016a41106a2206200241e0006a41106a290300370300200241e0016a41186a2208200241e0006a41186a290300370300200241086a2209200241a0016a41086a290300370300200241106a220a200241a0016a41106a290300370300200241186a220e200241a0016a41186a2903003703002002200229032037038002200220022903603703e001200220022903a001370300200020073602082000200c3703002000200b37020c200041146a2002290380023702002000411c6a2004290300370200200041246a20052903003702002000412c6a2001290300370200200041346a20022903e0013702002000413c6a2003290300370200200041c4006a2006290300370200200041cc006a2008290300370200200041ec006a200e290300370200200041e4006a200a290300370200200041dc006a2009290300370200200041d4006a2002290300370200200241a0026a24000f0b20004100360208200241a0026a24000f0b101a000b101b000b0a00200020012002100a0b880201067f230041106b220224002002410036020c2002410c6a2001280200220320012802042204410420044104491b2205101e1a2001200420056b22063602042001200320056a220536020002400240024002400240200441034d0d00200228020c2204417f4c0d032004450d01200410012207450d0420074100200410171a0c020b20004100360200200241106a24000f0b410121070b200720052006200420062004491b2203101e2107200141046a200620036b3602002001200520036a3602000240200620044f0d002000410036020020071002200241106a24000f0b2000200436020420002007360200200041086a2004360200200241106a24000f0b1019000b101c000ba6c80107097f047e047f027e257f057e077f230041f0126b2202240020012001280200200128020422034104200341044922041b22056a22063602002001200320056b2203360204024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020040d00200241d8096a2003412020034120491b22046a41004100412020046b2004411f4b1b10171a200241d8096a20062004101e1a200141046a200320046b22053602002001200620046a22043602002003411f4d0d01200241086a41186a2203200241d8096a41186a2206290300370300200241086a41106a2207200241d8096a41106a2208290300370300200241086a41086a2209200241d8096a41086a220a290300370300200220022903d80937030820062003290300220b37030020082007290300220c370300200a2009290300220d370300200241e0076a41086a2203200d370300200241e0076a41106a2206200c370300200241e0076a41186a2207200b37030020022002290308220b3703e0072002200b3703d809200241c0076a41186a2007290300370300200241c0076a41106a2006290300370300200241c0076a41086a2003290300370300200220022903e0073703c00720024200370308200241086a200420054108200541084922061b2203101e1a200141046a2207200520036b22053602002001200420036a220336020020060d022002290308210e200241003a0008200241086a200320054100472204101e1a2007200520046b220f3602002001200320046a22043602002005450d184107210320022d0008221041074b0d37024020100e08000507083b090406000b200241003a0008200241086a2004200f4100472205101e1a200141046a2208200f20056b22063602002001200420056a2207360200410321094200210d20022d00084108744100200f1b2005724181fe03714101470d35200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20072004101e1a2008200620046b22053602002001200720046a22043602002006411f4d0d0c200241086a41186a2206200241f8096a41186a2207290300370300200241086a41106a2208200241f8096a41106a220a290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f80937030820072006290300220b370300200a2008290300220c370300201220112903002213370300200241d8116a41086a22062013370300200241d8116a41106a2207200c370300200241d8116a41186a2208200b37030020022002290308220b3703d8112002200b3703f80920024198106a41186a200829030037030020024198106a41106a200729030037030020024198106a41086a2006290300370300200220022903d8113703981020024200370308200241086a200420054108200541084922071b2206101e1a200141046a2208200520066b22053602002001200420066a220636020020070d332002290308210b200241f8096a2005412020054120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a2008200520046b22073602002001200620046a22043602002005411f4d0d20200241086a41186a2205200241f8096a41186a2206290300370300200241086a41106a2208200241f8096a41106a220a290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f80937030820062005290300220c370300200a20082903002213370300201220112903002214370300200241d8116a41086a22052014370300200241d8116a41106a22062013370300200241d8116a41186a2208200c37030020022002290308220c3703d8112002200c3703f809200241b8106a41186a2008290300370300200241b8106a41106a2006290300370300200241b8106a41086a2005290300370300200220022903d8113703b810200241003a0008200241086a200420074100472205101e1a200141046a200720056b22063602002001200420056a22043602002007450d3341014102410320022d000822054112461b20054111461b22054101460d2b20054103460d3320024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d3320022802082115200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a2008200720046b22063602002001200520046a22083602002007411f4d0d2a200241086a41186a2216200241f8096a41186a2207290300370300200241086a41106a2217200241f8096a41106a2218290300370300200241086a41086a2219200241f8096a41086a221a290300370300200220022903f80937030820182017290300370300201a20192903003703002007201629030037030020024198126a41086a2204200241870a6a221b280000360200200220022903083703f809200220022900ff093703981220072d0000210520022800fb09211c20022d008b0a211d20022d008c0a211e20022f008d0a210a20022d008f0a211120022f00910a210f20022d00930a211220022d00940a211f20022f00950a212020022d00970a211020022f01f809212120022d00fa092122200241d8096a41086a200428020036020020022002290398123703d809200241f8096a200641c000200641c000491b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a20082004101e1a200141046a2223200620046b22243602002001200820046a22253602002006413f4d0d29200241086a41386a2204200241f8096a41386a2206290300370300200241086a41306a2208200241f8096a41306a2226290300370300200241086a41286a2227200241f8096a41286a2228290300370300200241086a41206a2229200241f8096a41206a222a29030037030020162007290300370300201720182903003703002019201a290300370300200220022903f80937030820182017290300370300201a201929030037030020072016290300370300202a202929030037030020282027290300370300202620082903003703002006200429030037030020024198116a41086a2204201b29000037030020024198116a41106a22062002418f0a6a29000037030020024198116a41186a2207200241f8096a411f6a29000037030020024198116a41206a22082002419f0a6a29000037030020024198116a41286a2216200241a70a6a29000037030020024198116a41306a2217200241af0a6a29000037030020024198116a41386a2218200241f8096a413f6a2d00003a0000200220022903083703f809200220022900ff093703981120023502f809210c20023201fc09211320023100fe092114200241d8106a41086a2004290300370300200241d8106a41106a2006290300370300200241d8106a41186a2007290300370300200241d8106a41206a2008290300370300200241d8106a41286a2016290300370300200241d8106a41306a2017290300370300200241d8106a41386a20182d00003a000020022002290398113703d81020022f01e209211620022d00e109210820022d00e009211920022f01de09211720022d00dd09210720022d00dc09211820022802d809212b200241f8096a2024412020244120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20252004101e1a2023202420046b22063602002001202520046a222c3602002024411f4d0d28200241086a41186a222d200241f8096a41186a222e290300370300200241086a41106a222f200241f8096a41106a2230290300370300200241086a41086a2231200241f8096a41086a2232290300370300200220022903f8093703082030202f29030037030020322031290300370300202e202d290300370300200241b8126a41086a2204200241870a6a280000360200200220022903083703f809200220022900ff093703b812202e2d0000212620022800fb09211a20022d008b0a212420022d008c0a212520022f008d0a211b20022d008f0a212320022f00910a212720022d00930a212820022d00940a212920022f00950a212a20022d00970a213320022f01f809213420022d00fa092135200241d8096a41086a22362004280200360200200220022903b8123703d809200241f8096a200641c000200641c000491b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a202c2004101e1a200141046a200620046b3602002001202c20046a3602002006413f4d0d2720212022411074722137200c201320144210868442208684210c20342035411074722106200241086a41386a2204200241f8096a41386a2221290300370300200241086a41306a2222200241f8096a41306a222c290300370300200241086a41286a2234200241f8096a41286a2235290300370300200241086a41206a2238200241f8096a41206a2239290300370300202d202e290300370300202f203029030037030020312032290300370300200220022903f809370308202120042903002213370300202c2022290300221437030020352034290300223a37030020392038290300223b370300202e202d290300223c3703002030202f290300223d37030020322031290300223e370300200241d8116a41086a223f203e370300200241d8116a41106a2240203d370300200241d8116a41186a2241203c370300200241d8116a41206a2242203b370300200241d8116a41286a2243203a370300200241d8116a41306a22442014370300200241d8116a41386a224520133703002002200229030822133703d811200220133703f809200241e0126a41086a20362802003602002031203f290300370300202f2040290300370300202d204129030037030020382042290300370300203420432903003703002022204429030037030020042045290300370300200220022903d8093703e012200220022903d8113703082021200241d8106a41386a2d00003a0000202c200241d8106a41306a2903003703002035200241d8106a41286a2903003703002039200241d8106a41206a290300370300202e200241d8106a41186a2903003703002030200241d8106a41106a2903003703002032200241d8106a41086a290300370300200220022903d8103703f809410121040c2c0b200041073a0008200241f0126a24000f0b200241d8096a41186a200241086a41186a290000370300200241d8096a41106a200241086a41106a290000370300200241d8096a41086a200241086a41086a290000370300200220022900083703d8090b410721040c380b200241003a0008200241086a2004200f4100472206101e1a200141046a200f20066b22053602002001200420066a2206360200200f450d3320022d0008220441044b0d33024020040e050019161714000b20024100360208200241086a20062005410420054104491b2207101e1a200141046a200520076b22043602002001200620076a2206360200200541034d0d332002280208220a417f4c0d22200a450d20200a100122110d21101c000b200241003a0008200241086a2004200f4100472205101e1a200141046a2208200f20056b22063602002001200420056a220736020020022d00084108744100200f1b2005724181fe03714101470d05200241f8096a20064120200641204922051b22046a41004100412020046b2004411f4b1b10171a200241f8096a20072004101e1a2008200620046b3602002001200720046a36020020050d04200241086a41186a2205200241f8096a41186a2204290300370300200241086a41106a2206200241f8096a41106a2207290300370300200241086a41086a2208200241f8096a41086a2209290300370300200220022903f809370308200720062903003703002009200829030037030020042005290300370300200241d8116a41086a2209200241870a6a280000360200200220022903083703f809200220022900ff093703d81120042d0000211120022800fb09210520022d008b0a211220022d008c0a211d20022f008d0a211620022d008f0a211720022f00910a210620022d00930a210720022d00940a211820022f00950a210a20022d00970a210820022f01f809210420022d00fa092119200241d8096a41086a22152009280200360200200220022903d8113703d809200241b00e6a41086a2015280200360200200220022903d8093703b00e20042019411074722104410121090c060b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2204360200200f450d3120022d00082205450d0a20054101460d0720054102470d31200241f8096a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a200241f8096a20042005101e1a200141046a200620056b3602002001200420056a3602002006411f4d0d18200241086a41186a2204200241f8096a41186a2203290300370300200241086a41106a2205200241f8096a41106a2206290300370300200241086a41086a2207200241f8096a41086a2208290300370300200220022903f809370308200620052903003703002008200729030037030020032004290300370300200241d8116a41086a2205200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210720022800fb09210420022d008b0a212b20022d008c0a212020022f008d0a211f20022d008f0a211820022f00910a211720022d00930a211920022d00940a210820022f00950a211620022d00970a211d20022f01f809210320022d00fa092106200241d8096a41086a2005280200360200200220022903d8113703d8092003200641107472210520022902dc09210d20022802d809210f4103211c0c0b0b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2205360200200f450d3020022d00082204450d0b20044101460d0720044102470d33410321060c080b200241003a0008200241086a2004200f4100472205101e1a200141046a2207200f20056b22063602002001200420056a220436020020022d00084108744100200f1b2005724181fe03714101470d2f20024200370308200241086a20042006410820064108491b2203101e1a2007200620036b3602002001200420036a36020041072103200641074d0d2f2002290308210d20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008410321034201210b0c0e0b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2204360200200f450d2e20022d00082205450d0b20054101460d0a20054102470d2e20024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d2e20022802082104200241003a0008200241086a200520074100472206101e1a2008200720066b3602002001200520066a3602002007450d2e2002310008420183210b410321030c0c0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090b410221090b200241870a6a200241b00e6a41086a280200360000200220053600fb09200220123a008b0a2002201d3a008c0a200220163b008d0a200220173a008f0a200220113a00900a200220063b00910a200220073a00930a200220183a00940a2002200a3b00950a200220083a00970a200220022903b00e3700ff09200220043b01f809200220044110763a00fa0920094102460d2b200220022f01f8093b01d609200241940a6a2f0100211720022901fe09210b20022901860a210d200228018e0a212b20024198096a41386a200241d8116a41386a2d00003a000020024198096a41306a200241d8116a41306a29010037030020024198096a41286a200241d8116a41286a29010037030020024198096a41206a200241d8116a41206a29010037030020024198096a41186a200241d8116a41186a29010037030020024198096a41106a200241d8116a41106a29010037030020024198096a41086a200241d8116a41086a29010037030020024188096a41086a200241800b6a41086a280100360200200220022901d81137039809200220022901800b37038809200241c8086a41386a200241086a41386a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41086a200241086a41086a290000370300200241c4086a41026a200241f8096a41026a2d00003a0000200220022900083703c808200220022f00f8093b01c408200241a0086a41186a200241b00e6a41186a290100370300200241a0086a41106a200241b00e6a41106a290100370300200241a0086a41086a200241b00e6a41086a29010037030020024180086a41186a200241d80c6a41186a29010037030020024180086a41106a200241d80c6a41106a29010037030020024180086a41086a200241d80c6a41086a290100370300200220022901b00e3703a008200220022901d80c37038008202b411076211f202b41087621202004418080fc0771411076211c20064180fe03714108762118200a4180fe03714108762119410121030c2e0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c260b200241f8096a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a200241f8096a20042005101e1a200141046a220a200620056b22093602002001200420056a22053602002006411f4d0d0f200241086a41186a2206200241f8096a41186a2204290300370300200241086a41106a2207200241f8096a41106a2208290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f809370308200820072903003703002012201129030037030020042006290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120042d0000210720022800fb09210420022d008b0a212b20022d008c0a212020022f008d0a211f20022d008f0a211820022f00910a211720022d00930a211920022d00940a210820022f00950a211620022d00970a211d20022f01f809211120022d00fa092112200241d8096a41086a2006280200360200200220022903d8113703d809200241003a0008200241086a200520094100472206101e1a200a200920066b3602002001200520066a3602002009450d292011201241107472210520022d0008410171211e20022902dc09210d20022802d809210f4102211c0c030b410221060b0c220b4101211c200110212204450d290b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008200fad4220862004ad84210b410621030c270b200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a200141046a2212200620046b22093602002001200520046a22113602002006411f4d0d0c200241086a41186a2204200241f8096a41186a2203290300370300200241086a41106a2205200241f8096a41106a2206290300370300200241086a41086a2207200241f8096a41086a2208290300370300200220022903f809370308200620052903003703002008200729030037030020032004290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a210420022f01f809211520022d00fa09211a200241d8096a41086a2006280200360200200220022903d8113703d80920024200370308200241086a20112009410820094108491b2203101e1a2012200920036b3602002001201120036a36020041072103200941074d0d242015201a4110747221092002290308210c20022802e009212b20022903d809210d410121060c1f0b20024100360208200241086a20042006410420064104491b2205101e1a200141046a200620056b3602002001200420056a360200200641034d0d2320022802082104410221034200210b0c010b200110212204450d22200220043602d8104200210b20024200370308200241086a20012802002206200141046a22072802002205410820054108491b2203101e1a2007200520036b3602002001200620036a36020041072103200541074d0d0d2002290308210d410121030b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008200b2004ad42188684420886200341ff0171ad84210b410421030b4100211f410021200c210b200241f8096a2005412020054120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a200141046a2212200520046b22093602002001200620046a22043602002005411f4d0d09200241086a41186a2205200241f8096a41186a2203290300370300200241086a41106a2206200241f8096a41106a2207290300370300200241086a41086a2208200241f8096a41086a220a290300370300200220022903f80937030820072006290300370300200a200829030037030020032005290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a211120022f01f809211520022d00fa09211a200241d8096a41086a2006280200360200200220022903d8113703d80920024200370308200241086a20042009410820094108491b2203101e1a2012200920036b22063602002001200420036a2203360200200941074d0d002002290308210c20024100360208200241086a20032006410420064104491b2204101e1a200141046a200620046b3602002001200320046a360200200641034d0d002015201a4110747221032002280208211220022802e009212b20022903d809210d410521040c190b410721030c1e0b20024100360208200241086a20062005410420054104491b2204101e1a200141046a200520046b3602002001200620046a36020041032104200541034d0d1d0c010b2002410036020841042104200241086a20062005410420054104491b2207101e1a200141046a200520076b3602002001200620076a360200200541034d0d1c0b200228020821050c150b20024100360208200241086a20062005410420054104491b2204101e1a200141046a2208200520046b22073602002001200620046a2206360200200541034d0d1a20022802082112200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a2008200720046b22093602002001200620046a22043602002007411f4d0d06200241086a41186a2206200241f8096a41186a2205290300370300200241086a41106a2207200241f8096a41106a2208290300370300200241086a41086a220a200241f8096a41086a2211290300370300200220022903f809370308200820072903003703002011200a29030037030020052006290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120052d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a211120022f01f809212420022d00fa092125200241d8096a41086a2006280200360200200220022903d8113703d80920024100360208200241086a20042009410420094104491b2206101e1a200141046a221a200920066b22153602002001200420066a2204360200200941034d0d1a2002350208210b20024100360208200241086a20042015410420154104491b2206101e1a201a201520066b3602002001200420066a360200201541034d0d1a202420254110747221032002350208422086200b84210c20022802e009212b20022903d809210d410221040c140b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c190b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c180b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c170b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c120b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c150b200241d8106a10220c140b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c130b410121110b2002200a36020c20022011360208200241003602100240200a450d00200141046a211d200241106a211241002105410021080340200241003a00d811200241d8116a200620044100472207101e1a201d200420076b22093602002001200620076a2206360200024002402004450d00200841016a210820022d00d81141017121042005200228020c470d01200241086a102320122802002105200228020821110c010b200228020c450d14201110020c140b201120056a20043a00002012200541016a2205360200200921042008200a490d000b200228020821110b2011450d112011410020111b2105200229020c210d20024100360208200241086a20012802002207200141046a22082802002204410420044104491b2206101e1a2008200420066b3602002001200720066a3602000240200441034d0d002002280208212b410121040c0c0b200da7450d11200510020c110b1024000b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300202e202d2900003703002030202f29000037030020322031290000370300200220022900083703f8090c0b0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c0a0b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a2900003703002007201629000037030020182017290000370300201a2019290000370300200220022900083703f8090c090b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c080b20024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d0720022802082115200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a2008200720046b22063602002001200520046a22253602002007411f4d0d01200241086a41186a221b200241f8096a41186a221a290300370300200241086a41106a2223200241f8096a41106a2224290300370300200241086a41086a2226200241f8096a41086a2227290300370300200220022903f80937030820242023290300370300201a201b29030037030020272026290300370300200220022903083703f80920242d00002108201a2d0000210520022800fb09211c20022800ff09212b20022d00830a211820022d00840a210720022f00850a211720022d00870a211920022f00890a211620022d008b0a211d20022d008c0a211e20022f008d0a210a20022d008f0a211120022f00910a210f20022d00930a211220022d00940a211f20022f00950a212020022d00970a211020022f01f809212a20022d00fa092133200241f8096a200641c000200641c0004922281b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a20252004101e1a200141046a2229200620046b22063602002001202520046a222536020020280d02200241086a41386a2204200241f8096a41386a2228290300370300200241086a41306a222e200241f8096a41306a2221290300370300200241086a41286a2222200241f8096a41286a222c290300370300200241086a41206a222d200241f8096a41206a222f290300370300201b201a2903003703002023202429030037030020262027290300370300200220022903f8093703082024202329030037030020272026290300370300201a201b290300370300202f202d290300370300202c20222903003703002021202e2903003703002028200429030037030020024198116a41086a2204200241870a6a29000037030020024198116a41106a221a2002418f0a6a29000037030020024198116a41186a2224200241f8096a411f6a29000037030020024198116a41206a221b2002419f0a6a29000037030020024198116a41286a2223200241a70a6a29000037030020024198116a41306a2226200241af0a6a29000037030020024198116a41386a2227200241f8096a413f6a2d00003a0000200220022903083703f809200220022900ff093703981120023502f809210c20023201fc09211320023100fe092114200241d8106a41386a20272d00003a0000200241d8106a41306a2026290300370300200241d8106a41286a2023290300370300200241d8106a41206a201b290300370300200241d8106a41186a2024290300370300200241d8106a41106a201a290300370300200241d8106a41086a200429030037030020022002290398113703d810200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20252004101e1a2029200620046b221a3602002001202520046a22243602002006411f4d0d03200241086a41186a2225200241f8096a41186a222e290300370300200241086a41106a221b200241f8096a41106a2221290300370300200241086a41086a2223200241f8096a41086a2222290300370300200220022903f809370308202e2025290300223a3703002021201b290300223b37030020222023290300223c370300200241b8126a41086a2204203c370300200241b8126a41106a2206203b370300200241b8126a41186a2226203a37030020022002290308223a3703b8122002203a3703f809200241d8096a41186a2026290300370300200241d8096a41106a2006290300370300200241d8096a41086a2004290300370300200220022903b8123703d80941002104200241f8096a201a41c000201a41c000491b22066a4100410041c00020066b2006413f4b1b10171a200241f8096a20242006101e1a200141046a201a20066b3602002001202420066a360200201a413f4d0d04202a2033411074722137200c201320144210868442208684210c200241086a41386a2206200241f8096a41386a222c290300370300200241086a41306a221a200241f8096a41306a222d290300370300200241086a41286a2224200241f8096a41286a222f290300370300200241086a41206a2226200241f8096a41206a22302903003703002025202e290300370300201b202129030037030020232022290300370300200220022903f809370308202c20062903002213370300202d201a2903002214370300202f2024290300223a37030020302026290300223b370300202e2025290300223c3703002021201b290300223d37030020222023290300223e370300200241d8116a41086a2227203e370300200241d8116a41106a2228203d370300200241d8116a41186a2229203c370300200241d8116a41206a222a203b370300200241d8116a41286a2233203a370300200241d8116a41306a22312014370300200241d8116a41386a223220133703002002200229030822133703d811200220133703f809200241e0126a41086a200241e7096a28000036020020232027290300370300201b2028290300370300202520292903003703002026202a29030037030020242033290300370300201a203129030037030020062032290300370300200220022900df093703e012200220022903d81137030820022800db09211a20022d00eb09212420022d00ec09212520022f00ed09211b20022d00ef09212320022d00f009212620022f00f109212720022d00f309212820022d00f409212920022f00f509212a20022d00f709213320022f01d809210620022d00da092131202c200241d8106a41386a2d00003a0000202d200241d8106a41306a290300370300202f200241d8106a41286a2903003703002030200241d8106a41206a290300370300202e200241d8106a41186a2903003703002021200241d8106a41106a2903003703002022200241d8106a41086a290300370300200220022903d8103703f809200620314110747221060b20024198116a41386a200241f8096a41386a2d00003a000020024198116a41306a200241f8096a41306a29030037030020024198116a41286a200241f8096a41286a29030037030020024198116a41206a200241f8096a41206a29030037030020024198116a41186a200241f8096a41186a29030037030020024198116a41106a200241f8096a41106a29030037030020024198116a41086a200241f8096a41086a29030037030020024188106a41086a200241e0126a41086a280200360200200220022903f80937039811200220022903e01237038810200241d8116a41386a200241086a41386a290300370300200241d8116a41306a200241086a41306a290300370300200241d8116a41286a200241086a41286a290300370300200241d8116a41206a200241086a41206a290300370300200241d8116a41186a200241086a41186a290300370300200241d8116a41106a200241086a41106a290300370300200241d8116a41086a200241086a41086a29030037030020024184106a41026a200241d8106a41026a2d00003a0000200220022903083703d811200220022f00d8103b018410200241e00f6a41186a20024198106a41186a290300370300200241e00f6a41106a20024198106a41106a290300370300200241e00f6a41086a20024198106a41086a29030037030020022002290398103703e00f200241c00f6a41186a200241b8106a41186a290300370300200241c00f6a41106a200241b8106a41106a290300370300200241c00f6a41086a200241b8106a41086a290300370300200220022903b8103703c00f0c070b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c050b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300201a201b2900003703002024202329000037030020272026290000370300200220022900083703f8090c040b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c030b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300202e20252900003703002021201b29000037030020222023290000370300200220022900083703f8090c020b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c370380082005ad421886200341ffffff0771ad84420886200441ff0171ad84210b202b411076211f202b4108762120410521030c060b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c80841022103200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c370380082005ad421886200941ffffff0771ad84420886200641ff0171ad84210b202b411076211f202b4108762120200441ff017121110c050b410221040b200241f8096a41386a222e20024198116a41386a2d00003a0000200241f8096a41306a222120024198116a41306a290300370300200241f8096a41286a222220024198116a41286a290300370300200241f8096a41206a222c20024198116a41206a290300370300200241f8096a41186a222d20024198116a41186a290300370300200241f8096a41106a222f20024198116a41106a290300370300200241f8096a41086a223020024198116a41086a290300370300200241e0126a41086a223120024188106a41086a28020036020020022002290398113703f80920022002290388103703e012200241086a41386a2232200241d8116a41386a290300370300200241086a41306a2234200241d8116a41306a290300370300200241086a41286a2235200241d8116a41286a290300370300200241086a41206a2236200241d8116a41206a290300370300200241086a41186a2238200241d8116a41186a290300370300200241086a41106a2239200241d8116a41106a290300370300200241086a41086a223f200241d8116a41086a290300370300200241dc126a41026a20024184106a41026a2d00003a0000200220022903d811370308200220022f0184103b01dc12200241b8126a41186a2240200241e00f6a41186a290300370300200241b8126a41106a2241200241e00f6a41106a290300370300200241b8126a41086a2242200241e00f6a41086a29030037030020024198126a41186a2243200241c00f6a41186a29030037030020024198126a41106a2244200241c00f6a41106a29030037030020024198126a41086a2245200241c00f6a41086a290300370300200220022903e00f3703b812200220022903c00f370398120240024020044102470d004102210441024102470d010c020b200241800f6a41386a202e2d00003a0000200241800f6a41306a2021290300370300200241800f6a41286a2022290300370300200241800f6a41206a202c290300370300200241800f6a41186a202d290300370300200241800f6a41106a202f290300370300200241800f6a41086a2030290300370300200241f00e6a41086a2031280200360200200220022903f8093703800f200220022903e0123703f00e200241b00e6a41386a2032290300370300200241b00e6a41306a2034290300370300200241b00e6a41286a2035290300370300200241b00e6a41206a2036290300370300200241b00e6a41186a2038290300370300200241b00e6a41106a2039290300370300200241b00e6a41086a203f290300370300200241ac0e6a41026a200241dc126a41026a2d00003a0000200220022903083703b00e200220022f01dc123b01ac0e200241880e6a41186a2040290300370300200241880e6a41106a2041290300370300200241880e6a41086a2042290300370300200220022903b8123703880e200241e80d6a41186a2043290300370300200241e80d6a41106a2044290300370300200241e80d6a41086a204529030037030020022002290398123703e80d200c420886201041ff0171ad84210c2020411074201f41ff017141087472201241ff0171722112200f411074200541ff017141087472201141ff017172211120044102460d010b20024198116a41386a200241800f6a41386a2d00003a000020024198116a41306a200241800f6a41306a29030037030020024198116a41286a200241800f6a41286a29030037030020024198116a41206a200241800f6a41206a29030037030020024198116a41186a200241800f6a41186a29030037030020024198116a41106a200241800f6a41106a29030037030020024198116a41086a200241800f6a41086a29030037030020024188106a41086a200241f00e6a41086a280200360200200220022903800f37039811200220022903f00e37038810200241d8116a41386a200241b00e6a41386a290300370300200241d8116a41306a200241b00e6a41306a290300370300200241d8116a41286a200241b00e6a41286a290300370300200241d8116a41206a200241b00e6a41206a290300370300200241d8116a41186a200241b00e6a41186a290300370300200241d8116a41106a200241b00e6a41106a290300370300200241d8116a41086a200241b00e6a41086a29030037030020024184106a41026a200241ac0e6a41026a2d00003a0000200220022903b00e3703d811200220022f01ac0e3b018410200241e00f6a41186a200241880e6a41186a290300370300200241e00f6a41106a200241880e6a41106a290300370300200241e00f6a41086a200241880e6a41086a290300370300200220022903880e3703e00f200241c00f6a41186a200241e80d6a41186a290300370300200241c00f6a41106a200241e80d6a41106a290300370300200241c00f6a41086a200241e80d6a41086a290300370300200220022903e80d3703c00f201cad421886203741ffffff0771ad84420886210d0c010b410321040b200241f8096a41386a220520024198116a41386a2d00003a0000200241f8096a41306a221c20024198116a41306a290300370300200241f8096a41286a220f20024198116a41286a290300370300200241f8096a41206a221f20024198116a41206a290300370300200241f8096a41186a222020024198116a41186a290300370300200241f8096a41106a221020024198116a41106a290300370300200241f8096a41086a20024198116a41086a290300370300200241e0126a41086a20024188106a41086a28020036020020022002290398113703f80920022002290388103703e012200241086a41386a222e200241d8116a41386a290300370300200241086a41306a2221200241d8116a41306a290300370300200241086a41286a2222200241d8116a41286a290300370300200241086a41206a222c200241d8116a41206a290300370300200241086a41186a222d200241d8116a41186a290300370300200241086a41106a222f200241d8116a41106a290300370300200241086a41086a200241d8116a41086a290300370300200241dc126a41026a223020024184106a41026a2d00003a0000200220022903d811370308200220022f0184103b01dc12200241b8126a41186a2231200241e00f6a41186a290300370300200241b8126a41106a2232200241e00f6a41106a290300370300200241b8126a41086a200241e00f6a41086a29030037030020024198126a41186a2234200241c00f6a41186a29030037030020024198126a41106a2235200241c00f6a41106a29030037030020024198126a41086a200241c00f6a41086a290300370300200220022903e00f3703b812200220022903c00f37039812024020044103460d00200241a80d6a41386a20052d00003a0000200241a80d6a41306a201c290300370300200241a80d6a41286a200f290300370300200241a80d6a41206a201f290300370300200241a80d6a41186a2020290300370300200241a80d6a41106a2010290300370300200241a80d6a41086a200241f8096a41086a290300370300200241980d6a41086a200241e0126a41086a280200360200200220022903f8093703a80d200220022903e0123703980d200241d80c6a41386a202e290300370300200241d80c6a41306a2021290300370300200241d80c6a41286a2022290300370300200241d80c6a41206a202c290300370300200241d80c6a41186a202d290300370300200241d80c6a41106a202f290300370300200241d80c6a41086a200241086a41086a290300370300200241d40c6a41026a20302d00003a0000200220022903083703d80c200220022f01dc123b01d40c200241b00c6a41186a2031290300370300200241b00c6a41106a2032290300370300200241b00c6a41086a200241b8126a41086a290300370300200220022903b8123703b00c200241900c6a41186a2034290300370300200241900c6a41106a2035290300370300200241900c6a41086a20024198126a41086a29030037030020022002290398123703900c200421090b20094103460d0020024198096a41086a200241a80d6a41086a29030037030020024198096a41106a200241a80d6a41106a29030037030020024198096a41186a200241a80d6a41186a29030037030020024198096a41206a200241a80d6a41206a29030037030020024198096a41286a200241a80d6a41286a29030037030020024198096a41306a200241a80d6a41306a29030037030020024198096a41386a200241a80d6a41386a2d00003a0000200220022f018e0c3b01d609200220022903a80d3703980920024188096a41086a200241980d6a41086a280200360200200241c8086a41086a200241d80c6a41086a290300370300200241c8086a41106a200241d80c6a41106a290300370300200241c8086a41186a200241d80c6a41186a290300370300200241c8086a41206a200241d80c6a41206a290300370300200241c8086a41286a200241d80c6a41286a290300370300200241c8086a41306a200241d80c6a41306a290300370300200241c8086a41386a200241d80c6a41386a290300370300200220022903980d37038809200220022903d80c3703c808200241c4086a41026a200241d40c6a41026a2d00003a0000200241a0086a41186a200241b00c6a41186a290300370300200241a0086a41106a200241b00c6a41106a290300370300200241a0086a41086a200241b00c6a41086a29030037030020024180086a41186a200241900c6a41186a29030037030020024180086a41106a200241900c6a41106a29030037030020024180086a41086a200241900c6a41086a290300370300200220022f01d40c3b01c408200220022903b00c3703a008200220022903900c37038008202b411076211f202b4108762120200d200941ff0171ad84210d410021030c010b0c020b0b0b200241d00b6a41086a220f20024198096a41086a290300370300200241d00b6a41106a221020024198096a41106a290300370300200241d00b6a41186a222e20024198096a41186a290300370300200241d00b6a41206a222120024198096a41206a290300370300200241d00b6a41286a222220024198096a41286a290300370300200241d00b6a41306a222c20024198096a41306a290300370300200241d00b6a41386a222d20024198096a41386a2d00003a0000200220022f01d6093b018e0c20022002290398093703d00b200241c00b6a41086a222f20024188096a41086a280200360200200241800b6a41086a2230200241c8086a41086a290300370300200241800b6a41106a2231200241c8086a41106a290300370300200241800b6a41186a2232200241c8086a41186a290300370300200241800b6a41206a2234200241c8086a41206a290300370300200241800b6a41286a2235200241c8086a41286a290300370300200241800b6a41306a2236200241c8086a41306a290300370300200241800b6a41386a2238200241c8086a41386a29030037030020022002290388093703c00b200220022903c8083703800b200241fc0a6a41026a2239200241c4086a41026a2d00003a0000200241d80a6a41186a223f200241a0086a41186a290300370300200241d80a6a41106a2240200241a0086a41106a290300370300200241d80a6a41086a2241200241a0086a41086a290300370300200241b80a6a41186a224220024180086a41186a290300370300200241b80a6a41106a224320024180086a41106a290300370300200241b80a6a41086a224420024180086a41086a290300370300200220022f01c4083b01fc0a200220022903a0083703d80a20022002290380083703b80a4107210420034107460d00200241d80c6a41086a200f290300370300200241d80c6a41106a2010290300370300200241d80c6a41186a202e290300370300200241d80c6a41206a2021290300370300200241d80c6a41286a2022290300370300200241d80c6a41306a202c290300370300200241d80c6a41386a202d2d00003a0000200220022f018e0c3b01c00f200220022903d00b3703d80c200241b8126a41086a202f280200360200200241d8116a41086a2030290300370300200241d8116a41106a2031290300370300200241d8116a41186a2032290300370300200241d8116a41206a2034290300370300200241d8116a41286a2035290300370300200241d8116a41306a2036290300370300200241d8116a41386a2038290300370300200220022903c00b3703b812200220022903800b3703d81120024198126a41026a20392d00003a000020024198116a41186a203f29030037030020024198116a41106a204029030037030020024198116a41086a2041290300370300200241800f6a41186a2042290300370300200241800f6a41106a2043290300370300200241800f6a41086a2044290300370300200220022f01fc0a3b019812200220022903d80a37039811200220022903b80a3703800f200241a80d6a41186a200241c0076a41186a290300370300200241a80d6a41106a200241c0076a41106a290300370300200241a80d6a41086a200241c0076a41086a290300370300200220022903c0073703a80d201f411074202041ff017141087472202b41ff017172210f200321040c010b0b200241b00e6a41086a222b200241d80c6a41086a290300370300200241b00e6a41106a221f200241d80c6a41106a290300370300200241b00e6a41186a2220200241d80c6a41186a290300370300200241b00e6a41206a2210200241d80c6a41206a290300370300200241b00e6a41286a222e200241d80c6a41286a290300370300200241b00e6a41306a2221200241d80c6a41306a290300370300200241b00e6a41386a2222200241d80c6a41386a2d00003a0000200220022f01c00f3b01e00f200220022903d80c3703b00e200241d00b6a41086a222c200241b8126a41086a280200360200200241086a41086a222d200241d8116a41086a290300370300200241086a41106a222f200241d8116a41106a290300370300200241086a41186a2230200241d8116a41186a290300370300200241086a41206a2231200241d8116a41206a290300370300200241086a41286a2232200241d8116a41286a290300370300200241086a41306a2234200241d8116a41306a290300370300200241086a41386a2235200241d8116a41386a290300370300200220022903b8123703d00b200220022903d81137030820024198096a41026a223620024198126a41026a2d00003a0000200241800b6a41186a223820024198116a41186a290300370300200241800b6a41106a223920024198116a41106a290300370300200241800b6a41086a223f20024198116a41086a290300370300200241f8096a41186a2240200241800f6a41186a290300370300200241f8096a41106a2241200241800f6a41106a290300370300200241f8096a41086a2242200241800f6a41086a290300370300200220022f0198123b01980920022002290398113703800b200220022903800f3703f809200241c8086a41186a2243200241a80d6a41186a290300370300200241c8086a41106a2244200241a80d6a41106a290300370300200241c8086a41086a2245200241a80d6a41086a290300370300200220022903a80d3703c80841072103024020044107460d0020024180076a41086a202b29030037030020024180076a41106a201f29030037030020024180076a41186a202029030037030020024180076a41206a201029030037030020024180076a41286a202e29030037030020024180076a41306a202129030037030020024180076a41386a20222d00003a0000200220022f01e00f3b01be07200220022903b00e37038007200241f0066a41086a202c280200360200200241b0066a41086a202d290300370300200241b0066a41106a202f290300370300200241b0066a41186a2030290300370300200241b0066a41206a2031290300370300200241b0066a41286a2032290300370300200241b0066a41306a2034290300370300200241b0066a41386a2035290300370300200220022903d00b3703f006200220022903083703b006200241ac066a41026a20362d00003a000020024188066a41186a203829030037030020024188066a41106a203929030037030020024188066a41086a203f290300370300200241e8056a41186a2040290300370300200241e8056a41106a2041290300370300200241e8056a41086a2042290300370300200220022f0198093b01ac06200220022903800b37038806200220022903f8093703e805200241c8056a41186a2043290300370300200241c8056a41106a2044290300370300200241c8056a41086a2045290300370300200220022903c8083703c805200421030b024020034107470d00200041073a0008200241f0126a24000f0b20024197036a20054110763a000020024195036a20053b000020024191036a20093a000020024192036a20022f01be073b010020024194036a201c3a000020024188036a41106a2209200b37030020024188036a41186a200d37030020024188036a41206a200f360200200241ac036a20183a0000200241ad036a20073a0000200241ae036a20173b010020024188036a41286a20193a0000200241b1036a20083a0000200241b2036a20163b0100200241b4036a201d3a0000200241b5036a201e3a0000200241b6036a200a3b0100200220033a0090032002200e37038803200241bc036a201236020020024188036a41306a201136020020024188036a41386a200c37030020024188036a41c0006a200229038007370300200241d0036a20024180076a41086a290300370300200241d8036a20024180076a41106a290300370300200241e0036a20024180076a41186a290300370300200241e8036a20024180076a41206a290300370300200241f0036a20024180076a41286a290300370300200241f8036a20024180076a41306a29030037030020024180046a20024180076a41386a2d00003a000020024183046a20064110763a000020024181046a20063b000020024184046a201a36020020024194046a20243a000020024195046a20253a000020024196046a201b3b010020024198046a20233a000020024199046a20263a00002002419a046a20273b01002002419c046a20283a00002002419d046a20293a00002002419e046a202a3b0100200241a0046a20333a000020024190046a200241f0066a41086a28020036020020024188046a20022903f006370300200241d9046a200241b0066a41386a290300370000200241d1046a200241b0066a41306a290300370000200241c9046a200241b0066a41286a290300370000200241c1046a200241b0066a41206a290300370000200241b9046a200241b0066a41186a290300370000200241b1046a200241b0066a41106a290300370000200241a9046a200241b0066a41086a290300370000200241a1046a20022903b006370000200241e3046a200241ae066a2d00003a0000200241e1046a20022f01ac063b0000200241e4046a201536020020024180056a20024188066a41186a290300370300200241f8046a20024188066a41106a290300370300200241f0046a20024188066a41086a290300370300200241e8046a200229038806370300200241a0056a200241e8056a41186a29030037030020024198056a200241e8056a41106a29030037030020024190056a200241e8056a41086a29030037030020024188056a20022903e805370300200241c0056a200241c8056a41186a290300370300200241b8056a200241c8056a41106a290300370300200241b0056a200241c8056a41086a290300370300200220022903c8053703a80520012802002105200241f8096a200141046a2206280200220441c000200441c000491b22036a4100410041c00020036b2003413f4b1b10171a200241f8096a20052003101e1a2006200420036b3602002001200520036a36020002402004413f4d0d00200241086a41386a2209200241f8096a41386a2201290300370300200241086a41306a220a200241f8096a41306a2203290300370300200241086a41286a2211200241f8096a41286a2204290300370300200241086a41206a2212200241f8096a41206a2205290300370300200241086a41186a221d200241f8096a41186a2206290300370300200241086a41106a2216200241f8096a41106a2207290300370300200241086a41086a2217200241f8096a41086a2208290300370300200220022903f80937030820012009290300220b3703002003200a290300220c37030020042011290300220d37030020052012290300220e3703002006201d290300221337030020072016290300221437030020082017290300223a370300200241d8116a41086a2209203a370300200241d8116a41106a220a2014370300200241d8116a41186a22112013370300200241d8116a41206a2212200e370300200241d8116a41286a221d200d370300200241d8116a41306a2216200c370300200241d8116a41386a2217200b37030020022002290308220b3703d8112002200b3703f809200241b00e6a41386a22182017290300370300200241b00e6a41306a22172016290300370300200241b00e6a41286a2216201d290300370300200241b00e6a41206a221d2012290300370300200241b00e6a41186a22122011290300370300200241b00e6a41106a2211200a290300370300200241b00e6a41086a220a2009290300370300200220022903d8113703b00e20012018290300220b37030020032017290300220c37030020042016290300220d3703002005201d290300220e3703002006201229030022133703002007201129030022143703002008200a290300223a370300200241d80c6a41086a2201203a370300200241d80c6a41106a22032014370300200241d80c6a41186a22042013370300200241d80c6a41206a2205200e370300200241d80c6a41286a2206200d370300200241d80c6a41306a2207200c370300200241d80c6a41386a2208200b370300200220022903b00e220b3703d80c2002200b3703f809200241086a20024188036a41c002101e1a20024180036a2008290300370300200241f8026a2007290300370300200241f0026a2006290300370300200241e8026a2005290300370300200241e0026a2004290300370300200241d8026a2003290300370300200241d0026a2001290300370300200220022903d80c3703c8022000200241086a418003101e1a200241f0126a24000f0b200241f8096a41386a2201200241086a41386a290000370300200241f8096a41306a2203200241086a41306a290000370300200241f8096a41286a2204200241086a41286a290000370300200241f8096a41206a2205200241086a41206a290000370300200241f8096a41186a2206200241086a41186a290000370300200241f8096a41106a2207200241086a41106a290000370300200241f8096a41086a2208200241086a41086a290000370300200220022900083703f8092001200241b00e6a41386a2900003703002003200241b00e6a41306a2900003703002004200241b00e6a41286a2900003703002005200241b00e6a41206a2900003703002006200241b00e6a41186a2900003703002007200241b00e6a41106a2900003703002008200241b00e6a41086a290000370300200220022900b00e3703f809200041073a0008024020024188036a41086a2d00002201411d74411d75417f4a0d000240024020014104460d0020014105470d0120024198036a2d00004101470d02200241a0036a280200450d022002419c036a2802001002200241f0126a24000f0b20024198036a2d00004101470d012002419c036a1025200241f0126a24000f0b20024194036a2d00004101470d0020091025200241f0126a24000f0b200241f0126a24000bd81a05077f017e027f017e017f230041c0016b22012400200141003a00a001200141a0016a20002802002202200028020422034100472204101e1a2000200320046b22053602042000200220046a220236020002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402003450d004106210420012d00a001220341074b0d19024020030e080004021b1b050603000b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1920012d00a0012205450d0820054101470d19200141003602a001200141a0016a20032006410420064104491b2205101e1a200041046a200620056b3602002000200320056a360200200641034d0d1920012802a0012207ad42187e2208422088a70d152008a72203417f4c0d142003450d112003100122090d120c1b0b410621040c180b200141003a00a001200141a0016a200220054100472203101e1a41042109200041046a200520036b22063602002000200220036a22033602002005450d1720012d00a001220541034b0d17024020050e04000a0b0c000b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1720012903a0012108410121090c0b0b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1620012d00a0012205450d0320054101470d16200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1620012903a00121084202210b0c040b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1520012d00a0012205450d054202210b20054101460d060c160b200141a0016a200010a00120012903a001220ba741ff01714103460d1520014180016a41086a200141a0016a41086a29020037030020014180016a41106a200141a0016a41106a290200370300200120012902a001370380012001200b370348410321040c150b200141003a00a001200141a0016a200220054100472206101e1a200041046a200520066b22033602002000200220066a220236020002402005450d004105210520012d00a001220641034b0d11024020060e04000c0a0b000b200141003602a001200141a0016a20022003410420034104491b2206101e1a200041046a200320066b3602002000200220066a360200200341034d0d1120012802a0012100410121050c130b410521050c100b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1220012903a00121084201210b0b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120012903a001370380012001200b37024c410521040c120b200141a0016a2000101f20012802a0012209450d1020012902a4012108410121000c0a0b200142003703a001200141a0016a200320064108200641084922021b2205101e1a200041046a200620056b3602002000200320056a36020020020d0f20012903a00121084201210b0b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120012903a001370380012001200b37024c410121040c0f0b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d0d20012903a0012108410221090c010b200141003602a001200141a0016a20032006410420064104491b2205101e1a200041046a200620056b3602002000200320056a36020041032109200641034d0d0c20012802a00121020b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120023602502001200936024c200120012903a00137038001410221040c0c0b200142003703a001200141a0016a20022003410820034108491b2206101e1a200041046a200320066b3602002000200220066a360200200341074d0d0720012903a0012108410321050c080b200142003703a001200141a0016a20022003410820034108491b2206101e1a200041046a200320066b3602002000200220066a360200200341074d0d0620012903a0012108410421050c080b200141a0016a2003412020034120491b22066a41004100412020066b2006411f4b1b10171a200141a0016a20022006101e1a200041046a200320066b3602002000200220066a36020002402003411f4d0d0020014180016a41186a2200200141a0016a41186a220329030037030020014180016a41106a2205200141a0016a41106a220229030037030020014180016a41086a2206200141a0016a41086a2209290300370300200120012903a0013703800120032000290300370300200220052903003703002009200629030037030020012001290380013703a00141022105200141fc006a41026a220320012d00a2013a0000200141e8006a41086a2202200141b7016a290000370300200141e8006a41106a2206200141a0016a411f6a2d00003a0000200120012f01a0013b017c200120012900af0137036820012800a301210020012900a7012108200141e4006a41026a20032d00003a0000200141c8006a41086a2002290300370300200141c8006a41106a20062d00003a0000200120012f017c3b0164200120012903683703480c080b200141a0016a41186a20014180016a41186a290000370300200141a0016a41106a20014180016a41106a290000370300200141a0016a41086a20014180016a41086a29000037030020012001290080013703a0010c050b410421090b2001200736024c20012009360248410021032001410036025002402007450d00200141d0006a210c41002102034020014180016a2000101f024002402001280280012206450d002001290284012108200141a0016a2000101f024020012802a001220a450d00200241016a210220012902a401210b2003200128024c470d02200141c8006a1076200c2802002103200128024821090c020b2008a7450d00200610020b2001280248210502402003450d00200341186c21032005210003400240200041046a280200450d00200028020010020b0240200041106a280200450d002000410c6a28020010020b200041186a2100200341686a22030d000b0b200128024c450d09200510020c090b2009200341186c6a22052008370204200520063602002005410c6a200a360200200541106a200b370200200c200341016a220336020020022007490d000b200128024821090b2009450d06200129024c2108410221000b20014180016a41086a200141a0016a41086a29020037030020014180016a41106a200141a0016a41106a29020037030020012000360248200120012902a00137038001200120084220862009ad8437024c20084220882108410021040c060b1061000b1060000b0b0b20014180016a41026a2203200141e4006a41026a2d00003a0000200141a0016a41086a2202200141c8006a41086a290300370300200141a0016a41106a2206200141c8006a41106a290300370300200120012f01643b018001200120012903483703a00120054105460d00200141c4006a41026a220420032d00003a0000200141286a41086a22032002290300370300200141286a41106a22022006290300370300200120012f0180013b0144200120012903a00137032820014180016a41086a200329030037030020014180016a41106a2002290300370300200120053a004c20012000360250200120012f01443b004d200120042d00003a004f2001200129032837038001410421040c010b0b200141c4006a41026a220020012d004f3a0000200141286a41086a220520014180016a41086a290300370300200141286a41106a220220014180016a41106a290300370300200120012f004d3b014420012001290380013703282001280250210620012d004c21092001280248210a41062103024020044106460d00200141246a41026a20002d00003a0000200141086a41086a2005290300370300200141086a41106a2002290300370300200120012f01443b012420012001290328370308200421030b024020034106470d00200141c0016a240041000f0b20014180016a41026a2204200141246a41026a2d00003a0000200141a0016a41086a2205200141086a41086a290300370300200141a0016a41106a2202200141086a41106a290300370300200120012f01243b018001200120012903083703a001413010012200450d002000200a36020420002003360200200020093a0008200020012f0180013b00092000200636000c20002008370210200020012903a0013702182000410b6a20042d00003a0000200041206a2005290300370200200041286a2002290300370200200141c0016a240020000f0b101c000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a1022200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b106e000b05001041000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a1025200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020b890403037f017e027f230041206b22022400200241003602082002420137030020024100410410272002280200200228020822036a41003600002002200341046a220336020820022003412010272002280200200228020822046a220320012900a002370000200341186a200141b8026a290000370000200341106a200141b0026a290000370000200341086a200141a8026a2900003700002002200441206a22033602082001290300210520022003410810272002280200200228020822036a20053700002002200341086a2206360208200241106a200141086a1028200228021021042002200620022802182203102720022003200228020822066a2207360208200620022802006a20042003101e1a02402002280214450d00200410020b2002200741c0001027200241086a22032003280200220441c0006a22063602002004200228020022076a220320012900c002370000200341086a200141c8026a290000370000200341106a200141d0026a290000370000200341186a200141d8026a290000370000200341206a200141e0026a290000370000200341286a200141e8026a290000370000200341306a200141f0026a290000370000200341386a200141f8026a2900003700000240200641034d0d002000200229030037020020072004413c6a360000200041086a200241086a280200360200200241206a24000f0b410420061029000ba10101027f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d0141000d01200341017422044100200220011b2201200420014b1b22014100480d01024002402003450d0020002802002104200110012202450d042002200420012003200320014b1b101e1a200410020c010b200110012202450d030b20002002360200200041046a20013602000b0f0b1041000b101c000bfb2602077f017e230041306b22022400200241003602082002420137030002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a220341054b0d0002400240024002400240024020030e06000402030105000b2002107e2002280200200241086a22032802006a41013a00002003200328020041016a2204360200200241003602282002420137032020012d0001450d16200241206a107e2002280220200241206a41086a220528020022066a41003a00002005200641016a2206360200200241206a20064120102720052005280200220741206a22063602002007200228022022086a2205200141026a290000370000200541086a2001410a6a290000370000200541106a200141126a290000370000200541186a2001411a6a29000037000020022802242101200220042006102720032003280200220520066a360200200520022802006a20082006101e1a2001450d14200810020c140b2002107e2002280200200241086a22032802006a41063a00002003200328020041016a3602002002410036021820024201370310200141086a2d0000417f6a220341044b0d16024020030e05001210110f000b200241106a107e2002280210200241186a22032802006a41003a00002003200328020041016a2208360200200241206a2001410c6a10b80120022802202106200241106a200820022802282205102720032005200328020022086a360200200820022802106a20062005101e1a02402002280224450d00200610020b200141186a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000c120b2002107e2002280200200241086a22032802006a41033a00002003200328020041016a3602002002410036022820024201370320200141086a2903004200510d16200241206a107e2002280220200241206a41086a220528020022066a41003a00002005200641016a2206360200200141106a2903002109200241206a20064108102720052005280200220641086a22013602002006200228022022056a200937000020022802242106200220032802002001102720032003280200220820016a360200200820022802006a20052001101e1a2006450d12200510020c120b2002107e2002280200200241086a22032802006a41053a00002003200328020041016a3602002002410036021820024201370310200141086a2d000022034103714101460d0520034102460d0320034103470d16200241106a107e2002280210200241186a220528020022036a41023a00002005200341016a22033602002001410c6a2802002106200241106a20034104102720052005280200220341046a2208360200200320022802106a2006360000200241106a20084101102720052005280200220641016a22033602002006200228021022056a200141096a2d00003a00000c060b2002107e2002280200200241086a22032802006a41023a00002003200328020041016a22063602002002410036022820024201370320200141086a2d000022054103714101460d0620054103460d0320054102470d16200241206a107e20022802202205200241286a220328020022016a41013a00002003200141016a22013602000c070b2002107e2002280200200241086a22032802006a41073a00002003200328020041016a22063602002002410036021820024201370310200141046a2d000022034103714101460d0820034102460d0720034103470d16200241106a107e2002280210200241106a41086a220528020022036a41023a00002005200341016a2203360200200241106a20034120102720052005280200220841206a22033602002008200228021022056a2208200141056a290000370000200841086a2001410d6a290000370000200841106a200141156a290000370000200841186a2001411d6a2900003700000c090b2002107e2002280200200241086a22032802006a41003a00002003200328020041016a3602002002410036022820024201370320200141106a2d00004102460d16200241206a107e2002280220200241206a41086a220328020022056a41003a00002003200541016a2207360200412010012203450d0f200341186a2206200141f0016a290000370000200341106a2208200141e8016a290000370000200341086a2204200141e0016a2900003700002003200141d8016a290000370000200141086a290300210941c00010012205450d0f20052003290000370000200541186a2006290000370000200541106a2008290000370000200541086a2004290000370000200310022005200937002041800110012203450d0f20032005290000370000200341386a2206200541386a290000370000200341306a2208200541306a290000370000200341286a2204200541286a290000370000200341206a200541206a290000370000200341186a200541186a290000370000200341106a200541106a290000370000200341086a200541086a29000037000020051002200341c0006a20014190026a290000370000200620014188026a290000370000200820014180026a2900003700002004200141f8016a29000037000020014191016a2105200141f1006a2108200141316a2106200141116a210402400240200141106a2d0000450d00200341c8006a41123a00002003200141d4016a2802003600492003200429000037004d200341d5006a200441086a290000370000200341dd006a200441106a290000370000200341e5006a200441186a29000037000041800210012201450d1120012003418001101e210120031002200141a5016a200641386a2900003700002001419d016a200641306a29000037000020014195016a200641286a2900003700002001418d016a200641206a29000037000020014185016a200641186a290000370000200141fd006a200641106a290000370000200141f5006a200641086a2900003700002001200629000037006d200120082900003700ad01200141b5016a200841086a290000370000200141bd016a200841106a290000370000200141c5016a200841186a29000037000041800410012206450d1120062001418002101e21032001100220034185026a200541386a290000370000200341fd016a200541306a290000370000200341f5016a200541286a290000370000200341ed016a200541206a290000370000200341e5016a200541186a290000370000200341dd016a200541106a290000370000200341d5016a200541086a290000370000200320052900003700cd010c010b200341c8006a41113a00002003200141d4016a2802003600492003200429000037004d200341d5006a200441086a290000370000200341dd006a200441106a290000370000200341e5006a200441186a29000037000041800210012201450d1020012003418001101e210120031002200141a5016a200641386a2900003700002001419d016a200641306a29000037000020014195016a200641286a2900003700002001418d016a200641206a29000037000020014185016a200641186a290000370000200141fd006a200641106a290000370000200141f5006a200641086a2900003700002001200629000037006d200120082900003700ad01200141b5016a200841086a290000370000200141bd016a200841106a290000370000200141c5016a200841186a29000037000041800410012206450d1020062001418002101e21032001100220034185026a200541386a290000370000200341fd016a200541306a290000370000200341f5016a200541286a290000370000200341ed016a200541206a290000370000200341e5016a200541186a290000370000200341dd016a200541106a290000370000200341d5016a200541086a290000370000200320052900003700cd010b200241206a2007418d021027200241206a41086a220120012802002203418d026a22013602002003200228022022056a2006418d02101e1a20061002200228022421062002200241086a22032802002001102720032003280200220820016a360200200820022802006a20052001101e1a2006450d0e200510020c0e0b200241106a107e2002280210200241186a220528020022036a41013a00002005200341016a22033602002001410c6a2802002101200241106a20034104102720052005280200220641046a22033602002006200228021022056a20013600000c020b200241206a107e20022802202205200241286a220328020022016a41023a00002003200141016a22013602000c030b200241106a107e2002280210200241106a41086a220328020022056a41003a00002003200541016a2208360200200241206a2001410c6a28020010d80120022802202106200241106a200820022802282205102720032005200328020022086a2204360200200820022802106a20062005101e1a02402002280224450d00200610020b200141106a2903002109200241106a200441081027200241106a41086a22012001280200220141086a22033602002001200228021022056a20093700000b200228021421062002200241086a22012802002003102720012001280200220820036a360200200820022802006a20052003101e1a2006450d0a200510020c0a0b200241206a107e2002280220200241206a41086a220628020022056a41003a00002006200541016a2205360200200241206a2005412010272002280220200628020022086a2205200141096a290000370000200541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002006200841206a2205360200200141306a2903002109200241206a20054108102720022802202205200628020022016a20093700002006200141086a2201360200200328020021060b200228022421032002200620011027200241086a22062006280200220620016a360200200620022802006a20052001101e1a2003450d08200510020c080b200241106a107e2002280210200241106a41086a220628020022036a41013a00002006200341016a2203360200200241106a20034120102720062006280200220341206a2205360200200320022802106a2203200141056a290000370000200341086a2001410d6a290000370000200341106a200141156a290000370000200341186a2001411d6a290000370000200241106a20054101102720022802102205200628020022036a200141256a2d00003a00002006200341016a2203360200200241086a28020021060c010b200241106a107e2002280210200241106a41086a220528020022036a41003a00002005200341016a2203360200200241206a200141086a28020010d80120022802202108200241106a200320022802282201102720052001200528020022046a22033602002004200228021022056a20082001101e1a2002280224450d00200810020b200228021421012002200620031027200241086a22062006280200220620036a360200200620022802006a20052003101e1a2001450d05200510020c050b200241106a107e2002280210200241106a41086a22032802006a41043a00002003200328020041016a2205360200200241106a20054120102720032003280200220541206a2206360200200520022802106a220541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002005200141096a290000370000200141306a2903002109200241106a20064108102720032003280200220541086a360200200520022802106a20093700002001412c6a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000c030b200241106a107e2002280210200241186a22032802006a41023a00002003200328020041016a22053602002001410c6a2802002101200241106a20054104102720032003280200220541046a360200200520022802106a20013600000c020b200241106a107e2002280210200241186a22032802006a41033a00002003200328020041016a22053602002001410c6a2802002101200241106a20054104102720032003280200220541046a360200200520022802106a20013600000c010b200241106a107e2002280210200241106a41086a22032802006a41013a00002003200328020041016a22053602002001412c6a2802002106200241106a20054104102720032003280200220541046a360200200520022802106a2006360000200241106a20032802004120102720032003280200220541206a2206360200200520022802106a220541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002005200141096a290000370000200141306a2802002105200241106a20064104102720032003280200220641046a360200200620022802106a2005360000200141346a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000b20022802142106200228021021052002200241086a2201280200200241106a41086a2802002203102720012003200128020022086a360200200820022802006a20052003101e1a2006450d00200510020b20002002290300370200200041086a200241086a280200360200200241306a24000f0b101c000b41ec30103b000b419435103b000b41ec34103b000b41ac3f103b000b41943b103b000b41843e103b000b41ecc100103b000b08004194321054000b4b01017f02402002417f4c0d00024002402002450d002002100122030d01101c000b410121030b200320012002101e21012000200236020420002001360200200020023602080f0b102b000b05001041000ba10c03037f027e0c7f23004180016b22002400200041e0006a41086a220142003703002000420037036041c8084107200041e0006a1003200041306a41086a200129030037030020002000290360370330024002400240200041306a411041d02d410041001000417f460d002000420037036002400240200041306a4110200041e0006a41084100100041016a41084d0d002000200029036042017c370340200041e0006a41086a220242003703002000420037036041c8084107200041e0006a1003200041306a41086a2201200229030037030020002000290360370330200041306a4110200041c0006a41081004200142003703002000420037033041dd084107200041306a1003200041106a41086a2001290300370300200020002903303703100240200041106a411041d02d410041001000417f460d0020004200370360200041106a4110200041e0006a41084100100041016a41084d0d0220002903602103200041306a41086a220142003703002000420037033041dd084107200041306a1003200041e0006a41086a200129030037030020002000290330370360200041e0006a411010054201a74101470d050c040b4200a74101460d030c040b41c1214133102d000b41c1214133102d000b41f4214122102d000b102e210420002003370340200041e0006a41086a220142003703002000420037036041cf084107200041e0006a1003200041306a41086a2202200129030037030020002000290360370330200041306a4110200041c0006a4108100420002004370340200142003703002000420037036041d6084107200041e0006a10032002200129030037030020002000290360370330200041306a4110200041c0006a410810040b2000102f2000280200210502400240024020002802082201450d002001410574210620052107410021080340410810012201450d022000200136026020004208370264200041e0006a410041081027200041e0006a41086a22012001280200220241086a360200200220002802606a42f3cacdd3e38d9eba3a370000200041c0006a41086a2202200128020036020020002000290360370340412010012209450d022000200936026020004220370264200041e0006a41004120102720012001280200220a41206a2209360200200a2000280260220b6a220a2007290000370000200a41086a200741086a290000370000200a41106a200741106a290000370000200a41186a200741186a2900003700002000280264210c200041c0006a2002280200200910272000280240220a2002280200220d6a200b2009101e1a2002200d20096a220d3602000240200c450d00200b10020b2000280244210c200041306a41086a2209420037030020004200370330200a200d200041306a1003200041106a41086a220b20092903003703002000200029033037031002400240200041106a411041d02d410041001000417f460d00200041e0006a41186a220e4200370300200041e0006a41106a220f42003703002001420037030020004200370360200041106a4110200041e0006a4120410010002210417f460d052010411f4d0d05200041c0006a41186a200e290300370300200041c0006a41106a200f29030037030020022001290300370300200020002903603703402009420037030020004200370330200a200d200041306a10032001200929030037030020002000290330370360200041e0006a41101005410121090c010b410021090b200041106a41186a220d200041c0006a41186a290300370300200041106a41106a220e200041c0006a41106a290300370300200b2002290300370300200020002903403703100240200c450d00200a10020b02402009450d00200041e0006a41186a200d290300370300200041e0006a41106a200e2903003703002001200b29030037030020002000290310370360200041c0006a10302000280240220920022802001031210102402000280244450d00200910020b200120084d0d00200041c0006a20081032200028024022012002280200200041e0006a412010042000280244450d00200110020b200741206a2107200841016a2108200641606a22060d000b0b02402000280204450d00200510020b20004180016a24000f0b101c000b41c1214133102d000b080041b4321054000b9f0102027f017e230041206b22002400200041106a41086a220142003703002000420037031041d12d4107200041106a1003200041086a20012903003703002000200029031037030002402000411041d02d410041001000417f460d0020004200370310024020004110200041106a41084100100041016a41084d0d0020002903102102200041206a240020020f0b41c1214133102d000b41f4214122102d000bab0101027f230041306b22012400200141206a41086a220242003703002001420037032041e4084107200141206a1003200141086a200229030037030020012001290320370300024002402001411041d02d410041001000417f460d002001421037021420012001360210200141206a200141106a103a20012802202202450d012000200129022437020420002002360200200141306a24000f0b41f4214122102d000b41c1214133102d000bd60101047f230041206b220124000240410610012202450d002001200236021020014206370214200141106a4100410610272001280210200128021822036a220441002800c12d360000200141086a2202200341066a2203360200200441046a41002f00c52d3b0000200120012903103703002001200336021820012002280200410310272000200129030037020020022002280200220341036a2204360200200320012802006a220241002f00ee2e3b0000200041086a2004360200200241026a41002d00f02e3a0000200141206a24000f0b101c000b6001027f230041106b2202240041002103024002402000200141d02d410041001000417f460d002002410036020c200020012002410c6a41044100100041016a41044d0d01200228020c21030b200241106a240020030f0b41eb1a4133102d000bc30101047f230041206b220224000240410610012203450d002002200336021020024206370214200241106a4100410610272002280210200228021822046a220541002800c12d360000200241086a2203200441066a2204360200200541046a41002f00c52d3b00002002200229031037030020022004360218200220032802004104102720032003280200220441046a36020020002002290300370200200420022802006a2001360000200041086a2003280200360200200241206a24000f0b101c000b810301047f230041306b220224000240024002400240024002400240200128020022032001280204460d002001200341186a36020020032802082201417f4c0d06200328020021042001450d012001100122050d020c030b20004100360200200241306a24000f0b410121050b200220013602242002200536022020024100360228200241206a41002001102720022002280228220520016a360228200520022802206a20042001101e1a200241106a20022802283602002002200229032037030820032802142201417f4c0d03200328020c21032001450d012001100122040d020b101c000b410121040b200220013602242002200436022020024100360228200241206a41002001102720022002280228220420016a360228200420022802206a20032001101e1a200241146a220141086a200228022836020020012002290320370200200041106a200241086a41106a290300370200200041086a200241086a41086a29030037020020002002290308370200200241306a24000f0b1019000bd55a09017f017e017f017e067f017e177f047e027f230041f0026b220024001035102e2101200041c8026a41086a22024200370300200042003703c802418a264107200041c8026a100320004198026a41086a2002290300370300200020002903c802370398020240024002400240024002400240024002400240024002400240024020004198026a411041d02d410041001000417f460d00200042003703680240024020004198026a4110200041e8006a41084100100041016a41084d0d00200029036822034200510d0320012003824200520d0a200041f8016a103620002802f80121080240024002402000280280022209450d00200041e8006a2008280230103720002802702207450d072008200941d8006c6a2104200841d8006a2102200041f8006a35020021032000290368210a02402000280274450d00200710020b20022004460d01200a20037e2103200941d8006c41a87f6a210b41002105200041f0006a210c200041f8006a210d200041f4006a210e41012104200821060340200041e8006a200241306a2802001037200c2802002207450d052000290368200d3502007e210a0240200e280200450d00200710020b2003200a2003200a5622071b21032005200420071b21052006200220071b2106200441016a2104200241d8006a2102200b41a87f6a220b0d000b20060d022009450d00200941d8006c210420082102034020021038200241d8006a2102200441a87f6a22040d000b0b20002802fc01450d0c200810020c0c0b410021050b200920054d0d06200041e8006a2008200541d8006c6a220241d800101e1a200220082009417f6a220441d8006c6a220741d80010391a2007200041e8006a41d800101e2102200041f8016a41086a2004360200200041e8006a41086a22042002410c6a290200370300200041e8006a41106a2207200241146a290200370300200041e8006a41186a22052002411c6a290200370300200041e8006a41206a2206200241246a290200370300200041e8006a41286a220b2002412c6a280200360200200020022902043703682002280200220c4106460d07200041c0016a41086a220d2004290300370300200041c0016a41106a22042007290300370300200041c0016a41186a22072005290300370300200041c0016a41206a22052006290300370300200041c0016a41286a2206200b280200360200200020002903683703c001200241046a28022c2102200041386a41286a2006280200360200200041386a41206a2005290300370300200041386a41186a2007290300370300200041386a41106a2004290300370300200041386a41086a200d290300370300200020002903c001370338410810012204450d0b200020043602682000420837026c200041e8006a4100410810272000280268200028027022046a42e4cab5d3c3ac99b83a3700002000200441086a360270200041c0016a41086a2000280270360200200020002903683703c001410410012204450d0b200020043602682000420437026c200041e8006a41004104102720002802682207200028027022046a20023600002000200441046a2202360270200028026c2105200041c0016a20002802c8012002102720002802c001220420002802c80122066a20072002101e1a2000200620026a22023602c80102402005450d00200710020b20002802c401210620004198026a41086a2207420037030020004200370398022004200220004198026a1003200041e8006a41086a20072903003703002000200029039802370368410021070240200041e8006a411041d02d410041001000417f460d002000200041e8006a3602082000411036020c200042003703c00120004100200041e8006a4110200041c0016a41084100100022072007417f461b2207410820074108491b360210200741074d0d0620002903c0012103200041c0016a200041086a103a20002802c0012207450d06200041c0016a41086a280200210520002802c401210b20004198026a41086a220d420037030020004200370398022004200220004198026a1003200041c8026a41086a200d29030037030020002000290398023703c802200041c8026a411010052006450d0a0c090b20060d080c090b41c1214133102d000b4198264132102d000b41f4214122102d000b41c43f103b000b4198264132102d000b41c1214133102d000b41dc3f20052009103c000b41ec3f103b000b200410020b024002402007450d0002402005450d002005410574210420072102034020022003103d200241206a2102200441606a22040d000b0b200041e8006a41086a2202200041f8016a41086a280200360200200020002903f801370368200041e8006a103e20002802682105024020022802002202450d00200241d8006c210420052102034020021038200241d8006a2102200441a87f6a22040d000b0b0240200028026c450d00200510020b200041c8026a41086a22024200370300200042003703c80241f7264107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d0120004200370368024020004198026a4110200041e8006a41084100100041016a41084d0d0020002903682103200041f4006a200041c0006a290300370200200041fc006a200041c8006a29030037020020004184016a200041d0006a2903003702002000418c016a200041d8006a29030037020020004194016a200041e0006a2802003602002000200c3602682000200029033837026c200320017c200041e8006a4100103f200b450d03200710020c030b41c1214133102d000b41ca26412d102d000b41f4214122102d000b200020013703f801200041c8026a41086a22024200370300200042003703c80241fe264107200041c8026a100320004198026a41086a2002290300370300200020002903c80237039802024002400240024020004198026a411041d02d410041001000417f460d00200041003602680240024020004198026a4110200041e8006a41044100100041016a41044d0d0020002802682104200041c8026a41086a22024200370300200042003703c8024185274107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d032000410036026820004198026a4110200041e8006a41044100100041016a41044d0d012000200028026822053602cc02200041003a00d402200020043602c8022000200041f8016a3602d0020240200420054f0d002000200441016a22023602c802200041f0006a210602400340200041e8006a20041040200628020022074106470d01200220054f0d022000200241016a22073602c80220022104200721020c000b0b200041386a41086a2205200041fc006a2206290200370300200041386a41106a220b20004184016a220c290200370300200041386a41186a220d2000418c016a220e290200370300200041386a41206a220820004194016a2209290200370300200041386a41286a220f2000419c016a221028020036020020002000290274370338200041a0016a2d0000211120002903682103200041b8026a41026a221220004198026a41026a2d00003a0000200020002f0098023b01b802200041e8006a410c6a2202200029033837020020062005290300370200200c200b290300370200200e200d290300370200200920082903003702002010200f280200360200200041a7016a20122d00003a00002000200736027020002003370368200020043602a001200020113a00a401200020002f01b8023b00a5010240200320002903f801520d00200041c0016a41306a200241306a280200360200200041c0016a41286a200241286a290200370300200041c0016a41206a200241206a290200370300200041c0016a41186a200241186a290200370300200041c0016a41106a200241106a290200370300200041c0016a41086a200241086a290200370300200020022902003703c00120074106460d010c060b200041c8026a410c6a41013a0000200041e8006a41086a10384106210741064106470d050b4108211341002102410021140c050b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b200041e8006a41306a2202200041c0016a41306a280200360200200041e8006a41286a2204200041c0016a41286a290300370300200041e8006a41206a2205200041c0016a41206a290300370300200041e8006a41186a2206200041c0016a41186a290300370300200041e8006a41106a220b200041c0016a41106a290300370300200041e8006a41086a220c200041c0016a41086a290300370300200020002903c00137036841c00010012213450d0120132007360208201320033703002013200029036837020c201341146a200c2903003702002013411c6a200b290300370200201341246a20062903003702002013412c6a2005290300370200201341346a20042903003702002013413c6a2002280200360200200041086a41086a200041c8026a41086a290300370300200020002903c802370308024020002d00140d0020002802082202200028020c4f0d002000200241016a360208200041f0006a210402400340200041e8006a20021040200428020022074106470d0120002802082202200028020c4f0d022000200241016a3602080c000b0b200041386a41086a2205200041fc006a2206290200370300200041386a41106a220b20004184016a220c290200370300200041386a41186a220d2000418c016a220e290200370300200041386a41206a220820004194016a2209290200370300200041386a41286a220f2000419c016a221028020036020020002000290274370338200041a0016a2d0000211120002903682103200041b8026a41026a221220004198026a41026a2d00003a0000200020002f0098023b01b802200041e8006a410c6a2204200029033837020020062005290300370200200c200b290300370200200e200d290300370200200920082903003702002010200f280200360200200041a7016a20122d00003a00002000200736027020002003370368200020023602a001200020113a00a401200020002f01b8023b00a5010240024020032000280210290300520d00200041c0016a41306a200441306a280200360200200041c0016a41286a200441286a290200370300200041c0016a41206a200441206a290200370300200041c0016a41186a200441186a290200370300200041c0016a41106a200441106a290200370300200041c0016a41086a200441086a290200370300200020042902003703c0014106210b20074106470d010c020b200041086a410c6a41013a0000200041e8006a41086a1038410621074106210b41064106460d010b200041e8006a41086a2106200041a5016a2111200041e8006a410c6a210d410121144101210202400340200041e8006a41306a2205200041c0016a41306a2212280200360200200041e8006a41286a220c200041c0016a41286a221c290300370300200041e8006a41206a2209200041c0016a41206a221e290300370300200041e8006a41186a220f200041c0016a41186a221d290300370300200041e8006a41106a2210200041c0016a41106a22202903003703002006200041c0016a41086a2215290300370300200020002903c001370368024020022014470d00201441016a2204201449221b0d02200e2014410174221f20082004201b1b22082008201f491b2204ad420686220aa7200a422088a7221b1b220e4100480d02201b4100470d02024002402014450d00200e1001221b450d07201b2013200e2014200b74221f201f200e4b1b101e211b20131002201b21130c010b200e10012213450d060b200421140b20132002200b746a22042007360208200420033703002004413c6a2005280200360200200441346a200c2903003702002004412c6a2009290300370200200441246a200f2903003702002004411c6a2010290300370200200441146a20062903003702002004410c6a2000290368370200200241016a2102200041086a410c6a22092d00000d0320002802082205200028020c220c4f0d032000200541016a220436020802400340200041e8006a2005104020062802002207200b470d012004200c4f0d052000200441016a220736020820042105200721040c000b0b200041386a41086a221f200d41086a2204290200370300200041386a41106a2221200d41106a220c290200370300200041386a41186a2219200d41186a220f290200370300200041386a41206a2216200d41206a2210290200370300200041386a41286a221a200d41286a221b2802003602002000200d290200370338200041a0016a22172d000021182000290368210a200041b8026a41026a222720004198026a41026a2d00003a0000200020002f0098023b01b8022006200736020020172005360200200041e8006a413c6a20183a0000200d20002903383702002004201f290300370200200c2021290300370200200f201929030037020020102016290300370200201b201a280200360200201120002f01b8023b0000201141026a20272d00003a00002000200a3703680240200a200041086a41086a280200290300520d002012200d41306a280200360200201c201b290200370300201e2010290200370300201d200f2902003703002020200c290200370300201520042902003703002000200d2902003703c001200a21032007200b470d010c040b200941013a000020061038410621074106200b470d000c030b0b1041000b41012114410121020b201320024106746a21152002450d01200041386a41086a2116200041386a4104722110200041a7026a2117200041f8016a4104722118200041c0016a41186a2119200041c9016a211a200041c0016a41086a2107200041e8006a4104722105200041e8006a41286a211b200041e8006a41206a2112200041e8006a41106a211c2013210f0340200f22022802082111201b200241346a28020036020020122002412c6a290200370300200041e8006a41186a221d200241246a290200370300201c2002411c6a290200370300200041e8006a41086a221e200241146a29020037030020002002410c6a290200370368200241c0006a210f20114106460d0320022802382109200041086a41086a2204201e290300370300200041086a41106a2206201c290300370300200041086a41186a220b201d290300370300200041086a41206a220c2012290300370300200041086a41286a220d201b2802003602002000200029036837030820022d003c211f20102000290308370200201041086a2004290300370200201041106a2006290300370200201041186a200b290300370200201041206a200c290300370200201041286a200d28020036020020002011360238200041f8016a2009104220002802f801212002400240024002400240200041f8016a41086a22212802002202450d002002410574210d420021034200210a20202102034020021043210120021044212220052002290000370000200541086a200241086a290000370000200541106a200241106a290000370000200541186a200241186a29000037000020002009360268410810012204450d07200020043602c001200042083702c401200041c0016a41004108102720072007280200220441086a360200200420002802c0016a42e4cab5d3e3ee9bba3a370000200041c8026a41086a22042007280200360200200020002903c0013703c802200041c0016a200041e8006a104520002802c401210e20002802c001210c200041c8026a200428020020072802002206102720002802c802220b200428020022086a200c2006101e1a2004200820066a22083602000240200e450d00200c10020b20002802cc02210620044200370300200042003703c802200b2008200041c8026a100320004198026a41086a2004290300370300200020002903c8023703980202400240024020004198026a411041d02d410041001000417f470d004102210420060d010c020b200041003a00c00120004198026a4110200041c0016a41014100100041016a41014d0d0520002d00c00121042006450d010b200b10020b200441ff01714102460d02200241206a21024200202220017c2201200441017122041b200a7c210a2001420020041b20037c2103200d41606a220d0d000b20002802fc01450d040c030b4200210a4200210320002802fc010d020c030b41f90941e000102d000b41c1214133102d000b202010020b0240200041c8026a41086a22064200370300200042003703c80241f9204107200041c8026a100320004198026a41086a220b2006290300370300200020002903c802370398020240024002400240024020004198026a411041d02d410041001000417f460d0020004200370368024020004198026a4110200041e8006a41084100100041016a41084d0d0020002903682101200910460240200a20037c22224202882223500d0020232022510d004100210402400340200441026a21022022200441046a413e71ad882223500d012002210420232022520d000b0b20222002413e71ad88420052ad212302402002450d0003402023420186222320234201842223202320237e202241002002417e6a2204200420024b1b2202413f71ad88561b212320020d000b0b20014202882222500d040c030b2022420052ad21232001420288222250450d020c030b41c1214133102d000b41f4214122102d000b20222001510d004100210402400340200441026a21022001200441046a413e71ad882222500d012002210420222001520d000b0b20012002413e71ad88420052ad212202402002450d0003402022420186222220224201842222202220227e200141002002417e6a2204200420024b1b2202413f71ad88561b212220020d000b0b2023500d020c010b2001420052ad21222023500d010b02400240024002400240201f41037122024101460d0020024102470d012003200a580d050c040b2022500d01200a202280222420032023802225540d0303402023210120252024540d05200a202282212320032001822224500d052023500d042022202380212520222103202421222001210a2001202480222420255a0d000c040b0b2022500d01200a202380222420032022802225540d0203402023210120252024540d04200a200182212520032022822223500d042025500d03202220238021242022210a20012103202521222024200120258022255a0d000c030b0b419c31103b000b419c31103b000b200041c0016a41286a200041386a41286a290300370300200041c0016a41206a200041386a41206a2903003703002019200041386a41186a290300370300200041c0016a41106a220c200041386a41106a29030037030020072016290300370300200020002903383703c00102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802c001220e417f6a220241044b0d000240024002400240024020020e050004020301000b200728020022024101460d0720024102470d13102c0c210b200c2903002103200728020022024101460d0420024102470d132000200337036820064200370300200042003703c80241e122410a200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c200b200020002902c40122033703f8012003422088a721022003a72204410371220c4101460d04200c4102470d1320021046200441ff01714101470d1f201810220c1f0b20004194026a41026a220d201a41026a2d00003a00002021201941086a290300370300200041f8016a41106a2208201941106a2903003703002000201a2f00003b019402200020192903003703f80120072d0000410771417f6a220241034b0d13200c2903002103200041c0016a410c6a2802002104024020020e04000a0709000b2000200436026820064200370300200042003703c802419b164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410410040c1a0b2007280200410771417f6a220241034b0d13200c2903002103024020020e04000b070a000b2000200337036820064200370300200042003703c80241cf1d4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c1d0b200c2802002111200041c0016a410c6a280200211e2007280200210820002802c401410371221d4101460d03201d4102470d1302402011450d002008201141186c22046a210d2008210203402002280200200241086a2802002002410c6a280200200241146a2802001004200241186a2202200d470d000b2011450d002008210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b0240201e450d00200810020b41002104201d4101470d194100210441000d19201e450d1920081002200e41077122024103470d1a0c1b0b2000200337036820064200370300200042003703c802418d23410b200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c1b0b102e210a20064200370300200042003703c80241f7264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d122000420037036820004198026a4110200041e8006a41084100100041016a41084d0d0b20002903682101201b200241286a2903003703002012200241206a290300370300201d200241186a290300370300201c200241106a290300370300201e200241086a290300370300200020022903003703682001200a7c200041e8006a2003420888a7103f200210020c1a0b2000200c29030037036820064200370300200042003703c80241dd084107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c190b41942f4105200820111004201e450d18200810020c180b2000200337036820064200370300200042003703c80241a2164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c130b2000200041c0016a410c6a28020036026820064200370300200042003703c80241de1d4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410410040c160b2000200337036820064200370300200042003703c80241a9164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c110b20004198026a41036a200436000020004198026a41076a2003370000201720002903f80137000020004198026a41026a200d2d00003a0000201741086a2021290300370000201741106a20082d00003a0000200020002f0194023b019802200041e8006a1047200028026c2126200028026821270240201e2802002202450d00200241286c220241b07f6a2104200241586a210d202721020340200241086a2903002103200241106a290300210a200241186a2903002101200229030021222012200241206a290300370300201d2001370300201c200a370300201e200337030020002022370368200041e8006a20004198026a412010060d04200241286a2102200441586a2104200d41586a220d4158470d000b0b41002102410821112026450d03202710024100210d0c0f0b1048102c0c130b2000200337036820064200370300200042003703c80241d21e4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c120b200041c8026a41206a22202012290300370300200041c8026a41186a221f201d290300370300200041c8026a41106a2221201c2903003703002006201e290300370300200020002903683703c802412810012211450d15201120002903c802370300201141206a2020290300370300201141186a201f290300370300201141106a2021290300370300201141086a2006290300370300200020113602b80220004281808080103702bc02200d450d01200241286a21024101210d03402012200241206a290300370300201d200241186a290300370300201c200241106a290300370300201e200241086a290300370300200020022903003703680240200041e8006a20004198026a41201006450d0020202012290300370300201f201d2903003703002021201c2903003703002006201e290300370300200020002903683703c80220122020290300370300201d201f290300370300201c2021290300370300201e2006290300370300200020002903c8023703680240200d20002802bc02470d00200041b8026a200d4101104920002802b80221110b2011200d41286c6a22082000290368370300200841206a2012290300370300200841186a201d290300370300200841106a201c290300370300200841086a201e290300370300200041b8026a41086a200d41016a220d3602000b02402004450d00200241286a2102200441586a21040c010b0b2026450d0b0c0a0b4100210d0c0b0b4101210d20260d080c090b41c1214133102d000b418431103b000b419c3e103b000b419cc000103b000b41ac35103b000b41f43b103b000b419cc200103b000b41f4214122102d000b202710020b20002802bc0221020b201e200d3602002000200236026c20002011360268200041e8006a104a2002450d00201110020b410121040b200e41077122024103460d010b20020d012004450d0120002802c4012202450d01024020024101470d00200041c0016a410c6a280200450d02200728020010020c020b2007280200210d0240200c2802002202450d00200241186c2104200d210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b200041c0016a410c6a280200450d01200d10020c010b41000d0020002d00c40141ff01714101470d002007104b0b2000200941016a36026820064200370300200042003703c80241fe264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a41041004200f2015470d020c010b2000200941016a36026820064200370300200042003703c80241fe264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a41041004024002400240201141077122024103460d0020020d02200028023c2202450d0220024101470d01200041386a410c6a280200450d0220162802001002200f2015470d040c030b20002d003c4101470d0120161022200f2015470d030c020b201628020021060240200041386a41106a2802002202450d00200241186c21042006210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b200041386a410c6a280200450d00200610020b200f2015470d010b0b2015220f2015460d040c030b101c000b2013210f0b200f2015460d010b200041e8006a41086a211c200041e8006a410c6a2102200041e8006a41306a2105200041e8006a41286a2106200041e8006a41206a210b200041e8006a41186a210c200041e8006a41106a210d0340200f41086a2802002104200f29030021032005200f413c6a2802003602002006200f41346a290200370300200b200f412c6a290200370300200c200f41246a290200370300200d200f411c6a290200370300200041e8006a41086a2207200f41146a2902003703002000200f410c6a29020037036820044106460d01200041c0016a41306a220e2005280200360200200041c0016a41286a22082006290300370300200041c0016a41206a2209200b290300370300200041c0016a41186a2210200c290300370300200041c0016a41106a2211200d290300370300200041c0016a41086a22122007290300370300200020002903683703c00120072004360200200220002903c001370200200241086a2012290300370200200241106a2011290300370200200241186a2010290300370200200241206a2009290300370200200241286a2008290300370200200241306a200e28020036020020002003370368201c1038200f41c0006a220f2015470d000b0b02402014450d00201310020b102e2101200041e8006a41086a220242003703002000420037036841ba1d4107200041e8006a1003200041c8026a41086a22042002290300370300200020002903683703c802420021030240024002400240024002400240024002400240200041c8026a411041d02d410041001000417f460d0020004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d01200029036821030b200242003703002000420037036841c11d4107200041e8006a100320042002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0320004200370368024002400240200041c8026a4110200041e8006a41084100100041016a41084d0d002000290368210a200041e8006a41086a220242003703002000420037036841cf084107200041e8006a1003200041c8026a41086a2002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0720004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d012000290368200a7e22224200510d084200210a0240200120037d2022824200520d0010480b102e2103200041e8006a41086a220242003703002000420037036841d6084107200041e8006a1003200041c8026a41086a22042002290300370300200020002903683703c80202400240200041c8026a411041d02d410041001000417f460d0020004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d06200029036821014201210a0c010b0b200242003703002000420037036841cf084107200041e8006a100320042002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0920004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d02200029036822224200510d0a0240200342002001200a501b7d2022824200520d00102c0b200041c8026a41086a22024200370300200042003703c80241ad0b4107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d05200041003a006820004198026a4110200041e8006a41014100100041016a41014d0d0b20002d00682102200041c8026a41086a22044200370300200042003703c80241ad0b4107200041c8026a1003200041e8006a41086a2004290300370300200020002903c802370368200041e8006a411010052002450d05200041f0026a24000f0b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c432103b000b41f4214122102d000b41f4214122102d000b41ac3b103b000b41f4214122102d000b41b431103b000b41c1214133102d000bdd91010b017f017e017f017e057f017e047f017e187f027e027f230041f0026b22002400102e2101200041286a41086a220242003703002000420037032841b0164107200041286a1003200041086a41086a200229030037030020002000290328370308024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041086a411041d02d410041001000417f460d00200042003703900202400240200041086a411020004190026a41084100100041016a41084d0d0020002903900222034200510d0320012003824200520d1d200041286a41086a2202420037030020004200370328419b164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d052000410036029002200041086a411020004190026a41044100100041016a41044d0d012000280290022202450d1d200041e0016a1047200041286a41086a220442003703002000420037032841b00f4107200041286a1003200041086a41086a200429030037030020002000290328370308410021040240200041086a411041d02d410041001000417f460d002000200041086a360290012000411036029401200042003703900220004100200041086a411020004190026a41084100100022042004417f461b2204410820044108491b220d36029801200441074d0d05200029039002210e200041003602900220004198016a4100200041086a411020004190026a4104200d100022042004417f461b2204410420044104491b200d6a360200200441034d0d05200028029002210420004190026a20004190016a103a200028029002220f450d0520002802e801220d20046a2000290294022203422088a76b211002402003a7450d00200f10020b20102002490d080c070b102e210e20002802e801220d20024f0d060c070b41c1214133102d000b41c1214133102d000b41f4214122102d000b41ac39103b000b41c1214133102d000b41f4214122102d000b0240200420024f0d00200d200420026b6a2202200d4f0d0820002802e001200241286c6a290320210e0c010b200041286a41086a220242003703002000420037032841a9164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d082000420037039002200041086a411020004190026a41084100100041016a41084d0d01200029039002200e7c210e0b200041286a41086a220242003703002000420037032841b0164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d03200042003703900202400240200041086a411020004190026a41084100100041016a41084d0d0020002903900222034200510d06200e20037c427f7c220e200e2003827d2103024020002802e401450d0020002802e00110020b20032001520d17200041e8006a1047200041286a41086a2202420037030020004200370328419b164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d072000410036029002200041086a411020004190026a41044100100041016a41044d0d012000280290022115102e21030240024020002802702214450d002000280268220241206a2903002003520d0020004190026a41186a2204200241186a29000037030020004190026a41106a220d200241106a29000037030020004190026a41086a2210200241086a290000370300200020022900003703900241201001220f450d12200241286a2102200f200029039002370000200f41186a2004290300370000200f41106a200d290300370000200f41086a20102903003700002000200f3602e00120004281808080103702e401412021104101210d0240201441286c41586a2211450d000340200241206a2903002003520d01200041c8006a41186a200241186a2204290000370300200041c8006a41106a200241106a2216290000370300200041c8006a41086a200241086a22172900003703002000200229000037034820004190016a41186a2218200429000037030020004190016a41106a2219201629000037030020004190016a41086a2216201729000037030020002002290000370390010240200d20002802e401470d00200041e0016a200d410110860120002802e001210f0b200241286a2102200f20106a2204200029039001370000200441186a2018290300370000200441106a2019290300370000200441086a2016290300370000200041e0016a41086a200d41016a220d360200201041206a2110201141586a22110d000b0b20002802e40121022014200d6b2015490d010c160b410021024101210f4100210d201441006b20154f0d150b200041286a41086a220442003703002000420037032841a2164107200041286a1003200041086a41086a200429030037030020002000290328370308200041086a411041d02d410041001000417f460d0a2000420037039002200041086a411020004190026a41084100100041016a41084d0d03200029039002210e20004190026a41106a2002360200200041a4026a200d3602002000200d20146b20156a2219360298022000200e20037c2203370390022000200f36029c02200041003602e801200042013703e001200041e0016a41004108102720002802e00120002802e80122046a20033700002000200441086a22043602e801200041e0016a20044104102720002802e00120002802e80122046a20193600002000200441046a22103602e80120004190016a2000419c026a10a201200028029001210d200041e0016a2010200028029801220410272000200420002802e80122116a22163602e801201120002802e00122106a200d2004101e1a0240200028029401450d00200d10020b200041286a41086a220442003703002000420037032841b00f4107200041286a1003200041086a41086a200429030037030020002000290328370308200041086a4110201020161004024020002802e401450d00201010020b02402002450d00200f10020b41082118200041286a41086a220242003703002000420037032841c50f4107200041286a1003200041086a41086a200229030037030020002000290328370308410021140240024002400240200041086a411041d02d410041001000417f460d0020004210370294012000200041086a3602900120004190026a20004190016a103a2000280290022215450d1341082118200028029402211b20004190026a41086a2802002202450d0120024105744105752214ad4203862203a722044100480d122003422088a74100470d12200410012218450d152002410574220d41606a410576211020182104201521020340200420021043200210447c370300200441086a2104200241206a2102200d41606a220d0d000b201041016a21020c030b410121154100211b0c010b410021140b410021020b2000410036029802200042013703900220004190026a41004104102720002802900220002802980222046a20023600002000200441046a3602980220004190016a41086a2204200028029802360200200020002903900237039001024002402002450d002002410374210f2018210d0340200d2903002103410810012202450d152000200236029002200042083702940220004190026a41004108102720004190026a41086a22022002280200221141086a2202360200201120002802900222106a2003370000200028029402211120004190016a2004280200200210272000280290012217200428020022166a20102002101e1a2004201620026a220236020002402011450d00201010020b200d41086a210d200f41786a220f0d000c020b0b200028029801210220002802900121170b2000280294012104200041286a41086a220d4200370300200042003703284181114107200041286a1003200041086a41086a200d29030037030020002000290328370308200041086a411020172002100402402004450d00201710020b02402014450d00201810020b200041286a41086a220242003703002000420037032841b7164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d0b2000410036029002200041086a411020004190026a41044100100041016a41044d0d042000280290022102200041a8016a4200370300200041a0016a420037030020004198016a42003703002000420037039001200220196a220dad42287e2203422088a70d0c2003a72202417f4c0d0d4108210402402002450d00200210012204450d140b2000200d3602e401200020043602e001200041003602e80120004190026a41186a221020004190016a41186a29030037030020004190026a41106a220f20004190016a41106a29030037030020004190026a41086a20004190016a41086a290300370300200020002903900137039002200041e0016a200d10850120002802e00120002802e801221141286c6a2102024002400240200d4102490d0041012104034020024200370300200241206a2010290300370300200241186a200f290300370300200241106a20004190026a41086a290300370300200241086a200029039002370300200241286a2102200441016a2204200d490d000b201120046a417f6a21110c010b200d450d010b200220002903900237030820024200370300200241106a20004198026a290300370300200241186a20004190026a41106a290300370300200241206a20004190026a41186a290300370300201141016a21110b200041e0016a41086a2202201136020020004190026a41086a2002280200360200200020002903e0013703900220004190026a10b7010240200028029402450d0020002802900210020b201b450d15201510020c150b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41f4214122102d000b41c439103b000b41f4214122102d000b41cc362002200d103c000b41f4214122102d000b41f4214122102d000b41f4214122102d000b105e000b105f000b1041000b41c1214133102d000b41d900212a0c070b41d900212a0c060b41d900212a0c050b41d900212a0c040b2002450d00200f1002200028026c0d010c020b200028026c450d010b200028026810020b200041286a41086a220242003703002000420037032841b00f4107200041286a1003200041086a41086a20022903003703002000200029032837030802400240200041086a411041d02d410041001000417f460d002000200041086a360290012000411036029401200042003703900220004100200041086a411020004190026a41084100100022022002417f461b2202410820024108491b220436029801200241074d0d0b2000290390022103200041003602900220004198016a4100200041086a411020004190026a41042004100022022002417f461b22024104200241044922021b20046a36020020020d0b20004190026a20004190016a103a2000280290022205450d0b200028029402210620032001520d01200041286a41086a22024200370300200042003703284181114107200041286a1003200041086a41086a2204200229030037030020002000290328370308200041086a41101005200442003703002000420037030841b00f4107200041086a10032002200429030037030020002000290308370328200041286a411041d02d410041001000417f460d082000200041286a360290012000411036029401200042003703900220004100200041286a411020004190026a41084100100022022002417f461b22024108200241084922041b22023602980120040d09200041003602900220004198016a4100200041286a411020004190026a41042002100022042004417f461b2204410420044104491b20026a360200200441034d0d09200028029002210720004190026a20004190016a103a2000280290022208450d0920002902940221094108210a200041086a41086a220242003703002000420037030841b00f4107200041086a1003200041286a41086a2204200229030037030020002000290308370328200041286a411010052002420037030020004200370308418f114107200041086a100320042002290300370300200020002903083703284100210b02400240200041286a411041d02d410041001000417f460d0020004210370294012000200041286a3602900120004190026a20004190016a10b601200028029002220a450d052000290294022103200041086a41086a2202420037030020004200370308418f114107200041086a1003200041286a41086a200229030037030020002000290308370328200041286a411010052003422088a7210b2003a7210c0c010b4100210c0b102e2103200041286a41086a220242003703002000420037032841a9164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d072000420037039002200041086a411020004190026a41084100100041016a41084d0d0d200020002903900220037c3703e002200041286a41086a220242003703002000420037032841c6104107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d062000420037039002200041086a411020004190026a41084100100041016a41084d0d0c2009422088a72111200a200b41286c22026a210f02402007450d0020002903900221034100200a6b20026b21042007210d200f210203402002200a460d01200241586a22102903004200510d01200241606a2003103d200441286a210420102102200d417f6a220d0d000b0b20004190026a104720002802980221042000280290022102200028029402210d200041f8016a200f360200200041fc016a41003a000020004180026a20073602002000200d3602e401200020023602e001200020023602e80120002002200441286c6a3602ec01200020113602f0012000200a3602f40120004184026a200041e0026a360200200041003a00880220004190026a200041e0016a10b90102400240024002400240024002400240024002400240024002400240024002400240024002400240024002402000290390024200510d00417f4100200041ec016a280200200041e0016a41086a2802006b41286d2202200041f0016a2802006b2204200420024b1b220241016a220420042002491b2204ad42287e2203422088a70d1b2003a72202417f4c0d1a4108211202402002450d00200210012212450d160b201220004190026a41086a2202290300370300201241206a200241206a290300370300201241186a200241186a290300370300201241106a200241106a290300370300201241086a200241086a290300370300200020123602482000200436024c410121132000410136025020004190016a41286a200041e0016a41286a28020036020020004190016a41206a200041e0016a41206a29030037030020004190016a41186a200041e0016a41186a29030037030020004190016a41106a2214200041e0016a41106a29030037030020004190016a41086a200041e0016a41086a290300370300200020002903e0013703900120004190026a20004190016a10b90102402000290390024201520d0020004190026a41086a21022000419c016a2115412821104101210d0340200041e8006a41206a220f200241206a290300370300200041e8006a41186a2211200241186a290300370300200041e8006a41106a2216200241106a290300370300200041e8006a41086a2217200241086a290300370300200020022903003703680240200d2004470d00200041c8006a2004417f4100201528020020004190016a41086a2802006b41286d221820142802006b2219201920184b1b221841016a221920192018491b1049200028024821120b0240201220106a22042000290368370300200441206a200f290300370300200441186a2011290300370300200441106a2016290300370300200441086a2017290300370300200041c8006a41086a200d41016a220f36020020004190026a20004190016a10b9012000290390024201520d00201041286a2110200028024c2104200f210d0c010b0b200d41016a21130b024020004198016a220428020022022000419c016a280200220d460d0020042002200d20026b41586a41286e41286c6a41286a3602000b0240200028029401450d0020002802900110020b200028024c211a201341144b0d01201341014d0d022013417f6a210f2012201341286c6a41586a211103402013200f2202417f6a220f490d2102402013200f6b220d4102490d002012200241286c6a221041206a22042903002012200f41286c6a220241206a221629030022035a0d0020004190026a41186a2217200241186a221829030037030020004190026a41106a2219200241106a221429030037030020004190026a41086a2215200241086a221b290300370300200020022903003703900220022010290300370300201b201041086a2903003703002014201041106a2903003703002018201041186a290300370300201620042903003703000240200d4103490d00410221042011210203402004200d4f0d290240200241c8006a221029030020035a0d002004417f6a200d4f0d29200241206a2010290300370300200241186a200241c0006a290300370300200241106a200241386a290300370300200241086a200241306a2903003703002002200241286a221029030037030020102102200441016a2204200d490d010c020b0b200221100b2010200029039002370300201041186a2017290300370300201041106a2019290300370300201041086a2015290300370300201020033703200b201141586a2111200f0d000c030b0b0240200041e8016a22042802002202200041ec016a280200220d460d0020042002200d20026b41586a41286e41286c6a41286a3602000b024020002802e401450d0020002802e00110020b4100211a41082112410021130c010b2013410176221cad42287e2203422088a70d192003a72202417f4c0d184108211d02402002450d0020021001221d450d130b4100210420004100360298012000420437039001201241586a211e201241a87f6a211f4104210d20004190016a41086a21202013212103402021211641002121410121100240024002402016417f6a2202450d0002400240024002400240024002402012200241286c6a41206a29030020122016417e6a221041286c6a41206a29030022035a0d00410021112010450d02201f201641286c6a2102034020032002290300220e5a0d02200241586a2102200e21032010417f6a22100d000c030b0b02402010450d00201f201641286c6a210241022110034020032002290300220e540d04200241586a2102200e21032016201041016a2210470d000b41002121201621102004200028029401470d090c080b41022110410021212004200028029401470d080c070b201021110b024020162011490d00201620134b0d140240201620116b22104101762217450d00201e201641286c6a21022012201141286c6a210f034020004190026a41206a2218200f41206a221929030037030020004190026a41186a2214200f41186a221529030037030020004190026a41106a221b200f41106a222129030037030020004190026a41086a2222200f41086a22232903003703002000200f29030037039002200241086a22242903002103200241106a2225290300210e200241186a22262903002127200229030021282019200241206a2229290300370300201520273703002021200e37030020232003370300200f202837030020292018290300370300202620142903003703002025201b290300370300202420222903003703002002200029039002370300200241586a2102200f41286a210f2017417f6a22170d000b0b2011450d030c020b201120161055000b201620106b2211450d010b201041094d0d010b201121212004200028029401470d030c020b201620134b0d0d2012201141286c6a2117034020162011417f6a2221490d0f0240201620216b22104102490d002012201141286c6a221141206a220f2903002012202141286c6a220241206a221829030022035a0d0020004190026a41186a2219200241186a221429030037030020004190026a41106a2215200241106a221b29030037030020004190026a41086a2222200241086a22232903003703002000200229030037039002200220112903003703002023201141086a290300370300201b201141106a2903003703002014201141186a2903003703002018200f290300370300024020104103490d004102210f201721020340200f20104f0d090240200241c8006a221129030020035a0d00200f417f6a20104f0d0b200241206a2011290300370300200241186a200241c0006a290300370300200241106a200241386a290300370300200241086a200241306a2903003703002002200241286a221129030037030020112102200f41016a220f2010490d010c020b0b200221110b2011200029039002370300201141186a2019290300370300201141106a2015290300370300201141086a2022290300370300201120033703200b2021450d01201741586a2117202121112010410a490d000b0b2004200028029401470d010b20004190016a107a20202802002104200028029001210d0b200d20044103746a22022010360204200220213602002020200441016a2204360200024020044102490d00200028029001210d03400240024002400240200d2004417f6a4103746a2202280200450d00200d20044103746a221141746a280200220f200228020422104d0d00200441024d0d05200d2004417d6a22144103746a28020422022010200f6a4d0d01200441034d0d05201141646a2802002002200f6a4d0d010c050b20044103490d0120022802042110200d2004417d6a22144103746a28020421020b20022010490d010b2004417e6a21140b2004201441016a22154d0d06200420144d0d07200d201441037422226a2202280204222320022802006a2202200d201541037422246a2204280200221b490d08200220134b0d092012201b41286c6a22182004280204221941286c22046a210f200241286c210d024002400240024002402002201b6b221120196b220220194f0d00201d200f200241286c2204101e221120046a211020194101480d0120024101480d01201e200d6a210d200f21020340200d200241586a2216201041586a2217201041786a290300200241786a29030054220f1b2204290300370300200d41206a200441206a290300370300200d41186a200441186a290300370300200d41106a200441106a290300370300200d41086a200441086a29030037030020102017200f1b2110201820162002200f1b22024f0d04200d41586a210d2011210420112010490d000c050b0b201d20182004101e220220046a211020194101480d01201120194c0d012012200d6a2116200221042018210203402002200f2004200f41206a290300200441206a2903005422111b220d290300370300200241206a200d41206a290300370300200241186a200d41186a290300370300200241106a200d41106a290300370300200241086a200d41086a2903003703002004200441286a20111b2104200241286a2102200f41286a200f20111b220f20164f0d04201020044b0d000c040b0b200f21020c010b201821020b201d21040b20022004201020046b220d200d4128706b101e1a2020280200220220144d0d0a200028029001220d20226a2204202320196a3602042004201b360200200220154d0d0b200d20246a2204200441086a200220156b41037441786a10391a20202002417f6a2204360200200441014b0d000b0b20210d000b0240200028029401450d0020002802900110020b201c450d00201d10020b2000201a360294022000201236029002200020133602980220004190026a104a0240201a450d00201210020b200041286a41086a2202420037030020004200370328418d104107200041286a1003200041086a41086a2002290300370300200020002903283703084100211102400240200041086a411041d02d410041001000417f460d0020004210370294012000200041086a3602900120004190026a20004190016a103a2000280290022217450d0f20004198026a2802002111200028029402211e0c010b410121174100211e0b200041a8026a4200370300200041a0026a420037030020004198026a420037030020004200370390022011ad2203421b88a70d0b2003420586a72202417f4c0d0c024002402002450d002002100122020d010c120b410121020b200020113602940120002002360290012000410036029801200041c8006a41186a220d20004190026a41186a290300370300200041c8006a41106a220f20004190026a41106a290300370300200041c8006a41086a221620004190026a41086a290300370300200020002903900237034820004190016a41002011108601200028029001221020002802980122244105746a210202400240024020114102490d0041012104034020022000290348370000200241186a200d290300370000200241106a200f290300370000200241086a2016290300370000200241206a2102200441016a22042011490d000b202420046a417f6a21240c010b2011450d010b20022000290348370000200241186a200041c8006a41186a290300370000200241106a200041c8006a41106a290300370000200241086a200041c8006a41086a290300370000202441016a21240b2009a7211f20004190016a41086a22232024360200200a200b41286c6a2118200028029401212941002113410021164100212620070d0f0c0e0b41ccc100200f2010103c000b41dcc100200f417f6a2010103c000b41acc10020152004103c000b41acc10020142004103c000b201b20021055000b200220131029000b41bcc10020142002103c000b41b4c300103b000b20162011417f6a22214f0d010b202120161055000b201620131029000b1066000b1067000b41c1214133102d000b419201212a0c060b4106212a0c050b41d900212a0c040b41d900212a0c030b41d900212a0c020b4128212a0c010b4126212a0b0340024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240202a0e9601080d94010e95010f101112131415161718191a1b1c1d1e292a2b2c88012f3031323334353638393a3b3c3d3e404155565758595b5c5d5e5f8e0160616263646566676c757677787e7f8001810182018301840185018601797a7c7d6d6e6f707172733f748d0168696a6b5a7b87014243900144454748494a4b4c4d4e4f515253549101920150468f019301372d2e1f2021890122238a0124258b0126278c01280001020405060703090a0b0c0c0b2018200a460d9f01418b01212a0c8a020b201841586a2202290300210320004190026a41186a2204201841786a221929030037030020004190026a41106a220d201841706a221429030037030020004190026a41086a220f201841686a22152903003703002000201841606a22182903003703900220004190016a41186a221d201929030037030020004190016a41106a22252014290300370300202320152903003703002000201829030037039001200041c8006a41186a22182004290300370300200041c8006a41106a2219200d290300370300200041c8006a41086a2214200f290300370300200020002903900237034820034200510d9f01418c01212a0c89020b200041e0016a41186a22152018290300370300200041e0016a41106a221b2019290300370300200041e0016a41086a22212014290300370300200020002903483703e0010c87020b2007417f6a210720152018290300370300201b201929030037030020212014290300370300200020002903483703e0014100211620222102418d01212a0c87020b200041e8006a41186a22122015290300370300200041e8006a41106a2220201b290300370300200041e8006a41086a22222021290300370300200020002903e00137036820042012290300370300200d2020290300370300200f202229030037030020002000290368370390022007450d9301418e01212a0c86020b201641ff01710d9901418f01212a0c85020b200a2002460d9b01419001212a0c84020b200241586a222229030021032004200241786a2216290300370300200d200241706a2212290300370300200f200241686a22202903003703002000200241606a220229030037039002201d201629030037030020252012290300370300202320202903003703002000200229030037039001201820042903003703002019200d2903003703002014200f290300370300200020002903900237034820034200520d9c010c9b010b200041286a41186a2004290300370300200041286a41106a200d290300370300200041286a41086a200f29030037030020002000290390023703280c8e010b201341ff01710d9101419301212a0c81020b2018200a460d9101419401212a0c80020b201841586a22022903002103200041e0016a41186a2204201841786a220d290300370300200041e0016a41106a220f201841706a2216290300370300200041e0016a41086a2219201841686a22142903003703002000201841606a22182903003703e00120004190016a41186a200d29030037030020004190016a41106a201629030037030020232014290300370300200020182903003703900120004190026a41186a220d200429030037030020004190026a41106a2204200f29030037030020004190026a41086a220f2019290300370300200020002903e001370390022003500d9101419501212a0cff010b200041286a41186a200d290300370300200041286a41106a2004290300370300200041286a41086a200f290300370300200020002903900237032841002113410021164101212a0cfe010b20004190026a41186a2204200041286a41186a29030037030020004190026a41106a220d200041286a41106a29030037030020004190026a41086a220f200041286a41086a2903003703002000200029032837039002200041e0016a20004190026a10b50120002802e0014101470d8b014103212a0cfd010b200041e0016a41086a280200211820004190016a41186a2219200429030037030020004190016a41106a2214200d2903003703002023200f290300370300200020002903900237039001200041086a41186a22152019290300370300200041086a41106a22192014290300370300200041086a41086a22142023290300370300200020002903900137030820042015290300370300200d2019290300370300200f20142903003703002000200029030837039002202420184d0d8b014105212a0cfc010b201020184105746a2218200029039002370000201841186a2004290300370000201841106a200d290300370000201841086a200f290300370000202641016a212641002107200221184100450d86014106212a0cfb010b4100450d8d014107212a0cfa010b200c450d93014108212a0cf9010b200a10024109212a0cf8010b20244105742221410575221b201141057441057522022002201b4b1b2218450d9201410a212a0cf7010b20172102201021044100210d410b212a0cf6010b20102017460d9201410c212a0cf5010b2002200441201006450d9201410d212a0cf4010b41071001220f450d9201410e212a0cf3010b2000200f36029002200042073702940220004190026a41004107102720004190026a41086a220f200f280200221141076a221936020020112000280290026a221641002800bf1036000020004190016a41086a22112019360200201641046a41002f00c3103b0000201641066a41002d00c5103a0000200020002903900237039001412010012216450d9201410f212a0cf2010b2000201636029002200042203702940220004190026a410041201027200f200f280200221941206a22163602002019200028029002220f6a20024120101e1a200028029402211420004190016a2011280200201610272000280290012219201128020022156a200f2016101e1a2011201520166a22163602002014450d92014110212a0cf1010b200f10024111212a0cf0010b200028029401210f200041286a41086a221142003703002000420037032820192016200041286a1003200041086a41086a201129030037030020002000290328370308200041086a41101005200f450d91014112212a0cef010b201910024113212a0cee010b200241206a2102200441206a2104200d41016a220d2018490d89014114212a0ced010b201020216a21022024210d201b4104490d8f0141fc00212a0cec010b20004190026a41206a2118200041d0026a2119200041f0026a211420004190036a2115200041a8026a210f200041a0026a211120004198026a21162024210d41fd00212a0ceb010b200f420037030020114200370300201642003703002000420037039002201820022204460de10141fe00212a0cea010b200441606a20004190026a412010060de101418001212a0ce9010b200f42003703002011420037030020164200370300200042003703900220192004460de101418101212a0ce8010b200441406a20004190026a412010060de101418301212a0ce7010b200f42003703002011420037030020164200370300200042003703900220142004460de101418401212a0ce6010b200441a07f6a20004190026a412010060de101418601212a0ce5010b200f420037030020114200370300201642003703002000420037039002200441807f6a210220152004460de101418701212a0ce4010b200220004190026a412010060de101418901212a0ce3010b200d417c6a210d200220106b41057541034b0d86014115212a0ce2010b20102002460d86014116212a0ce1010b20004190026a41206a2104200041a8026a210f200041a0026a211120004198026a21164117212a0ce0010b200f42003703002011420037030020164200370300200042003703900220042002460d86014118212a0cdf010b200241606a20004190026a412010060d860141fa00212a0cde010b200d417f6a210d2010200241606a2202470d830141fb00212a0cdd010b4100450d8f01411a212a0cdc010b200d41016a22022024202420024b1b2124411b212a0cdb010b20002029360294012000201036029001200020243602980120004190026a20004190016a10a20120002802980221042000280290022102200041286a41086a220d420037030020004200370328418d104107200041286a1003200041086a41086a200d29030037030020002000290328370308200041086a4110200220041004200028029402450d8e01411c212a0cda010b20021002411d212a0cd9010b2029450d8d01411e212a0cd8010b20101002411f212a0cd7010b2000202636029002200041286a41086a220242003703002000420037032841cd104107200041286a1003200041086a41086a2204200229030037030020002000290328370308200041086a411020004190026a41041004200242003703002000420037032841b70f4107200041286a10032004200229030037030020002000290328370308200041086a411041d02d410041001000417f460d8c014120212a0cd6010b2000410036029002200041086a411020004190026a41044100100041016a41044d0d8c014121212a0cd5010b20002802900241016a21020c8c010b410121024122212a0cd3010b2000200236029002200041286a41086a220242003703002000420037032841b70f4107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411020004190026a41041004201e450d8b014123212a0cd2010b201710024124212a0cd1010b201f450d8a014125212a0cd0010b200810024126212a0ccf010b2006450d89014127212a0cce010b200510024128212a0ccd010b20004190026a412c6a212520004190026a410472212620004190026a41206a210d20004190016a412c6a2122200041e0016a41086a2123200041e0016a4104722120200041e0016a410c6a21290c88010b20004190026a41286a200041e0016a41286a290300370300200d200041e0016a41206a29030037030020004190026a41186a200041e0016a41186a29030037030020004190026a41106a200041e0016a41106a29030037030020042023290300370300200020002903e0013703900220004190026a410210ba014129212a0ccb010b200041e0026a10bb0120002802e002210241062112200041e0026a41086a2210280200220f450d9001412a212a0cca010b20022903002103200041c8006a41186a2211200241206a290000370300200041c8006a41106a2216200241186a290000370300200041c8006a41086a2217200241106a290000370300200020022900083703484106211220032001520d900141e100212a0cc9010b200f417f6a2218ad42287e2203422088a70db50141e200212a0cc8010b2003a72204417f4c0db50141e400212a0cc7010b2004450db50141e500212a0cc6010b2004100122190daf010cae010b4108211941e600212a0cc4010b20004190026a41086a220441003602002000201836029402200020193602900220004190026a4100200f41286c41586a41286e220f108201200420042802002218200f6a360200200028029002201841286c6a200241286a200f41286c101e1a2023200428020036020020002000290390023703e001200041e0016a10bc0120002802e401450db30141e700212a0cc3010b20002802e001100241e800212a0cc2010b200041e8006a41186a22142011290300370300200041e8006a41106a22152016290300370300200041e8006a41086a221b20172903003703002000200029034837036841071001220f450dac0141e900212a0cc1010b2000200f36029002200042073702940220004190026a41004107102720042004280200220f41076a2218360200200f2000280290026a220f41002800eb2236000020232018360200200f41046a41002f00ef223b0000200f41066a41002d00f1223a000020002000290390023703e00141201001220f450dac0141ea00212a0cc0010b2000200f36029002200042203702940220004190026a41004120102720042004280200221841206a220f360200201820002802900222196a22182000290368370000201841086a201b290300370000201841106a2015290300370000201841186a20142903003700002000280294022115200041e0016a2023280200200f102720002802e0012218202328020022146a2019200f101e1a20232014200f6a22143602002015450db00141eb00212a0cbf010b2019100241ec00212a0cbe010b20002802e401211d200041086a41086a220f42003703002000420037030820182014200041086a1003200041286a41086a2219200f29030037030020002000290308370328200041286a411041d02d410041001000417f460daf0141ed00212a0cbd010b2000421037020c2000200041286a36020820004190026a200041086a10bd0120002802900222124106460daf0141ee00212a0cbc010b200041e0016a41286a202641286a280200360200200041e0016a41206a202641206a290200370300200041e0016a41186a202641186a290200370300200041e0016a41106a202641106a2902003703002023202641086a290200370300200020262902003703e001200f42003703002000420037030820182014200041086a10032019200f29030037030020002000290308370328200041286a411010050caf010b4106211241ef00212a0cba010b20004190026a41286a220f200041e0016a41286a2219280200360200200d200041e0016a41206a221429030037030020004190026a41186a2215200041e0016a41186a221b29030037030020004190026a41106a2221200041e0016a41106a222429030037030020042023290300370300200020002903e00137039002201d450dae0141f000212a0cb9010b2018100241f100212a0cb8010b20124106460dad0141f200212a0cb7010b2019200f2802003602002014200d290300370300201b2015290300370300202420212903003703002023200429030037030020002000290390023703e001200f2019280200360200200d20142903003703002015201b290300370300202120242903003703002004202329030037030020252000290348370200202541086a2017290300370200202541106a2016290300370200202541186a2011290300370200200020002903e0013703900220004190016a20004190026a41cc00101e1a412b212a0cb6010b20002802e402450d7d412c212a0cb5010b20021002412d212a0cb4010b20124106460d7c412e212a0cb3010b2020200029029001370200202041086a20004190016a41086a290200370200202041106a20004190016a41106a290200370200202041186a20004190016a41186a290200370200202041206a20004190016a41206a290200370200202041286a20004190016a41286a280200360200200020123602e001200041e8006a41186a2215202241186a290000370300200041e8006a41106a221b202241106a290000370300200041e8006a41086a2221202241086a29000037030020002022290000370368200041e0026a104720002802e00221242010280200221d41286c2217450d7c412f212a0cb2010b4100211441002119202421020c7c0b4102211120180d82010c81010b200d200229000037000020004190026a41186a201529030037030020004190026a41106a201b29030037030020004190026a41086a2021290300370300200d41086a200241086a290000370000200d41106a200241106a290000370000200d41186a200241186a2900003700002000200029036837039002410910012204450d7c4131212a0caf010b200020043602482000420937024c200041c8006a410041091027200041c8006a41086a22102010280200220441096a220f360200200420002802486a221141002900f922370000200041286a41086a2204200f360200201141086a41002d0081233a000020002000290348370328200041c8006a20004190026a10be01200028024c211820002802482111200041286a20042802002010280200220f102720002802282210200428020022166a2011200f101e1a20042016200f6a22163602002018450d7c4132212a0cae010b201110024133212a0cad010b200028022c2118200041086a41086a220f42003703002000420037030820102016200041086a10032004200f29030037030020002000290308370328200041286a411041d02d410041001000417f460d7b4134212a0cac010b200041003a0048200041286a4110200041c8006a41014100100041016a41014d0d7b4136212a0cab010b20002d00482111200f42003703002000420037030820102016200041086a10032004200f29030037030020002000290308370328200041286a411010052018450d7d4137212a0caa010b201010024138212a0ca9010b201141ff01714102460d7c4139212a0ca8010b201420114101716a211420192011417f734101716a2119413a212a0ca7010b200241286a2102201741586a22170d72413b212a0ca6010b201920146a210220002802e402450d7a413c212a0ca5010b20241002413d212a0ca4010b201d20026b210220124103470d7b41da00212a0ca3010b20002d00e40141ff01714102470d7b41db00212a0ca2010b20190d7e41dc00212a0ca1010b20020d7c41dd00212a0ca0010b202328020010460c790b2014200220196a4d0d7941d000212a0c9e010b410910012204450d810141d100212a0c9d010b2000200436029002200042093702940220004190026a41004109102720004190026a41086a22042004280200221041096a220f36020020102000280290026a2211410029009823370000200041c8006a41086a2210200f360200201141086a41002d00a0233a0000200020002903900237034841201001220f450d810141d200212a0c9c010b2000200f36029002200042203702940220004190026a41004120102720042004280200221141206a220f360200201120002802900222166a22112000290368370000201141086a2021290300370000201141106a201b290300370000201141186a20152903003700002000280294022117200041c8006a2010280200200f102720002802482211201028020022186a2016200f101e1a20102018200f6a220f3602002017450d810141d300212a0c9b010b2016100241d400212a0c9a010b200028024c2110200041286a41086a22164200370300200042003703282011200f200041286a1003200041086a41086a201629030037030020002000290328370308200041086a411010052010450d800141d500212a0c99010b2011100241d600212a0c98010b20022019720d7f41d800212a0c97010b20004190026a41286a200041e0016a41286a290300370300200d200041e0016a41206a29030037030020004190026a41186a200041e0016a41186a29030037030020004190026a41106a200041e0016a41106a29030037030020042023290300370300200020002903e0013703900220004190026a410110ba010c530b201241077122024103460d7341c000212a0c95010b20020d5241c100212a0c94010b20002802e4012202450d5441c200212a0c93010b20024101470d7141cc00212a0c92010b2029280200450d5341cd00212a0c91010b202328020010020c530b4100211941002114410041006a210220002802e4020d660c650b20002d00e4014101470d4d41cf00212a0c8e010b202310bf010c4d0b20232802002110200041e0016a41106a2802002202450d6c41c400212a0c8c010b200241186c21042010210241c500212a0c8b010b200241046a280200450d6c41c600212a0c8a010b2002280200100241c700212a0c89010b200241106a280200450d6b41c800212a0c88010b2002410c6a280200100241c900212a0c87010b200241186a2102200441686a22040d6741ca00212a0c86010b2029280200450d4941cb00212a0c85010b201010020c490b200041f0026a24000f0b200d417f6a210d41010d340c330b200d417f6a210d41010d310c300b200d417e6a210d41010d2e0c2d0b200d417d6a210d41010d2b0c2a0b200d417c6a210d41010d280c270b101c000b41c1214133102d000b1064000b1065000b4187254139102d000b41c1214133102d000b41c1214133102d000b41f316411c102d000b41b43820182024103c000b419201212a0c740b4101212a0c730b4100212a0c720b4102212a0c710b4104212a0c700b4107212a0c6f0b4107212a0c6e0b4107212a0c6d0b418a01212a0c6c0b4107212a0c6b0b4107212a0c6a0b4107212a0c690b4107212a0c680b4107212a0c670b419101212a0c660b4109212a0c650b4114212a0c640b410b212a0c630b4113212a0c620b4113212a0c610b41d900212a0c600b41d900212a0c5f0b4111212a0c5e0b4113212a0c5d0b4115212a0c5c0b41fd00212a0c5b0b41fb00212a0c5a0b4117212a0c590b41fa00212a0c580b4119212a0c570b411b212a0c560b411a212a0c550b411b212a0c540b411a212a0c530b411b212a0c520b411a212a0c510b411b212a0c500b411a212a0c4f0b411b212a0c4e0b411a212a0c4d0b411b212a0c4c0b411d212a0c4b0b411f212a0c4a0b41f900212a0c490b41f800212a0c480b4122212a0c470b4124212a0c460b4126212a0c450b4128212a0c440b4129212a0c430b4129212a0c420b4129212a0c410b4129212a0c400b4129212a0c3f0b4129212a0c3e0b4129212a0c3d0b4129212a0c3c0b4129212a0c3b0b4129212a0c3a0b412b212a0c390b412b212a0c380b412d212a0c370b41e000212a0c360b41df00212a0c350b4130212a0c340b4130212a0c330b41d900212a0c320b4133212a0c310b41de00212a0c300b4135212a0c2f0b4138212a0c2e0b4137212a0c2d0b4138212a0c2c0b413a212a0c2b0b413d212a0c2a0b413d212a0c290b413c212a0c280b413e212a0c270b413e212a0c260b413f212a0c250b413f212a0c240b413f212a0c230b413f212a0c220b41ce00212a0c210b41c300212a0c200b41ca00212a0c1f0b41c500212a0c1e0b41c700212a0c1d0b41c900212a0c1c0b41d900212a0c1b0b41d900212a0c1a0b41d400212a0c190b41d600212a0c180b41d700212a0c170b41d900212a0c160b41e600212a0c150b41d900212a0c140b41d900212a0c130b41f700212a0c120b41e300212a0c110b41f600212a0c100b41e800212a0c0f0b41ec00212a0c0e0b41f500212a0c0d0b41f400212a0c0c0b41ef00212a0c0b0b41f100212a0c0a0b41f300212a0c090b418001212a0c080b41ff00212a0c070b418301212a0c060b418201212a0c050b418601212a0c040b418501212a0c030b418901212a0c020b418801212a0c010b418d01212a0c000b0b41c1214133102d000b1057000b1056000b41f4214122102d000b41f4214122102d000b41be164135102d000b41c1214133102d000b200f20131055000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41dcc1002004417f6a200d103c000b41ccc1002004200d103c000ba50c03047f017e177f23004180026b22012400200141b0016a41086a22024200370300200142003703b0014191264107200141b0016a1003200141086a2002290300370300200120012903b0013703000240024002400240024002402001411041d02d410041001000417f460d002001200136021020014110360214200141003602b0012001410020014110200141b0016a41044100100022022002417f461b2202410420024104491b2203360218200241034d0d0320012802b0012204ad42d8007e2205422088a70d052005a72202417f4c0d042002450d012002100122060d02101c000b200041003602082000420837020020014180026a24000f0b410821060b20012004360224200120063602202001410036022802402004450d0020014180016a41086a210720014180016a4104722108200121094100210a4110210b4100210c0340200141003602b001200141106a41086a220d41002009200b200141b0016a41042003100022022002417f461b2202410420024104491b20036a3602000240024002400240200241034d0d0020012802b001210e200141b0016a200141106a10bd0120012802b0014106460d0020014180016a41286a200141b0016a41286a220f29030037030020014180016a41206a200141b0016a41206a221029030037030020014180016a41186a2211200141b0016a41186a221229030037030020014180016a41106a2213200141b0016a41106a22142903003703002007200141b0016a41086a2215290300370300200120012903b00137038001200141e0016a41186a22164200370300200141e0016a41106a22174200370300200141e0016a41086a22184200370300200142003703e001200d200d28020022024100200128021022092001280214220b200141e0016a41202002100022022002417f461b2202412020024120491b6a220336020002402002411f4d0d00200141306a41186a22022016290300370300200141306a41106a220d2017290300370300200141306a41086a22162018290300370300200120012903e001370330200141d0006a41086a2217200841086a290200370300200141d0006a41106a2218200841106a290200370300200141d0006a41186a2219200841186a290200370300200141d0006a41206a221a200841206a290200370300200141d0006a41286a221b200841286a28020036020020012008290200370350200128028001221c4106460d01200c41016a210c200f201b2802003602002010201a290300370300201220192903003703002014201829030037030020152017290300370300200720162903003703002013200d29030037030020112002290300370300200120012903503703b0012001200129033037038001200a2001280224470d04200141206a1074200141206a41086a280200210a200128022021060c040b0240024020012802800122024103460d0020020d022001280284012202450d0220024101470d012001418c016a280200450d0220014188016a280200100220012802202103200a0d030c040b20012d0084014101470d012007104b20012802202103200a0d020c030b20014188016a2802002103024020014180016a41106a2802002202450d00200241186c21082003210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200841686a22080d000b0b2001418c016a280200450d00200310020b20012802202103200a450d010b200a41d8006c210820032102034020021038200241d8006a2102200841a87f6a22080d000b0b2001280224450d03200310020c030b2006200a41d8006c6a2202201c3602002002411c6a2012290300370200200241146a20142903003702002002410c6a2015290300370200200220012903b001370204200241246a20102903003702002002412c6a200f2802003602002002200e36023020022001290380013702342002413c6a2007290300370200200241c4006a2013290300370200200241cc006a2011290300370200200141206a41086a200a41016a220a360200200c2004490d000b200128022021060b2006450d00200020012902243702042000200636020020014180026a24000f0b41c1214133102d000b1059000b1058000b8d0402057f017e230041c0006b220224000240024002400240410810012203450d002002200336023020024208370234200241306a4100410810272002280230200228023822036a42e4cab5d3c3ac99b83a3700002002200341086a360238200241086a200228023836020020022002290330370300410410012203450d002002200336023020024204370234200241306a41004104102720022802302203200228023822046a20013600002002200441046a220136023820022802342105200220022802082001102720022802002204200228020822066a20032001101e1a2002200620016a220136020802402005450d00200310020b20022802042103200241306a41086a220542003703002002420037033020042001200241306a1003200241086a20052903003703002002200229033037030002402002411041d02d410041001000417f460d002002200236021020024110360214200242003703302002410020024110200241306a41084100100022012001417f461b2201410820014108491b360218200141074d0d0220022903302107200241306a200241106a103a20022802302201450d022002200229023437032020002001360208200020073703002000200229032037020c200041146a200241286a2802003602002003450d040c030b2000410036020820030d020c030b101c000b41c1214133102d000b200410020b200241c0006a24000bda0101027f0240024020002802002201450d0020014103470d0120002d00044101470d01200041086a22012802001038200128020010020f0b20002802042201450d00024020014101470d002000410c6a280200450d01200041086a28020010020f0b0240200041106a2802002202450d00200041086a2802002101200241186c210203400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200241686a22020d000b0b2000410c6a280200450d00200041086a28020010020f0b0b0a00200020012002100b0bc80403067f017e097f230041d0006b220224002002410036023020012001280208220341002001280200220420012802042205200241306a41042003100022032003417f461b2203410420034104491b6a220636020802400240024002400240200341034d0d0020022802302207ad2208421b88a70d042008420586a72203417f4c0d032003450d012003100122090d02101c000b20004100360200200241d0006a24000f0b410121090b20022007360204200220093602002002410036020802402007450d00200241306a41186a210a200241306a41106a210b410021034100210c0340200a4200370300200b4200370300200241306a41086a220d420037030020024200370330200141086a410020042005200241306a412020061000220e200e417f461b220e4120200e4120491b20066a220636020002400240200e411f4d0d00200c41016a210c200241106a41186a220f200a290300370300200241106a41106a2210200b290300370300200241106a41086a2211200d2903003703002002200229033037031020032002280204470d012002107c200241086a2802002103200228020021090c010b2000410036020002402002280204450d00200910020b200241d0006a24000f0b200920034105746a220e2002290310370000200e41186a200f290300370000200e41106a2010290300370000200e41086a2011290300370000200241086a200341016a2203360200200c2007490d000b0b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b1067000b1066000b2c02017f017e230041106b2201240020002902102102200120002902083703002001200237030820011054000b070020001054000bab0303017f017e047f230041306b220224002000104321030240410810012204450d002002200436022020024208370224200241206a4100410810272002280220200228022822046a42f3e885d3a3ac98b63a3700002002200441086a360228200241106a41086a200228022836020020022002290320370310412010012204450d00200320017c21012002200436022020024220370224200241206a41004120102720022802202205200228022822066a22042000290000370000200441086a200041086a290000370000200441106a200041106a290000370000200441186a200041186a2900003700002002200641206a220036022820022802242106200241106a20022802182000102720022802102204200228021822076a20052000101e1a2002200720006a220036021802402006450d00200510020b2002280214210520022001370308200241206a41086a220642003703002002420037032020042000200241206a1003200241106a41086a200629030037030020022002290320370310200241106a4110200241086a4108100402402005450d00200410020b200241306a24000f0b101c000bcb0501097f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002100200241d8006c21050340200141106a41086a2203410036020020014201370310200041306a2802002102200141106a41004104102720032003280200220641046a2207360200200620012802106a2002360000200141206a200010d80120012802202108200141106a2007200141206a41086a22062802002202102720032002200328020022076a2209360200200720012802106a20082002101e1a02402001280224450d00200810020b200141106a20094120102720032003280200220741206a22023602002007200128021022086a220341086a2000413c6a290000370000200341106a200041c4006a290000370000200341186a200041cc006a2900003700002003200041346a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200641003602002001200236022420012003360220200141206a41002002102720062006280200220720026a22033602002007200128022022066a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002207200428020022086a20062003101e1a2004200820036a220336020002402002450d00200610020b200041d8006a2100200541a87f6a22050d000c020b0b20012802082103200128020021070b20012802042100200141206a41086a22024200370300200142003703204191264107200141206a1003200141106a41086a200229030037030020012001290320370310200141106a411020072003100402402000450d00200710020b200141306a24000f0b1019000b101c000be50c03037f017e047f230041a0016b22032400200341086a220442003703002003420037030041852741072003100320034180016a41086a200429030037030020032003290300370380010240024020034180016a411041d02d410041001000417f460d00200341003602400240024020034180016a4110200341c0006a41044100100041016a41044d0d00024020032802402205450d0020032005417f6a104020032802084106460d00200341c0006a41086a2204200341086a290300370300200341c0006a41386a200341386a290300370300200341c0006a41306a200341306a290300370300200341c0006a41286a200341286a290300370300200341c0006a41206a200341206a290300370300200341c0006a41186a200341186a290300370300200341c0006a41106a200341106a290300370300200320032903002206370340024002400240200428020022044103460d0020040d02200341cc006a2802002204450d0220044101470d01200341d4006a280200450d02200341d0006a280200100220062000580d030c070b200341cc006a2d00004101470d01200341d0006a102220062000580d020c060b200341c0006a41106a28020021070240200341c0006a41186a2802002204450d00200441186c21082007210403400240200441046a280200450d00200428020010020b0240200441106a280200450d002004410c6a28020010020b200441186a2104200841686a22080d000b0b200341d4006a280200450d00200710020b20062000560d040b2003200541016a360240200341086a220442003703002003420037030041852741072003100320034180016a41086a22082004290300370300200320032903003703800120034180016a4110200341c0006a41041004200341c0006a41106a200141086a290300370300200341c0006a41186a200141106a290300370300200341c0006a41206a200141186a290300370300200341c0006a41286a200141206a290300370300200341f0006a200141286a29030037030020032000370340200320023a007820032001290300370348410810012201450d01200320013602002003420837020420034100410810272003280200200328020822016a42e4cab5d383cedcb73a3700002003200141086a360208200820032802083602002003200329030037038001410410012201450d01200341c0006a41086a21022003200136020020034204370204200341004104102720032802002204200328020822016a20053600002003200141046a22013602082003280204210820034180016a20032802880120011027200328028001220520032802880122076a20042001101e1a2003200720016a22073602880102402008450d00200410020b200328028401210841002104200341003602980120034201370390012003290340210020034190016a41004108102720032802900120032802980122016a20003700002003200141086a2209360298012003200210d8012003280200210220034190016a20092003280208220110272003200120032802980122096a220a3602980120092003280290016a20022001101e1a02402003280204450d00200210020b02400240200341f8006a2d000022014103714102460d0020014101470d01410121040c010b410221040b20034190016a200a4101102720034190016a41086a22012001280200220241016a2209360200200220032802900122016a20043a0000200341086a2204420037030020034200370300200520072003100320034180016a41086a2004290300370300200320032903003703800120034180016a41102001200910040240200328029401450d00200110020b02402008450d00200510020b024002400240200328024822014103460d0020010d02200341cc006a2802002201450d0220014101470d01200341d4006a280200450d02200341d0006a2802001002200341a0016a24000f0b200341cc006a2d00004101470d01200341d0006a1022200341a0016a24000f0b0240200341c0006a41186a2802002204450d00200341c0006a41106a2802002101200441186c210403400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200441686a22040d000b0b200341d4006a280200450d00200341d0006a28020010020b200341a0016a24000f0b41c1214133102d000b101c000b41f4214122102d000b4184c000103b000b810a03057f017e067f230041c0016b220224000240024002400240410810012203450d002002200336029001200242083702940120024190016a41004108102720022802900120022802980122036a42e4cab5d383cedcb73a3700002002200341086a36029801200241e0006a41086a2002280298013602002002200229039001370360410410012203450d002002200336029001200242043702940120024190016a410041041027200228029001220320022802980122046a20013600002002200441046a2201360298012002280294012105200241e0006a20022802682001102720022802602204200228026822066a20032001101e1a2002200620016a220136026802402005450d00200310020b2002280264210520024190016a41086a2203420037030020024200370390012004200120024190016a1003200241086a41086a20032903003703002002200229039001370308024002400240200241086a411041d02d410041001000417f460d002002200241086a3602182002411036021c200242003703900120024100200241086a411020024190016a41084100100022012001417f461b2201410820014108491b360220200141074d0d06200229039001210720024190016a200241186a10bd012002280290014106460d06200241e0006a41286a20024190016a41286a290300370300200241e0006a41206a20024190016a41206a290300370300200241e0006a41186a20024190016a41186a290300370300200241e0006a41106a20024190016a41106a290300370300200241e0006a41086a20024190016a41086a2903003703002002200229039001370360200241003a0030200241186a41086a2201200128020022012002280218200228021c200241306a41012001100041016a220141014b6a360200024020014102490d0020022d0030220141034f0d00200241386a2206200241ec006a290200370300200241c0006a2208200241e0006a41146a290200370300200241c8006a2209200241e0006a411c6a290200370300200241d0006a220a200241e0006a41246a290200370300200241d8006a220b200241e0006a412c6a2802003602002002200229026437033020022802602103200241286a41066a220c200241e0006a41066a2d00003a0000200241286a41046a220d200241e0006a41046a2f00003b01002002200228006036022820034106460d0720002003360208200020073703002000200229033037020c20002002280228360039200041386a20013a0000200041146a20062903003702002000411c6a2008290300370200200041246a20092903003702002000412c6a200a290300370200200041346a200b2802003602002000413d6a200d2f01003b00002000413f6a200c2d00003a000020050d020c030b200228026022010d0420022802642201450d0620014101460d05200241e8006a28020021030240200241e0006a41106a2802002201450d00200141186c21002003210103400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200041686a22000d000b0b200241ec006a280200450d06200310020c060b200041063602082005450d010b200410020b200241c0016a24000f0b101c000b20014103470d0120022d00644101470d01200241e8006a104b41c1214133102d000b200241ec006a280200450d00200241e8006a280200100241c1214133102d000b41c1214133102d000b080041fc31103b000b960201057f230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42e4cab5d3e38e9db93a3700002002200341086a360218200241086a200228021836020020022002290310370300410410012203450d002002200336021020024204370214200241106a41004104102720022802102203200228021822046a20013600002002200441046a220136021820022802142105200220022802082001102720022802002204200228020822066a20032001101e1a2002200620016a220136020802402005450d00200310020b2002280204210320002004200110da0102402003450d00200410020b200241206a24000f0b101c000bc70302057f017e230041206b220124000240410810012202450d002001200236021020014208370214200141106a4100410810272001280210200128021822026a42f3e885d3a3ac98b63a3700002001200241086a360218200141086a200128021836020020012001290310370300412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bc70302057f017e230041206b220124000240410810012202450d002001200236021020014208370214200141106a4100410810272001280210200128021822026a42f3e885d3c3cdd8b73a3700002001200241086a360218200141086a200128021836020020012001290310370300412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bb80201047f230041206b2202240020024100360208200242013703002001280200210320024100410410272002280200200228020822046a20033600002002200441046a2203360208200220034120102720022802002204200228020822056a22032001290004370000200341086a2001410c6a290000370000200341106a200141146a290000370000200341186a2001411c6a2900003700002002200541206a220136020802402001417f4c0d00024002402001450d002001100122030d01101c000b410121030b200220013602142002200336021020024100360218200241106a41002001102720022002280218220320016a360218200320022802106a20042001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200410020b200241206a24000f0b1019000bc808010d7f230041d0006b220124000240410810012202450d00200120023602082001420837020c200141086a4100410810272001280208200128021022026a42e4cab5d383cedcb73a3700002001200241086a360210200141c0006a41086a200128021036020020012001290308370340410410012202450d00200120023602082001420437020c200141086a41004104102720012802082203200128021022026a20003600002001200241046a2202360210200128020c2104200141c0006a20012802482002102720012802402205200128024822066a20032002101e1a2001200620026a220236024802402004450d00200310020b20012802442103200141c0006a41086a220442003703002001420037034020052002200141c0006a1003200141306a41086a200429030037030020012001290340370330200141306a4110100502402003450d00200510020b410810012202450d00200120023602082001420837020c200141086a4100410810272001280208200128021022026a42e4cab5d3e38e9db93a3700002001200241086a360210200141c0006a41086a200128021036020020012001290308370340410410012202450d00200120023602082001420437020c200141086a41004104102720012802082203200128021022026a20003600002001200241046a2202360210200128020c2104200141c0006a20012802482002102720012802402205200128024822066a20032002101e1a2001200620026a220236024802402004450d00200310020b20012802442103200141c0006a41086a220442003703002001420037034020052002200141c0006a1003200141306a41086a200429030037030020012001290340370330200141306a4110100502402003450d00200510020b200141086a20001042200128020c210720012802082108024020012802102202450d0020024105742109200141086a410472210420082102034020042002290000370000200441186a200241186a290000370000200441106a200241106a290000370000200441086a200241086a29000037000020012000360208410810012203450d022001200336024020014208370244200141c0006a410041081027200141c0006a41086a22032003280200220541086a360200200520012802406a42e4cab5d3e3ee9bba3a370000200141306a41086a2205200328020036020020012001290340370330200141c0006a200141086a10452001280244210a2001280240210b200141306a20052802002003280200220610272001280230220c2005280200220d6a200b2006101e1a2005200d20066a22063602000240200a450d00200b10020b2001280234210b2003420037030020014200370340200c2006200141c0006a10032005200329030037030020012001290340370330200141306a411010050240200b450d00200c10020b200241206a2102200941606a22090d000b0b02402007450d00200810020b200141d0006a24000f0b101c000b810604047f017e097f037e230041e0006b22012400200141c0006a41086a220242003703002001420037034041c7114107200141c0006a1003200141086a2002290300370300200120012903403703000240024002400240024002402001411041d02d410041001000417f460d0020014100360240410020014110200141c0006a41044100100022022002417f461b220341034d0d0320012802402204ad42287e2205422088a70d042005a72202417f4c0d052002450d012002100122060d02101c000b2000410036020820004208370200200141e0006a24000f0b410821060b200120043602142001200636021020014100360218024002402004450d002003410420034104491b2107200141c0006a41186a2108200141c0006a41086a2109410021034100210a034020084200370300200141c0006a41106a220b42003703002009420037030020014200370340410020014110200141c0006a41202007100022022002417f461b2202411f4d0d02200141206a41186a220c2008290300370300200141206a41106a220d200b290300370300200141206a41086a220e20092903003703002001200129034037032020014200370340410020014110200141c0006a41082002412020024120491b20076a2207100022022002417f461b220241074d0d02200a41016a210a2002410820024108491b2102200129034021052008200c290300370300200b200d2903003703002009200e29030037030020012001290320370340024020032001280214470d00200141106a1078200141106a41086a2802002103200128021021060b200220076a21072006200341286c6a220220012903403703002009290300210f200b29030021102008290300211120022005370320200241186a2011370300200241106a2010370300200241086a200f370300200141106a41086a200341016a2203360200200a2004490d000b200128021021060b2006450d012000200129021437020420002006360200200141e0006a24000f0b2001280214450d00200610020b41c1214133102d000b1056000b1057000bf81505037f017e087f017e047f230041f0006b22002400200041086a41086a220142003703002000420037030841c81d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350024002400240024002400240200041d0006a411041d02d410041001000417f460d00200042003703080240024002400240200041d0006a4110200041086a41084100100041016a41084d0d002000200029030842017c370340200041086a41086a220142003703002000420037030841c81d4107200041086a1003200041d0006a41086a2202200129030037030020002000290308370350200041d0006a4110200041c0006a41081004200142003703002000420037030841cf1d4107200041086a100320022001290300370300200020002903083703500240200041d0006a411041d02d410041001000417f460d0020004200370308200041d0006a4110200041086a41084100100041016a41084d0d02200020002903082203370330200041086a41086a220142003703002000420037030841c11d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350200041d0006a411041d02d410041001000417f460d0920004200370308200041d0006a4110200041086a41084100100041016a41084d0d0320032000290308510d0020002003370340200041086a41086a220142003703002000420037030841c11d4107200041086a1003200041d0006a41086a2202200129030037030020002000290308370350200041d0006a4110200041c0006a410810042000102e370340200142003703002000420037030841ba1d4107200041086a10032002200129030037030020002000290308370350200041d0006a4110200041c0006a410810040b200041086a41086a220142003703002000420037030841d61d4108200041086a1003200041d0006a41086a2001290300370300200020002903083703504100210102400240200041d0006a411041d02d410041001000417f460d00200042103702442000200041d0006a360240200041086a200041c0006a103a20002802082204450d0b200041106a2802002101200028020c21050c010b41012104410021050b2000410036024820004208370340200041c0006a20014105742206410575108501200028024821022000280240210702402006450d002007200241286c6a21012002200641606a4105766a2108200421020340200041086a41186a2209200241186a290000370300200041086a41106a220a200241106a290000370300200041086a41086a220b200241086a29000037030020002002290000370308200041086a10432103200041086a1044210c200041d0006a41186a220d2009290300370300200041d0006a41106a2209200a290300370300200041d0006a41086a220a200b290300370300200020002903083703502001200c20037c370300200141206a200d290300370300200141186a2009290300370300200141106a200a290300370300200141086a2000290350370300200141286a2101200241206a2102200641606a22060d000b200841016a21020b02402005450d00200410020b200041c0006a41086a20023602002000280244210820072002410041202002676b10c401200041086a41086a220142003703002000420037030841de1d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350200041d0006a411041d02d410041001000417f460d0520004100360208200041d0006a4110200041086a41044100100041016a41044d0d032000280208210b2000410036024820004201370340200041c0006a4100200241286c220941286d2201200b2001200b491b1086012000280248210a2000280240210e0240200b450d00200e200a4105746a2102200041086a41086a21062007210103402009450d01200041086a41206a200141206a290300370300200041086a41186a200141186a290300370300200041086a41106a200141106a2903003703002006200141086a290300370300200041d0006a41086a220d200641086a290000370300200041d0006a41106a2204200641106a290000370300200041d0006a41186a2205200641186a2900003703002000200129030037030820002006290000370350200241186a2005290300370000200241106a2004290300370000200241086a200d29030037000020022000290350370000200941586a2109200a41016a210a200241206a2102200141286a2101200b417f6a220b0d000b0b02402008450d00200710020b200041c8006a200a360200200aad2203421b88a70d062003420586a72201417f4c0d072000280244210f024002402001450d002001100122010d01101c000b410121010b2000200a36020c2000200136020820004100360210200041086a4100200a108601200020002802102201200a6a360210200028020820014105746a200e200a4105742202101e1a200041306a41086a200028021036020020002000290308370330200041c0006a200041306a10a2012000280248210620002802402101200041086a41086a220942003703002000420037030841e4084107200041086a1003200041d0006a41086a200929030037030020002000290308370350200041d0006a411020012006100402402000280244450d00200110020b02402000280234450d00200028023010020b410021062000410036024820004201370340200041c0006a4100200241057510860120002802482101200028024021100240200a4105742209450d00200041086a41186a220a200e41186a290000370300200041086a41106a220b200e41106a290000370300200041086a41086a220d200e41086a2900003703002000200e290000370308200141016a2104200e41206a2102200941606a2109201020014105746a210102400340200041d0006a41186a2205200a290300370300200041d0006a41106a2207200b290300370300200041d0006a41086a2208200d29030037030020002000290308370350200141186a2005290300370000200141106a2007290300370000200141086a2008290300370000200120002903503700002009450d01200a200241186a290000370300200b200241106a290000370300200d200241086a29000037030020002002290000370308200441016a2104200241206a2102200941606a2109200141206a21010c000b0b200421010b200041c0006a41086a20013602002000280244210d02402001450d002001410574210241002106200041086a41086a210a201021010340200041086a2006103220002802082209200a2802002001412010040240200028020c450d00200910020b200141206a2101200641016a2106200241606a22020d000b0b200041086a10302000280208220120002802101031210b0240200028020c450d00200110020b0240200b20064d0d00200041106a210a200621010340200041086a103020002802082202200a280200103121090240200028020c450d00200210020b200141016a21020240200920014d0d00200041086a2001103220002802082201200a2802001005200028020c450d00200110020b20022101200b2002470d000b0b200041086a103020002802102102200028020821012000200636025020012002200041d0006a410410040240200028020c450d00200110020b0240200d450d00201010020b0240200f450d00200e10020b200041f0006a24000f0b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b1066000b1067000b41f4214122102d000b41c1214133102d000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341286c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000bf40403067f017e027f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a2203410036020020014201370310200141106a41004120102720032003280200220241206a2206360200200220012802106a220241186a200041186a290000370000200241106a200041106a290000370000200241086a200041086a29000037000020022000290000370000200041206a2903002107200141106a20064108102720032003280200220641086a22023602002006200128021022086a20073700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220641003602002001200236022420012003360220200141206a41002002102720062006280200220920026a22033602002009200128022022066a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20062003101e1a2004200820036a220336020002402002450d00200610020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a220042003703002001420037032041c7114107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a104b200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020bd60403047f017e087f230041c0006b2203240020024103742104410021050240024002400240024002402002450d0020044103752206ad4202862207a722084100480d042007422088a74100470d04200810012209450d05200120046a220a2001460d010c020b4104210941002106200120046a220a2001470d010b4101210c410021040c010b20024103742108200a41786a210b410021022009210403402004200120026a41046a280200360200200441046a21042008200241086a2202470d000b200b20016b41037641016a21054101210c410021044100210803402001280200210d0240024002402004200822026b200141046a280200220b4f0d002002200b6a22082002490d052004410174220e20082008200e491b220e4100480d052004450d01200e1001220f450d06200f200c200e20042004200e4b1b101e210f200c1002200e2104200f210c0c020b2002200b6a21080c010b200e2104200e1001220c450d040b200c20026a200d200b101e1a200141086a2201200a470d000b0b200341206a41186a22014200370300200341206a41106a22024200370300200341206a41086a2208420037030020034200370320200c20092005200341206a1007200341186a2001290300370300200341106a2002290300370300200341086a20082903003703002003200329032037030002402004450d00200c10020b02402006450d00200910020b20002003290300370000200041186a200341186a290300370000200041106a200341106a290300370000200041086a200341086a290300370000200341c0006a24000f0b1041000b101c000b14002006200710082008ad10092009ad100900000b0b0041e70a4122100800000b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b1050000b05001041000ba60101047f200141086a28020021024104210302400240410410012204450d002004200236000020012802002105024002402002450d00200241046a22032002490d0320034108200341084b1b22034100480d03200310012201450d02200120042003410420034104491b101e1a200410020c010b200421010b200141046a20052002101e1a20002003360204200020013602002000200241046a3602080f0b101c000b1041000b0600200010010b0600200010020b2500200020002000200020002000200028020020002802042000280208200028020c104d000b080041a4321054000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1069000b05001041000b850101057f410421010240024002400240200041046a2802002202450d0020024180808010710d03200028020021012002410674220310012204450d0220042001200320024105742205200520034b1b101e1a20011002200241017421010c010b41800110012204450d010b20002004360200200041046a20013602000f0b101c000b106b000b05001041000b840101057f410421010240024002400240200041046a2802002202450d0020024180066c2201417f4c0d0320002802002103200110012204450d0220042003200120024180036c2205200520014b1b101e1a20031002200241017421010c010b41800c10012204450d010b20002004360200200041046a20013602000f0b101c000b106d000b05001041000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1070000b05001041000b850101057f410421010240024002400240200041046a2802002202450d00200241808080c000710d03200028020021012002410474220310012204450d0220042001200320024103742205200520034b1b101e1a20011002200241017421010c010b412010012204450d010b20002004360200200041046a20013602000f0b101c000b1072000b05001041000b05001041000b840101057f410421010240024002400240200041046a2802002202450d00200241b0016c2201417f4c0d0320002802002103200110012204450d02200420032001200241d8006c2205200520014b1b101e1a20031002200241017421010c010b41e00210012204450d010b20002004360200200041046a20013602000f0b101c000b1075000b05001041000b820101057f410421010240024002400240200041046a2802002202450d00200241306c2201417f4c0d0320002802002103200110012204450d02200420032001200241186c2205200520014b1b101e1a20031002200241017421010c010b41e00010012204450d010b20002004360200200041046a20013602000f0b101c000b1077000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1079000b05001041000b850101057f410421010240024002400240200041046a2802002202450d00200241808080c000710d03200028020021012002410474220310012204450d0220042001200320024103742205200520034b1b101e1a20011002200241017421010c010b412010012204450d010b20002004360200200041046a20013602000f0b101c000b107b000b05001041000b850101057f0240024002400240200041046a2802002201450d0020014180808010710d03200028020021022001410674220310012204450d0220042002200320014105742205200520034b1b101e1a20021002200141017421010c010b41800110012204450d01410421010b20002004360200200041046a20013602000f0b101c000b107d000b05001041000b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b107f000b05001041000b860101057f410421010240024002400240200041046a2802002202450d0020024180808020710d03200028020021012002410574220310012204450d0220042001200320024104742205200520034b1b101e1a20011002200241017421010c010b41c00010012204450d010b20002004360200200041046a20013602000f0b101c000b108101000b05001041000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341286c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42187e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341186c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000ba20103037f017e017f024002400240200041046a280200220220014f0d00200241017422032001200320014b1b2204ad420c7e2205a722014100480d012005422088a74100470d01024002402002450d0020002802002106200110012203450d042003200620012002410c6c2202200220014b1b101e1a200610020c010b200110012203450d030b20002003360200200041046a20043602000b0f0b1041000b101c000ba20103037f017e017f024002400240200041046a280200220220014f0d00200241017422032001200320014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402002450d0020002802002106200110012203450d04200320062001200241286c2202200220014b1b101e1a200610020c010b200110012203450d030b20002003360200200041046a20043602000b0f0b1041000b101c000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad4205862205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d0420022006200120034105742203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000b0e0002402001450d00200010020b0bc00d010f7f230041e0066b220424000240200128020422052f01be032206410a4b0d00200441a8036a41206a2207200341206a290300370300200441a8036a41186a2208200341186a290300370300200441a8036a41106a2209200341106a290300370300200441a8036a41086a220a200341086a290300370300200420032903003703a8032005200128020c220b4105746a220341e0036a200341c0036a220c2006200b6b41057410391a200341d8036a200241186a290000370000200341d0036a200241106a290000370000200341c8036a200241086a290000370000200c20022900003700002005200b41286c6a220341286a2003200541be036a22052f0100200b6b41286c10391a200341206a2007290300370300200341186a2008290300370300200341106a2009290300370300200341086a200a290300370300200320042903a803370300200520052f010041016a3b0100200441b3036a200141086a280000360000200041003a000020002003360260200041106a200128020c360000200420012900003700ab03200020042900a803370001200041086a200441af036a290000370000200441e0066a24000f0b2001280208210d2001280200210e024041a0061001220b450d00200b200441a8036a41b803101e220b41003b01be03200b41003602b803200b41c0036a200441c8006a41e002101e210f200441286a41186a220c20054198056a290200370300200441286a41106a221020054190056a290200370300200441286a41086a221120054188056a290200370300200441a8036a41086a2206200541f8016a290300370300200441a8036a41106a220720054180026a290300370300200441a8036a41186a220820054188026a290300370300200441a8036a41206a220920054190026a290300370300200420054180056a290200370328200420052903f0013703a803200f200541a0056a200541be036a220a2f010041796a2212410574101e210f200b20054198026a201241286c101e210b200a41063b0100200b20123b01be03200441186a200c290300370300200441106a2010290300370300200441086a201129030037030020042004290328370300200441c8006a41206a2009290300370300200441c8006a41186a2008290300370300200441c8006a41106a2007290300370300200441c8006a41086a2006290300370300200420042903a803370348200441003602242004200b36022002400240200128020c220141064b0d002009200341206a2903003703002008200341186a2903003703002007200341106a2903003703002006200341086a290300370300200420032903003703a803200520014105746a220341e0036a200341c0036a220b200a2f010020016b41057410391a200341d8036a200241186a290000370000200341d0036a200241106a290000370000200341c8036a200241086a290000370000200b20022900003700002005200141286c6a220341286a2003200a2f010020016b41286c10391a200341206a2009290300370300200341186a2008290300370300200341106a2007290300370300200341086a2006290300370300200320042903a803370300200a200a2f010041016a3b01000c010b200c200241186a2900003703002010200241106a2900003703002011200241086a290000370300200420022900003703282009200341206a2903003703002008200341186a2903003703002007200341106a2903003703002006200341086a290300370300200420032903003703a803200f20014105746a41c07e6a200f200141796a22024105746a2203200b2f01be0320026b41057410391a200341186a200c290300370000200341106a2010290300370000200341086a201129030037000020032004290328370000200b200141286c6a220141907e6a200141e87d6a2203200b2f01be0320026b41286c10391a200141887e6a2009290300370300200141807e6a2008290300370300200141f87d6a2007290300370300200141f07d6a2006290300370300200320042903a803370300200b200b2f01be0341016a3b01be030b200041013a000020002004290300370001200041246a200e360000200041286a20053600002000412c6a200d360000200041306a2004290320370300200041386a2004290348370300200041096a200441086a290300370000200041116a200441106a290300370000200041196a200441186a290300370000200041d0006a200441c8006a41186a290300370300200041c8006a200441c8006a41106a290300370300200041c0006a200441c8006a41086a290300370300200041d8006a200441e8006a29030037030020002003360260200441e0066a24000f0b101c000ba108010a7f230041c0026b220424000240200128020422052f018e022206410a4b0d00200441286a41086a2207200241086a28020036020020042002290200370328200441386a41086a2208200341086a280200360200200420032902003703382005200128020c2202410c6c2203410c6a22096a200520036a220a200620026b410c6c10391a200a41086a2007280200360200200a200429032837020020054184016a220620096a200620036a22032005418e026a22052f010020026b410c6c10391a200341086a200828020036020020032004290338370200200520052f010041016a3b0100200128020c210520004100360200200041106a2005360200200020062005410c6c6a360230200020012902003702042000410c6a200141086a280200360200200441c0026a24000f0b2001280208210b2001280200210c024041900210012206450d002006200441386a418802101e220641003b018e022006410036028802200441386a41086a220a200541d0006a280200360200200441286a41086a2207200541d4016a280200360200200420052902483703382004200541cc016a2902003703282006200541d4006a2005418e026a22082f010041796a2209410c6c220d101e22064184016a200541d8016a200d101e210d200841063b0100200620093b018e02200441086a200a28020036020020042004290338370300200441106a41086a200728020036020020042004290328370310200441003602242004200636022002400240200128020c220941064b0d002007200241086a28020036020020042002290200370328200a200341086a2802003602002004200329020037033820052009410c6c2201410c6a22036a200520016a220220082f010020096b410c6c10391a200241086a20072802003602002002200429032837020020054184016a220220036a200220016a220120082f010020096b410c6c10391a200141086a200a28020036020020012004290338370200200820082f010041016a3b01000c010b2007200241086a28020036020020042002290200370328200a200341086a2802003602002004200329020037033820062009410c6c220141b87f6a22026a2006200141ac7f6a22036a220120062f018e02200941796a22086b410c6c10391a200141086a200728020036020020012004290328370200200d20026a200d20036a220120062f018e0220086b410c6c10391a200141086a200a28020036020020012004290338370200200620062f018e0241016a3b018e020b200041013602002000200c36020420002001360230200041086a20053602002000410c6a200b360200200041106a20042903003702002000411c6a2004290310370200200041286a2004290320370200200041186a200441086a280200360200200041246a200441106a41086a280200360200200441c0026a24000f0b101c000bf307010d7f23004180036b220624000240200128020422072f018e02410a4b0d00200641c8006a41086a200241086a28020036020020062002290200370348200641f8006a41086a200341086a280200360200200620032902003703782001200641c8006a200641f8006a2004108b0120004100360200200020012902003702042000410c6a200141086a29020037020020064180036a24000f0b2001280208210820012802002109024041c0021001220a450d004100210b200a200641f8006a418802101e220a41003b018e02200a410036028802200a200629024837029002200a4198026a200641c8006a41086a220c290200370200200a41a0026a200641d8006a290200370200200a41a8026a200641e0006a290200370200200a41b0026a200641e8006a290200370200200a41b8026a200641f0006a290200370200200c200741d0006a28020036020020062007290248370348200641f8006a41086a220d200741d4016a2802003602002006200741cc016a290200370378200a200741d4006a2007418e026a220e2f0100220f41796a2210410c6c2211101e22124184016a200741d8016a2011101e1a20124190026a220a200741ac026a200f417a6a220f410274101e1a200e41063b0100201220103b018e020240200f450d000340200a280200220e200b3b018c02200e201236028802200a41046a210a200b41016a220b200f490d000b0b200641386a41086a220b200c280200360200200641286a41086a220a200d2802003602002006200629034837033820062006290378370328200641086a200b28020036020020062006290338370300200641106a41086a200a28020036020020062006290328370310200620093602242006201236022002400240200128020c220b41064b0d002006200736027c2006200936027820062008360280012006200b36028401200641386a41086a200241086a28020036020020062002290200370338200641c8006a41086a200341086a28020036020020062003290200370348200641f8006a200641386a200641c8006a2004108b010c010b2006201236027c200620093602782006200b41796a360284012006200641206a36028001200641386a41086a200241086a28020036020020062002290200370338200641c8006a41086a200341086a28020036020020062003290200370348200641f8006a200641386a200641c8006a2004108b010b2000200936020420004101360200200041086a20073602002000410c6a2008360200200041106a20062903003702002000411c6a2006290310370200200041286a2006290320370200200041186a200641086a280200360200200041246a200641106a41086a28020036020020064180036a24000f0b101c000b890301077f230041206b22042400200041046a22052802002106200028020c2107200441086a2208200141086a28020036020020042001290200370300200441106a41086a2209200241086a2802003602002004200229020037031020062007410c6c2202410c6a220a6a200620026a220120062f018e0220076b410c6c10391a200141086a20082802003602002001200429030037020020064184016a2201200a6a200120026a220220062f018e0220076b410c6c10391a200241086a200928020036020020022004290310370200200620062f018e0241016a3b018e0220064190026a2206200028020c22074102746a41086a2006200741016a22074102746a220620052802002f018e0220076b41027410391a200620033602000240200028020c220041016a220620052802002f018e0222034b0d0020004102744194026a21000340200641016a22072006490d012005280200220220006a2802002201200236028802200120063b018c02200041046a210020072106200720034d0d000b0b200441206a24000bd40c02117f017e230041c0076b220624000240200128020422072f01be03410a4b0d00200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a29030037030020062003290300370388042001200641f8006a20064188046a2004108d01200041003a0000200041046a20012902003702002000410c6a200141086a290200370200200641c0076a24000f0b2001280208210820012802002109024041d0061001220a450d004100210b200a20064188046a41b803101e220a41003b01be03200a41003602b803200a41c0036a200641f8006a419003101e210c200641286a41186a220d20074198056a290000370300200641286a41106a220e20074190056a290000370300200641286a41086a220f20074188056a290000370300200620074180056a29000037032820064188046a41206a221020074190026a29030037030020064188046a41186a221120074188026a29030037030020064188046a41106a221220074180026a29030037030020064188046a41086a2213200741f8016a290300370300200620072903f00137038804200c200741a0056a200741be036a22142f0100221541796a2216410574101e1a200a20074198026a201641286c101e220c41a0066a220a200741bc066a2015417a6a2215410274101e1a201441063b0100200c20163b01be0302402015450d000340200a2802002216200b3b01bc032016200c3602b803200a41046a210a200b41016a220b2015490d000b0b200641f8006a41206a220b2010290300370300200641f8006a41186a220a2011290300370300200641f8006a41106a22162012290300370300200641f8006a41086a22152013290300370300200641d8006a41086a2210200f290300370300200641d8006a41106a2211200e290300370300200641d8006a41186a2212200d290300370300200620062903880437037820062006290328370358200641086a41186a2012290300370300200641086a41106a2011290300370300200641086a41086a201029030037030020062006290358370308200641286a41206a200b290300370300200d200a290300370300200e2016290300370300200f201529030037030020062006290378370328200620093602542006200c36025002400240200128020c220b41064b0d002006200736025c20062009360258200620083602602006200b360264200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a2903003703002006200329030037038804200641d8006a200641f8006a20064188046a2004108d010c010b2006200c36025c200620093602582006200b41796a3602642006200641d0006a360260200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a2903003703002006200329030037038804200641d8006a200641f8006a20064188046a2004108d010b20002006290308370001200041246a2009360200200041286a20073602002000412c6a2008360200200041386a2006290328370300200041096a200641086a41086a290300370000200041116a200641086a41106a290300370000200041196a200641086a41186a290300370000200041c0006a200641286a41086a290300370300200041c8006a200641286a41106a290300370300200041d0006a200641286a41186a290300370300200041d8006a200641c8006a29030037030020062903502117200041013a0000200041306a2017370200200641c0076a24000f0b101c000bb804010b7f230041d0006b22042400200041046a22052802002106200028020c2107200441086a41186a2208200141186a290000370300200441086a41106a2209200141106a290000370300200441086a41086a220a200141086a29000037030020042001290000370308200441286a41206a2201200241206a290300370300200441286a41186a220b200241186a290300370300200441286a41106a220c200241106a290300370300200441286a41086a220d200241086a29030037030020042002290300370328200620074105746a220241e0036a200241c0036a220e20062f01be0320076b41057410391a200241d8036a2008290300370000200241d0036a2009290300370000200241c8036a200a290300370000200e20042903083700002006200741286c6a220241286a200220062f01be0320076b41286c10391a200241206a2001290300370300200241186a200b290300370300200241106a200c290300370300200241086a200d29030037030020022004290328370300200620062f01be0341016a3b01be03200641a0066a2206200028020c22024102746a41086a2006200241016a22024102746a220620052802002f01be0320026b41027410391a200620033602000240200028020c220241016a220620052802002f01be0322034b0d00200241027441a4066a21020340200641016a22012006490d012005280200220020026a280200220720003602b803200720063b01bc03200241046a210220012106200120034d0d000b0b200441d0006a24000b8614010e7f230041d0006b220424004100210502404101417f100d2206417f460d002004410036020820044204370300200441386a41ae0d4103102a200441106a41b10d410f102a200441cc006a2207200441106a41086a220528020036020020042004290310370244200441106a41106a2208200441386a41106a22092903003703002005200441386a41086a220a290300370300200420042903383703102004106a2004280204210b2004280200220c2004280208220d4105746a220e2004290310370200200e4100360218200e41086a2005290300370200200e41106a2008290300370200200e411c6a41013602002004200d41016a220d360208200441386a41ae0d4103102a200441106a41c00d410f102a2007200528020036020020042004290310370244200820092903003703002005200a290300370300200420042903383703100240200d200b470d002004106a200441086a280200210d2004280200210c2004280204210b0b200c200d4105746a220e2004290310370200200e4100360218200e41106a2008290300370200200e41086a2005290300370200200e411c6a4102360200200441086a200d41016a220e360200200441386a41ae0d4103102a200441106a41cf0d410c102a2007200528020036020020042004290310370244200820092903003703002005200a290300370300200420042903383703100240200e200b470d002004106a200441086a280200210e2004280204210b2004280200210c0b200c200e4105746a2208200429031037020020084100360218200841106a200441106a41106a220d290300370200200841086a200441106a41086a22052903003702002008411c6a4103360200200441086a2207200e41016a220e360200200441386a41ae0d4103102a200441106a41db0d410a102a200441cc006a2209200528020036020020042004290310370244200d200441386a41106a220a2903003703002005200441386a41086a220f290300370300200420042903383703100240200e200b470d002004106a2007280200210e2004280200210c2004280204210b0b200c200e4105746a2208200429031037020020084100360218200841106a200d290300370200200841086a20052903003702002008411c6a41043602002007200e41016a2208360200200441386a41ae0d4103102a200441106a41e50d4106102a2009200528020036020020042004290310370244200d200a2903003703002005200f2903003703002004200429033837031002402008200b470d002004106a200441086a28020021082004280200210c0b200c20084105746a2205200429031037020020054101360218200541106a200441106a41106a220b290300370200200541086a200441106a41086a2903003702002005411c6a2006360200200441086a200841016a2205360200200b200241086a290000370300200441106a41186a200241106a290000370300200441306a200241186a2900003703002004200336021020042006360214200420022900003703184104210702400240410410012210450d00201020053600000240024002402005450d00200c20054105746a2111200441c0006a210341042107410421080340200441386a200c105120042802382105410121064100210b024020032802002202450d0020024100480d042002210b200210012206450d050b200620052002101e210a0240200428023c450d00200510020b200441386a200c410c6a220f105120042802382109024002400240200b20026b2003280200220d490d002002200d6a2105200b2106200a220e20026a2009200d101e1a200428023c0d010c020b2002200d6a22052002490d05200b4101742206200520052006491b22064100480d0520061001210e0240200b450d00200e450d07200e200a2006200b200b20064b1b101e210b200a1002200b20026a2009200d101e1a200428023c0d010c020b200e450d06200e20026a2009200d101e1a200428023c450d010b200910020b2003410036020020044201370338200c41186a2802002102200441386a104f2004280238220d2003280200220b6a21090240024002400240024002400240024020024101470d00200941023a00002003200b41016a2202360200200c411c6a280200210c200428023c220920026b41034b0d01200241046a220b2002490d0b2009410174220a200b200b200a491b220a4100480d0b200a1001210b2009450d02200b450d0c200b200d200a20092009200a4b1b101e1a200d10020c030b200941013a00002003200b41016a2202360200200c411c6a280200210c200428023c220920026b41034b0d00200241046a220b2002490d0a2009410174220a200b200b200a491b220a4100480d0a200a1001210b2009450d03200b450d0b200b200d200a20092009200a4b1b101e1a200d10020c040b200d210b0c050b200b450d090b2004200a36023c0c020b200b450d070b2004200a36023c0b2004200b3602380b200b20026a200c3600002003200241046a220c360200200428023c210a0240024002400240200620056b200c4f0d002005200c6a22022005490d072006410174220d20022002200d491b22094100480d0720091001210d2006450d01200d450d08200d200e20092006200620094b1b101e2106200e1002200620056a200b200c101e1a200a0d020c030b2005200c6a210220062109200e220d20056a200b200c101e1a200a0d010c020b200d450d06200d20056a200b200c101e1a200a450d010b200b10020b0240024002400240200720086b20024f0d00200820026a22052008490d0720074101742206200520052006491b22064100480d072007450d0120061001220b450d08200b201020062007200720064b1b101e210b2010100220062107200b221020086a200d2002101e1a20090d020c030b200820026a2105201020086a200d2002101e1a20090d010c020b20062107200610012210450d06201020086a200d2002101e1a2009450d010b200d10020b20052108200f41146a220c2011470d000c020b0b410421050b41052000200120102005200441106a100e210202402007450d00201010020b02402002417f460d00410121050240200241eb0d4104200441106a100f2202450d002002417d470d04410021050b200428020021030240200441086a2802002202450d00200241057421062003210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241206a2102200641606a22060d000b0b2004280204450d0420031002200441d0006a240020050f0b200428020021060240200441086a2802002202450d00200241057421052006210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241206a2102200541606a22050d000b0b02402004280204450d00200610020b200441d0006a240041000f0b1041000b101c000b41fc3a103b000b200441d0006a240020050bbe0701047f23004190016b220424000240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042103200241146a2802002105200241246a2802002106200441186a4200370300200441106a4200370300200441086a42003703002004420037030002400240024002402001280204220720032004412010102202417e460d0020020d0a200441206a41186a200141206a290000370300200441206a41106a200141186a290000370300200441206a41086a200141106a290000370300200420012900083703202005450d01200441c0006a41186a4200370300200441c0006a41106a4200370300200441c0006a41086a42003703002004420037034020072006200441c0006a412010102202417e460d0320020d0c20012802002101412010012202450d0b2004200236028001200442203702840120044180016a41004120102720042802800120042802880122036a22022004290300370000200441e0006a41086a200341206a2203360200200241086a200441086a290300370000200241106a200441106a290300370000200241186a200441186a29030037000020042004290380013703602004200336028801412010012202450d0b2004200236028001200442203702840120044180016a41004120102720042802800120042802880122036a22022004290340370000200441f0006a41086a200341206a2203360200200241086a200441c0006a41086a290300370000200241106a200441c0006a41106a290300370000200241186a200441c0006a41186a290300370000200420042903800137037020042003360288012001200441206a200441e0006a200441f0006a1094010c020b2000410536020020044190016a24000f0b20012802002101412010012202450d092004200236024020044220370244200441c0006a4100412010272004280240200428024822036a2202200429030037000020044180016a41086a200341206a2203360200200241086a200441086a290300370000200241106a200441106a290300370000200241186a200441186a290300370000200420042903403703800120042003360248200441003602402001200441206a20044180016a200441c0006a1094010b2000410436020020044190016a24000f0b2000410536020020044190016a24000f0b41bc3441004100103c000b41ec3f103b000b41cc3441014101103c000b41ec3f103b000b41dc3441022003103c000b41ec3f103b000b41cc31103b000b101c000b41cc31103b000bc50301027f230041d0006b2204240002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320022802042103200241146a2802002102200441186a4200370300200441106a4200370300200441086a420037030020044200370300024002400240024002402001280204220520032004412010102203417e460d0020030d09200441206a41186a200141206a290000370300200441206a41106a200141186a290000370300200441206a41086a200141106a29000037030020042001290008370320200441c0006a2001280200200441206a2004412010950120042802402201450d0120042802442103200520022001200441c0006a41086a28020010112202417e460d0320020d0a2003450d02200110020c020b20004105360200200441d0006a24000f0b2005200241bd0e412010112202417e460d0220020d090b20004104360200200441d0006a24000f0b2000410536020002402003450d00200110020b200441d0006a24000f0b20004105360200200441d0006a24000f0b419c3441004100103c000b41ec3f103b000b41ac3441014101103c000b41ec3f103b000b41cc31103b000b41e431103b000b41e431103b000b861a05037f017e047f047e027f230041a0076b22042400024002400240024002400240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042105200241146a2802002106200241246a3502002107410021022004410036020820044201370300024002402006450d0020044100200610272004280200200441086a220828020022096a210a024020064101460d00410021020340200a20026a41003a0000200241026a2103200241016a220b210220032006490d000b2009200b6a2109200a200b6a210a0b200a41003a00002008200941016a2202360200200428020021030c010b410121030b024002400240200128020420052003200210102206417e460d0020060d09200441e8036a2002412020024120491b22066a41004100412020066b2006411f4b1b10171a200441e8036a20032006101e1a2002411f4d0d0b200441106a41186a200441e8036a41186a290000370300200441106a41106a200441e8036a41106a290000370300200441106a41086a200441e8036a41086a290000370300200420042900e803370310200441306a41186a200141206a290000370300200441306a41106a200141186a290000370300200441306a41086a200141106a29000037030020042001290008370330200128020022022802002206417f460d0a2002200641016a360000200241046a220a200441306a1096012206450d012006280200450d01200641086a290300210c0c020b200041053602002004280204450d0f0c0e0b2002280210200441306a200241146a280200280214111400210c0b200220022802002206417f6a360000200c2007540d092006450d072002200636000002400240200a200441106a1096012206450d002006280200450d00200641086a290300210d0c010b2002280210200441106a200241146a280200280214111400210d0b20022002280200417f6a360000024002400240410810012206450d00200420063602e803200442083702ec03200441e8036a41004108102720042802e80320042802f00322066a42f3e885d3a3ec9bb73a3700002004200641086a3602f00320044188016a41086a20042802f003360200200420042903e80337038801412010012206450d00200420063602e803200442203702ec03200441e8036a41004120102720042802e803220a20042802f003220b6a22062004290330370000200641086a200441306a41086a290300370000200641106a200441306a41106a290300370000200641186a200441306a41186a2903003700002004200b41206a22063602f00320042802ec03210520044188016a20042802900120061027200428028801220b20042802900122096a200a2006101e1a2004200920066a22063602900102402005450d00200a10020b200428028c01210a4200210e200441e8036a41086a22054200370300200442003703e803200b2006200441e8036a100320044188016a41086a2005290300370300200420042903e80337038801024020044188016a411041d02d410041001000417f460d00200442003703e80320044188016a4110200441e8036a41084100100041016a41084d0d0220042903e803210e0b0240200a450d00200b10020b410810012206450d00200420063602e803200442083702ec03200441e8036a41004108102720042802e80320042802f00322066a42f3e885d3a3ec9bb73a3700002004200641086a3602f00320044188016a41086a20042802f003360200200420042903e80337038801412010012206450d00200420063602e803200442203702ec03200441e8036a41004120102720042802e803220a20042802f003220b6a22062004290310370000200641086a200441106a41086a290300370000200641106a200441106a41106a290300370000200641186a200441106a41186a2903003700002004200b41206a22063602f00320042802ec03210520044188016a20042802900120061027200428028801220b20042802900122096a200a2006101e1a2004200920066a22063602900102402005450d00200a10020b200428028c01210a4200210f200441e8036a41086a22054200370300200442003703e803200b2006200441e8036a100320044188016a41086a2005290300370300200420042903e80337038801024020044188016a411041d02d410041001000417f460d00200442003703e80320044188016a4110200441e8036a41084100100041016a41084d0d0320042903e803210f0b0240200a450d00200b10020b200e200f560d0d200d20077c220e200d580d0e41a00610012206450d002006200441e8036a41b803101e220641003b01be03200641003602b803200641c0036a20044188016a41e002101e1a200441d0006a41086a220a4200370300200441e4006a41c43d360200200420063602542004410036025020042002360260200441d0006a41047221020240200441306a200441106a41201006450d002004417f360250200441e8036a41186a2206200441306a41186a290300370300200441e8036a41106a2209200441306a41106a290300370300200441e8036a41086a200441306a41086a290300370300200420042903303703e803200420023602702004200a2802003602682004200428025436026c20044188016a200441e8006a200441e8036a1097014101210a20044188016a41106a280200210b20044188016a410c6a280200210820044188016a41086a2802002105200428028c01211002402004280288014101470d00200441e8006a41186a2006290300370300200441e8006a41106a2009290300370300200441e8006a41086a200441e8036a41086a290300370300200420042903e8033703684100210a0b41900210012206450d01200c20077d21072006200441e8036a418802101e220641003b018e02200641003602880202400240200a450d0020042006360288012004420037028c012005200b41286c6a2106200441e8036a20044188016a109801200441e8036a1099010c010b20044184046a200441f0006a2903003702002004418c046a200441f8006a29030037020020044194046a20044180016a290300370200200420053602ec03200420103602e803200420083602f0032004200b3602f4032004200441d0006a410c6a3602f803200420042903683702fc03200441a8016a420037030020044100360298012004420037038801200420063602a401200441e8036a20044188016a109a0121060b20064201370300200620073703082004417f360250200441e8036a41186a2206200441106a41186a290300370300200441e8036a41106a2209200441106a41106a290300370300200441e8036a41086a2208200441106a41086a290300370300200420042903103703e803200420023602702004200441d0006a41086a2802003602682004200428025436026c20044188016a200441e8006a200441e8036a1097014101210a20044188016a41106a280200210b20044188016a410c6a280200211020044188016a41086a2802002105200428028c01211102402004280288014101470d00200441e8006a41186a2006290300370300200441e8006a41106a2009290300370300200441e8006a41086a2008290300370300200420042903e8033703684100210a0b41900210012206450d012006200441e8036a418802101e220641003b018e02200641003602880202400240200a450d0020042006360288012004420037028c012005200b41286c6a2106200441e8036a20044188016a109801200441e8036a1099010c010b20044184046a200441f0006a2903003702002004418c046a200441f8006a29030037020020044194046a20044180016a290300370200200420053602ec03200420113602e803200420103602f0032004200b3602f4032004200441d0006a410c6a3602f803200420042903683702fc03200441a8016a420037030020044100360298012004420037038801200420063602a401200441e8036a20044188016a109a0121060b200642013703002006200e370308200441003602500b200441e8036a200441d0006a200441106a109b0102400240024020042802f0032206450d0020042802e803220a2006200441106a200441d0006a108e01450d010b200441d8006a290300210720042802542102024020042802ec03450d0020042802e80310020b2002450d0120012802002106200420073702ec03200420023602e8032006200441e8036a109c010c010b024020042802ec03450d00200a10020b20044188016a41086a200241086a2802003602002004200229020037038801200441e8036a20044188016a109d01200441e8036a109e010b2000410436020020042802040d0f0c100b101c000b41c1214133102d000b41c1214133102d000b41ec3341004100103c000b41ec3f103b000b41fc3341014101103c000b41ec3f103b000b418c3441022003103c000b41ec3f103b000b41cc31103b000b109f01000b41ec3f103b000b418c3c103b000b41a43c103b000b41bc3c103b000b200310020b200441a0076a24000b811a06047f017e047f017e037f057e230022042105200441c0086b4160712204240002400240024002400240024002400240024002400240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042106200241146a2802002107200241246a3502002108410021022004410036020820044201370300024002402007450d0020044100200710272004280200200441086a2209280200220a6a210b024020074101460d00410021020340200b20026a41003a0000200241026a2103200241016a220c210220032007490d000b200a200c6a210a200b200c6a210b0b200b41003a00002009200a41016a2202360200200428020021030c010b410121030b024002400240200128020420062003200210102207417e460d0020070d09200441106a41186a200141206a290000370300200441106a41106a200141186a290000370300200441186a200141106a2900003703002004200129000837031020012802002207280200220b417f460d0a2007200b41016a360000200741046a200441106a109601220b450d01200b280200450d01200b41086a290300210d0c020b200041053602002004280204450d140c130b2007280210200441106a200741146a280200280214111400210d0b20072007280200417f6a360000200d2008540d08200441c8046a41186a220b4200370300200441c8046a41106a220c4200370300200441c8046a41086a22014200370300200442003703c80420032002200441c8046a1012200441e8016a41186a2206200b290300370300200441e8016a41106a220a200c290300370300200441e8016a41086a22092001290300370300200420042903c8043703e801200b2006290300370300200c200a29030037030020012009290300370300200420042903e8013703c80441201001220e450d0d2004200e3602e801200442203702ec01200441e8016a41004120102720042802e80120042802f001220f6a220e20042903c80437000020044180086a41086a2210200f41206a220f360200200e41086a2001290300370000200e41106a200c290300370000200e41186a200b290300370000200420042903e801370380082004200f3602f00120044180086a20102802004120102720102010280200220e41206a220f360200200e20042802800822106a220e2004290310370000200e41086a200441106a41086a290300370000200e41106a200441106a41106a290300370000200e41186a200441106a41186a290300370000200b4200370300200c420037030020014200370300200442003703c8042010200f200441c8046a10122006200b290300370300200a200c29030037030020092001290300370300200420042903c8043703e801200441306a41186a2006290300370300200441306a41106a200a290300370300200441306a41086a2009290300370300200420042903e8013703300240200428028408450d00201010020b200441306a200441106a41201006450d1041a0061001220b450d0d200b200441c8046a41b803101e220b41003b01be03200b41003602b803200b41c0036a200441e8016a41e002101e1a2004200b36025020044200370254200441306a200441106a41201006450d09200441a0016a41186a200441306a41186a290300370300200441a0016a41106a200441306a41106a290300370300200441a0016a41086a200441306a41086a290300370300200420042903303703a0012002417f4c0d0a024002402002450d0020021001220b0d010c0f0b4101210b0b200420023602cc042004200b3602c804200441003602d004200441c8046a410020021027200420042802d004220b20026a3602d004200b20042802c8046a20032002101e1a200441e8016a41086a220c20042802d004360200200420042903c8043703e80141900210012202450d0d200441d0006a41086a210b2002200441c8046a418802101e220241003b018e022002410036028802200420083703c801200442013703c001200420023602dc01200420042903e8013703d0012004200c2802003602d801200441c8046a41186a2202200441a0016a41186a290300370300200441c8046a41106a220c200441a0016a41106a290300370300200441c8046a41086a200441a0016a41086a290300370300200420042903a0013703c804200420042802543602b008200420042802503602b4082004200441d0006a3602b808200441e8016a200441b0086a200441c8046a109701200441a0086a41086a200441f4016a290200370300200420042902ec013703a008024020042802e8014101470d0020044180086a41186a2201200229030037030020044180086a41106a2202200c29030037030020044180086a41086a220c200441c8046a41086a2206290300370300200420042903c80437038008200441b0086a41086a200441a0086a41086a220a290300370300200420042903a0083703b0082006200a290300370300200441e4046a200c290300370200200441ec046a2002290300370200200441f4046a20012903003702002004200b3602d804200420042903a0083703c80420042004290380083702dc0420044188026a4200370300200441e8016a41186a20042903d801370300200420042903d0013703f801200420042903c8013703f001200420042903c0013703e801200441c8046a200441e8016a109a011a2004420237036041010d0d0c0c0b200441c8046a41086a200441a0086a41086a290300370300200420042903a0083703c80420042802cc0420042802d40441286c6a22022900102112200220042903d00137001020022900082113200220042903c80137000820022900002114200220042903c0013700002002290020211120024200370020200241186a22022900002115200220042903d8013700002004200b3602d8042004201237037020042013370368200420143703602004201537037820144202520d0b0c0c0b41bc3341004100103c000b41ec3f103b000b41cc3341014101103c000b41ec3f103b000b41dc3341022003103c000b41ec3f103b000b41cc31103b000b109f01000b41943d103b000b41ac3d103b000b1019000b024020042802702202450d002004280274450d00200210020b200420113702ec012004200428027c3602e801200441c8046a200441e8016a109801200441c8046a1099010b200441a0016a41186a220c200441106a41186a290300370300200441a0016a41106a2201200441106a41106a290300370300200441a0016a41086a2206200441106a41086a290300370300200420042903103703a00141900210012202450d002002200441c8046a418802101e220241003b018e0220024100360288022004200d20087d3703c801200442013703c001200441003602d001200420023602dc01200441c8046a41186a200c290300370300200441c8046a41106a2001290300370300200441c8046a41086a2006290300370300200420042903a0013703c804200420042802543602b008200420042802503602b4082004200441d0006a3602b808200441e8016a200441b0086a200441c8046a109701200441a0086a41086a200441f4016a290200370300200420042902ec013703a0080240024020042802e8014101470d0020044180086a41186a2202200441c8046a41186a29030037030020044180086a41106a220c200441c8046a41106a29030037030020044180086a41086a2201200441c8046a41086a2206290300370300200420042903c80437038008200441b0086a41086a200441a0086a41086a220a290300370300200420042903a0083703b0082006200a290300370300200441e4046a2001290300370200200441ec046a200c290300370200200441f4046a20022903003702002004200b3602d804200420042903a0083703c80420042004290380083702dc0420044188026a4200370300200441e8016a41186a20042903d801370300200420042903d0013703f801200420042903c8013703f001200420042903c0013703e801200441c8046a200441e8016a109a011a200442023703800141010d010c030b200441c8046a41086a200441a0086a41086a290300370300200420042903a0083703c80420042802cc0420042802d40441286c6a22022900102111200220042903d00137001020022900082114200220042903c8013700082002290000210d200220042903c0013700002002290020210820024200370020200241186a22022900002112200220042903d8013700002004200b3602d804200420113703900120042014370388012004200d370380012004201237039801200d4202520d020b20042802502202450d030c020b101c000b02402004280290012202450d00200428029401450d00200210020b200420083702ec012004200428029c013602e801200441c8046a200441e8016a109801200441c8046a10990120042802502202450d010b200420042902543702cc04200420023602c8042007200441c8046a109c010b200041043602002004280204450d010b200310020b200524000bd41003027f017e077f230041c0006b22042400024020010d0041d02d2100410021010b20044100360200024002400240024002400240200141034d0d002004200028000022053602002005ad2206421c88a70d012006420486a72207417f4c0d02024002402007450d002007100122080d010c070b410821080b20042005360204200420083602002004410036020802400240024002402005450d002001417c6a2101200041046a2107200441086a2109410021004100210a0340200441003a0030200441306a20072001410047220b101e1a2001450d0320042d0030417f6a220c41034b0d032001200b6b21012007200b6a210702400240024002400240024002400240200c0e0403010400030b20044200370330200441306a20072001410820014108491b220b101e1a200141074d0d0a2007200b6a2107200429033021064103210c0c010b20044200370330200441306a20072001410820014108491b220b101e1a200141074d0d092007200b6a2107200429033021064101210c0b200a41016a210a20002004280204470d040c030b20044100360230200441306a20072001410420014104491b220b101e1a200141034d0d072007200b6a21072004280230210d4100210c0c010b20044100360230200441306a20072001410420014104491b220b101e1a200141034d0d062007200b6a21072004280230210d4102210c0b200a41016a210a20002004280204470d010b200410800120092802002100200428020021080b2001200b6b2101200820004104746a220b200d360204200b200c360200200b41086a20063703002009200041016a2200360200200a2005490d000b20042802042107200428020022080d010c030b41002100410021072008450d020b20042002200820002003110700200441003602182004420137031020042802002101200441106a107e2004280210200428021822006a210a024020014105470d00200a41013a0000200441186a2201200041016a2200360200200441106a20004100102720012802002101200428021021000c070b200a41003a0000200441106a41086a200041016a22003602002004410036022820044201370320200441206a104f2004280220220b2004280228220a6a210c0240024020014104470d00200c41003a0000200441206a41086a200a41016a220a3602000c010b200c41013a0000200441206a41086a200a41016a36020020044100360238200442013703300240024002400240024002400240024002400240024002400240024002400240024002400240200141037122014101460d00024020014102460d0020014103470d02200441086a2903002106200441306a104f20042802302205200441306a41086a220b280200220c6a41043a0000200b200c41016a22013602002004280234220d20016b41074b0d03200141086a220a2001490d1a200d4101742209200a200a2009491b22094100480d1a20091001210a200d450d07200a450d1c200a20052009200d200d20094b1b101e1a200510020c080b20042802042102200441306a104f20042802302205200441386a220b280200220c6a41033a0000200b200c41016a22013602002004280234220d20016b41034b0d03200141046a220a2001490d19200d4101742209200a200a2009491b22094100480d1920091001210a200d450d09200a450d1b200a20052009200d200d20094b1b101e1a200510020c0a0b200441086a2903002106200441306a104f20042802302205200441306a41086a220b280200220c6a41023a0000200b200c41016a22013602002004280234220d20016b41074b0d03200141086a220a2001490d18200d4101742209200a200a2009491b22094100480d1820091001210a200d450d0b200a450d1a200a20052009200d200d20094b1b101e1a200510020c0c0b20042802042102200441306a104f20042802302205200441386a220b280200220c6a41013a0000200b200c41016a22013602002004280234220d20016b41034b0d03200141046a220a2001490d17200d4101742209200a200a2009491b22094100480d1720091001210a200d450d0d200a450d19200a20052009200d200d20094b1b101e1a200510020c0e0b2005210a0c050b2005210a0c070b2005210a0c090b2005210a0c0b0b200a450d140b200420093602342004200a3602300b200b200c41096a360200200a20016a20063700000c090b200a450d110b200420093602342004200a3602300b200b200c41056a360200200a20016a20023600000c060b200a450d0e0b200420093602342004200a3602300b200b200c41096a360200200a20016a20063700000c030b200a450d0b0b200420093602342004200a3602300b200b200c41056a360200200a20016a20023600000b200428023421092004280230210c02400240024002402004280224220d200441206a41086a28020022016b200441306a41086a280200220a4f0d002001200a6a220b2001490d0a200d4101742205200b200b2005491b22054100480d0a200d450d012004280220210220051001220b450d0c200b20022005200d200d20054b1b101e1a200210020c020b2004280220210b0c020b20051001220b450d0a0b200420053602242004200b3602200b200441286a220d2001200a6a360200200b20016a200c200a101e1a02402009450d00200c10020b200d280200210a2004280220210b0b2004280224210c200441106a2000200a1027200441186a22012001280200220d200a6a2201360200200d200428021022006a200b200a101e1a200c450d06200b10020c060b2004280204450d00200428020010020b41af1b41f000102d000b200420002001101e1a41af1b41f000102d000b105a000b105b000b1041000b2000ad4220862001ad84210602402007450d00200810020b200441c0006a240020060f0b101c000ba30501097f230041e0026b220424000240024020002802000d002000417f360000200441306a41186a2205200141186a290000370300200441306a41106a2206200141106a290000370300200441306a41086a2207200141086a290000370300200420012900003703302004200041046a3602182004200041086a28020036021020042000280204360214200441b8026a200441106a200441306a10970141012108200441b8026a41106a2802002109200441c4026a280200210a200441b8026a41086a280200210b20042802bc02210c024020042802b8024101470d00200441106a41186a2005290300370300200441106a41106a2006290300370300200441106a41086a200729030037030020042004290330370310410021080b41900210012201450d012001200441306a418802101e220141003b018e022001410036028802024002402008450d00200420013602b802200442003702bc02200b200941286c6a2101200441306a200441b8026a109801200441306a1099010c010b200441cc006a200441186a290300370200200441d4006a200441206a290300370200200441dc006a200441286a2903003702002004200b3602342004200c3602302004200a3602382004200936023c20042000410c6a36024020042004290310370244200441d8026a4200370300200441003602c802200442003703b802200420013602d402200441306a200441b8026a109a0121010b200441b8026a41086a200241086a280200360200200420022902003703b802200441306a41086a200341086a2802003602002004200329020037033020042001411c6a200441b8026a200441306a10d20102402004280200450d0020042802042201450d00200441086a280200450d00200110020b20004100360000200441e0026a24000f0b10c301000b101c000be60602097f017e230041206b22052400024002400240024020012802002206417f460d002001200641016a360000200141046a20021096012206450d02200628022021072006411c6a28020022082f018e022209450d01410f210a0c030b109f01000b4101210a0c010b4116210a0b034002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200a0e170a090c0d160e0f1314151012110708000102030406050b0b0b20082009410c6c6a210b41002109200821064110210a0c280b20032006280200200641086a280200220c2004200c2004491b1006220d450d174111210a0c270b200d411e76417f73410271417f6a220c450d254112210a0c260b200c4101470d194113210a0c250b200941016a21092006410c6a2206200b470d170c160b4100417f4101200c20044b1b200c2004461b220c0d214114210a0c230b200541013a000c20052d000c4101710d11410d210a0c220b2007450d1e410e210a0c210b2007417f6a2107200820094102746a4190026a28020022082f018e0222090d0e4101210a0c200b200541003a000c20052d000c410171450d140c150b2008418e026a2f010021090c0f0b20002001280210200220032004200141146a28020028020c1113000c190b20082009410c6c6a22064184016a2802002204450d134103210a0c1c0b2006418c016a2802002206417f4c0d134105210a0c1b0b2006450d134106210a0c1a0b2006100122090d13410a210a0c190b101c000b410021090c120b410121094107210a0c160b200520063602142005200936021020054100360218200541106a41002006102720052005280218220c20066a360218200c200528021022096a20042006101e1a2005290214210e4108210a0c150b2000200e370204200020093602004109210a0c140b20012001280200417f6a360000200541206a24000f0b1019000b410f210a0c110b4102210a0c100b4115210a0c0f0b4101210a0c0e0b4100210a0c0d0b4110210a0c0c0b4101210a0c0b0b410d210a0c0a0b4102210a0c090b410c210a0c080b4104210a0c070b410b210a0c060b4107210a0c050b4108210a0c040b4109210a0c030b4116210a0c020b4112210a0c010b4114210a0c000b0bbe0301087f230041106b220224002000280204210302400240200028020022042f01be0322050d00410a21060c010b410421060b037f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020060e0c050a0800010203040709060b0b0b2003417f6a2103200420054102746a41a0066a28020022042f01be032205450d0b410421060c150b20054105742107200441c0036a210041002105410521060c140b20012000412010062208450d0b410621060c130b4100210920084100480d11410721060c120b200041206a2100200541016a2105200741606a22070d0c410021060c110b200441be036a2f01002105200241003a000c20022d000c410171450d090c0a0b41002109410821060c0f0b200220093a000c20022d000c4101710d0a410221060c0e0b20030d0b0c0a0b200241013a000c20022d000c410171450d03410121060c0c0b200241106a24002004200541286c6a0f0b200241106a240041000f0b410a21060c090b410221060c080b410921060c070b410221060c060b410121060c050b410521060c040b410121060c030b410b21060c020b410321060c010b410821060c000b0bad04010c7f230041106b220324002001280208210420012802002105200141086a2106200141046a210702400240200128020422082f01be0322090d00410a210a0c010b4104210a0b03400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200a0e0c050a0800010203040709060b0b0b20012005417f6a2205360200200620043602002007200820094102746a41a0066a280200220836020020082f01be032209450d0b4104210a0c150b2009410574210b200841c0036a210c410021094105210a0c140b2002200c41201006220d450d0b4106210a0c130b4100210e200d4100480d114107210a0c120b200c41206a210c200941016a2109200b41606a220b0d0c4100210a0c110b200841be036a2f01002109200341003a000c20032d000c410171450d090c0a0b4100210e4108210a0c0f0b2003200e3a000c20032d000c4101710d0a4102210a0c0e0b20050d0b0c0a0b200341013a000c20032d000c410171450d034101210a0c0c0b2000200536020420004100360200200041086a20083602002000410c6a2004360200200041106a2009360200200341106a24000f0b20004201370200200041086a20083602002000410c6a2004360200200041106a2009360200200341106a24000f0b410a210a0c090b4102210a0c080b4109210a0c070b4102210a0c060b4101210a0c050b4105210a0c040b4101210a0c030b410b210a0c020b4103210a0c010b4108210a0c000b0bb20301097f23002102200141046a280200210320012802082104200241306b220241186a2205200128020022063602002002411c6a2207410036020020022003360214200220034100472208360210024002402003450d002003417f6a2101200241106a41047221092006210a03402005200a28029002220a3602002007410036020020022001360214200220014100473602102001417f6a2201417f470d000c020b0b200241106a41047221090b200241086a200941086a28020036020020022009290200370300200241106a41086a220a20063602002002411c6a22054100360200200220033602142002200836021002402003450d002003417f6a21010340200a200620062f018e024102746a4190026a28020022063602002005410036020020022001360214200220014100473602102001417f6a2201417f470d000b0b200241106a41086a28020022012f018e0221062002411c6a280200210a200228021421052000410036020c20002005360210200041146a2001360200200041186a200a3602002000411c6a200636020020002004360220200041086a200241086a280200360200200020022903003702000bf00202067f027e230041206b22012400200141086a200010ca01024020012802082202450d00200141186a2103200141146a2104034020032802002105200428020021060240200128020c450d00200210020b02402006450d002005450d00200610020b200141086a200010ca01200128020822020d000b0b2000280208210320002802002102024002400240024020002802042206280288022205450d00200632018c0221072001200536020c2001200241016a2202360208200120074220862003ad842207370310200610022005450d020c010b2003ad210741002105200610024100450d010b024002402005280288022206450d00200532018c0221082001200636020c2001200241016a36020820012008422086200742ffffffff0f83843703102005100220060d010c020b41002106200510024100450d010b2006210503402006280288022206450d02200510022006210520060d000b0b200141206a24000f0b20051002200141206a24000bcc0b01117f230041c0076b2202240020002802102203200328020041016a360200200241d8006a41086a200041086a29020037030020022000290200370358200241206a41186a22032000412c6a290000370300200241206a41106a2204200041246a290000370300200241206a41086a22052000411c6a29000037030020022000290014370320200241f8006a41206a200141206a290300370300200241f8006a41186a200141186a290300370300200241f8006a41106a200141106a290300370300200241f8006a41086a200141086a2903003703002002200129030037037820024188046a200241d8006a200241206a200241f8006a108801024002400240024002400240024020022d008804450d00200241086a20024191046a290000370300200241106a20024199046a290000370300200241186a200241a1046a2900003703002005200241c8046a2903003703002004200241d0046a2903003703002003200241d8046a290300370300200241206a41206a200241e0046a29030037030020022002290089043703002002200241c0046a290300370320200241bc046a2802002106200241b8046a280200210420022802e804210720024188046a412c6a280200210320024188046a41246a2802002100200241b0046a28020022012802b8032205450d0120012f01bc0321082002200536027c2002200041016a2209360278200220033602800120022008360284014100450d020c030b20024188046a41106a280200210020024188046a41086a2802002101200241c0076a24002001200041286c6a0f0b2002200136027c2002200036027820022003360280012003210941010d010b200241c0046a210020024188046a4101722101200241d4006a210a200241bc046a210b200241b8046a210c200241b4046a210d200241b0046a210e200241ac046a210f0340200241c8006a41086a2003360200200a20083602002002200536024c20022009360248200241d8006a41186a200241186a2203290300370300200241d8006a41106a200241106a2205290300370300200241d8006a41086a200241086a220829030037030020022002290300370358200241f8006a41206a200241206a41206a2209290300370300200241f8006a41186a200241206a41186a2210290300370300200241f8006a41106a200241206a41106a2211290300370300200241f8006a41086a200241206a41086a22122903003703002002200229032037037820024188046a200241c8006a200241d8006a200241f8006a20042006108c0120022d008804450d0302402008200141086a2900003703002005200141106a2900003703002003200141186a2900003703002012200041086a2903003703002011200041106a2903003703002010200041186a2903003703002009200041206a2903003703002002200129000037030020022000290300370320200c2802002104200d2802002103200e28020022082802b8032205450d00200b2802002106200f28020041016a210920082f01bc0321080c010b0b41d00610012200450d030c010b2009210341d00610012200450d020b200020024188046a41b803101e220041003b01be03200041003602b803200041c0036a200241f8006a419003101e2101200020032802003602a006200320003602002003200328020441016a36020420002802a006220341003b01bc03200320003602b803200120002f01be0322034105746a22012002290300370000200141186a200241186a290300370000200141106a200241106a290300370000200141086a200241086a2903003700002000200341286c6a220141106a200241206a41106a290300370300200141086a200241206a41086a29030037030020012002290320370300200141206a200241206a41206a290300370300200141186a200241206a41186a290300370300200041a0066a200341016a22014102746a2004360200200020002f01be0341016a3b01be03200420013b01bc03200420003602b8030b200241c0076a240020070f0b101c000bf10101047f230041106b220324000240024020012802002204417f460d002001200441016a3600000240024002400240200141046a20021096012204450d0020042802102205450d0020042802182202417f4c0d052002450d012002100122040d02101c000b200020012802102002200141146a2802002802101106000c020b410121040b200320023602042003200436020020034100360208200341002002102720032003280208220420026a3602082004200328020022066a20052002101e1a20002003290204370204200020063602000b20012001280200417f6a360000200341106a24000f0b109f01000b1019000b890b07027f017e107f017e047f017e027f230041f0026b22022400024020002802000d002000417f36000020024180016a41086a2203200141086a2802003602002002200129020037038001200220024180016a109d01200241286a41206a200241206a280200360200200241286a41186a200241186a290300370300200241286a41106a200241106a290300370300200241286a41086a200241086a2903003703002002200229030037032820024180016a200241286a10c801024020022903a00122044202510d002000410c6a2105200041046a2106200241f8016a411c6a210720024180016a41146a2108200241bc016a2109200241a0026a410c6a210a20024180016a41286a210b200241b0016a210c200241b4016a210d200241b8016a210e20024180016a41206a210f0340200241e0006a41186a220120024180016a41186a2210290300370300200241e0006a41106a221120024180016a41106a2212290300370300200241e0006a41086a22132003290300370300200241d0006a41086a2214200941086a280200360200200220022903800137036020022009290200370350200b2903002115200c2802002116200d2802002117200e2802002118200241c8016a41086a22192014280200360200200220022903503703c8012010200129030037030020122011290300370300200320132903003703002002200229036037038001200241b8026a41086a220120063602002002200041086a2802003602b802200220062802003602bc02200241f8016a200241b8026a20024180016a1097010240024020022802f8014101470d00200241d8016a41086a22012003290300370300200241d8016a41106a22112012290300370300200241d8016a41186a2213201029030037030020022002290380013703d80120022902fc01211a2003200241f8016a410c6a29020037030020122005360200200820022903d801370200200841086a2001290300370200200841106a2011290300370200200841186a20132903003702002002201a37038001200241f8016a41086a2015370300200241f8016a41106a2016360200200241f8016a41146a2017360200200241f8016a41186a2018360200200720022903c801370200200741086a2019280200360200200220043703f80120024180016a200241f8016a109a011a0c010b200241f8016a41086a2214280200200241f8016a41106a221b28020041286c6a211102402004500d0020112004370300201120153703080b024002402016450d00201141106a211302402011280210221c450d00201341046a280200450d00201c10020b201320173602042013201636020020112018360218410121130c010b410021130b20032019280200360200200220022903c80137038001200241f8016a20024180016a109801200f200241f8016a41206a2802003602002010200241f8016a41186a2903003703002012201b29030037030020032014290300370300200220022903f80137038001200241b8026a20024180016a10ca01024020022802b802450d002011411c6a21100340200241a0026a41106a200241b8026a41106a290300370300200241a0026a41086a22122001290300370300200220022903b8023703a002200241e0026a41086a2012280200360200200220022903a0023703e0022001200a41086a2802003602002002200a2902003703b802200241d0026a2010200241e0026a200241b8026a10d201024020022802d002450d0020022802d4022212450d00200241d0026a41086a280200450d00201210020b200241b8026a20024180016a10ca0120022802b8020d000b0b20024180016a1099012013201645720d002017450d00201610020b20024180016a200241286a10c801200f29030022044202520d000b0b200241286a109e0120004100360000200241f0026a24000f0b10c301000bb20301097f23002102200141046a280200210320012802082104200241306b220241186a2205200128020022063602002002411c6a2207410036020020022003360214200220034100472208360210024002402003450d002003417f6a2101200241106a41047221092006210a03402005200a2802a006220a3602002007410036020020022001360214200220014100473602102001417f6a2201417f470d000c020b0b200241106a41047221090b200241086a200941086a28020036020020022009290200370300200241106a41086a220a20063602002002411c6a22054100360200200220033602142002200836021002402003450d002003417f6a21010340200a200620062f01be034102746a41a0066a28020022063602002005410036020020022001360214200220014100473602102001417f6a2201417f470d000b0b200241106a41086a28020022012f01be0321062002411c6a280200210a200228021421052000410036020c20002005360210200041146a2001360200200041186a200a3602002000411c6a200636020020002004360220200041086a200241086a280200360200200020022903003702000bc70302077f027e23004190016b220124002001200010c801024020012903204202510d00200141c8006a4104722102200141386a2103200141346a2104200141306a2105200141206a21060340200141c8006a41086a200341086a29030037030020012003290300370348024020052802002207450d002004280200450d00200710020b20014180016a41086a200241086a2802003602002001200229020037038001200141d8006a20014180016a109801200141d8006a1099012001200010c80120062903004202520d000b0b20002802082105200028020021070240024002400240200028020422022802b8032203450d0020023201bc032108200120033602042001200741016a2207360200200120084220862005ad842208370308200210022003450d020c010b2005ad210841002103200210024100450d010b0240024020032802b8032202450d0020033201bc032109200120023602042001200741016a36020020012009422086200842ffffffff0f83843703082003100220020d010c020b41002102200310024100450d010b20022103034020022802b8032202450d02200310022002210320020d000b0b20014190016a24000f0b2003100220014190016a24000b080041ec3a1054000b950301067f230041106b22022400200241003a000b2002410b6a20012802002203200128020422044100472205101e1a2001200420056b22063602042001200320056a22053602000240024002400240024002402004450d0020022d000b2204450d0120044101470d022002410036020c2002410c6a20052006410420064104491b2204101e1a200141046a200620046b3602002001200520046a360200200641034d0d03200041046a200228020c360200200041023a0000200241106a24000f0b200041033a0000200241106a24000f0b200110212203450d0320022003360204200141046a22062802002104200241003a000b2002410b6a2001280200220720044100472205101e1a2006200420056b3602002001200720056a3602002004450d0220022d000b220141034f0d02200020013a0001200041013a0000200041046a2003360200200241106a24000f0b200041033a0000200241106a24000f0b200041033a0000200241106a24000f0b200041033a0000200241046a1022200241106a24000f0b200041033a0000200241106a24000bc905020f7f037e23004180016b22022400200241e0006a10302002280260220320022802681031210402402002280264450d00200310020b200241003602082002420137030020024100200410860120022802082105024002402004450d00200228020020054105746a2103200241306a41086a2106200241106a41186a2107200241106a41106a2108410021090340200241306a200910320240024002402002280230220a2006280200220b41d02d410041001000417f470d002007420037030020084200370300200241106a41086a420037030020024200370310200941016a210920022802340d010c020b200241e0006a41186a220c4200370300200241e0006a41106a220d4200370300200241e0006a41086a220e420037030020024200370360200a200b200241e0006a412041001000220b417f460d04200b411f4d0d04200241c0006a41186a220b200c290300370300200241c0006a41106a220f200d290300370300200241c0006a41086a2210200e29030037030020022002290360370340200c200b290300370300200d200f290300370300200e201029030037030020022002290340370360200b200c2903002211370300200f200d29030022123703002010200e2903002213370300200241106a41086a2013370300200820123703002007201137030020022002290360221137034020022011370310200941016a21092002280234450d010b200a10020b20032002290310370000200341186a2007290300370000200341106a2008290300370000200341086a200241106a41086a290300370000200341206a210320092004490d000b200520096a21050b200241086a2005360200200241c0006a41086a200536020020022002290300370340200241e0006a200241c0006a10a2012002350268422086200235026084211102402002280244450d00200228024010020b20024180016a240020110f0b41eb1a4133102d000bee0201077f230041206b22022400200141086a28020021032002410036021820024201370310200241106a4100410410272002280210200228021822046a20033600002002200441046a360218200241086a2205200228021836020020022002290310370300024002402003450d0020012802002101200341057421060340412010012203450d022002200336021020024220370214200241106a410041201027200241106a41086a22032003280200220441206a22033602002004200228021022076a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002280214210420022005280200200310272002280200200528020022086a20072003101e1a2005200820036a36020002402004450d00200710020b200141206a2101200641606a22060d000b0b20002002290300370200200041086a2005280200360200200241206a24000f0b101c000bf80101017f23004180026b22022400024002402001450d00200220003602080c010b200241d02d360208410021010b2002200136020c20024188016a200241086a101d0240200228029001450d00200241106a20024188016a41f800101e1a20024188016a200241106a41f800101e1a20024188016a2002419c016a200241dc016a10a401024020024198016a2802002200450d0020022802900121012000410c6c210003400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b024020024194016a280200450d0020024190016a28020010020b20024180026a240042010f0b4184351054000ba11903017f017e237f230041900d6b220324002003200029030022043703f00c200341106a41086a220042003703002003420037031041d12d4107200341106a1003200341086a220520002903003703002003200329031037030020034110200341f00c6a41081004200042003703002003420037031041d82d4107200341106a10032005200029030037030020032003290310370300200341102001412010040240024002400240410710012200450d002003200036021020034207370214200341106a4100410710272003280210200328021822056a220041002800c72d360000200341f00c6a41086a200541076a2205360200200041046a41002f00cb2d3b0000200041066a41002d00cd2d3a0000200320032903103703f00c20032005360218410810012200450d002003200036021020034208370214200341106a41004108102720032802102205200328021822006a2004427f7c3700002003200041086a220036021820032802142106200341f00c6a20032802f80c2000102720032802f00c220720032802f80c22086a20052000101e1a2003200820006a22003602f80c02402006450d00200510020b20032802f40c2105200341106a41086a220642003703002003420037031020072000200341106a1003200341086a2006290300370300200320032903103703002003411020014120100402402005450d00200710020b200341106a41086a220042003703002003420037031041df2d4107200341106a1003200341086a220120002903003703002003200329031037030020034110200241201004200042003703002003420037031041d12d4107200341106a100320012000290300370300200320032903103703002003411041d02d410041001000417f460d01200342003703100240024020034110200341106a41084100100041016a41084d0d0020032903104200510d04200341106a41086a220042003703002003420037031041d12d4107200341106a1003200341086a2000290300370300200320032903103703002003411041d02d410041001000417f460d052003420037031020034110200341106a41084100100041016a41084d0d012003290310210441002108200341106a410041e00c10171a2004427f7c2104410021094100210a4100210b4100210c4100210d4100210e4100210f410021104100211141002112410021134100211441002115410021164100211741002118410021194100211a4100211b4100211c4100211d4100211e4100211f4100212041002121410021224100212341002124410021254100212641002102410021270340200341f00c6a42002004427f7c2004501b220410a801200341106a202722004103704105746a220141186a200341f00c6a41186a290200370000200141106a200341f00c6a41106a290200370000200141086a200341f00c6a41086a290200370000200120032902f00c370000200041016a21274100210141002107024003402000200041036e2205417d6c6a4102470d01200341106a20016a220041df006a2d000022022000411f6a2d000022067120022006722000413f6a2d000071722108200041de006a2d000022022000411e6a2d000022067120022006722000413e6a2d000071722109200041dd006a2d000022022000411d6a2d000022067120022006722000413d6a2d00007172210a200041dc006a2d000022022000411c6a2d000022067120022006722000413c6a2d00007172210b200041db006a2d000022022000411b6a2d000022067120022006722000413b6a2d00007172210c200041da006a2d000022022000411a6a2d000022067120022006722000413a6a2d00007172210d200041d9006a2d00002202200041196a2d00002206712002200672200041396a2d00007172210e200041d8006a2d00002202200041186a2d00002206712002200672200041386a2d00007172210f200041d7006a2d00002202200041176a2d00002206712002200672200041376a2d000071722110200041d6006a2d00002202200041166a2d00002206712002200672200041366a2d000071722111200041d5006a2d00002202200041156a2d00002206712002200672200041356a2d000071722112200041d4006a2d00002202200041146a2d00002206712002200672200041346a2d000071722113200041d3006a2d00002202200041136a2d00002206712002200672200041336a2d000071722114200041d2006a2d00002202200041126a2d00002206712002200672200041326a2d000071722115200041d1006a2d00002202200041116a2d00002206712002200672200041316a2d000071722116200041d0006a2d00002202200041106a2d00002206712002200672200041306a2d000071722117200041cf006a2d000022022000410f6a2d000022067120022006722000412f6a2d000071722118200041ce006a2d000022022000410e6a2d000022067120022006722000412e6a2d000071722119200041cd006a2d000022022000410d6a2d000022067120022006722000412d6a2d00007172211a200041cc006a2d000022022000410c6a2d000022067120022006722000412c6a2d00007172211b200041cb006a2d000022022000410b6a2d000022067120022006722000412b6a2d00007172211c200041ca006a2d000022022000410a6a2d000022067120022006722000412a6a2d00007172211d200041c9006a2d00002202200041096a2d00002206712002200672200041296a2d00007172211e200041c8006a2d00002202200041086a2d00002206712002200672200041286a2d00007172211f200041c7006a2d00002202200041076a2d00002206712002200672200041276a2d000071722120200041c6006a2d00002202200041066a2d00002206712002200672200041266a2d000071722121200041c5006a2d00002202200041056a2d00002206712002200672200041256a2d000071722122200041c4006a2d00002202200041046a2d00002206712002200672200041246a2d000071722123200041c3006a2d00002202200041036a2d00002206712002200672200041236a2d000071722124200041c2006a2d00002202200041026a2d00002206712002200672200041226a2d000071722125200041c1006a2d00002202200041016a2d00002206712002200672200041216a2d000071722126200041c0006a2d0000220220002d00002206712002200672200041206a2d000071722102200141800c460d01200341106a20012005410574200541036e41e0006c6b6a6a220041e1006a20263a0000200041e0006a20023a0000200041e2006a20253a0000200041e3006a20243a0000200041e4006a20233a0000200041e5006a20223a0000200041e6006a20213a0000200041e7006a20203a0000200041e8006a201f3a0000200041e9006a201e3a0000200041ea006a201d3a0000200041eb006a201c3a0000200041ec006a201b3a0000200041ed006a201a3a0000200041ee006a20193a0000200041ef006a20183a0000200041f0006a20173a0000200041f1006a20163a0000200041f2006a20153a0000200041f4006a20133a0000200041f3006a20143a0000200041f5006a20123a0000200041f6006a20113a0000200041f7006a20103a0000200041f8006a200f3a0000200041f9006a200e3a0000200041fa006a200d3a0000200041fb006a200c3a0000200041fc006a200b3a0000200041fd006a200a3a0000200041fe006a20093a0000200041ff006a20083a0000200141e0006a210120052100200741016a22074111490d000b0b202741d100470d000b200320263a00f10c200320023a00f00c200320253a00f20c200320243a00f30c200320233a00f40c200320223a00f50c200320213a00f60c200320203a00f70c2003201f3a00f80c2003201e3a00f90c2003201d3a00fa0c2003201c3a00fb0c2003201b3a00fc0c2003201a3a00fd0c200320193a00fe0c200320183a00ff0c200320173a00800d200320163a00810d200320153a00820d200320133a00840d200320143a00830d200320123a00850d200320113a00860d200320103a00870d2003200f3a00880d2003200e3a00890d2003200d3a008a0d2003200c3a008b0d2003200b3a008c0d2003200a3a008d0d200320093a008e0d200320083a008f0d200341106a41086a220042003703002003420037031041e62d4107200341106a1003200341086a220120002903003703002003200329031037030020034110200341f00c6a41201004200341003602f00c200042003703002003420037031041ed2d4107200341106a1003200120002903003703002003200329031037030020034110200341f00c6a41041004200341900d6a24000f0b41c1214133102d000b41c1214133102d000b101c000b41f4214122102d000b4184c200103b000b41f4214122102d000ba80601057f230041d0096b22022400024002402001450d00200220003602080c010b200241d02d360208410021010b2002200136020c200241a0066a200241086a10200240024020022d00a8064107460d00200241106a200241a0066a418003101e1a20024190036a200241106a418003101e1a20024190066a20024190036a1026200241a0066a41086a22014200370300200242003703a00641ed2d4107200241a0066a1003200241b0096a41086a2001290300370300200220022903a0063703b009200241b0096a411041d02d410041001000417f460d01200241003602a00602400240200241b0096a4110200241a0066a41044100100041016a41044d0d0020022802a0062103200241a0096a41086a20024190066a41086a28020036020020022002290390063703a009410710012201450d01200220013602a006200242073702a406200241a0066a41004107102720022802a00620022802a80622006a220141002800e02e360000200241b0096a41086a200041076a2200360200200141046a41002f00e42e3b0000200141066a41002d00e62e3a0000200220022903a0063703b009200220003602a806410410012201450d01200220013602a006200242043702a406200241a0066a41004104102720022802a006220020022802a80622016a20033600002002200141046a22013602a80620022802a4062104200241b0096a20022802b8092001102720022802b009220320022802b80922056a20002001101e1a2002200520016a22053602b80902402004450d00200010020b20022802b4092100200241c0096a200241a0096a105120022802c809210420022802c0092101200241a0066a41086a22064200370300200242003703a00620032005200241a0066a1003200241b0096a41086a2006290300370300200220022903a0063703b009200241b0096a4110200120041004024020022802c409450d00200110020b02402000450d00200310020b024020022802a409450d0020022802a00910020b200241a0066a20024190036a418003101e1a200241a0066a10a601200241d0096a240042010f0b41c1214133102d000b101c000b4184351054000b41f4214122102d000bec0e04037f017e037f017e230041a0086b2201240020014180036a2000418003101e1a200141386a4200370300200141306a4200370300200141286a4200370300200141206a4200370300200141186a4200370300200141106a4200370300200141086a42003703002001420037030002400240024002400240200141c0056a200141c0001006450d00200141a0056a21000c010b20014188066a41186a420037030020014188066a41106a420037030020014188066a41086a42003703002001420037038806200141a0056a220020014188066a41201006450d010b2001410036029006200142013703880620014188066a41004120102720012802880620012802900622026a22032000290000370000200341186a200041186a290000370000200341106a200041106a290000370000200341086a200041086a2900003700002001200241206a220036029006200129038003210420014188066a20004108102720012802880620012802900622006a20043700002001200041086a220236029006200120014180036a41086a10282001280200210320014188066a20022001280208220010272001200020012802900622056a220636029006200520012802880622026a20032000101e1a02402001280204450d00200310020b200128028c06210020022006200141c0056a200141a0056a1015210302402000450d00200210020b200120014180036a418003101e1a20030d010c020b200120014180036a418003101e1a0c010b41bc3a103b000b20014180036a2001418003101e1a200141186a4200370300200141106a4200370300200141086a420037030020014200370300024002400240024002400240024002400240200141a0056a2200200141201006450d00200010c001200129038003520d06200010c0012104410710012203450d04200120033602002001420737020420014100410710272001280200200128020822026a220341002800d92e36000020014188066a41086a200241076a2202360200200341046a41002f00dd2e3b0000200341066a41002d00df2e3a0000200120012903003703880620012002360208412010012203450d04200442017c21042001200336020020014220370204200141004120102720012802002202200128020822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002001200541206a22033602082001280204210620014188066a20012802900620031027200128028806220520012802900622076a20022003101e1a2001200720036a22073602900602402006450d00200210020b200128028c0621022001200437038006200141086a2203420037030020014200370300200520072001100320014188066a41086a22062003290300370300200120012903003703880620014188066a411020014180066a4108100402402002450d00200510020b200010432104200342003703002001420037030041bf2041072001100320062003290300370300200120012903003703880620014188066a411041d02d410041001000417f460d072001420037030020014188066a4110200141084100100041016a41084d0d02200420012903002208540d08410810012203450d04200120033602002001420837020420014100410810272001280200200128020822036a42f3e885d3a3ac98b63a3700002001200341086a36020820014188066a41086a20012802083602002001200129030037038806412010012203450d04200420087d21042001200336020020014220370204200141004120102720012802002202200128020822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002001200541206a22003602082001280204210320014188066a20012802900620001027200128028806220520012802900622066a20022000101e1a2001200620006a22003602900602402003450d00200210020b200128028c0621022001200437038006200141086a2203420037030020014200370300200520002001100320014188066a41086a2003290300370300200120012903003703880620014188066a411020014180066a4108100420014188066a2103200121002002450d01200510020c010b2001210020014188066a21030b200120014180036a41c002101e22014188066a200141086a419802101e1a20014188066a200141a0026a10c101200041086a220242003700002000420037000041ed2d410720001003200341086a2002290000370000200320002900003700002003411041d02d410041001000417f460d032001410036020020034110200141044100100041016a41044d0d012001200128020041016a36028006200041086a220242003700002000420037000041ed2d410720001003200341086a2002290000370000200320002900003700002003411020014180066a41041004200141a0086a24000f0b41c1214133102d000b41c1214133102d000b101c000b41f4214122102d000b41d43a103b000b41f4214122102d000b41fc3c103b000bc51505047f017e027f017e027f23004190096b22022400024002402001450d00200220003602000c010b200241d02d360200410021010b20022001360204200241f0056a2002101d20024180066a280200210320022802fc05210420022802f805210520022903f0052106200241f8016a20024184066a41e400101e1a024002400240024002400240024002402005450d00200241f0006a200241f8016a41e400101e1a200241f8046a200241f0006a41e400101e1a200241003602f005200241f0056a2002280200220720022802042201410420014104491b2200101e1a2002200120006b3602042002200720006a3602000240200141034d0d0020022802f0052208ad4280037e2209422088a70d082009a72201417f4c0d07024002402001450d002001100122070d01101c000b410821070b2002200836020c20022007360208410021012002410036021002402008450d00200241f0056a41086a210a410021000340200241f0056a2002102002400240200a2d00004107460d00200041016a2100200241f8016a200241f0056a418003101e1a2001200228020c470d01200241086a106c200241086a41086a2802002101200228020821070c010b02402001450d0020014180036c2100200741186a210103400240200141706a2d00002208411d74411d75417f4a0d000240024020084105460d0020084104470d01200141786a2d00004101470d022001417c6a220828020010382008280200100220014180036a2101200041807d6a22000d030c040b200141786a2d00004101470d012001280200450d012001417c6a280200100220014180036a2101200041807d6a22000d020c030b200141746a2d00004101470d00200141786a220828020010382008280200100220014180036a2101200041807d6a22000d010c020b20014180036a2101200041807d6a22000d000b0b200228020c450d03200710020c030b200720014180036c6a200241f8016a418003101e1a200241086a41086a200141016a220136020020002008490d000b0b2007450d00200229020c2109200241f0056a200241f8046a41e400101e1a2005450d01200241086a200241f0056a41e400101e1a200241fc006a200436020020024180016a2003360200200220053602782002200637037020024184016a200241086a41e400101e2101200241ec016a2009370200200220073602e801200241f0006a2001200241c4016a220310a40120022903702206500d06200241f0056a2006427f7c10a801200241f0056a2001412010060d06200241e8016a2802002100200241f0016a28020021012002410036028005200242043703f804200241f8046a20014180036c22084180036d108401200228028005210720022802f8042105024002402001450d0020052007410c6c6a21010340200241f0056a2000102620022802f005450d0220004180036a2100200241f8016a41086a220a200241f0056a41086a280200360200200220022903f0053703f801200141086a200a280200360200200120022903f801370200200741016a21072001410c6a2101200841807d6a22080d000b0b200241003602f0050b20024180056a200736020020022802fc042108200241f8016a200520052007410c6c6a10a901200241f0056a20022802f8012201200228028002104c024020022802fc01450d00200110020b02402007450d002007410c6c21002005210103400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b02402008450d00200510020b02402003200241f0056a41201006450d0041d90a410e1008200341201013200241f0056a412010130b200241c4016a200241f0056a412010060d05200241ec016a2802002104200241f0006a41f8006a2802002105200241f0016a280200210a200241f8046a200241f0006a41f800101e1a2005200a4180036c6a210720052101200a450d03200241f0056a41096a2108200521010340200141086a2d0000210020012903002106200241f8016a200141096a41f702101e1a20004107460d03200241f0056a41086a20003a0000200220063703f0052008200241f8016a41f702101e1a200241f0056a10a60120014180036a22012007470d000c050b0b02402003450d002003410c6c21012005210203400240200241046a280200450d00200228020010020b2002410c6a2102200141746a22010d000b0b2004450d00200510020b4184351054000b20014180036a21010b20012007460d002005200a4180036c6a210803402001220041086a2d000022074107460d0120004180036a210102402007411d74411d75417f4a0d00200041146a2800002103200041106a280000210a02400240200741077122074105460d0020074104470d01200a41ff01714101470d02200310382003100220082001470d030c040b200a41ff01714101470d01200041186a280000450d012003100220082001470d020c030b2000410c6a2d000041ff01714101470d00200a1038200a100220082001470d010c020b20082001470d000b0b02402004450d00200510020b1034200241f0056a41086a22014200370300200242003703f00541e72e4107200241f0056a1003200241f8016a41086a2001290300370300200220022903f0053703f8014100210b02400240024002400240200241f8016a411041d02d410041001000417f460d00200242103702f4082002200241f8016a3602f008200241f0056a200241f0086a101620022802f0052204450d02200241f8056a280200210820022802f405210b0c010b41042104410021080b4100210a02400240024002400240024020024188056a2802002008470d000240024002402008450d0020024180056a280200210141002107200421000340200141086a280200220a200041086a280200470d0202402001280200220520002802002203460d0020052003200a10060d040b2001410c6a21012000410c6a2100200741016a22072008490d000b4101210a20080d040c060b4101210a200b0d060c070b20042008410c6c6a21074100210a0c030b4100210a0b2008450d020b20042008410c6c6a21070b2004210103402001410c6a21000240200141046a280200450d00200128020010020b2000210120072000470d000b0b200b450d010b200410020b200a450d01200241f0056a10aa0120022802f8052107024020024180066a2802002201450d002001410c6c21002007210103400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b0240200241fc056a280200450d00200710020b200241f8016a41186a22014200370300200241f8016a41106a22004200370300200241f8016a41086a22074200370300200242003703f801200241f8016a1014200241f0086a41186a2001290300370300200241f0086a41106a2000290300370300200241f0086a41086a2007290300370300200220022903f8013703f0080240200241ac056a2201200241f0086a41201006450d0041d90a410e1008200141201013200241f0086a412010130b2001200241f0086a412010060d02024020024188056a2802002200450d0020024180056a28020021012000410c6c210003400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b024020024184056a280200450d0020024180056a28020010020b20024190096a240042010f0b41c1214133102d000b418c3a103b000b41a43a103b000b41f439103b000b41dc39103b000b105d000b105c000b8b0401067f230041306b22022400024002400240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800c72d360000200241086a200441076a2204360200200341046a41002f00cb2d3b0000200341066a41002d00cd2d3a00002002200229031037030020022004360218410810012203450d002002200336021020024208370214200241106a41004108102720022802102204200228021822036a20013700002002200341086a220336021820022802142105200220022802082003102720022802002206200228020822076a20042003101e1a2002200720036a220736020802402005450d00200410020b20022802042104200241106a41086a220342003703002002420037031020062007200241106a1003200241086a2003290300370300200220022903103703002002411041d02d410041001000417f460d02200241286a4200370300200241106a41106a4200370300200342003703002002420037031020024110200241106a4120410010002203417f460d012003411f4d0d0120002002290310370000200041186a200241106a41186a290300370000200041106a200241106a41106a290300370000200041086a200241106a41086a29030037000002402004450d00200610020b200241306a24000f0b101c000b41c1214133102d000b41f4214122102d000bc50103037f017e027f4100210302400240024002400240200220016b2204450d002004410c6d2205ad4203862206a722044100480d032006422088a74100470d03200410012207450d0420012002470d010c020b410421074100210520012002460d010b4100210320072104034020012802002108200441046a200141086a28020036020020042008360200200441086a2104200341016a21032001410c6a22012002470d000b0b2000200536020420002007360200200020033602080f0b1041000b101c000be40703037f027e057f23004180016b22012400200141e0006a41086a220242003703002001420037036041e62d4107200141e0006a1003200141c0006a41086a2203200229030037030020012001290360370340200141c0006a41101005200242003703002001420037036041ed2d4107200141e0006a10032003200229030037030020012001290360370340200141c0006a41101005200342003703002001420037034041d12d4107200141c0006a100320022003290300370300200120012903403703600240024002400240200141e0006a411041d02d410041001000417f460d0020014200370340200141e0006a4110200141c0006a41084100100041016a41084d0d0220012903402104200141c0006a41086a220242003703002001420037034041d12d4107200141c0006a1003200141e0006a41086a200229030037030020012001290340370360200141e0006a411010054201a7450d010c030b4200a70d020b41f4214122102d000b41c1214133102d000b200141d82d10d901200141c0006a41086a220242003703002001420037034041e72e4107200141c0006a1003200141e0006a41086a20022903003703002001200129034037036041002102024002400240200141e0006a411041d02d410041001000417f460d00200142103702242001200141e0006a360220200141c0006a200141206a101620012802402203450d0220012902442105200141c0006a41086a220242003703002001420037034041e72e4107200141c0006a1003200141e0006a41086a200229030037030020012001290340370360200141e0006a411010052005422088a721022005a721060c010b41042103410021060b200141206a41df2d10d901200141e0006a41186a22074200370300200141e0006a41106a22084200370300200141e0006a41086a2209420037030020014200370360200141e0006a1014200141c0006a41186a220a2007290300370300200141c0006a41106a22072008290300370300200141c0006a41086a2208200929030037030020012001290360370340200020043703002000412c6a200141186a290300370000200041246a200141106a2903003700002000411c6a200141086a29030037000020002001290300370014200020012903403700342000413c6a2008290300370000200041c4006a2007290300370000200041cc006a200a290300370000200020033602082000410c6a2006360200200041106a2002360200200041ec006a200141206a41186a290300370000200041e4006a200141206a41106a290300370000200041dc006a200141206a41086a2903003700002000200129032037005420014180016a24000f0b41c1214133102d000bda10040d7f017e017f017e230041d0016b220224001034200241b0016a41086a22034200370300200242003703b00141ed2d4107200241b0016a1003200241a0016a41086a2003290300370300200220022903b0013703a0010240200241a0016a411041d02d410041001000417f460d00200241003602080240200241a0016a4110200241086a41044100100041016a41044d0d0020022802082104200241003602c801200242043703c001200241c0016a200410840120022802c801210520022802c00121060240024002400240024002402004450d0020062005410c6c6a2107410021080340410710012203450d02200220033602082002420737020c200241086a410041071027200241086a41086a22032003280200220941076a220a360200200920022802086a220b41002800e02e36000020024180016a41086a2209200a360200200b41046a41002f00e42e3b0000200b41066a41002d00e62e3a0000200220022903083703800141041001220b450d022002200b3602082002420437020c200241086a41004104102720032003280200220a41046a220b360200200a2002280208220c6a2008360000200228020c210d20024180016a2009280200200b1027200228028001220a2009280200220e6a200c200b101e1a2009200e200b6a220e3602000240200d450d00200c10020b200228028401210d200241a0016a41086a220b4200370300200242003703a001200a200e200241a0016a10032003200b290300370300200220022903a001370308200241086a411041d02d410041001000417f460d0420024100360280014100200241086a411020024180016a41044100100022032003417f461b220c41034d0d062002280280012203417f4c0d03024002402003450d00200310012209450d0420094100200310171a0c010b410121090b20034100200241086a411020092003200c4104200c4104491b1000220c200c417f461b4b0d052009450d06200841016a21082003ad220f422086200f84210f200b4200370300200242003703a001200a200e200241a0016a1003200241b0016a41086a200b290300370300200220022903a0013703b001200241b0016a411010050240200d450d00200a10020b20072009360200200741046a200f3702002007410c6a210720082004490d000b200520086a21050b200241c8016a200536020020022802c4012108200241086a200620062005410c6c6a10a90120024180016a200228020822032002280210104c0240200228020c450d00200310020b02402005450d002005410c6c21092006210303400240200341046a280200450d00200328020010020b2003410c6a2103200941746a22090d000b0b02402008450d00200610020b200241086a41186a20024180016a41186a290300370300200241086a41106a220920024180016a41106a290300370300200241086a41086a20024180016a41086a22072903003703002002200229038001370308200241b0016a41086a22044200370300200242003703b00141df2d4107200241b0016a1003200241a0016a41086a22082004290300370300200220022903b0013703a001200241a0016a4110200241086a41201004200241086a10aa01200241003602c801200242013703c001200241c0016a41004120102720022802c00120022802c801220b6a2203200229021c370000200341086a200241246a290200370000200341106a2002412c6a290200370000200341186a200241346a2902003700002002200b41206a22033602c8012002290308210f200241c0016a20034108102720022802c00120022802c80122036a200f3700002002200341086a22033602c801200241c0016a20034120102720022802c00120022802c801220b6a2203200229023c370000200341086a200241c4006a290200370000200341106a200241cc006a290200370000200341186a200241d4006a2902003700002002200b41206a22033602c801200241c0016a20034120102720022802c00120022802c801220b6a2203200229025c370000200341086a200241e4006a290200370000200341106a200241ec006a290200370000200341186a200241f4006a2902003700002002200b41206a22103602c801200928020021052002410036028801200242013703800120024180016a41004104102720022802800120022802880122036a20053600002002200341046a36028801200820022802880136020020022002290380013703a00120022802102106024002402005450d002005410c6c210c2006210b0340200241b0016a200b105120042802002203417f4c0d0420022802b001210a024002402003450d002003100122090d010c050b410121090b200741003602002002200336028401200220093602800120024180016a41002003102720072007280200220d20036a2209360200200d200228028001220e6a200a2003101e1a2002280284012103024020022802b401450d00200a10020b200241a0016a20082802002009102720022802a001220d2008280200220a6a200e2009101e1a2008200a20096a220936020002402003450d00200e10020b200b410c6a210b200c41746a220c0d000c020b0b20022802a801210920022802a001210d0b20022802a4012103200241c0016a201020091027200220022802c801220820096a22073602c801200820022802c001220b6a200d2009101e1a02402003450d00200d10020b2007ad422086210f200bad211102402005450d002005410c6c21092006210303400240200341046a280200450d00200328020010020b2003410c6a2103200941746a22090d000b0b200f201184210f0240200241146a280200450d00200610020b200241d0016a2400200f0f0b101c000b1019000b41f4214122102d000b200910020b41c1214133102d000b41c1214133102d000b41f4214122102d000b810101047f230041106b220224002002102f2002280208210302402002280204450d00200228020010020b0240410410012204450d002002200436020020024204370204200241004104102720022802002204200228020822056a20033600002002200541046a2203360208200241106a24002003ad4220862004ad840f0b101c000b4802017f017e230041206b220224002002102f200241106a200210a2012002350218422086200235021084210302402002280204450d00200228020010020b200241206a240020030ba56d09047f027e047f017e0b7f017e027f017e0c7f230041a0016b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d0000417f6a220341044b0d000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020030e050004020301000b200041106a2802002104200241186a41086a2000410c6a2802003602002002200041046a290200370318200241e8006a41086a220342003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a2205200329030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d38200342003703002002420037036841b70f4107200241e8006a10032005200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d0420024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d4320022802782004470d050c590b200041246a2802002104200041286a290300210c200241c0006a200041196a290000370300200241286a41106a200041116a290000370300200241286a41086a200041096a29000037030020022000290001370328200241e8006a41086a220342003703002002420037036841b70f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358410021030240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d42200228027821030b20032004470d36200241e8006a41086a220342003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d352002200241d8006a3602682002411036026c2002420037037820024100200241d8006a4110200241f8006a41084100100022032003417f461b22034108200341084922041b220336027020040d3e20024100360278200241f0006a4100200241d8006a4110200241f8006a41042003100022042004417f461b22044104200441044922041b20036a36020020040d3e200241f8006a200241e8006a103a2002280278220d450d3e200241f8006a41086a280200210e200228027c210f200241e8006a41086a22034200370300200242003703684181114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d34200241003602784100200241d8006a4110200241f8006a41044100100022032003417f461b220441034d0d4a20022802782209ad2206421d88a70d332006420386a72203417f4c0d322003450d052003100122100d060c5a0b200041046a2802002103200241e8006a41086a220442003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d30200110af01450d2f200241e8006a41086a220442003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d392002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782204450d2e20024180016a280200220520034d0d39200228027c21080240200420034105746a22092001460d0020092001412010060d1c0b2002200836027c20022004360278200220053602800120012003200241f8006a10b001200241e8006a41086a220342003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2d20024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d472002290378210620012001104422072006200720072006561b22067d10b101200110432107410810012203450d59200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241286a41086a20022802800136020020022002290378370328412010012203450d59200720067c2106200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241286a20022802302003102720022802282205200228023022016a20042003101e1a2002200120036a220336023002402008450d00200410020b200228022c210820022006370378200241e8006a41086a220442003703002002420037036820052003200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a41081004410121042008450d58200510020c580b200041046a2802002103410710012204450d58200220043602782002420737027c200241f8006a410041071027200228027820022802800122056a220441002800bf10360000200241286a41086a200541076a2205360200200441046a41002f00c3103b0000200441066a41002d00c5103a0000200220022903783703282002200536028001412010012204450d58200220043602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200841206a220436028001200228027c2109200241286a200228023020041027200228022822082002280230220a6a20052004101e1a2002200a20046a220436023002402009450d00200510020b200228022c2105200241e8006a41086a220942003703002002420037036820082004200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a4110200241f8006a410041001000210402402005450d00200810020b2004417f470d2b200241e8006a41086a220442003703002002420037036841c6104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2a20024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d452001200229037810b201450d29200241e8006a41086a220442003703002002420037036841cd104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358410021050240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d3f200228027821050b200241e8006a41086a2204420037030020024200370368418d104107200241e8006a1003200241d8006a41086a20042903003703002002200229036837035841002109200241d8006a411041d02d410041001000417f460d052002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782208450d1920024180016a2802002104200228027c210920052003470d4e0c4d0b2000412c6a2802002103200041286a2802002111200041246a2802002112200241c0006a200041196a290000370300200241286a41106a200041116a290000370300200241286a41086a200041096a29000037030020022000290001370328200241e8006a41086a220442003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d27200241086a200110b30120022802084101470d262002200241286a10b3012002280200450d252002280204210e200241e8006a41086a220442003703002002420037036841b70f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358410021040240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d3d200228027821040b20042003470d24200241e8006a41086a22044200370300200242003703684186104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2320024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d41200e200320022802786b4f0d22200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d3a2002421037026c2002200241d8006a360268200241f8006a200241e8006a103a20022802782213450d2120024180016a280200221420124d0d3a200228027c21150240201320124105746a22032001460d0020032001412010060d3b0b201420114d0d360240201320114105746a2203200241286a460d002003200241286a412010060d370b200241c8006a200241286a10b4012002280250210320022802482105200241e8006a41086a2204420037030020024200370368418d104107200241e8006a1003200241d8006a41086a20042903003703002002200229036837035841002116200241d8006a411041d02d410041001000417f460d052002421037026c2002200241d8006a360268200241f8006a200241e8006a103a20022802782217450d17200228027c211620024180016a28020041057441057522042003200320044b1b22080d060c070b41002004460d540b41dc351054000b410821100b2002200936027c20022010360278200241003602800102402009450d002004410420044104491b210441002103410021050340200242003703684100200241d8006a4110200241e8006a41082004100022082008417f461b220841074d0d442008410820084108491b2108200541016a21052002290368210602402003200228027c470d00200241f8006a1071200241f8006a41086a2802002103200228027821100b200820046a2104201020034103746a2006370300200241f8006a41086a200341016a220336020020052009490d000b200228027821100b2010450d43200229027c2118200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a20032903003703002002200229036837035841002119200241d8006a411041d02d410041001000417f460d042002421037026c2002200241d8006a360268200241f8006a200241e8006a103a2002280278221a450d1220024180016a280200210b200228027c21190c050b410121084100210420052003460d470c480b4101211741002003200341004b1b2208450d010b4100210420024190016a210920024188016a210a20024180016a210b2017210303400240200520046a2d0000450d0020094200370300200a4200370300200b420037030020024200370378200241f8006a2003460d002003200241f8006a41201006450d00200241f8006a200310b50120022802784101470d3b200228027c200e4d0d050b200341206a2103200441016a22042008490d000b0b410021032016450d430c420b4101211a4100210b0b200241e8006a41086a22034200370300200242003703684188114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d1620024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d392002290378210620011043200110447c2006200bad7e221b540d15200241e8006a41086a2203420037030020024200370368418f114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d142002421037026c2002200241d8006a360268200241f8006a200241e8006a10b60120022802782217450d1320024180016a280200221c450d122017290300200c5a0d11200228027c211d200241f8006a104720022802782209200228028001221141286c22056a210a41002103200921040240024002400240200541286d4104490d0020092105410021030340200241286a20052204460d0220032004200241286a4120100622054100476a21032005450d02200441286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200541286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200541286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200a200541286a22056b41286d41034b0d000b200441a0016a21040b02402004200a460d002009201141286c6a21080340200241286a2004460d0220032004200241286a4120100622054100476a21032005450d022008200441286a2204470d000b0b41000d010c020b4101450d010b2003200e4f0d0c0b0240200228027c450d00200910020b200241f8006a200241286a10b50120022802784101470d10024002402018421d88a74103752203200b4105744105752204200420034b1b2208450d0020024180016a2802002109200228027c210a4200210741002104201a210320102105034020052903002106200241106a200310b301200441016a21040240024020022802104101470d002002280214200a490d00200241f8006a200310b4010240200241f8006a41086a28020020094d0d002002280278220e20096a2d0000210b0240200228027c450d00200e10020b200b41ff01710d020c010b200228027c450d00200228027810020b420021060b200341206a2103200541086a2105200620077c210720042008490d000c020b0b420021070b2017201c41286c22056a21042017210302400240200541286d4104490d00200241206a2105200241786a2108200241506a2109200241a87f6a210a20172103034020052003460d02200341086a200241286a41201006450d0220082003460d02200341306a200241286a41201006450d0220092003460d02200341d8006a200241286a41201006450d02200a2003460d0220034180016a200241286a41201006450d022004200341a0016a22036b41286d41034b0d000b0b024020032004460d002017201c41286c6a2105200241206a2104034020042003460d02200341086a200241286a41201006450d022005200341286a2203470d000b0b2007200c520d00200241f8006a41186a2203200241286a41186a290300370300200241f8006a41106a2204200241286a41106a290300370300200241f8006a41086a2205200241286a41086a290300370300200220022903283703782017200c370300201741206a2003290300370300201741186a2004290300370300201741106a200529030037030020172002290378370308201c41144b0d02201c41014d0d03201c417f6a21092017201c41286c6a41586a210e0340201c20092203417f6a2209490d2d0240201c20096b22084102490d002017200341286c6a22052903002017200941286c6a220b29030022065a0d00200b2005290300370300200b2903082107200b41086a200541086a290300370300200241f8006a41186a2211200b41206a2203290300370300200241f8006a41106a2212200b41186a2204290300370300200241f8006a41086a2213200b41106a22012903003703002001200541106a2903003703002004200541186a2903003703002003200541206a2903003703002002200737037841012101024020084103490d0041012104200e21030340200441016a220120084f0d340240200341286a220529030020065a0d00200420084f0d34200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032005290300370300200441026a210a2001210420052103200a2008490d010c020b0b20042101200321050b20052006370300200b200141286c6a22032002290378370308200341206a2011290300370300200341186a2012290300370300200341106a20132903003703000b200e41586a210e20090d000c040b0b200110432106410810012203450d4d200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241e8006a41086a20022802800136020020022002290378370368412010012203450d4d2006201b20062006201b561b220c7d2107200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241e8006a20022802702003102720022802682205200228027022096a20042003101e1a2002200920036a220336027002402008450d00200410020b200228026c210420022007370378200241e8006a41086a220842003703002002420037036820052003200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a4110200241f8006a4108100402402004450d00200510020b0240201b2006580d002001200110442206201b200c7d2207200620062007561b7d10b1010b0240201d450d00201710020b02402019450d00201a10020b2018a7450d3f0c3e0b4101210320160d3f0c400b201c410176221ead42287e2206422088a70d082006a72203417f4c0d074108211f02402003450d0020031001221f450d4c0b410021042002410036027020024204370368201741586a2120201741887f6a212141042105200241e8006a41086a2115201c211603402016210e410021164101210802400240024002400240024002400240200e417f6a2203450d0002400240024002400240024002402017200341286c6a2903002017200e417e6a220841286c6a29030022065a0d00410021092008450d022021200e41286c6a210303402006200329030022075a0d02200341586a2103200721062008417f6a22080d000c030b0b02402008450d002021200e41286c6a2103410221080340200620032903002207540d04200341586a210320072106200e200841016a2208470d000b41002116200e21082004200228026c470d0e0c0d0b41022108410021162004200228026c470d0d0c0c0b200821090b200e2009490d02200e201c4b0d090240200e20096b2208410176220a450d002020200e41286c6a21032017200941286c6a21010340200241f8006a41206a220b200141206a2211290300370300200241f8006a41186a2212200141186a2213290300370300200241f8006a41106a2214200141106a2216290300370300200241f8006a41086a2222200141086a222329030037030020022001290300370378200341086a22242903002106200341106a22252903002107200341186a2226290300211b2003290300210c2011200341206a22272903003703002013201b37030020162007370300202320063703002001200c3703002027200b29030037030020262012290300370300202520142903003703002024202229030037030020032002290378370300200341586a2103200141286a2101200a417f6a220a0d000b0b2009450d010c030b200e20086b22090d020b200921160c020b2009200e1055000b0240200841094b0d00200e201c4b0d042017200941286c6a21120340200e2009417f6a2216490d060240200e20166b22084102490d002017200941286c6a22092903002017201641286c6a221129030022065a0d002011200929030037030020112903082107201141086a200941086a290300370300200241f8006a41186a2213201141206a2203290300370300200241f8006a41106a2214201141186a2201290300370300200241f8006a41086a2222201141106a220a290300370300200a200941106a2903003703002001200941186a2903003703002003200941206a290300370300200220073703784101210a024020084103490d0041012101201221030340200141016a220a20084f0d060240200341286a220929030020065a0d00200120084f0d08200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032009290300370300200141026a210b200a210120092103200b2008490d010c020b0b2001210a200321090b200920063703002011200a41286c6a22032002290378370308200341206a2013290300370300200341186a2014290300370300200341106a20222903003703000b2016450d02201241586a2112201621092008410a490d000c020b0b200921162004200228026c470d070c060b2004200228026c460d050c060b41ccc100200141016a2008103c000b41dcc10020012008103c000b200e2009417f6a22164f0d010b2016200e1055000b200e201c1029000b200241e8006a107a20152802002104200228026821050b200520044103746a22032008360204200320163602002015200441016a2204360200024020044102490d00200228026821050340024002400240024020052004417f6a4103746a2203280200450d00200520044103746a220941746a2802002201200328020422084d0d00200441024d0d0520052004417d6a22124103746a2802042203200820016a4d0d01200441034d0d05200941646a280200200320016a4d0d010c050b20044103490d012003280204210820052004417d6a22124103746a28020421030b20032008490d010b2004417e6a21120b2004201241016a22134d0d04200420124d0d052005201241037422226a2203280204222320032802006a22032005201341037422246a22042802002214490d062003201c4b0d072017201441286c6a220e2004280204221141286c22046a2108200341286c210502400240024002400240200320146b220920116b220320114f0d00201f2008200341286c2204101e220b20046a210120114101480d0120034101480d01202020056a21052008210303402005200341586a2208200141586a22092009290300200829030054220a1b2204290300370300200541206a200441206a290300370300200541186a200441186a290300370300200541106a200441106a290300370300200541086a200441086a29030037030020012009200a1b2101200e20082003200a1b22034f0d04200541586a2105200b2104200b2001490d000c050b0b201f200e2004101e220320046a210120114101480d01200920114c0d01201720056a210a20032104200e21030340200320082004200829030020042903005422091b2205290300370300200341206a200541206a290300370300200341186a200541186a290300370300200341106a200541106a290300370300200341086a200541086a2903003703002004200441286a20091b2104200341286a2103200841286a200820091b2208200a4f0d04200120044b0d000c040b0b200821030c010b200e21030b201f21040b20032004200120046b220520054128706b101e1a2015280200220320124d0d082002280268220520226a2204202320116a36020420042014360200200320134d0d09200520246a2204200441086a200320136b41037441786a10391a20152003417f6a2204360200200441014b0d000b0b20160d000b0240200228026c450d00200228026810020b201e450d00201f10020b2002201d36027c200220173602782002201c36028001200241f8006a10b7010240201d450d00201710020b02402019450d00201a10020b2018a70d3b0c3c0b41acc10020132004103c000b41acc10020122004103c000b201420031055000b2003201c1029000b41bcc10020122003103c000b41b4c300103b000b105f000b105e000b418439103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41d437103b000b41ce114123102d000b41ec38103b000b41cc3641004100103c000b41c1214133102d000b4196114131102d000b41d438103b000b41f4214122102d000b41c1214133102d000b41b436103b000b41f4214122102d000b419c36103b000b41da0f412c102d000b418436103b000b41ec35103b000b418438103b000b41f4214122102d000b41ec37103b000b41f4214122102d000b41c1214133102d000b41a437103b000b418c37103b000b1063000b1062000b41f4214122102d000b41d410412d102d000b41c4381054000b41c435103b000b2009201c1055000b41f436103b000b41bc37103b000b41dcc10020042008103c000b41ccc100200441016a2008103c000b41dc36103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b419410412b102d000b41c1214133102d000b41ac35103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b200228027c450d00201010020b41c1214133102d000b201010020b200f450d09200d10020c090b201710020b0240200228024c450d00200510020b2002201536027c2002201336027820022014360280012001200241286a20031b2012201120031b200241f8006a10b001200241e8006a41086a220442003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a2004290300370300200220022903683703580240200241d8006a411041d02d410041001000417f460d00200242003703780240200241d8006a4110200241f8006a41084100100041016a41084d0d002002290378210602402003450d0020012001104422072006200720072006561b7d10b1010c0a0b200241286a200241286a104422072006200720072006561b22067d10b101200110432107410810012203450d0d200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241e8006a41086a20022802800136020020022002290378370368412010012203450d0d200720067c2106200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241e8006a20022802702003102720022802682205200228027022016a20042003101e1a2002200120036a220336027002402008450d00200410020b200228026c210420022006370378200241e8006a41086a220842003703002002420037036820052003200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a4110200241f8006a410810042004450d09200510020c090b41c1214133102d000b41f4214122102d000b20042003460d010b200420034d0d0120024190016a420037030020024188016a420037030020024180016a420037030020024200370378200820034105746a220a200241f8006a460d00200a200241f8006a412010060d010b2002200936024c20022008360248200220043602500240024020042003470d00200241f8006a41186a2204200141186a290000370300200241f8006a41106a220b200141106a290000370300200241f8006a41086a220e200141086a290000370300200220012900003703782003210a20032009460d010c040b200241f8006a41186a2209200141186a290000370300200241f8006a41106a220a200141106a290000370300200241f8006a41086a220b200141086a29000037030020022001290000370378200420034d0d02200820034105746a22042002290378370000200441186a2009290300370000200441106a200a290300370000200441086a200b2903003700000c040b200241c8006a107c200241c8006a41086a280200210a200228024821080c020b419c38103b000b41b43820032004103c000b200e2903002106200b29030021072004290300211b2008200a4105746a22042002290378370000200441186a201b370000200441106a2007370000200441086a2006370000200241c8006a41086a200a41016a3602000b200241286a41086a200241c8006a41086a28020036020020022002290348370328200241f8006a200241286a10a201200228028001210820022802782104200241e8006a41086a2209420037030020024200370368418d104107200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a41102004200810040240200228027c450d00200410020b0240200228022c450d00200228022810020b2002200541016a360278200241e8006a41086a220442003703002002420037036841cd104107200241e8006a1003200241d8006a41086a2205200429030037030020022002290368370358200241d8006a4110200241f8006a41041004200442003703002002420037036841b70f4107200241e8006a10032005200429030037030020022002290368370358410021050240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d02200228027821050b410710012204450d04200220043602782002420737027c200241f8006a410041071027200228027820022802800122086a220441002800bf10360000200241286a41086a200841076a2208360200200441046a41002f00c3103b0000200441066a41002d00c5103a0000200220022903783703282002200836028001412010012204450d04200220043602782002422037027c200241f8006a4100412010272002280278220820022802800122096a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200941206a220436028001200228027c2109200241286a200228023020041027200228022822012002280230220a6a20082004101e1a2002200a20046a220a36023002402009450d00200810020b200228022c2108200241003602800120024201370378200241f8006a410041041027200228027820022802800122046a20053600002002200441046a220436028001200241f8006a2004410410272002280278220420022802800122056a20033600002002200541046a220336028001200241e8006a41086a22054200370300200242003703682001200a200241e8006a1003200241d8006a41086a200529030037030020022002290368370358200241d8006a41102004200310040240200228027c450d00200410020b2008450d00200110020b410121040c020b41c1214133102d000b0240200110af010d00200241e8006a41086a220342003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a2003290300370300200220022903683703580240024002400240200241d8006a411041d02d410041001000417f460d00200242003703780240200241d8006a4110200241f8006a41084100100041016a41084d0d00200229037821062001104322072006540d02410810012203450d07200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241286a41086a20022802800136020020022002290378370328412010012203450d07200720067d2107200220033602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200841206a220336028001200228027c2109200241286a200228023020031027200228022822082002280230220a6a20052003101e1a2002200a20036a220336023002402009450d00200510020b200228022c210520022007370378200241e8006a41086a220942003703002002420037036820082003200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a4110200241f8006a4108100402402005450d00200810020b20012001104420067c10b101200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a20032903003703002002200229036837035802400240200241d8006a411041d02d410041001000417f460d002002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782208450d052002200229027c220637022c20022008360228200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241f8006a21032006422088a722052006a7460d010c060b2002410036023020024201370328200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241f8006a21030b200241286a107c200241306a2802002105200228022821080c040b41c1214133102d000b41f4214122102d000b41ec3d103b000b41c1214133102d000b20032900002106200241286a41086a2209200541016a360200200820054105746a22052006370000200541186a200341186a290000370000200541106a200341106a290000370000200541086a200341086a290000370000200241c8006a41086a200928020036020020022002290328370348200241f8006a200241c8006a10a201200228028001210520022802782103200241e8006a41086a220842003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a41102003200510040240200228027c450d00200310020b200228024c450d00200228024810020b200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241c8006a41086a200241186a41086a28020036020020022002290318370348410710012203450d01200220033602282002420737022c200241286a4100410710272002280228200228023022056a220341002800cc0f360000200241e8006a41086a200541076a2205360200200341046a41002f00d00f3b0000200341066a41002d00d20f3a00002002200229032837036820022005360230412010012203450d01200220033602282002422037022c200241286a41004120102720022802282205200228023022086a22032002290378370000200341086a200241f8006a41086a290300370000200341106a200241f8006a41106a290300370000200341186a200241f8006a41186a2903003700002002200841206a2203360230200228022c2109200241e8006a200228027020031027200228026822082002280270220a6a20052003101e1a2002200a20036a220a36027002402009450d00200510020b200228026c2105200241286a200241c8006a10b8012002280230210920022802282103200241e8006a41086a220b4200370300200242003703682008200a200241e8006a1003200241d8006a41086a200b29030037030020022002290368370358200241d8006a41102003200910040240200228022c450d00200310020b02402005450d00200810020b0240200228024c450d00200228024810020b410710012203450d01200220033602782002420737027c200241f8006a410041071027200228027820022802800122056a220341002800d30f360000200241286a41086a200541076a2205360200200341046a41002f00d70f3b0000200341066a41002d00d90f3a0000200220022903783703282002200536028001412010012203450d01200220033602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200841206a220336028001200228027c2101200241286a20022802302003102720022802282208200228023022096a20052003101e1a2002200920036a220336023002402001450d00200510020b200228022c210520022004360278200241e8006a41086a220442003703002002420037036820082003200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a4104100402402005450d00200810020b410021040b0240024020002d000022034107714101460d0020034105460d0120034102460d0120034101470d01200041086a280200450d01200041046a2802001002200241a0016a24000f0b2004450d00200041086a280200450d00200041046a28020010020b200241a0016a24000f0b101c000ba90301057f230041206b220124000240410710012202450d002001200236021020014207370214200141106a4100410710272001280210200128021822036a220241002800d30f360000200141086a200341076a2203360200200241046a41002f00d70f3b0000200241066a41002d00d90f3a00002001200129031037030020012003360218412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b20012802042103200141106a41086a220442003703002001420037031020022000200141106a1003200141086a20042903003703002001200129031037030020014110200141106a410041001000210002402003450d00200210020b200141206a24002000417f470f0b101c000bc70908057f017e017f027e017f017e017f017e230041d0006b220324000240200241086a2204280200220520014d0d002002280200220620014105746a220141186a2207290000210820062005417f6a22094105746a2205290000210a200541086a2206290000210b200541106a220c290000210d2007200541186a220e290000370000200141106a2207290000210f2007200d370000200141086a2207290000210d2007200b3700002001290000210b2001200a370000200341106a41186a2008370300200341106a41106a200f370300200341106a41086a2201200d370300200e2008370000200c200f3700002006200d3700002005200b3700002003200b37031020042009360200200341086a200936020020032002290200370300200341c0006a200310a2012003280248210220032802402105200142003703002003420037031041c50f4107200341106a1003200341306a41086a200129030037030020032003290310370330200341306a411020052002100402402003280244450d00200510020b02402003280204450d00200328020010020b0240410710012201450d002003200136021020034207370214200341106a4100410710272003280210200328021822056a220141002800cc0f360000200341306a41086a200541076a2205360200200141046a41002f00d00f3b0000200141066a41002d00d20f3a00002003200329031037033020032005360218412010012201450d002003200136021020034220370214200341106a41004120102720032802102205200328021822026a22012000290000370000200141086a200041086a290000370000200141106a200041106a290000370000200141186a200041186a2900003700002003200241206a220136021820032802142109200341306a20032802382001102720032802302202200328023822046a20052001101e1a2003200420016a220136023802402009450d00200510020b20032802342105200341106a41086a220942003703002003420037031020022001200341106a1003200341306a41086a200929030037030020032003290310370330200341306a4110100502402005450d00200210020b410710012201450d002003200136021020034207370214200341106a4100410710272003280210200328021822056a220141002800d30f360000200341306a41086a200541076a2205360200200141046a41002f00d70f3b0000200141066a41002d00d90f3a00002003200329031037033020032005360218412010012201450d002003200136021020034220370214200341106a41004120102720032802102205200328021822026a22012000290000370000200141086a200041086a290000370000200141106a200041106a290000370000200141186a200041186a2900003700002003200241206a220036021820032802142102200341306a20032802382000102720032802302201200328023822096a20052000101e1a2003200920006a220036023802402002450d00200510020b20032802342105200341106a41086a220242003703002003420037031020012000200341106a1003200341306a41086a200229030037030020032003290310370330200341306a4110100502402005450d00200110020b200341d0006a24000f0b101c000b419c3920012005103c000b9a0301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3c3cdd8b73a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220036021802402005450d00200410020b2002280214210420022001370308200241206a41086a220542003703002002420037032020032000200241206a1003200241106a41086a200529030037030020022002290320370310200241106a4110200241086a4108100402402004450d00200310020b200241306a24000f0b101c000bfd0602067f017e230041306b220224000240410810012203450d00200220033602182002420837021c200241186a4100410810272002280218200228022022036a42f3e885d3a3ec9bb73a3700002002200341086a360220200241086a41086a200228022036020020022002290318370308412010012203450d00200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a2203360220200228021c2106200241086a20022802102003102720022802082205200228021022076a20042003101e1a2002200720036a220336021002402006450d00200410020b200228020c210442002108200241186a41086a220642003703002002420037031820052003200241186a1003200241086a41086a20062903003703002002200229031837030802400240200241086a411041d02d410041001000417f460d0020024200370318200241086a4110200241186a41084100100041016a41084d0d01200229031821080b02402004450d00200510020b4100210302402008427f510d002008102e560d002000104322082001540d00410810012203450d02200220033602182002420837021c200241186a4100410810272002280218200228022022036a42f3e885d3a3ac98b63a3700002002200341086a360220200241086a41086a200228022036020020022002290318370308412010012203450d02200820017d2108200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a2200360220200228021c2103200241086a20022802102000102720022802082205200228021022066a20042000101e1a2002200620006a220036021002402003450d00200410020b200228020c210420022008370328200241186a41086a220342003703002002420037031820052000200241186a1003200241086a41086a200329030037030020022002290318370308200241086a4110200241286a41081004410121032004450d00200510020b200241306a240020030f0b41c1214133102d000b101c000bf80301057f230041206b22022400024002400240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800d30f360000200241086a200441076a2204360200200341046a41002f00d70f3b0000200341066a41002d00d90f3a00002002200229031037030020022004360218412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241106a41086a220542003703002002420037031020032001200241106a1003200241086a20052903003703002002200229031037030041002101024002402002411041d02d410041001000417f460d00200241003602104101210120024110200241106a41044100100041016a41044d0d01200228021021052004450d040c030b20040d020c030b41c1214133102d000b101c000b200310020b2000200136020020002005360204200241206a24000b8806010a7f230041306b22022400024002400240024002400240024002400240410710012203450d00200220033602182002420737021c200241186a4100410710272002280218200228022022046a220341002800cc0f360000200241086a41086a200441076a2204360200200341046a41002f00d00f3b0000200341066a41002d00d20f3a00002002200229031837030820022004360220412010012203450d00200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a2201360220200228021c2103200241086a20022802102001102720022802082206200228021022056a20042001101e1a2002200520016a220136021002402003450d00200410020b200228020c2107200241186a41086a220342003703002002420037031820062001200241186a1003200241086a41086a200329030037030020022002290318370308200241086a411041d02d410041001000417f460d01200241003602184100200241086a4110200241186a41044100100022012001417f461b220141034d0d0720022802182208417f4c0d082008450d022008100122090d030b101c000b200041003602082000420137020020070d020c030b410121090b2002200836021c200220093602182002410036022002402008450d002001410420014104491b2103200241206a210a41002101410021040340200241003a002f200241086a41102002412f6a41012003100041016a41014b220b450d04200441016a210420022d002f210502402001200228021c470d00200241186a1023200a2802002101200228021821090b2003200b6a2103200920016a20053a0000200a200141016a220136020020042008490d000b200228021821090b2009450d032000200229021c370204200020093602002007450d010b200610020b200241306a24000f0b200228021c450d00200910020b41c1214133102d000b1024000b990401057f230041206b220224000240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800bf10360000200241086a200441076a2204360200200341046a41002f00c3103b0000200341066a41002d00c5103a00002002200229031037030020022004360218412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241106a41086a220542003703002002420037031020032001200241106a1003200241086a20052903003703002002200229031037030041002101024002402002411041d02d410041001000417f460d002002410036021020024110200241106a41044100100041016a41044d0d01200228021021012002410036021020024110200241106a41044104100041016a41044d0d01200041086a200228021036020020002001360204410121010b2000200136020002402004450d00200310020b200241206a24000f0b41c1214133102d000b101c000b930503067f017e097f230041d0006b220224002002410036023020012001280208220341002001280200220420012802042205200241306a41042003100022032003417f461b2203410420034104491b6a220636020802400240024002400240200341034d0d0020022802302207ad42287e2208422088a70d042008a72203417f4c0d032003450d012003100122090d02101c000b20004100360200200241d0006a24000f0b410821090b20022007360204200220093602002002410036020802402007450d00200241306a41186a210a200241306a41106a210b4100210c4100210d034020024200370330200141086a220e410020042005200241306a41082006100022032003417f461b2203410820034108491b20066a220636020002400240200341074d0d0020022903302108200a4200370300200b4200370300200241306a41086a220f420037030020024200370330200e410020042005200241306a41202006100022032003417f461b2203412020034120491b20066a22063602002003411f4d0d00200d41016a210d200241106a41186a220e200a290300370300200241106a41106a2210200b290300370300200241106a41086a2211200f29030037030020022002290330370310200c2002280204470d0120021068200241086a280200210c200228020021090c010b2000410036020002402002280204450d00200910020b200241d0006a24000f0b2009200c41286c6a2203200837030020032002290310370308200341206a200e290300370300200341186a2010290300370300200341106a2011290300370300200241086a200c41016a220c360200200d2007490d000b0b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b105f000b105e000bf40403057f017e037f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a220341003602002001420137031020002903002106200141106a41004108102720032003280200220241086a2207360200200220012802106a2006370000200141106a20074120102720032003280200220741206a22023602002007200128021022086a220341086a200041106a290000370000200341106a200041186a290000370000200341186a200041206a2900003700002003200041086a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220741003602002001200236022420012003360220200141206a41002002102720072007280200220920026a22033602002009200128022022076a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20072003101e1a2004200820036a220336020002402002450d00200710020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a2200420037030020014200370320418f114107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000bb50201077f230041206b22022400200141086a28020021032002410036021820024201370310200241106a4100410410272002280210200228021822046a20033600002002200441046a360218200241086a2204200228021836020020022002290310370300024002402003450d00200128020021050340410110012201450d022002200136021020024201370214200241106a410041011027200241106a41086a22012001280200220641016a22013602002006200228021022076a20052d00003a00002002280214210620022004280200200110272002280200200428020022086a20072001101e1a2004200820016a36020002402006450d00200710020b200541016a21052003417f6a22030d000b0b20002002290300370200200041086a2004280200360200200241206a24000f0b101c000bd60c03047f047e017f230041f0006b210202400240024002400240024002400240024002400240024002400240024020012d002822034103714101460d0020034102470d01200141206a22032802002204450d0e20032004417f6a3602002001411c6a2d0000450d050c0e0b20012802102204450d01200141106a4100360200024020012802082203200128020c2205460d002004417f7321040340200241c8006a41206a200341206a290300370300200241c8006a41186a200341186a290300370300200241c8006a41106a200341106a290300370300200241c8006a41086a200341086a29030037030020022003290300370348200441016a2204450d072005200341286a2203470d000b200141086a20053602000b200042003703000f0b20012802102204450d01200141106a410036020020012802082203200128020c2205460d022004417f7321040340200241c8006a41206a200341206a290300370300200241c8006a41186a200341186a290300370300200241c8006a41106a200341106a290300370300200241c8006a41086a200341086a29030037030020022003290300370348200441016a2204450d062005200341286a2203470d000b200141086a20053602000c020b20012802082202200128020c460d06200141086a200241286a360200200041286a200241206a290300370300200041206a200241186a290300370300200041186a200241106a290300370300200041106a200241086a29030037030020002002290300370308200042013703000f0b20012802082203200128020c460d00200141086a200341286a360200200241206a200341206a290300370300200241186a200341186a290300370300200241106a200341106a290300370300200241086a200341086a290300370300200220032903003703000c040b200141286a41023a0000200141206a22032802002204450d0820032004417f6a3602002001411c6a2d0000450d050c080b200141186a22042802002203200141146a280200460d082004200341586a220336020020032903004200510d05200241c8006a41206a200341206a2903002206370300200241c8006a41186a200341186a2903002207370300200241c8006a41106a200341106a2903002208370300200241c8006a41086a200341086a2903002209370300200241086a22042008370300200241106a22052007370300200241186a220a20063703002002200329030037034820022009370300200041286a200141246a280200290300370300200041206a200a290300370300200041186a2005290300370300200041106a200429030037030020002002290300370308200042013703000f0b2000200229034837030820004201370300200141086a200341286a360200200041106a200241c8006a41086a290300370300200041186a200241c8006a41106a290300370300200041206a200241c8006a41186a290300370300200041286a200241c8006a41206a2903003703000f0b200141086a200341286a360200200241086a200241c8006a41086a290300370300200241106a200241c8006a41106a290300370300200241186a200241c8006a41186a290300370300200241206a200241c8006a41206a290300370300200220022903483703000b2000200229030037030820004201370300200041106a200241086a290300370300200041186a200241106a290300370300200041206a200241186a290300370300200041286a200241206a2903003703000f0b200042003703000f0b200141186a22042802002203200141146a280200460d022004200341586a220336020020032903004200510d01200241c8006a41206a200341206a2903002206370300200241c8006a41186a200341186a2903002207370300200241c8006a41106a200341106a2903002208370300200241c8006a41086a200341086a2903002209370300200241286a41086a22042008370300200241286a41106a22052007370300200241286a41186a220a20063703002002200329030037034820022009370328200041286a200141246a280200290300370300200041206a200a290300370300200041186a2005290300370300200041106a200429030037030020002002290328370308200042013703000f0b2001411c6a41013a0000200042003703000f0b2001411c6a41013a0000200042003703000f0b200042003703000f0b200042003703000b8c0204017f017e017f017e230041c0006b22022400102e2103200241086a220442003703002002420037030041f726410720021003200241306a41086a2004290300370300200220022903003703300240200241306a411041d02d410041001000417f460d00200242003703000240200241306a4110200241084100100041016a41084d0d0020022903002105200241286a200041286a290300370300200241206a200041206a290300370300200241186a200041186a290300370300200241106a200041106a290300370300200241086a200041086a29030037030020022000290300370300200520037c20022001103f200241c0006a24000f0b41c1214133102d000b41f4214122102d000bba0503047f017e087f230041e0006b22012400200141c0006a41086a220242003703002001420037034041f2224107200141c0006a1003200141086a2002290300370300200120012903403703000240024002402001411041d02d410041001000417f460d00200141003602400240410020014110200141c0006a41044100100022022002417f461b220341034d0d0020012802402204ad42287e2205422088a70d022005a72202417f4c0d03024002402002450d002002100122060d01101c000b410821060b200120043602142001200636021020014100360218024002402004450d002003410420034104491b2107200141c0006a41186a21084100210341002109034020014200370340410020014110200141c0006a41082007100022022002417f461b220241074d0d022001290340210520084200370300200141c0006a41106a220a4200370300200141c0006a41086a220b420037030020014200370340410020014110200141c0006a41202002410820024108491b20076a2207100022022002417f461b2202411f4d0d02200941016a21092002412020024120491b2102200141206a41186a220c2008290300370300200141206a41106a220d200a290300370300200141206a41086a220a200b29030037030020012001290340370320024020032001280214470d00200141106a106f200141106a41086a2802002103200128021021060b200220076a21072006200341286c6a2202200537030020022001290320370308200241206a200c290300370300200241186a200d290300370300200241106a200a290300370300200141106a41086a200341016a220336020020092004490d000b200128021021060b2006450d012000200129021437020420002006360200200141e0006a24000f0b2001280214450d00200610020b41c1214133102d000b41f4214122102d000b1064000b1065000bf40403057f017e037f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a220341003602002001420137031020002903002106200141106a41004108102720032003280200220241086a2207360200200220012802106a2006370000200141106a20074120102720032003280200220741206a22023602002007200128021022086a220341086a200041106a290000370000200341106a200041186a290000370000200341186a200041206a2900003700002003200041086a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220741003602002001200236022420012003360220200141206a41002002102720072007280200220920026a22033602002009200128022022076a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20072003101e1a2004200820036a220336020002402002450d00200710020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a220042003703002001420037032041f2224107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000b922305077f017e027f017e037f230041b0016b22022400200241003a005020012001280208220320012802002001280204200241d0006a41012003100041016a220341014b6a220436020802400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020034102490d0020022d0050220341074b0d03024020030e080005020404060703000b200241003a0050200141086a20042001280200200141046a280200200241d0006a41012004100041016a220341014b6a220436020020034102490d1e20022d00502203450d0a20034101470d1e200141046a280200210520024100360250200141086a4100200128020022062005200241d0006a41042004100022032003417f461b2207410420074104491b20046a2203360200200741034d0d1e20022802502208ad42187e2209422088a70d202009a72204417f4c0d1f2004450d1b20041001220a0d1c0c210b20004106360200200241b0016a24000f0b200241003a005041042107200141086a200420012802002205200141046a280200220b200241d0006a41012004100041016a220341014b6a220436020020034102490d1020022d0050220341034b0d10024020030e04000e0f10000b20024200370350200141086a41002005200b200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d1020022903502109410121070c0f0b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d0620022d00502203450d0420034101470d0620024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d06200229035021094202210c0c050b20004106360200200241b0016a24000f0b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d0820022d00502203450d0620034101470d08420221090c070b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d1120022d00502203450d0820034101470d1120024100360250200141086a410020072005200241d0006a41042004100022012001417f461b2201410420014104491b20046a360200200141034d0d1120022802502103420221090c200b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a2204360200024020034102490d004105210320022d0050220b41034b0d1d0240200b0e0400100e0f000b20024100360250200141086a410020072005200241d0006a41042004100022012001417f461b2201410420014104491b20046a360200200141034d0d1d20022802502101410121030c1f0b410521030c1c0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d01200229035021094201210c0b20004105360200200041086a200c370300200041106a2009370300200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b200141046a280200210320024100360250200141086a410020012802002003200241d0006a41042004100022032003417f461b2203410420034104491b20046a2204360200200341034d0d1320022802502203417f4c0d172003450d0e20031001220a450d16200a4100200310171a200141086a28020021040c0f0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b22014108200141084922011b20046a36020020010d012002290350210c420121090b20004101360200200041086a2009370300200041106a200c370300200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b200241d0006a200110bd0120024180016a41086a2203200241dc006a29020037030020024180016a41106a2204200241e4006a29020037030020024180016a41186a2207200241ec006a29020037030020024180016a41206a2205200241f4006a29020037030020024180016a41286a220b200241fc006a2802003602002002200229025437038001200228025022064106460d08200241206a41286a220a200b280200360200200241206a41206a220b2005290300370300200241206a41186a22052007290300370300200241206a41106a22072004290300370300200241206a41086a220420032903003703002002200229038001370320200241d0006a41286a200a280200360200200241d0006a41206a200b290300370300200241d0006a41186a2005290300370300200241d0006a41106a2007290300370300200241d0006a41086a200429030037030020022002290320370350413010012203450d1220032002290350370204200320063602002003410c6a200241d0006a41086a290300370200200341146a200241e0006a2903003702002003411c6a200241e8006a290300370200200341246a200241f0006a2903003702002003412c6a200241f8006a28020036020020022003360208200241003a0050200141086a2204200428020022042001280200200141046a280200200241d0006a41012004100041016a41014b22016a3602002001450d0720022d0050220141034f0d07420121090c170b20024200370350200141086a41002005200b200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0220022903502109410221070c010b20024100360250200141086a41002005200b200241d0006a41042004100022012001417f461b2201410420014104491b20046a36020041032107200141034d0d01200228025021060b20004102360200200041086a20073602002000410c6a2006360200200041106a2009370200200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0f20022903502109410321030c100b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0e20022903502109410421030c0f0b200241d0006a41186a220b4200370300200241d0006a41106a22064200370300200241d0006a41086a220a420037030020024200370350200141086a410020072005200241d0006a41202004100022012001417f461b2201412020014120491b20046a3602002001411f4d0d0220024180016a41186a2201200b29030037030020024180016a41106a2203200629030037030020024180016a41086a2204200a2903003703002002200229035037038001200b200129030037030020062003290300370300200a20042903003703002002200229038001370350410221032002411c6a41026a220420022d00523a0000200241086a41086a2207200241e7006a290000370300200241086a41106a2205200241d0006a411f6a2d00003a0000200220022f01503b011c2002200229005f3703082002280053210120022900572109200241046a41026a20042d00003a0000200241206a41086a2007290300370300200241206a41106a20052d00003a0000200220022f011c3b0104200220022903083703200c0f0b200241086a10220b20004106360200200241b0016a24000f0b200b20024180016a41186a290000370300200620024180016a41106a290000370300200a20024180016a41086a29000037030020022002290080013703500c0a0b4101210a0b200141086a200341002001280200200141046a280200200a20032004100022012001417f461b2201200120034b1b20046a3602000240200320014d0d00200a10020c040b200a450d032003ad22094220862009842109410121010c020b4104210a0b200220083602542002200a3602502002410036025802402008450d00200141086a21044101210d4100210b03402002410036028001200441002006200520024180016a41042003100022072007417f461b2207410420074104491b20036a220f36020002400240200741034d0d002002280280012203417f4c0d09024002402003450d00200310012207450d0a20074100200310171a0c010b410121070b2004200341002006200520072003200f100022052005417f461b2205200520034b1b200f6a3602000240200320054b0d002007450d012003ad22094220862009842109200141046a220e28020021052004280200210320024100360280012004200341002001280200200520024180016a41042003100022052005417f461b2205410420054104491b6a22063602000240200541034d0d002002280280012203417f4c0d0b024002402003450d00200310012205450d0c20054100200310171a200428020021060c010b410121050b2004200341002001280200200e2802002005200320061000220f200f417f461b220f200f20034b1b20066a36020002402003200f4b0d002005450d012003ad220c422086200c84210c200b2002280254470d04200241d0006a1076200241d0006a41086a280200210b2002280250210a0c040b200510020b2009a7450d010b200710020b200228025021040240200b450d00200b41186c21032004210103400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200341686a22030d000b0b2002280254450d04200410020c040b0240200a200b41186c6a22032009370204200320073602002003410c6a2005360200200341106a200c370200200241d0006a41086a200b41016a220b360200200d20084f0d00200d41016a210d20042802002103200e2802002105200128020021060c010b0b2002280250210a0b200a450d0120022902542109410221010b2000200136020420004100360200200041086a200a3602002000410c6a2009370200200041146a20022902503702002000411c6a200241d0006a41086a290200370200200041246a200241e0006a2902003702002000412c6a200241e8006a280200360200200241b0016a24000f0b20004106360200200241b0016a24000f0b1061000b1060000b101c000b1019000b0b0b200241086a41026a2204200241046a41026a2d00003a0000200241d0006a41086a2207200241206a41086a290300370300200241d0006a41106a2205200241206a41106a290300370300200220022f01043b010820022002290320370350024020034105470d0020004106360200200241b0016a24000f0b2002411c6a41026a220b20042d00003a000020024180016a41086a2204200729030037030020024180016a41106a22072005290300370300200220022f01083b011c2002200229035037038001200041086a20033a0000200041043602002000410c6a2001360000200041106a2009370000200020022f011c3b00092000410b6a200b2d00003a0000200041186a200229038001370000200041206a2004290300370000200041286a2007290300370000200241b0016a24000f0b200041033602002000410c6a2002290250370200200041146a200241d8006a2902003702002000411c6a200241e0006a290200370200200041246a200241e8006a2902003702002000412c6a200241f0006a28020036020020002003ad422086200141ff0171ad42088684200984370204200241b0016a24000be60201047f230041206b22022400200241003602082002420137030020024100412010272002280200200228020822036a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200341206a2204360208200220044120102720022802002203200228020822056a22042001290020370000200441086a200141286a290000370000200441106a200141306a290000370000200441186a200141386a2900003700002002200541206a220136020802402001417f4c0d00024002402001450d002001100122040d01101c000b410121040b200220013602142002200436021020024100360218200241106a41002001102720022002280218220420016a360218200420022802106a20032001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200310020b200241206a24000f0b1019000be70101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a10bf01200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020be00302057f017e230041206b220124000240410710012202450d002001200236021020014207370214200141106a4100410710272001280210200128021822036a220241002800d92e360000200141086a200341076a2203360200200241046a41002f00dd2e3b0000200241066a41002d00df2e3a00002001200129031037030020012003360218412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bd14b05067f017e057f047e047f230041a0076b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d00002203417f6a220441054b0d0002400240024002400240024020040e06000402030105000b200241f8006a41086a22042000410a6a290000370300200241f8006a41106a2205200041126a290000370300200241f8006a41186a22062000411a6a2900003703002002200041026a29000037037820002d0001450d21200241d8036a41186a2006290300370300200241d8036a41106a2005290300370300200241d8036a41086a2004290300370300200220022903783703d803410810012204450d43200220043602582002420837025c200241d8006a4100410810272002280258200228026022046a42f3cacdd3e38d9eba3a3700002002200441086a360260200241206a41086a200228026036020020022002290358370320412010012204450d43200220043602582002422037025c200241d8006a41004120102720022802582205200228026022066a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200641206a2201360260200228025c2106200241206a20022802282001102720022802202204200228022822076a20052001101e1a2002200720016a220136022802402006450d00200510020b20022802242105200241d8006a41086a220642003703002002420037035820042001200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200241d8036a412010042005450d38200410020c380b200241d8036a41286a200041306a290300370300200241d8036a41206a200041286a290300370300200241d8036a41186a200041206a290300370300200241d8036a41106a200041186a290300370300200241d8036a41086a200041106a2903003703002002200041086a2903003703d803200241d8036a200110ae0141002101410121040c400b200041086a2903004200510d20200041106a2903002108200241f0036a4200370300200241d8036a41106a4200370300200241d8036a41086a4200370300200242003703d8030240200241d8036a2001460d002001200241d8036a412010060d270b200241d8006a41086a220142003703002002420037035841ad0b4107200241d8006a1003200241c0006a41086a2204200129030037030020022002290358370340200241c0006a411020024190076a410041001000417f470d21200142003703002002420037035841ed2d4107200241d8006a10032004200129030037030020022002290358370340200241c0006a411041d02d410041001000417f460d22200241003602d803200241c0006a4110200241d8036a41044100100041016a41044d0d1a20022802d8030d23200220083703d803200241d8006a41086a220142003703002002420037035841a90c4107200241d8006a1003200241c0006a41086a2205200129030037030020022002290358370340200241c0006a4110200241d8036a4108100441012104200241013a00d803200142003703002002420037035841ad0b4107200241d8006a10032005200129030037030020022002290358370340200241c0006a4110200241d8036a410110040c370b200241086a2205200041106a2903003703002002200041086a29030037030020022d000022044103714101460d0520044102460d0320044103470d2320022d0001210920022802042105410810012206450d40200220063602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322066a42e4cab5d383cedcb73a3700002002200641086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378410410012206450d40200220063602d803200242043702dc03200241d8036a41004104102720022802d803220720022802e00322066a20053600002002200641046a22063602e00320022802dc03210a200241f8006a200228028001200610272002280278220b200228028001220c6a20072006101e1a2002200c20066a2206360280010240200a450d00200710020b200228027c2107200241d8006a41086a220a420037030020024200370358200b2006200241d8006a1003200241c0006a41086a200a29030037030020022002290358370340200241c0006a411020024190076a410041001000210602402007450d00200b10020b2006417f460d2620011043210820011044420020087d510d27200241e4036a200141086a290000370200200241ec036a200141106a290000370200200241f4036a200141186a290000370200200220053602d803200220012900003702dc03410810012206450d40200220063602782002420837027c200241f8006a410041081027200228027820022802800122066a42e4cab5d3e3ee9bba3a3700002002200641086a36028001200241d8006a41086a220620022802800136020020022002290378370358200241f8006a200241d8036a1045200228027c210c2002280278210b200241d8006a2006280200200228028001220710272002280258220a2006280200220d6a200b2007101e1a2006200d20076a22073602000240200c450d00200b10020b200228025c2106200241d8006a41086a220b420037030020024200370358200a2007200241d8006a1003200241c0006a41086a200b29030037030020022002290358370340200241c0006a411020024190076a410041001000210702402006450d00200a10020b2007417f470d3a20024190076a20051042200241d8036a41186a2207200141186a290000370300200241d8036a41106a220b200141106a290000370300200241d8036a41086a220a200141086a290000370300200220012900003703d8032002280298072206200228029407460d170c390b200241086a2204200041116a290000370300200241106a2205200041196a290000370300200241186a2206200041216a2900003703002002200041096a290000370300200041086a2d000041037122034101460d0520034103460d0320034102470d23200241d8006a41086a220342003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200329030037030020022002290358370340200241c0006a411041d02d410041001000417f460d122002421037027c2002200241c0006a360278200241d8036a200241f8006a103a20022802d8032206450d27200220022902dc0322083702242002200636022020062008422088a7220741057422036a210520034105754104490d06200621040340200120042203460d182003200141201006450d18200341206a22042001460d182004200141201006450d18200441206a22042001460d182004200141201006450d18200441206a22042001460d182004200141201006450d182005200441206a22046b41057541034b0d000b20034180016a22032005470d070c080b200241f8036a200041246a280200360200200241f0036a2000411c6a290200370300200241e8036a200041146a290200370300200241e0036a2000410c6a2902003703002002200041046a2902003703d803200241d8036a200110db014100210541012104410121010c3d0b200041106a2d00004102470d32419cc200103b000b200241d8036a20022802042205103720022802e003450d25200241d8006a41106a2206200241d8036a41106a290300370300200241d8006a41086a200241d8036a41086a290300370300200220022903d8033703582001200229035810b201450d26200241f8006a41186a2207200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a2900003703002002200129000037037820062802002201200241e4006a280200460d110c340b200241d8006a41086a220342003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a2003290300370300200220022903583703404100210b200241c0006a411041d02d410041001000417f460d052002421037027c2002200241c0006a360278200241d8036a200241f8006a103a20022802d8032205450d2c2005200241e0036a280200220941057422036a210720022802dc03210b20034105754104490d0620052106410021030340200120062204460d0a2003200420014120100622064100476a21032006450d0a200441206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a200641206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a200641206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a2007200641206a22066b41057541034b0d000b20044180016a22042007470d070c080b20052903002108200220022802042206360220200241d8006a41086a220442003703002002420037035841a2294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340200241c0006a411041d02d410041001000417f460d25200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1420022903d8032008560d262001200810b201450d27200241d8006a41086a220442003703002002420037035841a9294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340410021050240200241c0006a411041d02d410041001000417f460d00200241003602d803200241c0006a4110200241d8036a41044100100041016a41044d0d1820022802d80321050b2002200541016a3602d803200241d8006a41086a220442003703002002420037035841a9294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340200241c0006a4110200241d8036a41041004412010012204450d3a200241e4036a428180808010370200200141086a2207290000210e200141106a220b290000210f20012900002110200441186a200141186a220a290000370000200441106a200f370000200441086a200e37000020042010370000200220083703d803200220043602e0032005200241d8036a10df01200241d8006a1036200241d8036a200610e001200241f8006a41186a2206200a290000370300200241f8006a41106a200b290000370300200241f8006a41086a20072900003703002002200129000037037820022802602204200228025c460d100c310b200041306a2903002108200241206a41186a2006290300370300200241206a41106a2005290300370300200241206a41086a20042903003703002002200229030037032041d02d200110c60122112008540d2741d02d200241206a10c601210e410810012203450d39200220033602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322036a42f3e885d3a3ec9bb73a3700002002200341086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378412010012203450d39200220033602d803200242203702dc03200241d8036a41004120102720022802d803220420022802e00322056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a22033602e00320022802dc032106200241f8006a200228028001200310272002280278220520022802800122076a20042003101e1a2002200720036a22033602800102402006450d00200410020b200228027c21044200210f200241d8006a41086a220642003703002002420037035820052003200241d8006a1003200241c0006a41086a2006290300370300200220022903583703400240200241c0006a411041d02d410041001000417f460d00200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1520022903d803210f0b02402004450d00200510020b410810012203450d39200220033602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322036a42f3e885d3a3ec9bb73a3700002002200341086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378412010012203450d39200220033602d803200242203702dc03200241d8036a41004120102720022802d803220420022802e00322056a22032002290320370000200341086a200241206a41086a290300370000200341106a200241206a41106a290300370000200341186a200241206a41186a2903003700002002200541206a22033602e00320022802dc032106200241f8006a200228028001200310272002280278220520022802800122076a20042003101e1a2002200720036a22033602800102402006450d00200410020b200228027c210442002110200241d8006a41086a220642003703002002420037035820052003200241d8006a1003200241c0006a41086a2006290300370300200220022903583703400240200241c0006a411041d02d410041001000417f460d00200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1620022903d80321100b02402004450d00200510020b200f2010560d28200e20087c220f200e580d2941a00610012203450d392003200241d8036a41b803101e220341003b01be03200341003602b803200341c0036a200241f8006a41e002101e1a200241c8006a4200370300200241d4006a41d43c3602002002200336024420024100360240200241d02d360250200241206a2001460d0b2001200241206a41201006450d0b2002417f360240200241d8036a41186a2207200141186a290000370300200241d8036a41106a220b200141106a290000370300200241d8036a41086a220a200141086a290000370300200220012900003703d8032002200241c0006a41047222043602602002200241c0006a41086a2802003602582002200228024436025c200241f8006a200241d8006a200241d8036a10970141012103200241f8006a41106a2802002105200241f8006a410c6a2802002109200241f8006a41086a2802002106200228027c210c024020022802784101470d00200241d8006a41186a2007290300370300200241d8006a41106a200b290300370300200241d8006a41086a200a290300370300200220022903d803370358410021030b41900210012201450d39201120087d21082001200241d8036a418802101e220141003b018e0220014100360288022003450d09200220013602782002420037027c2006200541286c6a2101200241d8036a200241f8006a109801200241d8036a1099010c0a0b200622032005460d010b200620074105746a2104034020012003460d102003200141201006450d102004200341206a2203470d000b0b200241d8036a41186a200141186a290000370300200241d8036a41106a200141106a290000370300200241d8036a41086a200141086a290000370300200220012900003703d803200241d8036a210320072008a7460d0a0c290b41012105410021094100210341000d270c040b41002103200522042007460d010b034020012004460d022003200420014120100622064100476a21032006450d022007200441206a2204470d000b0b4100450d010c240b41010d230b41dc3b103b000b200241f4036a200241e0006a290300370200200241fc036a200241e8006a29030037020020024184046a200241f0006a290300370200200220063602dc032002200c3602d803200220093602e003200220053602e4032002200241c0006a410c6a3602e803200220022903583702ec0320024198016a42003703002002410036028801200242003703782002200136029401200241d8036a200241f8006a109a0121010b20014201370300200120083703082002417f360240200241d8036a41186a2201200241206a41186a290300370300200241d8036a41106a2206200241206a41106a290300370300200241d8036a41086a2207200241206a41086a290300370300200220022903203703d803200220043602602002200241c0006a41086a2802003602582002200228024436025c200241f8006a200241d8006a200241d8036a10970141012103200241f8006a41106a2802002104200241f8006a410c6a280200210b200241f8006a41086a2802002105200228027c210a024020022802784101470d00200241d8006a41186a2001290300370300200241d8006a41106a2006290300370300200241d8006a41086a2007290300370300200220022903d803370358410021030b41900210012201450d2e2001200241d8036a418802101e220141003b018e022001410036028802024002402003450d00200220013602782002420037027c2005200441286c6a2101200241d8036a200241f8006a109801200241d8036a1099010c010b200241f4036a200241e0006a290300370200200241fc036a200241e8006a29030037020020024184046a200241f0006a290300370200200220053602dc032002200a3602d8032002200b3602e003200220043602e4032002200241c0006a410c6a3602e803200220022903583702ec0320024198016a42003703002002410036028801200242003703782002200136029401200241d8036a200241f8006a109a0121010b200142013703002001200f370308200241003602400b200241d8036a200241c0006a200241206a109b010240024020022802e0032201450d0020022802d80322032001200241206a200241c0006a108e01450d010b200241c8006a290300210820022802442101024020022802dc03450d0020022802d80310020b2001450d22200220083702dc03200220013602d80320024190076a200241d8036a10c7010c220b200241c0006a4104722101024020022802dc03450d00200310020b200241f8006a41086a200141086a28020036020020022001290200370378200241d8036a200241f8006a109d01200241d8036a109e010c210b2002410036022820024201370320200241d8036a41186a200141186a290000370300200241d8036a41106a200141106a290000370300200241d8036a41086a200141086a290000370300200220012900003703d803200241d8036a21030b200241206a107c200241286a2802002107200228022021060c1e0b200241e0006a107c200241e8006a28020021010c220b200241d8006a1074200241e0006a28020021040c200b20024190076a107c20024190076a41086a28020021060c210b41c43b103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b418431103b000b41dc32103b000b418c33103b000b41f4214122102d000b41a433103b000b419cc000103b000b41f43b103b000b41f432103b000b41fcc000103b000b4194c100103b000b41c1214133102d000b41b0294124102d000b41e4c000103b000b41f4214122102d000b41b4c000103b000b41ccc000103b000b418c3c103b000b41a43c103b000b41bc3c103b000b41c1214133102d000b200241d8036a41186a2206200520034105746a220341186a2207290000370300200241d8036a41106a220a200341106a220c290000370300200241d8036a41086a220d200341086a2212290000370300200220032900003703d80320052009417f6a22094105746a22042900002108200441086a2213290000210e200441106a2214290000210f2007200441186a2215290000370000200c200f3700002012200e37000020032008370000200420022903d8033700002013200d2903003700002014200a290300370000201520062903003700002002200b36027c200220053602782002200936028001200241d8036a200241f8006a10a20120022802e003210420022802d8032103200241d8006a41086a220642003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200320041004024020022802dc03450d00200310020b0240200b450d00200510020b200241d8006a41086a220342003703002002420037035841c81d4107200241d8006a1003200241c0006a41086a20032903003703002002200229035837034002400240200241c0006a411041d02d410041001000417f460d00200242003703d80302400240200241c0006a4110200241d8036a41084100100041016a41084d0d0020022903d8032108200241d8006a41086a220342003703002002420037035841d21e4107200241d8006a1003200241c0006a41086a200329030037030020022002290358370340200241c0006a411041d02d410041001000417f460d03200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d01200120022903d80320087c10c5010c050b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b200341086a2900002108200341106a290000210e200341186a290000210f200620074105746a22042003290000370000200441186a200f370000200441106a200e370000200441086a2008370000200241206a41086a2203200741016a360200200241f8006a41086a200328020036020020022002290320370378200241d8036a200241f8006a10a20120022802e003210420022802d8032103200241d8006a41086a220542003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200529030037030020022002290358370340200241c0006a4110200320041004024020022802dc03450d00200310020b0240200228027c450d00200228027810020b2001427f10c5010b20002d000021030b410121040b410121010c070b2002280258200441d8006c6a220120022903d8033703002001200536023020012002290378370234200141086a200241d8036a41086a2205290300370300200141106a200241d8036a41106a290300370300200141186a200241d8036a41186a290300370300200141206a200241d8036a41206a290300370300200141286a200241d8036a41286a2903003703002001413c6a200241f8006a41086a290300370200200141c4006a200241f8006a41106a290300370200200141cc006a2006290300370200200241d8006a41086a2201200441016a36020020052001280200360200200220022903583703d803200241d8036a103e20022802d8032106024020052802002201450d00200141d8006c210420062101034020011038200141d8006a2101200441a87f6a22040d000b0b024020022802dc03450d00200610020b200241206a10220c050b200241d8006a41106a2206200141016a360200200241d8006a41086a220b28020020014105746a22012002290378370000200141086a200241f8006a41086a290300370000200141106a200241f8006a41106a290300370000200141186a2007290300370000200241d8036a41106a2006290300370300200241d8036a41086a200b290300370300200220022903583703d8032005200241d8036a10df010c020b20024190076a41086a220c200641016a360200200a2903002108200b290300210e2007290300210f20022802900720064105746a220620022903d803370000200641186a200f370000200641106a200e370000200641086a2008370000200241206a41086a200c2802003602002002200229039007370320410810012206450d06200220063602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322066a42e4cab5d3e38e9db93a3700002002200641086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378410410012206450d06200220063602d803200242043702dc03200241d8036a41004104102720022802d803220720022802e00322066a20053600002002200641046a22063602e00320022802dc03210a200241f8006a200228028001200610272002280278220b200228028001220c6a20072006101e1a2002200c20066a220c360280010240200a450d00200710020b200228027c2107200241d8036a200241206a10a20120022802e003210a20022802d8032106200241d8006a41086a220d420037030020024200370358200b200c200241d8006a1003200241c0006a41086a200d29030037030020022002290358370340200241c0006a41102006200a1004024020022802dc03450d00200610020b02402007450d00200b10020b2002280224450d00200228022010020b200241e4036a200141086a290000370200200241ec036a200141106a290000370200200241f4036a200141186a290000370200200220053602d803200220012900003702dc03200220093a0020410810012201450d05200220013602782002420837027c200241f8006a410041081027200228027820022802800122016a42e4cab5d3e3ee9bba3a3700002002200141086a36028001200241d8006a41086a220120022802800136020020022002290378370358200241f8006a200241d8036a1045200228027c210b20022802782106200241d8006a200128020020022802800122051027200228025822072001280200220a6a20062005101e1a2001200a20056a22053602000240200b450d00200610020b200228025c2101200241d8006a41086a220642003703002002420037035820072005200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200241206a410110042001450d002007100220044101460d010c020b20044101470d010b200241047210220b41012101410021040b410121050b2003411d74411d75417f4a0d0102400240200341077122034104460d0020034105470d012001450d03200041086a2d00004101470d03200041106a280200450d032000410c6a2802001002200241a0076a24000f0b2004450d02200041086a2d00004101470d022000410c6a104b200241a0076a24000f0b2005450d01200041046a2d00004101470d01200041086a104b200241a0076a24000f0b101c000b200241a0076a24000b080041ec3a1054000b080041ec3a1054000bfe2507097f027e0a7f027e067f017e0d7f230041d0026b220424000240024020014115490d0041012105410121060240024002400340200620057121070340024002402003450d0020054101710d012000200110e1012003417f6a21030c010b2000200110e201200441d0026a24000f0b2001410276220641036c2108200641017421094100210a024020014132490d0020082008417f6a220b2000200841286c6a220c41586a290300220d200c290300220e54220a1b220f200841016a200b2008200a1b200d200e200a1b220d200c41286a290300220e5422101b2000200f41286c6a290300200e200d20101b5422111b210820092009417f6a220c2000200941286c6a220b41586a290300220d200b290300220e54220b1b22122009410172220f200c2009200b1b200d200e200b1b220d2000200f41286c6a290300220e54220f1b2000201241286c6a290300200e200d200f1b5422131b210920062006417f6a22142000200641286c6a221241586a290300220d2012290300220e54220c1b2215200641016a20142006200c1b200d200e200c1b220d201241286a290300220e5422121b2000201541286c6a290300200e200d20121b5422141b210641024101200c1b200c20121b20146a200b6a200f6a20136a200a6a20106a20116a210a0b200a2000200641286c6a290300220d2000200941286c6a290300220e54220c6a200d200e200c1b220d2000200841286c6a290300220e54220b6a210a0240024002400240200020092006200c1b221641286c6a290300200e200d200b1b5a0d00200a41016a220a410b4b0d012007200a45714101470d030c020b200820062009200c1b200b1b21162007200a45714101470d020c010b2001417f6a2117024020014101762208450d002000200141286c6a41586a2106200021090340200441a8016a41206a220c200941206a220a290300370300200441a8016a41186a220b200941186a2210290300370300200441a8016a41106a220f200941106a2212290300370300200441a8016a41086a2211200941086a2213290300370300200420092903003703a801200641086a2214290300210d200641106a2215290300210e200641186a221829030021192006290300211a200a200641206a221b290300370300201020193703002012200e3703002013200d3703002009201a370300201b200c2903003703002018200b2903003703002015200f29030037030020142011290300370300200620042903a801370300200941286a2109200641586a21062008417f6a22080d000b0b201720166b211620074101714101470d010b2000200110e3010d070b024002400240024002402002450d00201620014f0d092000201641286c6a22062903002002290300540d00200441a8016a41206a220a200041206a2212290300370300200441a8016a41186a220b200041186a2211290300370300200441a8016a41106a2210200041106a2213290300370300200441a8016a41086a220f200041086a2209290300370300200420002903003703a801200641086a2208290300210d200641106a220c290300210e200641186a221429030021192006290300211a2012200641206a2215290300370300201120193703002013200e3703002009200d3703002000201a3703002015200a2903003703002014200b290300370300200c20102903003703002008200f290300370300200620042903a8013703002000290300210d200441086a41186a221c2012290300370300200441086a41106a221d2011290300370300200441086a41086a221e201329030037030020042009290300370308200041286a21144100210841002001417f6a22094f0d010c020b201620014f0d07200441a8016a41206a2224200041206a2205290300370300200441a8016a41186a2225200041186a2226290300370300200441a8016a41106a2227200041106a2228290300370300200441a8016a41086a2229200041086a222a290300370300200420002903003703a8012000201641286c6a2206290300210d200641086a2209290300210e200641106a22082903002119200641186a220c290300211a2005200641206a220a2903003703002026201a37030020282019370300202a200e3703002000200d370300200a2024290300370300200c20252903003703002008202729030037030020092029290300370300200620042903a8013703002000290300210d200441086a41186a222b2005290300370300200441086a41106a222c2026290300370300200441086a41086a222d20282903003703002004202a2903003703082001417f6a210941002120200041286a2208210602400340200d20062903005a0d01200641286a2106202041016a22202009490d000b0b200921070240200920204d0d002000200141286c6a41586a2106200921070340200d2006290300540d01200641586a21062007417f6a220720204b0d000b0b20072020490d0620092007490d032008200741286c6a210b41800121164100210a410021154100210c4100211441800121172008202041286c6a222e21180340200b20186b220641286e21090240024002400240024002400240200641a7d0004b221f0d00200941807f6a20092015200a492014200c4922087222101b21062010450d012017200620081b21172006201620081b21160b2014200c470d020c010b2006200641017622176b21162014200c470d010b2017450d0141002106200441286a2214210c201821090340200c20063a0000200c200d20092903005a6a210c200941286a2109200641016a22062017490d000b0b2015200a470d020c010b200441286a220c21142015200a470d010b02402016450d00200b41586a210641002109200441a8016a2215210a0340200a20093a0000200a200d2006290300546a210a200641586a2106200941016a22092016490d000c020b0b200441a8016a220a21150b0240200a20156b2206200c20146b2209200920064b1b221b450d00200441a8026a41206a2222201820142d000041286c6a220641206a290300370300200441a8026a41186a221c200641186a290300370300200441a8026a41106a221d200641106a290300370300200441a8026a41086a221e200641086a290300370300200420062903003703a802201820142d000041286c6a2206200b20152d00002210417f7341286c6a2209290300370300200641206a200941206a290300370300200641186a200941186a290300370300200641106a200941106a290300370300200641086a200941086a2903003703000240201b4101460d00410021080340200b2010417f7341807e7241286c6a22092018201420086a41016a2d000041286c6a2206290300370300200941206a200641206a220f290300370300200941186a200641186a2212290300370300200941106a200641106a2211290300370300200941086a200641086a22132903003703002006200b201520086a41016a2d00002210417f7341286c6a2209290300370300200f200941206a2903003703002012200941186a2903003703002011200941106a2903003703002013200941086a290300370300200841026a2106200841016a220f21082006201b490d000b2015200f6a21152014200f6a21140b200920042903a802370300200941206a2022290300370300200941186a201c290300370300200941106a201d290300370300200941086a201e290300370300201541016a2115201441016a21140b2018201741286c6a20182014200c461b2118200b410020166b41286c6a200b2015200a461b210b201f0d000b024002402014200c4f0d00200b41586a2106200c21080340200441a8026a41206a220a20182008417f6a22082d000041286c6a220941206a2210290300370300200441a8026a41186a220f200941186a2212290300370300200441a8026a41106a2211200941106a2213290300370300200441a8026a41086a2215200941086a221b290300370300200420092903003703a802200641086a2216290300210e200641106a22172903002119200641186a221f290300211a200629030021212010200641206a22222903003703002012201a37030020132019370300201b200e370300200920213703002022200a290300370300201f200f2903003703002017201129030037030020162015290300370300200620042903a802370300200641586a210620142008490d000b200b2014200c6b41286c6a21180c010b20182106200a21082015200a4f0d0003402008417f6a22082d00002109200441a8026a41206a220c200641206a2210290300370300200441a8026a41186a220f200641186a2212290300370300200441a8026a41106a2211200641106a2213290300370300200441a8026a41086a2214200641086a221b290300370300200420062903003703a802200b2009417f7341286c6a2209290300210e200941086a22162903002119200941106a2217290300211a200941186a221f29030021212010200941206a2222290300370300201220213703002013201a370300201b20193703002006200e3703002022200c290300370300201f200f2903003703002017201129030037030020162014290300370300200920042903a802370300200641286a210620152008490d000b2018200a20156b41286c6a21180b2000200d3703002005202b2903003703002026202c2903003703002028202d290300370300200020042903083703080240024020012018202e6b41286e20206a22094d0d002024200529030037030020252026290300370300202720282903003703002029202a290300370300200420002903003703a8012000200941286c6a2206290300210d200641086a2208290300210e200641106a220c2903002119200641186a220a290300211a2005200641206a220b2903003703002026201a37030020282019370300202a200e3703002000200d370300200b2024290300370300200a2025290300370300200c202729030037030020082029290300370300200620042903a801370300200120096b2208450d0120082009200920084b1b210c2001410376210a200641286a210b0240024020092008417f6a22014f0d00200020092002200310c40120062102200b21000c010b200b20012006200310c401200921010b200c200a4f2105200720204d2106200141154f0d070c0b0b41b4c20020092001103c000b41c4c200103b000b410021230c010b410621230b03400240024002400240024002400240024002400240024002400240024002400240024020230e0a04080905060001020307070b200a2014200841286c6a220c41206a2215290300370300200b200c41186a22182903003703002010200c41106a221b290300370300200f200c41086a22162903003703002004200c2903003703a801200641086a2217290300210e200641106a221f2903002119200641186a2220290300211a200629030021212015200641206a22222903003703002018201a370300201b20193703002016200e370300200c20213703002022200a2903003703002020200b290300370300201f20102903003703002017200f290300370300200620042903a801370300200841016a22082009417f6a22094f0d0d410621230c100b2014200841286c6a2106410721230c0f0b2006290300200d540d0a410821230c0e0b200641286a2106200841016a22082009490d08410021230c0d0b200820094f0d06410321230c0c0b2000200941286c6a2106410421230c0b0b2006290300200d5a0d09410921230c0a0b200641586a210620082009417f6a2209490d07410121230c090b2000200d3703002012201c2903003703002011201d2903003703002013201e290300370300200020042903083703082001200841016a2206490d01410221230c080b2000200641286c6a2100200120066b220141154f0d090c0e0b200620011055000b410121230c050b410721230c040b410021230c030b410021230c020b410421230c010b410521230c000b0b0b0b200720091029000b202020071055000b41b4c20020162001103c000b41dcc20020162001103c000b20014102490d002000210a410121090340200941016a210c02402000200941286c6a220641586a22082903002006290300220d5a0d00200441086a41186a2210200641206a220b290300370300200441086a41106a220f200641186a2212290300370300200441086a41086a2211200641106a22132903003703002004200629030837030820062008290300370300200641086a200841086a2903003703002013200841106a2903003703002012200841186a290300370300200b200841206a2903003703004100210b0240024002402009417f6a2208450d00200a21060340200641586a2209290300200d5a0d02200641206a200641786a290300370300200641186a200641706a290300370300200641106a200641686a290300370300200641086a200641606a29030037030020062009290300370300200921062008417f6a22080d000b200921060c020b2000200841286c6a21060c010b2008210b0b2006200d3703002000200b41286c6a22062004290308370308200641206a2010290300370300200641186a200f290300370300200641106a20112903003703000b200a41286a210a200c2109200c2001490d000b0b200441d0026a24000b9a0301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3a3ec9bb73a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220036021802402005450d00200410020b2002280214210420022001370308200241206a41086a220542003703002002420037032020032000200241206a1003200241106a41086a200529030037030020022002290320370310200241106a4110200241086a4108100402402004450d00200310020b200241306a24000f0b101c000bc70302057f017e230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42f3e885d3a3ac98b63a3700002002200341086a360218200241086a200228021836020020022002290310370300412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b2002280204210442002107200241106a41086a220542003703002002420037031020032001200241106a1003200241086a200529030037030020022002290310370300024002402002411041d02d410041001000417f460d002002420037031020024110200241106a41084100100041016a41084d0d01200229031021070b02402004450d00200310020b200241206a240020070f0b41c1214133102d000b101c000ba11105027f017e0e7f017e0b7f230041b0036b2202240020024188016a41086a2203200141086a2802003602002002200129020037038801200241086a20024188016a109d01200241306a41206a200241086a41206a280200360200200241306a41186a200241086a41186a290300370300200241306a41106a200241086a41106a290300370300200241306a41086a200241086a41086a2903003703002002200229030837033020024188016a200241306a10c8010240024020022903a80122044202510d00200241f0016a4104722105200241c0016a210620024188016a41206a2107200241b0016a2108200241b8016a2109200241bc016a210a20024194016a210b2002419c016a210c200241ac016a210d0340200241e8006a41186a220120024188016a41186a220e290300370300200241e8006a41106a220f20024188016a41106a2210290300370300200241e8006a41086a22112003290300370300200241d8006a41086a2212200641086a2903003703002002200229038801370368200220062903003703582008290300211320092802002114200a2802002115200241d0016a41186a22162001290300370300200241d0016a41106a2217200f290300370300200241d0016a41086a22182011290300370300200220022903683703d001200241f0016a41086a2012290300370300200220022903583703f001024020044201520d00410810012201450d0320022001360288012002420837028c0120024188016a41004108102720032003280200220141086a36020020012002280288016a42f3e885d3a3ac98b63a370000200241a8026a41086a2201200328020036020020022002290388013703a80241201001220f450d032002200f360288012002422037028c0120024188016a41004120102720032003280200221141206a220f360200201120022802880122126a221120022903d001370000201141086a2018290300370000201141106a2017290300370000201141186a2016290300370000200228028c012119200241a8026a2001280200200f102720022802a80222112001280200221a6a2012200f101e1a2001201a200f6a220f36020002402019450d00201210020b20022802ac022101200220133703880120024190036a41086a2212420037030020024200370390032011200f20024190036a100320024180036a41086a201229030037030020022002290390033703800320024180036a411020024188016a410810042001450d00201110020b024002402014450d00200320022802f0013602002002201536028c012002201436028801200241d0016a20024188016a10c9014101211b2015450d01201410020c010b4100211b0b2003200541086a280200360200200220052902003703880120024180026a20024188016a109801200241a8026a41206a20024180026a41206a280200360200200241a8026a41186a20024180026a41186a290300370300200241a8026a41106a20024180026a41106a290300370300200241a8026a41086a20024180026a41086a29030037030020022002290380023703a80220024188016a200241a8026a10ca010240200228028801450d000340200241d0026a41086a2201200328020036020020022002290388013703d002200b280200211120102802002112200c2802002119200241e0026a41086a220f2001280200360200200220022903d0023703e002024002402011450d00200241f0026a41086a2019360200200220123602f402200220113602f002200e20162903003703002010201729030037030020032018290300370300200720022903e002370200200741086a200f280200360200200220022903d00137038801410810012201450d062002200136029003200242083702940320024190036a41004108102720024190036a41086a22012001280200220f41086a360200200f2002280290036a42f3e885d3b38eddb73a37000020024180036a41086a220f200128020036020020022002290390033703800320024190036a20024188016a10cb01200228029403211c200228029003211a20024180036a200f280200200128020022191027200228028003221d200f280200221e6a201a2019101e1a200f201e20196a221e3602000240201c450d00201a10020b200228028403211a200241a0036a200241f0026a1051200241a0036a41086a280200211c20022802a0032119200142003703002002420037039003201d201e20024190036a1003200f200129030037030020022002290390033703800320024180036a41102019201c1004024020022802a403450d00201910020b0240201a450d00201d10020b0240200d280200450d00200728020010020b2012450d01201110020c010b200720022903e002370200200e20162903003703002010201729030037030020032018290300370300200741086a200f280200360200200220022903d00137038801410810012201450d052002200136029003200242083702940320024190036a41004108102720024190036a41086a22012001280200220f41086a360200200f2002280290036a42f3e885d3b38eddb73a37000020024180036a41086a220f200128020036020020022002290390033703800320024190036a20024188016a10cb01200228029403211a200228029003211220024180036a200f2802002001280200221110272002280280032219200f280200221d6a20122011101e1a200f201d20116a22113602000240201a450d00201210020b20022802840321122001420037030020024200370390032019201120024190036a1003200f200129030037030020022002290390033703800320024180036a4110100502402012450d00201910020b200d280200450d00200728020010020b20024188016a200241a8026a10ca012002280288010d000b0b200241a8026a1099010240201b201445720d002015450d00201410020b20024188016a200241306a10c801200729030022044202520d000b0b200241306a109e01200241b0036a24000f0b101c000bc10b03087f017e027f230041d0016b220224000240024020012802202203450d00200141206a2003417f6a36020020012802082104200128020c2203200128020422052f01be034f0d01200241306a41186a2206200520034105746a220741d8036a290000370300200241306a41106a2208200741d0036a290000370300200241306a41086a2209200741c8036a2900003703002002200741c0036a290000370330200141046a2005360200200141086a20043602002001410c6a200341016a360200200241d0006a41206a22072005200341286c6a220341206a290300370300200241d0006a41186a2205200341186a290300370300200241d0006a41106a2204200341106a290300370300200241d0006a41086a2201200341086a29030037030020022003290300370350200241f8006a41186a2006290300370300200241f8006a41106a2008290300370300200241f8006a41086a2009290300370300200241f8006a41286a2001290300370300200241a8016a2004290300370300200241b0016a2005290300370300200241b8016a20072903003703002002200229033037037820022002290350370398012000200241f8006a41c800101e1a200241d0016a24000f0b20004202370320200241d0016a24000f0b200128020021070240024020052802b8032203450d0020053201bc03210a2002200336027c2002200741016a22073602782002200a4220862004ad84220a370380010c010b2004ad210a410021030b20051002200241106a220820033602002002200736020c02400240200a422088a7220520032f01be034f0d00200241186a2005360200200241146a200a3e020020024100360208200241086a410472210b200241206a21070c010b200241146a2209200a37020020024101360208200aa72104200241086a410472210b200241186a210c2003210503400240024020032802b8032206450d00200741016a210720033201bc034220862004ad84210a200621030c010b2004ad210a410021030b024020051002200820033602002002200736020c0240200a422088a7220520032f01be034f0d00200c20053602002009200aa72204360200200241003602082003210541000d020c010b2009200a370200200aa72104200241013602082003210541010d010b0b200241206a21070b2007200b290200370200200741086a200b41086a290200370200200241306a41086a20022802242206200228022c22084105746a220341c8036a290000370300200241306a41106a200341d0036a290000370300200241306a41186a200341d8036a2900003703002002200341c0036a290000370330200241d0006a41206a2006200841286c6a220341206a290300370300200241d0006a41186a200341186a290300370300200241d0006a41106a200341106a290300370300200241d0006a41086a200341086a290300370300200220032903003703502007280200210920022802282105200241f8006a41086a2204200620084102746a41a4066a280200220736020020024184016a2206200536020020022009417f6a220336027c20022003410047360278024002402003450d002009417e6a2103200241f8006a41047221080340200420072802a0062207360200200620053602002002200336027c200220034100473602782003417f6a2203417f470d000c020b0b200241f8006a41047221080b200120082902003702002001410c6a4100360200200141086a200841086a280200360200200241f8006a41186a200241306a41186a290300370300200241f8006a41106a200241306a41106a290300370300200241f8006a41086a200241306a41086a290300370300200241a0016a200241d0006a41086a290300370300200241a8016a200241d0006a41106a290300370300200241b0016a200241d0006a41186a290300370300200241b8016a200241f0006a2903003703002002200229033037037820022002290350370398012000200241f8006a41c800101e1a200241d0016a24000bb30301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3b3ec9bb23a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220636021802402005450d00200410020b200228021421042002200110512002280208210120022802002100200241206a41086a220542003703002002420037032020032006200241206a1003200241106a41086a200529030037030020022002290320370310200241106a411020002001100402402002280204450d00200010020b02402004450d00200310020b200241306a24000f0b101c000bba0803057f017e057f230041f0006b220224000240024020012802202203450d00200141206a2003417f6a36020020012802082104200128020c2203200128020422052f018e024f0d01200141046a2005360200200141086a20043602002001410c6a200341016a360200200241086a220620052003410c6c6a220341086a28020036020020022003290200370300200241c8006a41086a22052006280200360200200241dc006a2003418c016a280200360200200020022903002207370200200220034184016a290200370254200041086a2005290300370200200041106a200241c8006a41106a29030037020020022007370348200241f0006a24000f0b20004100360200200241f0006a24000f0b20012802002106024002402005280288022203450d00200532018c0221072002200336024c2002200641016a2206360248200220074220862004ad8422073703500c010b2004ad2107410021030b20051002200241086a2208200336020020022006360204024002402007422088a7220520032f018e024f0d00200241106a20053602002002410c6a20073e02002002410036020020024104722109200241186a21060c010b2002410c6a220a2007370200200241013602002007a7210420024104722109200241106a210b20032105034002400240200328028802220c450d00200641016a2106200332018c024220862004ad842107200c21030c010b2004ad2107410021030b024020051002200820033602002002200636020402402007422088a7220520032f018e024f0d00200b2005360200200a2007a72204360200200241003602002003210541000d020c010b200a20073702002007a72104200241013602002003210541010d010b0b200241186a21060b20062009290200370200200641086a200941086a290200370200200241286a41086a200228021c220c2002280224220a410c6c6a220341086a28020036020020022003290200370328200241386a41086a2003418c016a280200360200200220034184016a2902003703382006280200210820022802202105200241c8006a41086a2204200c200a4102746a4194026a2802002206360200200241c8006a410c6a220c200536020020022008417f6a220336024c20022003410047360248024002402003450d002008417e6a2103200241c8006a4104722108034020042006280290022206360200200c20053602002002200336024c200220034100473602482003417f6a2203417f470d000c020b0b200241c8006a41047221080b200120082902003702002001410c6a4100360200200141086a200841086a280200360200200241c8006a41086a2203200241286a41086a280200360200200241dc006a200241386a41086a28020036020020002002290328220737020020022002290338370254200041086a2003290300370200200041106a200241c8006a41106a29030037020020022007370348200241f0006a24000bda0201057f230041206b22022400200241003602082002420137030020024100412010272002280200200228020822036a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200341206a2205360208200241106a200141206a1051200228021021032002200520022802182204102720022004200228020822066a22013602082006200228020022056a20032004101e1a02402002280214450d00200310020b02402001417f4c0d00024002402001450d002001100122040d01101c000b410121040b200220013602142002200436021020024100360218200241106a41002001102720022002280218220420016a360218200420022802106a20052001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200510020b200241206a24000f0b1019000b02000be90502047f017e230041d0006b220524000240024002402004417f4c0d000240024002402004450d002004100122060d010c020b410121060b200520043602042005200636020020054100360208200541002004102720052005280208220620046a360208200620052802006a20032004101e1a200541c0006a41086a2204200528020836020020052005290300370340200541186a200241186a290000370300200541106a200241106a290000370300200541086a200241086a290000370300200541286a20042802003602002005200229000037030020052005290340370320410810012204450d002005200436024020054208370244200541c0006a4100410810272005280240200528024822046a42f3e885d3b38eddb73a3700002005200441086a360248200541306a41086a2204200528024836020020052005290340370330200541c0006a200510cb012005280244210720052802402103200541306a200428020020052802482202102720052802302206200428020022086a20032002101e1a2004200820026a220236020002402007450d00200310020b20052802342103200541c0006a41086a220442003703002005420037034020062002200541c0006a1003200541306a41086a20042903003703002005200529034037033002400240024002400240200541306a411041d02d410041001000417f460d00200541003602404100200541306a4110200541c0006a41044100100022042004417f461b220741034d0d0820052802402204417f4c0d062004450d01200410012202450d0520024100200410171a0c020b2000410036020020030d020c030b410121020b20044100200541306a4110200220042007410420074104491b100022072007417f461b4b0d042002450d0520002004ad2209422086200984370204200020023602002003450d010b200610020b0240200541246a280200450d00200541206a28020010020b200541d0006a24000f0b101c000b1019000b200210020b41c1214133102d000bd50402057f017e230041206b220324000240024002400240410810012204450d002003200436021020034208370214200341106a4100410810272003280210200328021822046a42f3e885d3b3ec9bb23a3700002003200441086a360218200341086a200328021836020020032003290310370300412010012204450d002003200436021020034220370214200341106a41004120102720032802102205200328021822066a22042002290000370000200441086a200241086a290000370000200441106a200241106a290000370000200441186a200241186a2900003700002003200641206a220236021820032802142104200320032802082002102720032802002206200328020822076a20052002101e1a2003200720026a220236020802402004450d00200510020b20032802042105200341106a41086a220442003703002003420037031020062002200341106a1003200341086a200429030037030020032003290310370300024002400240024002402003411041d02d410041001000417f460d0020034100360210410020034110200341106a41044100100022022002417f461b220741034d0d0820032802102202417f4c0d062002450d01200210012204450d0520044100200210171a0c020b200041003602082000420137020020050d020c030b410121040b2002410020034110200420022007410420074104491b100022072007417f461b4b0d042004450d0520002002ad2208422086200884370204200020043602002005450d010b200610020b200341206a24000f0b101c000b1019000b200410020b41c1214133102d000ba90701047f230041f0006b220424000240024002402003280200450d00200441086a200341086a28020036020020042003290200370300200441106a41186a200141186a290000370300200441106a41106a200141106a290000370300200441106a41086a200141086a290000370300200441386a200241086a2802003602002004200129000037031020042002290200370330410810012201450d022004200136025020044208370254200441d0006a4100410810272004280250200428025822016a42f3e885d3b38eddb73a3700002004200141086a360258200441c0006a41086a2201200428025836020020042004290350370340200441d0006a200441106a10cb012004280254210520042802502102200441c0006a200128020020042802582203102720042802402206200128020022076a20022003101e1a2001200720036a220336020002402005450d00200210020b20042802442102200441e0006a200410512004280268210520042802602101200441d0006a41086a220742003703002004420037035020062003200441d0006a1003200441c0006a41086a200729030037030020042004290350370340200441c0006a411020012005100402402004280264450d00200110020b02402002450d00200610020b0240200441346a280200450d00200441306a28020010020b2004280204450d0120042802001002200441f0006a24000f0b200441106a41186a200141186a290000370300200441106a41106a200141106a290000370300200441106a41086a200141086a290000370300200441386a200241086a2802003602002004200129000037031020042002290200370330410810012201450d012004200136025020044208370254200441d0006a4100410810272004280250200428025822016a42f3e885d3b38eddb73a3700002004200141086a360258200441c0006a41086a2201200428025836020020042004290350370340200441d0006a200441106a10cb012004280254210520042802502102200441c0006a200128020020042802582203102720042802402206200128020022076a20022003101e1a2001200720036a220336020002402005450d00200210020b20042802442101200441d0006a41086a220242003703002004420037035020062003200441d0006a1003200441c0006a41086a200229030037030020042004290350370340200441c0006a4110100502402001450d00200610020b200441346a280200450d00200441306a28020010020b200441f0006a24000f0b101c000b1e002001200210c9010240200241046a280200450d00200228020010020b0b9a0301057f230041306b220324000240410810012204450d002003200436022020034208370224200341206a4100410810272003280220200328022822046a42f3e885d3a3ac98b63a3700002003200441086a360228200341106a41086a200328022836020020032003290320370310412010012204450d002003200436022020034220370224200341206a41004120102720032802202205200328022822066a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002003200641206a220136022820032802242106200341106a20032802182001102720032802102204200328021822076a20052001101e1a2003200720016a220136021802402006450d00200510020b2003280214210520032002370308200341206a41086a220642003703002003420037032020042001200341206a1003200341106a41086a200629030037030020032003290320370310200341106a4110200341086a4108100402402005450d00200410020b200341306a24000f0b101c000bf90f020b7f017e230041a0036b220424002001280204210520022802082106200228020421072002280200210802400240200128020022092f018e02220a450d004107210b0c010b4101210b0b03400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200b0e1b0a090b0c0d0708000102030406050e1a0f10141617151819121113130b2009200a410c6c6a210c4100210a200921024108210b0c300b20082002280200200241086a280200220d20062006200d4b1b1006220e450d1b4109210b0c2f0b200e411e76417f73410271417f6a220d450d24410a210b0c2e0b200d4101470d1d410b210b0c2d0b200a41016a210a2002410c6a2202200c470d1b0c1a0b4100417f41012006200d491b2006200d461b220d0d20410c210b0c2b0b200441013a00980120042d0098014101710d154105210b0c2a0b2005450d1d4106210b0c290b2005417f6a21052009200a4102746a4190026a28020022092f018e02220a0d124101210b0c280b200441003a00980120042d009801410171450d180c190b2009418e026a2f0100210a0c130b200141086a2102200aad4220862001ad84210f2007450d184103210b0c250b200810024104210b0c240b20042005360268200420023602782004200936026c2004200f370370200441086a41086a2202200341086a2802003602002004200329020037030820044198016a41086a220a2009200f422088a7410c6c6a2206418c016a220d280000220536020020064184016a2206290000210f20062004290308370000200d2002280200360000200220053602002004200f370398012004200f370308200a20022802003602002004200429030837039801200041013602002000410c6a200a2802003602002000200429039801370204200441a0036a24000f0b200441086a41106a20093602002001200128020841016a3602082004411c6a200aad4220862001ad84220f3702002004200736020c2004200836020820042006ad3703102004200936026c200441003602682004200f3703702004200736024c2004200836024820042006360250200441d8006a41086a200341086a2802003602002004200329020037035820044198016a200441e8006a200441c8006a200441d8006a1089012004280298014101470d1a4110210b0c220b200441286a41086a200441b0016a280200360200200441386a41086a200441bc016a280200360200200420044198016a41106a2903003703282004200441b4016a290200370338200441a4016a2802002102200441c4016a2802002109200441c0016a280200210a200428029c01210520044198016a41086a280200220d280288022206450d1a4111210b0c210b200d2f018c02210d2004200636026c2004200541016a2205360268200420023602702004200d3602744100450d1b4119210b0c200b2005210241c002100122060d1e4118210b0c1f0b101c000b2004200d36026c20042005360268200420023602702002210541010d174112210b0c1d0b200441b4016a210e200441a8016a2108200441e8006a410c6a210c200441c4016a2103200441c0016a21010c180b20032802002109200428029c0141016a2105200d2f018c02210d4113210b0c1b0b200441e8006a41086a2002360200200c200d3602002004200636026c20042005360268200441c8006a41086a200441286a41086a220228020036020020042004290328370348200441d8006a41086a200441386a41086a22062802003602002004200429033837035820044198016a200441e8006a200441c8006a200441d8006a200a2009108a012004280298014101470d114114210b0c1a0b2002200841086a2802003602002006200e41086a280200360200200420082902003703282004200e29020037033820044198016a410c6a28020021022001280200210a20044198016a41086a280200220d2802880222060d164116210b0c190b41c00210012206450d164117210b0c180b200620044198016a418802101e220641003b018e022006410036028802200620042902683702900220064198026a200441e8006a41086a290200370200200641a0026a200441f8006a290200370200200641a8026a20044180016a290200370200200641b0026a20044188016a290200370200200641b8026a20044190016a2902003702002006200228020036029002200220063602002002200228020441016a360204200628029002220241003b018c022002200636028802200620062f018e02220d410c6c6a220220042903283702002002418c016a200441386a41086a280200220536020020024184016a2004290338220f370200200241086a200441286a41086a28020036020020064190026a200d41016a22024102746a200a360200200620062f018e0241016a3b018e0220044198016a41086a2005360200200a20023b018c02200a2006360288022004200f37039801410f210b0c170b20004100360200200441a0036a24000f0b4107210b0c150b4102210b0c140b410d210b0c130b4101210b0c120b4100210b0c110b4108210b0c100b4101210b0c0f0b4105210b0c0e0b4102210b0c0d0b4104210b0c0c0b410e210b0c0b0b410a210b0c0a0b410c210b0c090b410f210b0c080b410f210b0c070b411a210b0c060b4119210b0c050b4112210b0c040b4113210b0c030b4115210b0c020b4118210b0c010b4117210b0c000b0b4501017f230041c0006b22012400200141386a2000410c6a28020036020020012000290204370330200141086a200141306a109d01200141086a109e01200141c0006a24000b7302017f017e024020002802002202417f460d002000200241016a36000002400240200041046a20011096012202450d002002280200450d00200241086a29030021030c010b20002802102001200041146a28020028021411140021030b20002000280200417f6a36000020030f0b109f01000b960501077f230041e0026b22032400200341086a200241086a28020036020020032002290200370300024002400240024020002802000d002000417f360000200341306a41186a2204200141186a290000370300200341306a41106a2205200141106a290000370300200341306a41086a200141086a290000370300200320012900003703302003200041046a3602182003200041086a28020036021020032000280204360214200341b8026a200341106a200341306a10970141012102200341b8026a41106a2802002106200341c4026a2802002107200341b8026a41086a280200210820032802bc022109024020032802b8024101470d00200341106a41186a2004290300370300200341106a41106a2005290300370300200341106a41086a200341306a41086a29030037030020032003290330370310410021020b41900210012201450d012001200341306a418802101e220141003b018e02200141003602880202402002450d00200320013602b802200342003702bc02200341306a200341b8026a109801200341306a1099012008200641286c6a220241106a210120022802102206450d040c030b200341cc006a200341186a290300370200200341d4006a200341206a290300370200200341dc006a200341286a2903003702002003200836023420032009360230200320073602382003200636023c20032000410c6a36024020032003290310370244200341d8026a4200370300200341003602c802200342003703b802200320013602d402200341306a200341b8026a109a01220241106a2101200228021022060d020c030b10c301000b101c000b200241146a280200450d00200610020b20012003290300370200200141086a200341086a28020036020020004100360000200341e0026a24000bab0401097f230041d0026b220324000240024020002802000d002000417f360000200341c8006a41186a2204200141186a290000370300200341c8006a41106a2205200141106a290000370300200341c8006a41086a2206200141086a290000370300200320012900003703482003200041046a3602082003200041086a28020036020020032000280204360204200341206a2003200341c8006a10970141012107200341206a41106a28020021082003412c6a2802002109200341206a41086a280200210a2003280224210b024020032802204101470d00200341186a2004290300370300200341106a2005290300370300200341086a200629030037030020032003290348370300410021070b41900210012201450d012001200341c8006a418802101e220141003b018e022001410036028802024002402007450d002003200136022020034200370224200a200841286c6a2101200341c8006a200341206a109801200341c8006a1099010c010b200341e4006a200341086a290300370200200341ec006a200341106a290300370200200341f4006a200341186a2903003702002003200a36024c2003200b360248200320093602502003200836025420032000410c6a3602582003200329030037025c200341c0006a420037030020034100360230200342003703202003200136023c200341c8006a200341206a109a0121010b200142013703002001200237030820004100360000200341d0026a24000f0b10c301000b101c000bfc0103017f017e047f230041306b2203240020034100360208200342013703002002290300210420034100410810272003280200200328020822056a20043700002003200541086a2206360208200341206a200241086a10a201200328022021052003200620032802282202102720032002200328020822076a22083602082007200328020022066a20052002101e1a02402003280224450d00200510020b200341206a41086a220242003703002003420037032020002001200341206a1003200341106a41086a200229030037030020032003290320370310200341106a411020062008100402402003280204450d00200610020b200341306a24000bfb1903047f017e077f230041d0006b22022400200241003602082002420137030002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001280200417f6a220341044b0d000240024002400240024020030e050004020301000b2002107e2002280200200241086a22032802006a41013a00002003200328020041016a22043602002002410036024820024201370340200141086a28020022054101460d0920054102470d1a200241c0006a107e20022802402205200241c8006a220328020022016a41013a00002003200141016a22013602000c0a0b2002107e2002280200200241086a22032802006a41073a00002003200328020041016a3602002002410036024820024201370340200141086a28020022034101460d0420034102470d1a200241c0006a107e2002280240200241c0006a41086a220328020022056a41013a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c050b2002107e2002280200200241086a22032802006a41053a00002003200328020041016a360200200241003602382002420137033020012d000422034103714101460d0520034102470d1a200241306a107e2002280230200241306a41086a220328020022056a41013a00002003200541016a2205360200200141086a2802002104200241306a20054104102720032003280200220741046a22013602002007200228023022056a20043600000c060b2002107e2002280200200241086a22032802006a41063a00002003200328020041016a3602002002410036024820024201370340200141086a22042d0000417f6a220341034b0d1a024020030e04000d0a0c000b200241c0006a107e2002280240200241c8006a220328020022056a41003a00002003200541016a22053602002001410c6a2802002104200241c0006a20054104102720032003280200220741046a22013602002007200228024022056a20043600000c0d0b2002107e2002280200200241086a22032802006a41023a00002003200328020041016a3602002002410036024820024201370340200141086a280200417f6a220341034b0d1a024020030e04000f0a0e000b200241c0006a107e2002280240200241c0006a41086a220328020022056a41003a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c0f0b2002107e2002280200200241086a22032802006a41003a00002003200328020041016a3602002002410036021820024201370310200128020422034101460d0620034102470d1a200241106a107e2002280210200241106a41086a220328020022056a41013a00002003200541016a2208360200200141106a220328020021052002410036024820024201370340200241c0006a4100410410272002280240200228024822046a20053600002002200441046a360248200241206a41086a220420022802483602002002200229034037032020032802002203450d0f200141086a2802002201200341186c6a21090340200241306a41086a2203410036020020024201370330200241c0006a200110512002280240210a200241306a4100200241c0006a41086a220528020022071027200320072003280200220b6a220c360200200b20022802306a200a2007101e1a02402002280244450d00200a10020b200241c0006a2001410c6a220d10512002280240210a200241306a200c200528020022071027200320072003280200220c6a2201360200200c2002280230220b6a200a2007101e1a02402002280244450d00200a10020b2001417f4c0d14024002402001450d002001100122030d010c170b410121030b200541003602002002200136024420022003360240200241c0006a41002001102720052005280200220720016a22033602002007200228024022056a200b2001101e1a2002280244210102402002280234450d00200b10020b200241206a2004280200200310272002280220220a200428020022076a20052003101e1a2004200720036a220336020002402001450d00200510020b200d410c6a22012009470d000c110b0b200241c0006a107e2002280240200241c0006a41086a220328020022056a41003a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d10200510020c100b200241306a107e2002280230200241306a41086a220328020022056a41003a00002003200541016a2207360200200241c0006a200141086a28020010d80120022802402104200241306a200720022802482205102720032005200328020022076a220a360200200720022802306a20042005101e1a02402002280244450d00200410020b410221030240200141056a2d000022014103714102460d004100210320014101470d00410121030b200241306a200a41011027200241386a22012001280200220441016a22013602002004200228023022056a20033a00000b200228023421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d0e200510020c0e0b200241c0006a107e2002280240200241c0006a41086a220428020022056a41003a00002004200541016a2205360200200141106a2903002106200241c0006a20054108102720022802402205200428020022016a20063700002004200141086a2201360200200328020021040b200228024421032002200420011027200241086a22042004280200220420016a360200200420022802006a20052001101e1a2003450d0c200510020c0c0b200241106a107e2002280210200241106a41086a220328020022056a41003a00002003200541016a2205360200200241c0006a200141086a105120022802402107200241106a2005200228024822041027200320042003280200220a6a2201360200200a200228021022056a20072004101e1a2002280244450d0a200710020c0a0b200241c0006a107e2002280240200241c0006a41086a220328020022056a41023a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c030b200241c0006a107e2002280240200241c8006a220328020022056a41023a00002003200541016a22053602002001410c6a2802002104200241c0006a20054104102720032003280200220741046a22013602002007200228024022056a20043600000c050b200241c0006a107e2002280240200241c0006a41086a220328020022056a41033a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c010b200241c0006a107e2002280240200241c0006a41086a220328020022016a41013a00002003200141016a2201360200200241c0006a20014120102720032003280200220741206a22013602002007200228024022056a220341086a200441096a290000370000200341106a200441116a290000370000200341186a200441196a290000370000200320042900013700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d06200510020c060b200241c0006a107e20022802402205200241c8006a220328020022016a41033a00002003200141016a22013602000c010b200241c0006a107e2002280240200241c0006a41086a220328020022056a41013a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d03200510020c030b200228022821032002280220210a0b20022802242104200241106a20082003102720022002280218220720036a22013602182007200228021022056a200a2003101e1a2004450d00200a10020b200228021421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d00200510020b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b1019000b101c000b41ec30103b000b41843e103b000b41ac3f103b000b419435103b000b41943b103b000b41ecc100103b000bc20201027f230041c0006b22022400200241106a41086a220342003703002002420037031020014107200241106a1003200241086a20032903003703002002200229031037030002402002411041d02d410041001000417f460d00200241386a4200370300200241206a41106a4200370300200241206a41086a420037030020024200370320024020024110200241206a4120410010002203417f460d002003411f4d0d0020002002290320370000200041186a200241206a41186a290300370000200041106a200241206a41106a290300370000200041086a200241206a41086a2200290300370000200241106a41086a220342003703002002420037031020014107200241106a10032000200329030037030020022002290310370320200241206a41101005200241c0006a24000f0b41c1214133102d000b41f4214122102d000bb80101027f230041306b22032400200341206a41086a220442003703002003420037032020012002200341206a1003200341086a200429030037030020032003290320370300024002402003411041d02d410041001000417f460d002003421037021420032003360210200341206a200341106a103a20032802202201450d012000200329022437020420002001360200200341306a24000f0b2000410036020820004201370200200341306a24000f0b41c1214133102d000b8d5b05087f037e137f017e017f230041e0016b2202240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d000022034103714101460d00024020034102460d0020034103470d0d200241206a200041196a290000370300200241186a200041116a290000370300200241106a200041096a29000037030020022000290001370308200241386a1047200228023822042002280240220541286c22066a2107200421030240200641286d4104490d00200421060340200120062203460d062003200141201006450d06200341286a22062001460d0a2006200141201006450d0a200641286a22062001460d0b2006200141201006450d0b200641286a22062001460d0c2006200141201006450d0c2007200641286a22066b41286d41034b0d000b200341a0016a21030b024020032007460d002004200541286c6a2106034020012003460d042003200141201006450d042006200341286a2203470d000b0b2004200228023c10870141fc3e103b000b200041216a2d0000210520024198016a41186a200041196a220329000037030020024198016a41106a200041116a220629000037030020024198016a41086a200041096a22042900003703002002200029000137039801200241386a41186a2003290000370300200241386a41106a2006290000370300200241386a41086a2004290000370300200241e0006a200141086a290000370300200241e8006a200141106a290000370300200241f0006a200141186a2900003703002002200029000137033820022001290000370358410910012203450d17200220033602c001200242093702c401200241c0016a41004109102720022802c00120022802c80122066a220441002900f922370000200241086a41086a2203200641096a2206360200200441086a41002d0081233a0000200220022903c001370308200220063602c801200241c0016a200241386a10be0120022802c401210820022802c0012104200241086a200328020020022802c8012206102720022802082207200328020022096a20042006101e1a2003200920066a220636020002402008450d00200410020b200228020c210320024188016a41086a2204420037030020024200370388012007200620024188016a1003200241f8006a41086a20042903003703002002200229038801370378200241f8006a411041d02d410041001000417f460d02200241003a00c001200241f8006a4110200241c0016a41014100100041016a41014d0d1020022d00c00121062003450d160c150b200041046a280200210d102e210a20024188016a41086a22034200370300200242003703880141e122410a20024188016a1003200241f8006a41086a20032903003703002002200229038801370378200241f8006a411041d02d410041001000417f460d0c20024200370338200241f8006a4110200241386a41084100100041016a41084d0d0a2002290338200a7c210a200241386a1047200228023822072002280240220841286c22066a2105200721030240200641286d4104490d00200721030340200120032206460d052006200141201006450d05200641286a2103200641286a22042001460d062004200141201006450d06200641d0006a2103200441286a22042001460d062004200141201006450d06200641f8006a2103200441286a22042001460d062004200141201006450d062005200441286a22036b41286d41034b0d000b200641a0016a21030b4102210420032005460d052007200841286c6a2106034020012003460d052003200141201006450d052006200341286a2203470d000c060b0b200228023c450d120c110b4102210620030d120c130b200228023c0d0f0c100b200621030b200341206a290300200a5621040b200441024720047121030240200228023c450d00200710020b2003450d0720024198016a200d10d80120022802a00121052002280298012107200241386a41186a22034200370300200241386a41106a22064200370300200241386a41086a220442003703002002420037033820072005200241386a1012200241c0016a41186a22052003290300370300200241c0016a41106a22082006290300370300200241c0016a41086a22092004290300370300200220022903383703c0010240200228029c01450d00200710020b200320052903003703002006200829030037030020042009290300370300200220022903c001370338410710012203450d1020022003360298012002420737029c0120024198016a41004107102720022802980120022802a00122066a220341002800eb22360000200241086a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a00002002200229039801370308200220063602a001412010012203450d1020022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241086a20022802102003102720022802082204200228021022056a20062003101e1a2002200520036a220336021002402007450d00200610020b200228020c210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a411020024198016a410041001000210302402006450d00200410020b2003417f470d08200241386a200241c0016a10dc01024020022802402203450d002002290338210b20022802442106102e210c02402006450d00200310020b200c200b540d0b0b200241286a10bb01200241386a41186a2206200241c0016a41186a290300370300200241386a41106a2204200241c0016a41106a290300370300200241386a41086a2207200241c0016a41086a290300370300200220022903c00137033820022802302205200228022c460d030c0b0b200228023c0d0b0c0c0b200228023c0d0a0c0b0b200228023c0d090c0a0b200241286a106f200241286a41086a28020021050c070b41c1214133102d000b419c3e103b000b41f4214122102d000b41b43e103b000b41cc3e103b000b41c1214133102d000b41e43e103b000b200241286a41086a200541016a22153602002002280228220f200541286c6a2203200a37030020032002290338370308200341106a2007290300370300200341186a2004290300370300200341206a2006290300370300024002400240024002400240024002400240024002400240024002400240024002400240201541144b0d00201541014d0d01200f200541286c6a21110340201520052203417f6a2205490d100240201520056b22074102490d00200f200341286c6a2204290300200f200541286c6a220e290300220a5a0d00200e2004290300370300200e290308210b200e41086a200441086a290300370300200241386a41186a2200200e41206a2203290300370300200241386a41106a2212200e41186a2206290300370300200241386a41086a2213200e41106a22082903003703002008200441106a2903003703002006200441186a2903003703002003200441206a2903003703002002200b37033841012108024020074103490d0041012106201121030340200641016a220820074f0d150240200341286a2204290300200a5a0d00200620074f0d15200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032004290300370300200641026a2109200821062004210320092007490d010c020b0b20062108200321040b2004200a370300200e200841286c6a22032002290338370308200341206a2000290300370300200341186a2012290300370300200341106a20132903003703000b201141586a211120050d000c020b0b20154101762216ad42287e220a422088a70d0d200aa72203417f4c0d0c4108211702402003450d00200310012217450d160b41002106200241003602a0012002420437039801200f41586a2118200f41887f6a21194104210420024198016a41086a211a2015211003402010211141002110410121070240024002402011417f6a2203450d000240024002400240024002400240200f200341286c6a290300200f2011417e6a220741286c6a290300220a5a0d00410021082007450d022019201141286c6a21030340200a2003290300220b5a0d02200341586a2103200b210a2007417f6a22070d000c030b0b02402007450d002019201141286c6a2103410221070340200a2003290300220b540d04200341586a2103200b210a2011200741016a2207470d000b41002110201121072006200228029c01470d090c080b41022107410021102006200228029c01470d080c070b200721080b024020112008490d00201120154b0d140240201120086b22074101762209450d002018201141286c6a2103200f200841286c6a21050340200241386a41206a220e200541206a2200290300370300200241386a41186a2212200541186a2213290300370300200241386a41106a2214200541106a2210290300370300200241386a41086a221b200541086a221c29030037030020022005290300370338200341086a221d290300210a200341106a221e290300210b200341186a221f290300210c200329030021202000200341206a22212903003703002013200c3703002010200b370300201c200a370300200520203703002021200e290300370300201f2012290300370300201e2014290300370300201d201b29030037030020032002290338370300200341586a2103200541286a21052009417f6a22090d000b0b2008450d030c020b200820111055000b201120076b2208450d010b200741094d0d010b200821102006200228029c01470d030c020b201120154b0d0d200f200841286c6a2112034020112008417f6a2210490d0f0240201120106b22074102490d00200f200841286c6a2208290300200f201041286c6a2200290300220a5a0d00200020082903003703002000290308210b200041086a200841086a290300370300200241386a41186a2213200041206a2203290300370300200241386a41106a2214200041186a2205290300370300200241386a41086a221b200041106a22092903003703002009200841106a2903003703002005200841186a2903003703002003200841206a2903003703002002200b37033841012109024020074103490d0041012105201221030340200541016a220920074f0d090240200341286a2208290300200a5a0d00200520074f0d0b200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032008290300370300200541026a210e2009210520082103200e2007490d010c020b0b20052109200321080b2008200a3703002000200941286c6a22032002290338370308200341206a2013290300370300200341186a2014290300370300200341106a201b2903003703000b2010450d01201241586a2112201021082007410a490d000b0b2006200228029c01470d010b20024198016a107a201a280200210620022802980121040b200420064103746a2203200736020420032010360200201a200641016a2206360200024020064102490d0020022802980121040340024002400240024020042006417f6a4103746a2203280200450d00200420064103746a220841746a2802002205200328020422074d0d00200641024d0d0520042006417d6a22124103746a2802042203200720056a4d0d01200641034d0d05200841646a280200200320056a4d0d010c050b20064103490d012003280204210720042006417d6a22124103746a28020421030b20032007490d010b2006417e6a21120b2006201241016a22134d0d06200620124d0d0720042012410374221b6a2203280204221c20032802006a220320042013410374221d6a22062802002214490d08200320154b0d09200f201441286c6a22112006280204220041286c22066a2107200341286c210402400240024002400240200320146b220820006b220320004f0d0020172007200341286c2206101e220e20066a210520004101480d0120034101480d01201820046a21042007210303402004200341586a2207200541586a2208200829030020072903005422091b2206290300370300200441206a200641206a290300370300200441186a200641186a290300370300200441106a200641106a290300370300200441086a200641086a2903003703002005200820091b210520112007200320091b22034f0d04200441586a2104200e2106200e2005490d000c050b0b201720112006101e220320066a210520004101480d01200820004c0d01200f20046a210920032106201121030340200320072006200729030020062903005422081b2204290300370300200341206a200441206a290300370300200341186a200441186a290300370300200341106a200441106a290300370300200341086a200441086a2903003703002006200641286a20081b2106200341286a2103200741286a200720081b220720094f0d04200520064b0d000c040b0b200721030c010b201121030b201721060b20032006200520066b220420044128706b101e1a201a280200220320124d0d0a2002280298012204201b6a2206201c20006a36020420062014360200200320134d0d0b2004201d6a2206200641086a200320136b41037441786a10391a201a2003417f6a2206360200200641014b0d000b0b20100d000b0240200228029c01450d0020022802980110020b2016450d00201710020b200241286a10bc0120024198016a41186a200241c0016a41186a29030037030020024198016a41106a200241c0016a41106a29030037030020024198016a41086a200241c0016a41086a290300370300200220022903c00137039801200241386a41286a200d41286a290300370300200241386a41206a200d41206a290300370300200241386a41186a200d41186a290300370300200241386a41106a200d41106a290300370300200241386a41086a200d41086a2903003703002002200d290300370338410710012203450d14200220033602082002420737020c200241086a4100410710272002280208200228021022066a220341002800eb2236000020024188016a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a0000200220022903083703880120022006360210412010012203450d14200220033602082002422037020c200241086a41004120102720022802082206200228021022046a2203200229039801370000200341086a20024198016a41086a290300370000200341106a20024198016a41106a290300370000200341186a20024198016a41186a2903003700002002200441206a2203360210200228020c210720024188016a20022802900120031027200228028801220420022802900122056a20062003101e1a2002200520036a22053602900102402007450d00200610020b200228028c012106200241086a200241386a10d801200228021021072002280208210320024188016a41086a2208420037030020024200370388012004200520024188016a1003200241f8006a41086a20082903003703002002200229038801370378200241f8006a41102003200710040240200228020c450d00200310020b02402006450d00200410020b024002400240200228023822034103460d0020030d02200228023c2203450d0220034101470d01200241c4006a280200450d02200241c0006a28020010020c020b20022d003c4101470d01200241c0006a10bf010c010b0240200241386a41106a2802002206450d00200241c0006a2802002103200641186c210603400240200341046a280200450d00200328020010020b0240200341106a280200450d002003410c6a28020010020b200341186a2103200641686a22060d000b0b200241c4006a280200450d00200241c0006a28020010020b200241386a41186a2206200241c0016a41186a2204290300370300200241386a41106a2207200241c0016a41106a2205290300370300200241386a41086a2208200241c0016a41086a2209290300370300200220022903c001370338412010012203450d14200141086a220e290000210a200141106a2211290000210b2001290000210c200341186a200141186a2200290000370000200341106a200b370000200341086a200a3700002003200c3700002002200336029801200242818080801037029c01200241386a20024198016a10dd01200620042903003703002007200529030037030020082009290300370300200241e0006a200e290000370300200241e8006a2011290000370300200241f0006a2000290000370300200220022903c00137033820022001290000370358200241386a410110de010240200228022c450d00200228022810020b200d1002200241e0016a24000f0b41ccc100200541016a2007103c000b41dcc10020052007103c000b41acc10020132006103c000b41acc10020122006103c000b201420031055000b200320151029000b41bcc10020122003103c000b41b4c300103b000b20112008417f6a22104f0d010b201020111055000b201120151029000b1065000b1064000b200520151055000b41dcc10020062007103c000b41ccc100200641016a2007103c000b200410020b410b10012203450d02200220033602382002420b37023c200241386a4100410b10272002280238200228024022066a220341002900822337000020024198016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a0000200220022903383703980120022006360240412010012203450d02200220033602382002422037023c200241386a41004120102720022802382206200228024022046a22032002290308370000200341086a200241086a41086a290300370000200341106a200241086a41106a290300370000200341186a200241086a41186a2903003700002002200441206a2203360240200228023c210720024198016a20022802a00120031027200228029801220420022802a00122056a20062003101e1a2002200520036a22033602a00102402007450d00200610020b200228029c01210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a411020024198016a410041001000210302402006450d00200410020b02400240024002402003417f460d00200241386a200241086a10dc010240024002400240024020022802402208450d0020022002290244220a37022c20022008360228200aa7210e200a422088a72209450d0120094101470d02410021030c030b410021092002410036023020024201370328410121084100210e0b410021060c020b4100210320092106034020032006410176220720036a2204200820044105746a2001412010062205417f4a1b200420051b2103200620076b220641014b0d000b0b200820034105746a2001412010062206450d032006411f7620036a21060b200241386a41186a200141186a290000370300200241386a41106a200141106a290000370300200241386a41086a200141086a2900003703002002200129000037033820092006490d012009200e470d03200241286a107c200228022821080c030b41943f103b000b419cc300103b000b200310c201000b200820064105746a220341206a2003200920066b41057410391a20032002290338370000200341186a200241386a41186a290300370000200341106a200241386a41106a290300370000200341086a200241386a41086a290300370000200241286a41086a200941016a360200102e210a20024188016a41086a220342003703002002420037038801418d23410b20024188016a1003200241f8006a41086a200329030037030020022002290388013703780240200241f8006a411041d02d410041001000417f460d00200242003703380240200241f8006a4110200241386a41084100100041016a41084d0d002002290338210b200241c8006a200241286a41086a2802003602002002200b200a7c37033820022002290328370340410910012203450d0420022003360298012002420937029c0120024198016a41004109102720022802980120022802a00122036a2206410029009823370000200241c0016a41086a200341096a2203360200200641086a41002d00a0233a000020022002290398013703c001200220033602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290308370000200341086a200241086a41086a290300370000200341106a200241086a41106a290300370000200341186a200241086a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620042003200241386a10d70102402006450d00200410020b0240200241c4006a280200450d00200241c0006a28020010020b200241386a10bb01200228023c210f20022802382110024002400240024020022802402203450d00200341286c41b07f6a2104200241386a41086a2106201021030340200241386a41206a200341206a290300370300200241386a41186a200341186a290300370300200241386a41106a200341106a2903003703002006200341086a29030037030020022003290300370338200241c0016a41186a200641186a290000370300200241c0016a41106a200641106a290000370300200241c0016a41086a200641086a290000370300200220062900003703c001200241c0016a200241086a412010060d02200341286a2103200441586a220441b07f470d000b0b2002410036024020024208370338200f450d0120101002200241386a10bc010c020b20024198016a41206a2206200241386a41206a29030037030020024198016a41186a2207200241386a41186a29030037030020024198016a41106a2205200241386a41106a29030037030020024198016a41086a2208200241386a41086a2903003703002002200229033837039801412810012211450d062011200229039801370300201141206a2006290300370300201141186a2007290300370300201141106a2005290300370300201141086a20082903003703002002201136028801200242818080801037028c01024020044158460d00200341286a2103200241386a41086a21064101210e0340200241386a41206a2205200341206a290300370300200241386a41186a2208200341186a290300370300200241386a41106a2209200341106a2903003703002006200341086a29030037030020022003290300370338200241c0016a41186a200641186a290000370300200241c0016a41106a200641106a290000370300200241c0016a41086a200641086a290000370300200220062900003703c0010240200241c0016a200241086a41201006450d0020024198016a41206a2207200529030037030020024198016a41186a2212200829030037030020024198016a41106a2213200929030037030020024198016a41086a2214200629030037030020022002290338370398012005200729030037030020082012290300370300200920132903003703002006201429030037030020022002290398013703380240200e200228028c01470d0020024188016a200e410110820120022802880121110b2011200e41286c6a22072002290338370300200741206a2005290300370300200741186a2008290300370300200741106a2009290300370300200741086a200629030037030020024188016a41086a200e41016a220e3602000b2004450d01200341286a2103200441586a21040c000b0b0240200f450d00201010020b200241386a41086a20024188016a41086a2802003602002002200229038801370338200228023c2103200241386a10bc012003450d01200228023810020c010b200241386a10bc010b200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a29030037030020022002290308370338410b10012203450d0420022003360298012002420b37029c0120024198016a4100410b102720022802980120022802a00122066a2203410029008223370000200241c0016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a000020022002290398013703c001200220063602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a4110100502402006450d00200410020b200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a29030037030020022002290308370338410710012203450d0420022003360298012002420737029c0120024198016a41004107102720022802980120022802a00122066a220341002800eb22360000200241c0016a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a000020022002290398013703c001200220063602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a4110100502402006450d00200410020b200241386a1047200228023c211320022802382112024020022802402203450d00200341286c2109200241d8006a210620122103034020062003290000370000200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a290300370300200641086a200341086a290000370000200641106a200341106a290000370000200641186a200341186a29000037000020022002290308370338410910012204450d0620022004360298012002420937029c0120024198016a41004109102720024198016a41086a22072007280200220441096a220536020020042002280298016a220841002900f922370000200241c0016a41086a22042005360200200841086a41002d0081233a000020022002290398013703c00120024198016a200241386a10be01200228029c01210e2002280298012105200241c0016a200428020020072802002207102720022802c0012208200428020022116a20052007101e1a2004201120076a22073602000240200e450d00200510020b20022802c401210420024188016a41086a2205420037030020024200370388012008200720024188016a1003200241f8006a41086a20052903003703002002200229038801370378200241f8006a4110100502402004450d00200810020b200341286a2103200941586a22090d000b0b02402013450d00201210020b20002d00004101470d0a0c090b41c1214133102d000b41f4214122102d000b200710020b200641ff01714102470d04410b10012203450d00200220033602382002420b37023c200241386a4100410b10272002280238200228024022066a2203410029008223370000200241c0016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a0000200220022903383703c00120022006360240412010012203450d00200220033602382002422037023c200241386a41004120102720022802382206200228024022046a2203200229039801370000200341086a20024198016a41086a290300370000200341106a20024198016a41106a290300370000200341186a20024198016a41186a2903003700002002200441206a2203360240200228023c2107200241c0016a20022802c8012003102720022802c001220420022802c80122086a20062003101e1a2002200820036a22033602c80102402007450d00200610020b20022802c401210720024188016a41086a2206420037030020024200370388012004200320024188016a1003200241f8006a41086a20062903003703002002200229038801370378410021030240200241f8006a411041d02d410041001000417f460d00200242103702c4012002200241f8006a3602c001200241386a200241c0016a103a20022802382206450d022002200229023c220a37020c20022006360208200a422088a72103200aa721092007450d040c030b2002410036021020024201370308410121064100210920070d020c030b101c000b41c1214133102d000b200410020b200241386a41186a2204200141186a290000370300200241386a41106a2207200141106a290000370300200241386a41086a2208200141086a29000037030020022001290000370338024020032009470d00200241086a107c200241086a41086a2802002103200228020821060b2008290300210a2007290300210b2004290300210c200620034105746a22062002290338370000200641186a200c370000200641106a200b370000200641086a200a370000200241086a41086a2206200341016a360200200420024198016a41186a290300370300200720024198016a41106a290300370300200820024198016a41086a2903003703002002200229039801370338200241c0016a41086a2006280200360200200220022903083703c001200241386a200241c0016a10dd010b200241386a41186a20024198016a41186a290300370300200241386a41106a20024198016a41106a290300370300200241386a41086a20024198016a41086a290300370300200241e0006a200141086a290000370300200241e8006a200141106a290000370300200241f0006a200141186a290000370300200220022903980137033820022001290000370358200241386a200541ff017141004710de0120002d00004101470d010b200041046a10bf010b200241e0016a24000bcd0402057f017e230041c0006b220224000240024002400240410910012203450d002002200336023020024209370234200241306a4100410910272002280230200228023822036a2204410029009823370000200241086a200341096a2203360200200441086a41002d00a0233a00002002200229033037030020022003360238412010012203450d002002200336023020024220370234200241306a41004120102720022802302204200228023822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136023820022802342105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241306a41086a220542003703002002420037033020032001200241306a1003200241086a20052903003703002002200229033037030002402002411041d02d410041001000417f460d002002200236021020024110360214200242003703302002410020024110200241306a41084100100022012001417f461b2201410820014108491b360218200141074d0d0220022903302107200241306a200241106a103a20022802302201450d022002200229023437032020002001360208200020073703002000200229032037020c200041146a200241286a2802003602002004450d040c030b2000410036020820040d020c030b101c000b41c1214133102d000b200310020b200241c0006a24000be20301067f230041306b220224000240410b10012203450d00200220033602202002420b370224200241206a4100410b10272002280220200228022822046a2203410029008223370000200241106a41086a2004410b6a2204360200200341086a41002f008a233b00002003410a6a41002d008c233a00002002200229032037031020022004360228412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220636021802402005450d00200410020b200228021421042002200110a2012002280208210520022802002100200241206a41086a220742003703002002420037032020032006200241206a1003200241106a41086a200729030037030020022002290320370310200241106a411020002005100402402002280204450d00200010020b02402004450d00200310020b0240200141046a280200450d00200128020010020b200241306a24000f0b101c000bc00201057f230041306b22022400200220013a000f0240410910012201450d002002200136022020024209370224200241206a4100410910272002280220200228022822036a220441002900f922370000200241106a41086a2201200341096a2203360200200441086a41002d0081233a00002002200229032037031020022003360228200241206a200010be012002280224210520022802202103200241106a200128020020022802282200102720022802102204200128020022066a20032000101e1a2001200620006a220036020002402005450d00200310020b20022802142103200241206a41086a220542003703002002420037032020042000200241206a10032001200529030037030020022002290320370310200241106a41102002410f6a4101100402402003450d00200410020b200241306a24000f0b101c000bab0201057f230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42e4cab5d3c3ac99b83a3700002002200341086a360218200241086a200228021836020020022002290310370300410410012203450d002002200336021020024204370214200241106a41004104102720022802102203200228021822046a20003600002002200441046a220036021820022802142105200220022802082000102720022802002204200228020822066a20032000101e1a2002200620006a220036020802402005450d00200310020b2002280204210320042000200110d70102402003450d00200410020b02402001410c6a280200450d00200128020810020b200241206a24000f0b101c000b9c0b04027f017e027f017e230041d0006b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001280200417f6a220341044b0d000240024002400240024020030e050004020301000b200141086a28020022034101460d0720034102470d16420221040c080b420121040240200141086a28020022034101460d0020034102470d17420221040b20004105360200200041086a2004370300200041106a200141106a290300370300200241d0006a24000f0b20012d000422034103714101460d034102210520034102470d16200141086a28020021030c040b200141086a22052d0000417f6a220341034b0d16024020030e04000c080a000b2001410c6a2802002101410121030c0c0b200141086a280200417f6a220641034b0d1641042103024020060e0400080d0e000b200141106a2903002104410121030c0d0b200128020422034101460d0420034102470d16200141106a2802002205ad42187e2204422088a70d172004a72203417f4c0d18200141086a28020021012003450d0d2003100122060d0e0c100b413010012203450d0f2003200141086a28020010e001200141056a2d00002101410121050b20004103360200200041086a20033602002000200141ff0171410874200572360204200241d0006a24000f0b200141106a2903002107420121040b20004101360200200041106a2007370300200041086a2004370300200241d0006a24000f0b200141106a2802002203417f4c0d14200141086a2802002106410121014101210502402003450d00200310012205450d0c0b2002200336023c2002200536023820024100360240200241386a41002003102720022002280240220520036a360240200520022802386a20062003101e1a200241286a2002280240360200200220022903383703200c0a0b200141106a2903002104410321030c020b200141106a2903002104410221030c050b200141106a2903002104410421030b0c010b41022103200241206a41026a200541036a2d00003a0000200241c0006a200141206a290000370300200241386a41106a200141286a2d00003a0000200220052f00013b01202002200141186a290000370338200141106a29000021042001410c6a28000021010b200020022f01203b000920004104360200200041086a20033a00002000410c6a2001360200200041106a2004370300200041186a20022903383703002000410b6a200241226a2d00003a0000200041206a200241386a41086a290300370300200041286a200241386a41106a290300370300200241d0006a24000f0b2001410c6a2802002105410321030b200041023602002000410c6a2005360200200041086a2003360200200041106a2004370300200241d0006a24000f0b410421060b20022006360208200241003602102002200536020c200241086a4100200341186d10830120022802102103200228020821062002200136021820022001200541186c6a36021c200241386a200241186a103302402002280238450d002006200341186c6a21010340200241206a41106a2205200241386a41106a290300370300200241206a41086a2206200241386a41086a29030037030020022002290338370320200141106a2005290300370200200141086a200629030037020020012002290320370200200341016a2103200141186a2101200241386a200241186a103320022802380d000b0b200241086a41086a2003360200200241206a41086a200336020020022002290308370320410221010b2000200136020420004100360200200041086a2002290320370200200041106a200241206a41086a280200360200200241d0006a24000f0b101c000b41ec30103b000b41843e103b000b41ac3f103b000b419435103b000b41943b103b000b41ecc100103b000b1060000b1061000b1019000b9d08090e7f017e017f017e017f017e017f017e017f230041306b22022400024002400240024020014108490d00200141017641feffffff07712203417f6a220420014f0d032001410d74200173220541117620057322054105742005732206417f2001417f6a677622077122054100200120052001491b6b220520014f0d01200241086a41206a22082000200441286c6a220441206a2209290300370300200241086a41186a220a200441186a220b290300370300200241086a41106a220c200441106a220d290300370300200241086a41086a220e200441086a220f2903003703002000200541286c6a22052903002110200541086a22112903002112200541106a22132903002114200541186a221529030021162009200541206a2217290300370300200b2016370300200d2014370300200f2012370300200429030021122004201037030020022012370308201720082903003703002015200a2903003703002013200c2903003703002011200e29030037030020052002290308370300200320014f0d022006410d7420067322054111762005732205410574200573220620077122054100200120052001491b6b220520014f0d01200241086a41206a22082000200341286c6a220441206a2209290300370300200241086a41186a220a200441186a220b290300370300200241086a41106a220c200441106a220d290300370300200241086a41086a220e200441086a220f2903003703002000200541286c6a22052903002110200541086a22112903002112200541106a22132903002114200541186a221529030021162009200541206a2217290300370300200b2016370300200d2014370300200f2012370300200429030021122004201037030020022012370308201720082903003703002015200a2903003703002013200c2903003703002011200e290300370300200520022903083703002003410172220420014f0d032006410d742006732205411176200573220541057420057320077122054100200120052001491b6b220520014f0d01200241086a41206a22032000200441286c6a220141206a2204290300370300200241086a41186a2206200141186a2207290300370300200241086a41106a2208200141106a2209290300370300200241086a41086a220a200141086a220b2903003703002000200541286c6a22002903002110200041086a22052903002112200041106a220c2903002114200041186a220d29030021162004200041206a220e2903003703002007201637030020092014370300200b2012370300200129030021122001201037030020022012370308200e2003290300370300200d2006290300370300200c20082903003703002005200a290300370300200020022903083703000b200241306a24000f0b41b4c20020052001103c000b200321040b41ecc20020042001103c000bd808070d7f017e017f017e017f027e027f230041306b2202240002400240024002400240024020014101762203450d0003402003417f6a2203210403402004410174220d41017221160240200d41026a220d20014f0d00201620014f0d06200d20162000200d41286c6a2903002000201641286c6a290300541b21160b0240201620014f0d00200420014f0d042000201641286c6a220d2903002000200441286c6a22042903005a0d00200241086a41206a2205200441206a2206290300370300200241086a41186a2207200441186a2208290300370300200241086a41106a2209200441106a220a290300370300200241086a41086a220b200441086a220c290300370300200d41086a220e290300210f200d41106a22102903002111200d41186a22122903002113200d29030021142006200d41206a221529030037030020082013370300200a2011370300200c200f3703002004290300210f200420143703002002200f370308201520052903003703002012200729030037030020102009290300370300200e200b290300370300200d2002290308370300201621040c010b0b20030d000b0b024020014102490d002001210503402005417f6a220520014f0d06200241086a41206a2206200041206a220d290300370300200241086a41186a2207200041186a2216290300370300200241086a41106a2208200041106a220a290300370300200241086a41086a2209200041086a220b2903003703002000200541286c6a2204290300210f200441086a220c2903002111200441106a220e2903002113200441186a22102903002114200d200441206a221229030037030020162014370300200a2013370300200b2011370300200029030021112000200f370300200220113703082012200629030037030020102007290300370300200e2008290300370300200c2009290300370300200420022903083703004100210403402004410174220d41017221160240200d41026a220d20054f0d00201620054f0d07200d20162000200d41286c6a2903002000201641286c6a290300541b21160b0240201620054f0d00200420054f0d052000201641286c6a220d2903002000200441286c6a22042903005a0d002006200441206a220a2903003703002007200441186a220b2903003703002008200441106a220c2903003703002009200441086a220e290300370300200d41086a2210290300210f200d41106a22122903002111200d41186a22152903002113200d2903002114200a200d41206a2203290300370300200b2013370300200c2011370300200e200f3703002004290300210f200420143703002002200f37030820032006290300370300201520072903003703002012200829030037030020102009290300370300200d2002290308370300201621040c010b0b200541014b0d000b0b200241306a24000f0b418cc30020042001103c000b418cc30020042005103c000b41fcc20020162001103c000b41fcc20020162005103c000b41b4c20020052001103c000bac0904097f017e0e7f017e230041306b22022400200041286a2103200041887f6a2104200041586a21054100210620014132492107410121080240024002400340024002400240200820014f0d002005200841286c6a210903402009290300200941286a2209290300540d0220092109200841016a22082001490d000b0b410021092008200146220a0d030c010b410121092008200146220a0d020b20070d012008417f6a220a20014f0d022009450d032000200a41286c6a2209290300210b20092000200841286c220c6a220a290300370300200241086a41206a220d200941206a220e290300370300200241086a41186a220f200941186a2210290300370300200241086a41106a2211200941106a2212290300370300200241086a41086a2213200941086a22142903003703002014200a41086a22152903003703002012200a41106a22162903003703002010200a41186a2217290300370300200e200a41206a22182903003703002002200b3703082018200d2903003703002017200f2903003703002016201129030037030020152013290300370300200a2002290308370300024020084102490d0020002008417e6a220d41286c6a22192903002009290300220b5a0d00200920192903003703002009290308211a2014201941086a290300370300200f200e29030037030020112010290300370300201320122903003703002012201941106a2903003703002010201941186a290300370300200e201941206a2903003703002002201a3703084100210e0240200d450d002004200c6a2109024003402009290300200b5a0d01200941286a2009290300370300200941c8006a200941206a290300370300200941c0006a200941186a290300370300200941386a200941106a290300370300200941306a200941086a290300370300200941586a2109200d417f6a220d0d000b200941286a21190c010b200941286a2119200d210e0b2019200b3703002000200e41286c6a22092002290308370308200941206a200f290300370300200941186a2011290300370300200941106a20132903003703000b200641016a21060240200120086b22124102490d00200a290300220b200a2903285a0d00200a200a41286a220d290300370300200a290308211a2015200d41086a290300370300200f201829030037030020112017290300370300201320162903003703002016200d41106a2903003703002017200d41186a2903003703002018200d41206a2903003703002002201a37030841012116024020124103490d002003200c6a21094101210e02400340200b200941286a220d2903005a0d01200941206a200941c8006a290300370300200941186a200941c0006a290300370300200941106a200941386a290300370300200941086a200941306a2903003703002009200d290300370300200e41026a2110200e41016a2216210e200d210920102012490d000c020b0b200e21162009210d0b200d200b370300200a201641286c6a22092002290308370308200941206a200f290300370300200941186a2011290300370300200941106a20132903003703000b20064105490d000b4100210a0b200241306a2400200a0f0b41ecc200200a2001103c000b41b4c20020082001103c000b0bdb3b02004180080bec282f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f73657373696f6e2f7372632f6c69622e72737365733a696e647365733a6c656e7365733a6c6c637365733a6e6c6e7365733a76616c00000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72730000000000000000000000000000617474656d707420746f20646976696465206279207a65726f00000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f616c6c206974656d7320636f6d652066726f6d2060766f74657273603b20666f7220616e206974656d20746f20626520696e2060766f7465727360207468657265206d757374206265206120766f746520726567697374657265643b2071656448617368206e6f7420657175616c52756e74696d65206d656d6f7279206578686175737465642e2041626f7274696e676c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f7774696d3a64696454696d657374616d70206d7573742062652075706461746564206f6e636520696e2074686520626c6f636b2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f74696d657374616d702f7372632f6c69622e727374696d3a76616c54696d657374616d70206d7573742062652066697273742065787472696e73696320696e2074686520626c6f636b54696d657374616d70206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b617373657274696f6e206661696c65643a206175782e69735f656d7074792829656e766578745f7365745f73746f726167656578745f6765745f73746f726167656578745f7472616e736665726578745f6372656174656d656d6f727963616c6c002f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f7374616b696e672f7372632f636f6e74726163742e72730000000000000000000000000000000000000000000000000000000000000000007372632f6c69622e72732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f756e63696c2f7372632f6c69622e7273636f753a6e7874636f753a76636f636f753a76626f636f753a767273636f753a617072636f753a6c616374617267657420666f7220696e616374697669747920636c65616e7570206d75737420626520616374697665636f753a766770636f753a63616e616c6c206974656d7320696e2063616e64696461746573206c697374206172652072656769737465726564636f753a726567636f753a63626f636f753a636e6363616e6e6f742070726573656e74206f757473696465206f662070726573656e746174696f6e20706572696f64636f753a737373636f753a707373636f753a77696e6c6561646572626f617264206d757374206578697374207768696c652070726573656e7420706861736520616374697665636f753a61637470726573656e7465642063616e646964617465206d7573742062652063757272656e7463616e646964617465206d757374206e6f7420666f726d2061206475706c696361746564206d656d62657220696620656c656374656463616e646964617465206e6f7420776f72746879206f66206c6561646572626f61726470726573656e746572206d75737420686176652073756666696369656e7420736c61736861626c652066756e647300000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e7273696e76616c69642063616e64696461746520736c6f7463616e64696461746520686173206e6f7420656e6f7567682066756e64736475706c69636174652063616e646964617465207375626d697373696f6e72657472616374696f6e20696e646578206d69736d6174636872657472616374696f6e20696e64657820696e76616c696463616e6e6f742072657472616374206e6f6e2d766f74657263616e6e6f742072657472616374207768656e2070726573656e74696e676261642074617267657420696e646578626164207265706f7274657220696e64657863616e6e6f74207265617020647572696e67206772616365207065726964766f746520696e646578206e6f742063757272656e74726561706572206d757374206265206120766f74657263616e6e6f74207265617020647572696e672070726573656e746174696f6e20706572696f64617373657274696f6e206661696c65643a202153656c663a3a70726573656e746174696f6e5f6163746976652829636f753a737473636f753a706475636f753a74726d636f753a706572636f753a63636f66696e616c6973652063616e206f6e6c792062652063616c6c656420616674657220612074616c6c7920697320737461727465642e72756e6e6572207570206d757374206265207265676973746572656400617474656d707420746f20646976696465206279207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72730000000000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f53746f7261676520726f6f74206d757374206d6174636820746861742063616c63756c617465642e2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f6578656375746976652f7372632f6c69622e7273617373657274696f6e206661696c65643a206865616465722e6469676573742829203d3d20263c73797374656d3a3a4d6f64756c653c53797374656d3e3e3a3a6469676573742829416c6c207472616e73616374696f6e732073686f756c6420686176652074686520636f7272656374206e6f6e6365416c6c207472616e73616374696f6e732073686f756c642062652070726f7065726c79207369676e65645472616e73616374696f6e207472696520726f6f74206d7573742062652076616c69642e506172656e7420686173682073686f756c642062652076616c69642e7374726f616765206973206e6f74206e756c6c2c207468657265666f7265206d75737420626520612076616c696420747970656c6962636f72652f726573756c742e727373657269616c697a656420617267732073686f756c642062652070726f7669646564206279207468652072756e74696d653b0a090909636f72726563746c792073657269616c697a656420646174612073686f756c6420626520646573657269616c697a61626c653b0a0909097165642f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652d73616e64626f782f7372632f2e2e2f776974686f75745f7374642e72732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f7374616b696e672f7372632f6c69622e72737374613a6c65637374613a7370657374613a6572617374613a6e73657374613a77696c3a7374613a7661630000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72737374613a6c6f63617373657274696f6e206661696c65643a20746f5f62616c616e6365202b2076616c7565203e20746f5f62616c616e6365617373657274696f6e206661696c65643a203c426f6e646167653c543e3e3a3a676574287472616e736163746f7229203c3d203c426f6e646167653c543e3e3a3a676574286465737429617373657274696f6e206661696c65643a2066726f6d5f62616c616e6365203e3d2076616c756543616e6e6f7420756e7374616b65206966206e6f7420616c7265616479207374616b65642e43616e6e6f74207374616b6520696620616c7265616479207374616b65642e7374613a666565617474656d707420746f207472616e7361637420776974686f757420656e6f7567682066756e647320746f20706179206665657374613a746f74617373657274696f6e206661696c65643a20266465737420213d207472616e736163746f72617373657274696f6e206661696c65643a2062203e3d2076616c756573746f72616765206973206e6f74206e756c6c2c207468657265666f7265206d75737420626520612076616c6964207479706552657175697265642076616c756573206d75737420626520696e2073746f726167652f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f756e63696c2f7372632f766f74696e672e7273636f763a706572696f64636f763a70726f636f763a707273636f763a766f74653a636f763a766f746572733a636f763a636f6f6c6f6666636f763a7665746f3a70726f706f73616c206d75737420657869737420746f206265207665746f65646f6e6c7920636f756e63696c6c6f7273206d6179207665746f20636f756e63696c2070726f706f73616c73617373657274696f6e206661696c65643a202153656c663a3a69735f7665746f6564282670726f706f73616c5f68617368294e6f206475706c69636174652070726f706f73616c7320616c6c6f776564617373657274696f6e206661696c65643a2053656c663a3a77696c6c5f7374696c6c5f62655f636f756e63696c6c6f725f6174286175782e7265665f696e746f28292c2065787069727929616c6c207175657565642070726f706f73616c20686173686573206d7573742068617665206173736f6369617465642070726f706f73616c732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f64656d6f63726163792f7372632f6c69622e727364656d3a6c617564656d3a707562416c6c2063757272656e74207075626c69632070726f706f73616c73206861766520616e20616d6f756e74206c6f636b65646465706f7369746f727320616c7761797320657869737420666f722063757272656e742070726f706f73616c7364656d3a70657264656d3a6e787464656d3a72636f43616e6e6f7420696e6a6563742061207265666572656e64756d207468617420656e6473206561726c696572207468616e2070726563656564696e67207265666572656e64756d63616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e7273002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e72730000000000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e727364656d3a6d696e64656d3a70706363616e206f6e6c79207365636f6e6420616e206578697374696e672070726f706f73616c7472616e736163746f72206d75737420686176652062616c616e636520746f207369676e616c20617070726f76616c2e766f746520676976656e20666f7220696e76616c6964207265666572656e64756d2e617373657274696f6e206661696c65643a203c7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e646564286175782e7265665f696e746f28292c206465706f7369742e3029617373657274696f6e206661696c65643a203c7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e646564286175782e7265665f696e746f28292c2076616c756529617373657274696f6e206661696c65643a2076616c7565203e3d2053656c663a3a6d696e696d756d5f6465706f736974282900000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e727300000000000000000000000000002f636865636b6f75742f7372632f6c6962616c6c6f632f736c6963652e7273696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f64652f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f6e73656e7375732f7372632f6c69622e72733a617574683a7379733a6f6c640000007379733a6e756d7379733a7068617379733a7478727379733a726e647379733a787469426c6f636b206e756d626572206d6179206e65766572206265207a65726f2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f73797374656d2f7372632f6c69622e72737379733a6e6f6e7379733a7874647379733a6469676c656e5f5f5068616e746f6d4974656d2073686f756c64206e6576657220626520757365642e3a636f6465000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f736f72742e7273617373657274696f6e206661696c65643a206d6964203c3d206c656e6c6962636f72652f736c6963652f6d6f642e7273000000000000000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e7273617373657274696f6e206661696c65643a20696e646578203c3d206c656e6c6962616c6c6f632f7665632e7273617373657274696f6e206661696c65643a20696e646578203c206c656e0041ec300be0124f1600002800000000040000480000003300000001000000711700002300000000040000480000003300000001000000a0040000190000007004000022000000c50100002d000000c00400003900000070040000220000001a0200002d0000004f160000280000001f0e0000530000006f000000090000004f160000280000001f0e00005300000078000000090000009c050000110000008905000013000000e502000005000000df17000014000000d008000005000000df17000014000000d608000005000000fe130000110000009203000005000000b40500002b000000df0500004a0000004b000000030000007117000023000000df0500004a0000002b000000010000008e06000020000000df0500004a00000041000000030000005e06000030000000df0500004a0000004200000003000000300600002e000000df0500004a0000004300000003000000f00600004d0000008700000012000000f00600004d0000008800000012000000f00600004d000000890000000f000000f00600004d0000007000000019000000f00600004d0000007100000019000000f00600004d000000720000000f000000f00600004d0000005e00000016000000f00600004d0000005f00000012000000f00600004d0000003d00000016000000f00600004d0000003e00000018000000f00600004d0000003f000000130000004f16000028000000df0500004a0000002b000000010000005e0700000a000000a8000000020000004f1600002800000068070000480000006500000001000000711700002300000068070000480000006500000001000000ed0a00002e0000006807000048000000e3000000030000006807000048000000e400000003000000c70a0000260000006807000048000000f800000003000000b10a0000160000006807000048000000f9000000030000009b0a0000160000006807000048000000fb000000030000007d0a00001e0000006807000048000000fc000000030000008009000022000000200900000a0000006b0a000012000000680700004800000000010000030000005b0a000010000000680700004800000001010000030000003d0a00001e00000068070000480000001b01000003000000250a00001800000068070000480000001c010000030000000d0a00001800000068070000480000001f01000003000000f40900001900000068070000480000002001000003000000d60900001e00000068070000480000002901000003000000b80900001e00000068070000480000002a01000003000000a20900001600000068070000480000002f010000030000008009000022000000260900000e000000680700004800000044010000030000004a0900002e00000068070000480000004a01000003000000270900002300000068070000480000004d01000003000000f1080000360000006807000048000000500100000400000080090000220000003c02000023000000e00b000039000000b00b0000220000001a0200002d000000900b000019000000b00b000022000000c50100002d0000004f0d00001c000000410c00004a00000050000000030000002b0d000024000000410c00004a00000058000000030000008b0c000048000000410c00004a0000009c00000003000000190c000028000000410c00004a000000a400000003000000010d00002a000000410c00004a000000850000000e000000d30c00002e000000410c00004a0000008b000000040000009e0d000011000000b1030000050000004f160000280000001f0e00005300000008010000090000004f16000028000000720e0000480000005b00000001000000f00e000039000000300f0000220000001a0200002d000000201000001f000000720e000048000000c800000003000000fb0f000025000000720e000048000000d6000000040000007117000023000000720e0000480000005b00000001000000d40f000027000000720e00004800000030020000030000008a0f00004a000000720e0000480000003302000003000000590f000031000000720e00004800000034020000030000000600000000000000010000000700000008000000090000000a0000000b0000000c0000000d0000004610000033000000720e0000480000005702000003000000d40f000027000000720e00004800000016020000030000008010000025000000720e00004800000022020000030000000e00000018000000040000000f000000100000001100000012000000130000001400000015000000a51000001c000000720e00004800000015010000030000004f16000028000000161100004b0000001b000000010000007117000023000000161100004b0000001b000000010000003c1200004b000000161100004b0000004e000000030000001e1200001e000000161100004b0000005200000003000000ec11000032000000161100004b0000005300000003000000c11100002b000000161100004b0000006900000003000000a111000020000000161100004b0000006a000000030000004f16000028000000c01200004a0000003900000001000000401400003900000080140000220000001a0200002d00000010140000220000003c02000023000000d31300002b000000fe130000110000004f010000150000008c13000047000000c01200004a000000d9000000040000007117000023000000c01200004a0000003900000001000000c615000032000000c01200004a0000009300000003000000781500004e000000c01200004a00000094000000030000002615000052000000c01200004a000000a2000000030000000415000022000000c01200004a000000ac00000004000000d414000030000000c01200004a000000af000000040000000016000022000000200900000a0000000016000022000000260900000e000000301600001f000000b20200001e000000301600001f000000b5020000360000004f16000028000000771600004a0000003b00000001000000f41600001e00000012170000470000007d000000030000007117000023000000771600004a0000003b0000000100000000180000220000003d02000023000000c31700001c000000df17000014000000cc0100000d000000a017000023000000910200001d00000000180000220000003c02000023000000a017000023000000a70000003a000000a017000023000000ae00000030000000221800001e000000401800000f00000047030000090000004f1800001d000000401800000f0000006f03000009000000000c076c696e6b696e670302cc3b00ff8401046e616d6501f68401e40100146578745f6765745f73746f726167655f696e746f010a6578745f6d616c6c6f6302086578745f66726565030c6578745f74776f785f313238040f6578745f7365745f73746f7261676505116578745f636c6561725f73746f72616765060a6578745f6d656d636d7007186578745f656e756d6572617465645f747269655f726f6f74080e6578745f7072696e745f75746638090d6578745f7072696e745f6e756d0a0a6578745f6d656d6370790b0b6578745f6d656d6d6f76650c0a6578745f6d656d7365740d166578745f73616e64626f785f6d656d6f72795f6e65770e176578745f73616e64626f785f696e7374616e74696174650f126578745f73616e64626f785f696e766f6b6510166578745f73616e64626f785f6d656d6f72795f67657411166578745f73616e64626f785f6d656d6f72795f736574120e6578745f626c616b65325f323536130d6578745f7072696e745f68657814106578745f73746f726167655f726f6f7415126578745f656432353531395f76657269667916773c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a4469676573743c4974656d3e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a686366613333306530633737643531613517066d656d73657418393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a6838313936363666396265663463633931194b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68646339636565313232303362623835621a4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68353632363038323130343238623465631b4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68653335663962326562366332393066621c24616c6c6f633a3a616c6c6f633a3a6f6f6d3a3a68613732396634666436376436376633391d8b013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a4865616465723c4e756d6265722c20486173682c204469676573744974656d3e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a68306561356233376164373865313636341e066d656d6370791f573c616c6c6f633a3a7665633a3a5665633c75383e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a683135633166653139313338396266313020a0013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a556e636865636b656445787472696e7369633c4163636f756e7449642c20496e6465782c2043616c6c2c205369676e61747572653e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a686666343637646332363738333264373321583c616c6c6f633a3a626f7865643a3a426f783c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a683733356130396161356431326165663322345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e3138363723393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a6835646661343736643064326634353464244b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6831623238376135353263616531393734252b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a683461653631636530366535663831633126a0013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a556e636865636b656445787472696e7369633c4163636f756e7449642c20496e6465782c2043616c6c2c205369676e61747572653e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6862346461326637656565363934383334273a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a6861623665336266623631626431356231285a3c706f6c6b61646f745f72756e74696d653a3a43616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a68393931323239363862316130396334322934636f72653a3a736c6963653a3a736c6963655f696e6465785f6c656e5f6661696c3a3a68363938393263393438396363616162622a363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a68353666353936643634373237343833632b8d015f5a4e34395f244c5424616c6c6f632e2e7261775f7665632e2e526177566563244c54245424432424753230244124475424244754243131616c6c6f636174655f696e32385f24753762242475376224636c6f737572652475376424247537642431376838343739373131363565646633646537452e6c6c766d2e3632303339333138363734383337373033382c493c7375627374726174655f72756e74696d655f73657373696f6e3a3a4d6f64756c653c543e3e3a3a726f746174655f73657373696f6e3a3a68663938353764613535613230616562632d2e636f72653a3a6f7074696f6e3a3a6578706563745f6661696c65643a3a68653163323536643932353565393632662e463c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a626c6f636b5f6e756d6265723a3a68313635316433343866326134346235372f527375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a726571756972653a3a6861313164373161613165393864646363304b3c54206173207375627374726174655f636f6465633a3a6b657965647665633a3a4b657965645665633e3a3a746f5f6b657965645f7665633a3a6866346339626432626430633262303964314f7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765745f6f725f64656661756c743a3a6837623835343430353965333637333638324b3c54206173207375627374726174655f636f6465633a3a6b657965647665633a3a4b657965645665633e3a3a746f5f6b657965645f7665633a3a686466633130663239626637643964313133523c636f72653a3a697465723a3a436c6f6e65643c493e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a683032316562386262636530636661323334583c28412c204229206173207375627374726174655f72756e74696d655f7072696d6974697665733a3a7472616974733a3a45786563757461626c653e3a3a657865637574653a3a6863373034616135306561623165643139359f017375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a3c696d706c207375627374726174655f72756e74696d655f7072696d6974697665733a3a7472616974733a3a45786563757461626c6520666f72207375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a657865637574653a3a683730353563353930613161356165386336597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a686432656434346461383333643033393337473c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a6465706f7369745f6f663a3a6864356630353863656136333834623032382b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a683436373662323538363033663731396439076d656d6d6f76653a563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a68653630626561346331643730393736643b29636f72653a3a70616e69636b696e673a3a70616e69633a3a68313137323734323133346465393231303c36636f72653a3a70616e69636b696e673a3a70616e69635f626f756e64735f636865636b3a3a68363630346666363535326232666562323d413c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a726566756e643a3a68633362613564623165383537303661313e86013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a68656161636164343939313263336335363f4e3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a696e6a6563745f7265666572656e64756d3a3a6863653264346134373837396137323635404c3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a7265666572656e64756d5f696e666f3a3a68356430386136656330613537303133384134616c6c6f633a3a7261775f7665633a3a63617061636974795f6f766572666c6f773a3a686334316261316636346437363033373942473c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a766f746572735f666f723a3a686539303831303936616133363162333843473c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a667265655f62616c616e63653a3a6862653837643063316262386365323731444b3c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a72657365727665645f62616c616e63653a3a6865623966656232366134653538343433453e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6835666661663632366231656464306238464d3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a636c6561725f7265666572656e64756d3a3a683065326261346565363332393465346547597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a686364633932303862653939363865303148423c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a6e65775f6572613a3a6834333536343534386630353530373663493a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a68666363653264376532363234386132664a86013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a68383237346662353239326530653935384b345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e313933304c6d3c7375627374726174655f72756e74696d655f696f3a3a426c616b6554776f323536206173207375627374726174655f72756e74696d655f696f3a3a48617368696e673e3a3a656e756d6572617465645f747269655f726f6f743a3a68373531363037396363363934643362344d11727573745f626567696e5f756e77696e644e08727573745f6f6f6d4f393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683934323963666464366239343939316550463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686638333437636630333536663137633751573c616c6c6f633a3a7665633a3a5665633c75383e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a683562613039363631356162393163653352066d616c6c6f63530466726565542d636f72653a3a70616e69636b696e673a3a70616e69635f666d743a3a68343066313034346338363430636537655536636f72653a3a736c6963653a3a736c6963655f696e6465785f6f726465725f6661696c3a3a6838313330343432303532386232613865564b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6832653739643730623164373537336236574b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6834333337316334333361323734393066584b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6835653639393561353131376336316261594b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68393332616436626561643261373838325a4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68643335646131306634323134323937335b4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68306464323861643233626338353865665c4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68323236353666303366323931393738325d4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68626461366634636434623039663433665e4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68303139363230336638363464396133345f4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6862396532346165643662353163376566604b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6863613166626538323365653436383431614b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6862323236663235303162633264306264624b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6836333364303435386436356363393863634b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6866616563633135353361633333613835644b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6861356133316562653333306639326635654b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6832376361366365373461626664666264664b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6836323932333830613439323131383638674b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a686163306336633862333061653039663768393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683063653362633633326336616364326169463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68376636633966373761363663373937636a393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68343038373662383637653261396330396b463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68383863616164303861633361623961646c393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68353262366336626163626135633061386d463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68623437366264373632363935623330336e463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68326132353062613265323263336337396f393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683636323532376436666130383237343470463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683365363965636439633766616165306371393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683764313835303766636661646366353972463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686335663366366638303064303431353273463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683738366438643636323036316564613074393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686261353735613734386133306233306375463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686532653262373435333764623266386476393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686461363738663731646162613761666577463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683863323961323539383931333766343978393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686463356361653038383331346337376679463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68326161633766383935303734356563397a393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68646433633635373262343532613031347b463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68626462393236656664376432346539387c393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68653333366232306266663138383930347d463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68346633396332623430636437333963347e393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68653338643736373866303134323236317f463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68363862383536613030333235623134628001393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68656330653961326130616435633466648101463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683838636134306365646335303261316282013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683534343836366335623963663730373583013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683734393131616635323537633037393784013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683735663262666638613830643365623985013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683863616636616537333938376436346386013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a68653033623365323432663733346433308701503c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68393537643736623535353030646266348801c3013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68353731386465393136646662313737328901c3013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68373463373532366661626363646564358a01c7013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68343437336564333066636136316137308b01cb013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572745f6669743a3a68326333636630383765623331663734338c01c7013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68386365653235383631313166343439668d01cb013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572745f6669743a3a68663630346163643262623861646636648e013f7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a68666332303937306166616238363265658f01507375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f7365745f73746f726167653a3a68633235623630316631346635383463389001507375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f6765745f73746f726167653a3a683736613962653764306632343937316491014d7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f7472616e736665723a3a683632326464636435333464616431363892014b7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f6372656174653a3a68396363303263356565333664303032379301417375627374726174655f72756e74696d655f73616e64626f783a3a696d703a3a64697370617463685f7468756e6b3a3a683939386139316165306131663037633594017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f73746f726167653a3a683035373136666235306661623636643395017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f73746f726167653a3a683031326363613031653639396364643996013b3c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e3e3a3a6765743a3a6865383334633533623431306361303264970134616c6c6f633a3a62747265653a3a7365617263683a3a7365617263685f747265653a3a68613435343266643037623530613430349801653c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e20617320636f72653a3a697465723a3a7472616974733a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a68323337613934396465633834333065369901553c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68663765393037343761386636613332309a01453c616c6c6f633a3a62747265653a3a6d61703a3a566163616e74456e7472793c27612c204b2c20563e3e3a3a696e736572743a3a68616639316138373166656365356538369b017c3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f636f64653a3a68636634333438326462356135353864349c01793c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6d657267653a3a68306134623934346339646231343665329d01653c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e20617320636f72653a3a697465723a3a7472616974733a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a68336331666362643134643933623735619e01553c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68626262323936373561396334396234399f012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6866313734613335313966343639373764a0016c3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a5072697643616c6c3c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6836313935643931346137663363333636a1010b617574686f726974696573a201563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6834663037313434396230306561366362a30110696e697469616c6973655f626c6f636ba401443c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a696e697469616c6973653a3a6832326337643330356130373863393035a5010f6170706c795f65787472696e736963a601783c7375627374726174655f72756e74696d655f6578656375746976653a3a4578656375746976653c53797374656d2c20426c6f636b2c205061796d656e742c2046696e616c69736174696f6e3e3e3a3a6170706c795f65787472696e7369635f696e6e65723a3a6836303438333536646465653962326663a7010d657865637574655f626c6f636ba801443c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a626c6f636b5f686173683a3a6838333036626630323533366265386266a901523c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a53706563457874656e643c542c20493e3e3a3a66726f6d5f697465723a3a6863383933623037366263653438356361aa01423c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a66696e616c6973653a3a6835643638333133636232646637366465ab010e66696e616c6973655f626c6f636bac010f76616c696461746f725f636f756e74ad010a76616c696461746f7273ae01793c7375627374726174655f72756e74696d655f636f756e63696c3a3a43616c6c3c543e206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6836363435303363376332313138323333af01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a6578697374733a3a6837323366316130366637356338376235b001473c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a72656d6f76655f766f7465723a3a6837326137643235373861356638346333b101563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6830396163353435653961376538333833b2014a3c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e6465643a3a6835366234393235363039633261333763b3014c3c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a766f7465725f6c6173745f6163746976653a3a6862336538666236373336303764663063b401473c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a617070726f76616c735f6f663a3a6865333163643561323839663761303839b5014d3c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a63616e6469646174655f7265675f696e666f3a3a6866303561313635613136333135646633b601563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6831613262363530646163366431306537b70186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6866373862303163316265363933623132b801563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6862636662316161343963386239396538b901543c636f72653a3a697465723a3a436861696e3c412c20423e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839313464643736343236613933323338ba01563c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a696e7465726e616c5f73746172745f7265666572656e64756d3a3a6864663562353935316539353236643238bb01527375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a726571756972653a3a6862646338666238653461356339396261bc0186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6836363231356566633664633732336432bd015e3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6836636664343364363366653539376139be013e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6834356437316332383730346338366538bf01345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e31383434c001473c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a6163636f756e745f696e6465783a3a6830663032313835306531326631353532c1016d3c706f6c6b61646f745f72756e74696d653a3a43616c6c206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6862353365306137383562356439313664c2012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6835636361383862626431396436663637c3012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6861636366363539333334346266343932c4012d636f72653a3a736c6963653a3a736f72743a3a726563757273653a3a6865653866663861633636343163366337c501563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6836643335643961613335663530373466c601773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f62616c616e63653a3a6839366364653364613533393430373432c701713c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6d657267653a3a6863386138646538333035626335356661c8015e3c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839663430373961306139316533623539c901563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6839633838336432616334356335643565ca015e3c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6831353032303864643239373239616232cb013e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6866653733303335653834393636616231cc012b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a6837313232393564313131373938333732cd01773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f73746f726167653a3a6865626533633663393533393837616132ce01743c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f636f64653a3a6837376330653737383334326563333934cf01773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f73746f726167653a3a6862663865653331383633303066393130d001743c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f636f64653a3a6834393266643631333433343565656533d101773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f62616c616e63653a3a6861303936363266636534323061373632d2013e3c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e3e3a3a696e736572743a3a6863313238323330343366616132306235d3012b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a6862623666313834333462363831646364d4017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f62616c616e63653a3a6864333339636666326536626431326136d5017c3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f636f64653a3a6832353031306366393163383531653633d6017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f62616c616e63653a3a6835663038363634343266663639663034d70186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6833663831363961656164316536306634d8015e3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6864323261663136323532663732653865d901587375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a74616b655f6f725f70616e69633a3a6865373635393838373032386265316365da01597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a6834623732396637663566373061363932db0181013c7375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a43616c6c3c543e206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6830653834363332383930313361343764dc014a3c7375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a4d6f64756c653c543e3e3a3a7665746f5f6f663a3a6862306633653061333063356237626537dd01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6834336534383363363337326338613963de01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6866323533306336323935613261646262df01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6863373164346434623063343438383037e0014c3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6833623430356561333864626335613735e10134636f72653a3a736c6963653a3a736f72743a3a627265616b5f7061747465726e733a3a6836346333343639613537386236366265e2012e636f72653a3a736c6963653a3a736f72743a3a68656170736f72743a3a6830386534373738303065643562646365e3013c636f72653a3a736c6963653a3a736f72743a3a7061727469616c5f696e73657274696f6e5f736f72743a3a6838643731323265613337623036313336", + "0x0346fb0f1ce64e1a02c4959d38ebad38": "0x00000000" +}}, +"bootNodes": [ + "/ip4/104.211.54.233/tcp/30333/p2p/QmRMGcQh69t8a8YwzHkofVo9SFr7ffggUwhAYjVSTChmrd", + "/ip4/104.211.48.51/tcp/30333/p2p/QmWCnXrhM1in1qPqVT3rDXQEJHedAzbPDMimdjqy2P9fGn", + "/ip4/104.211.48.247/tcp/30333/p2p/QmYPx99i3H8EKXrvYHTBwqz3jjFC1kBfkvmSKd2h9zwQFr", + "/ip4/40.114.120.164/tcp/30333/p2p/QmWzYU5X1NpFrprD1YZF5Lcj9aE5WF4QEg5FpvQx5XGWG7", + "/ip4/40.117.153.33/tcp/30333/p2p/QmSz8qCADMmi92QB8dTqMPu56JYQQKZBAHz7y8KXjvqcvW" +] +} diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index f42fbb5d..e7a609ab 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -6,7 +6,7 @@ import { Config } from '@polkadot/client/types'; import { BaseDb, TrieDb } from '@polkadot/client-db/types'; import { BlockDb, StateDb } from '@polkadot/client-db-chain/types'; import { ExecutorInterface } from '@polkadot/client-wasm/types'; -import { ChainInterface, ChainGenesis, ChainGenesisState } from './types'; +import { ChainInterface, ChainGenesis, ChainJson } from './types'; import createBlockDb from '@polkadot/client-db-chain/block'; import createStateDb from '@polkadot/client-db-chain/state'; @@ -26,22 +26,23 @@ import chains from './chains'; export default class Chain implements ChainInterface { readonly blocks: BlockDb; + readonly chain: ChainJson; readonly executor: ExecutorInterface; readonly genesis: ChainGenesis; readonly state: StateDb; constructor (config: Config, stateDb: TrieDb, blockDb: BaseDb) { - const initial = this.load(config.chain); const runtime = createRuntime(stateDb); + this.chain = this.load(config.chain); this.blocks = createBlockDb(blockDb); this.state = createStateDb(stateDb); - this.genesis = this.initGenesis(initial); + this.genesis = this.initGenesis(); this.executor = new Executor(config, this.blocks, this.state, runtime); } // TODO We should load chains from json files as well - private load (name: string): ChainGenesisState { + private load (name: string): ChainJson { const chain = chains[name]; assert(chain, `Unable to find builtin chain '${name}'`); @@ -49,8 +50,8 @@ export default class Chain implements ChainInterface { return chain; } - private initGenesis (initial: ChainGenesisState) { - this.initGenesisState(initial); + private initGenesis () { + this.initGenesisState(); const genesis = this.initGenesisBlock(); @@ -87,13 +88,15 @@ export default class Chain implements ChainInterface { }; } - private initGenesisState (initial: ChainGenesisState) { + private initGenesisState () { + const { genesis: { raw } } = this.chain; + this.state.db.checkpoint(); - Object.keys(initial).forEach((key) => + Object.keys(raw).forEach((key) => this.state.db.put( hexToU8a(key), - hexToU8a(initial[key]) + hexToU8a(raw[key]) ) ); diff --git a/packages/client-chains/src/types.d.ts b/packages/client-chains/src/types.d.ts index 9e548559..b155285e 100644 --- a/packages/client-chains/src/types.d.ts +++ b/packages/client-chains/src/types.d.ts @@ -12,8 +12,15 @@ import { Logger } from '@polkadot/util/types'; export type ChainName = 'dev'; export type ChainType = 'polkadot' | 'substrate'; -export type ChainGenesisState = { - [index: string]: string +export type ChainJson = { + bootNodes: Array, + genesis: { + raw: { + [index: string]: string + } + }, + id: string, + name: string }; export type ChainGenesis = { @@ -25,6 +32,7 @@ export type ChainGenesis = { export interface ChainInterface { readonly blocks: BlockDb, + readonly chain: ChainJson, readonly executor: ExecutorInterface, readonly genesis: ChainGenesis, readonly state: StateDb diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 2eb11344..28ff0223 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.20", - "@polkadot/trie-hash": "^0.26.20", - "@polkadot/util": "^0.26.20", - "@polkadot/util-crypto": "^0.26.20" + "@polkadot/storage": "^0.26.25", + "@polkadot/trie-hash": "^0.26.25", + "@polkadot/util": "^0.26.25", + "@polkadot/util-crypto": "^0.26.25" }, "devDependencies": { - "@polkadot/storage": "^0.26.20" + "@polkadot/storage": "^0.26.25" } } diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 0c637e3d..f9b3563c 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.20", - "@polkadot/util": "^0.26.20", + "@polkadot/trie-db": "^0.26.25", + "@polkadot/util": "^0.26.25", "@types/mkdirp": "^0.5.2", "mkdirp": "^0.5.1" }, diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index b4d47998..8742e8a8 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.20", - "@polkadot/primitives": "^0.26.20", - "@polkadot/util": "^0.26.20" + "@polkadot/jsonrpc": "^0.26.25", + "@polkadot/primitives": "^0.26.25", + "@polkadot/util": "^0.26.25" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index a838bbd0..addd4fad 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.20", - "@polkadot/util": "^0.26.20", + "@polkadot/primitives": "^0.26.25", + "@polkadot/util": "^0.26.25", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index c70d8f24..c42c2802 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.20", - "@polkadot/primitives": "^0.26.20", - "@polkadot/util": "^0.26.20" + "@polkadot/jsonrpc": "^0.26.25", + "@polkadot/primitives": "^0.26.25", + "@polkadot/util": "^0.26.25" } } diff --git a/packages/client-rpc-handlers/src/system.ts b/packages/client-rpc-handlers/src/system.ts index 7b75fad2..fc7c6bed 100644 --- a/packages/client-rpc-handlers/src/system.ts +++ b/packages/client-rpc-handlers/src/system.ts @@ -2,15 +2,15 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { ChainInterface } from '@polkadot/client-chains/types'; +import { ChainInterface, ChainJson } from '@polkadot/client-chains/types'; import { Config } from '@polkadot/client/types'; import { Endpoint } from './types'; import * as clientId from '@polkadot/client/clientId'; -const systemChain = ({ chain }: Config) => +const systemChain = ({ chain: { name } }: ChainInterface) => async (): Promise => - chain; + name; const systemName = async (): Promise => clientId.name; @@ -19,7 +19,7 @@ const systemVersion = async (): Promise => clientId.version; export default (config: Config, chain: ChainInterface): Endpoint => ({ - 'system_chain': systemChain(config), + 'system_chain': systemChain(chain), 'system_name': systemName, 'system_version': systemVersion }); diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index f3593f43..e2a0bcb8 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,13 +34,13 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.14.18", + "@polkadot/api-provider": "^0.14.23", "@polkadot/client": "^0.13.8" }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.20", + "@polkadot/util": "^0.26.25", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 5fd375e6..7ce68989 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.20", - "@polkadot/util-crypto": "^0.26.20" + "@polkadot/util": "^0.26.25", + "@polkadot/util-crypto": "^0.26.25" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 0fcc0d2f..52ae973e 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.20", + "@polkadot/util": "^0.26.25", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index cb3b30ac..a25a02e6 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.20", - "@polkadot/util": "^0.26.20", + "@polkadot/primitives": "^0.26.25", + "@polkadot/util": "^0.26.25", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client/package.json b/packages/client/package.json index bffea758..93d8ab6e 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.20", - "@polkadot/primitives": "^0.26.20", - "@polkadot/util": "^0.26.20", + "@polkadot/jsonrpc": "^0.26.25", + "@polkadot/primitives": "^0.26.25", + "@polkadot/util": "^0.26.25", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 421d5613..74202dac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -691,15 +691,15 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" -"@polkadot/api-provider@^0.14.18": - version "0.14.18" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.18.tgz#9534af39db463a38cc08c6c8dc05cb2e4750f933" +"@polkadot/api-provider@^0.14.23": + version "0.14.23" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.23.tgz#8249e707d709ec9cfb69cb433bd9c0cd055d9575" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/storage" "^0.26.20" - "@polkadot/util" "^0.26.20" - "@polkadot/util-crypto" "^0.26.20" - "@polkadot/util-keyring" "^0.26.20" + "@polkadot/storage" "^0.26.25" + "@polkadot/util" "^0.26.25" + "@polkadot/util-crypto" "^0.26.25" + "@polkadot/util-keyring" "^0.26.25" "@types/nock" "^9.1.3" eventemitter3 "^2.0.3" isomorphic-fetch "^2.2.1" @@ -751,59 +751,59 @@ typedoc "^0.11.1" typescript "^2.9.2" -"@polkadot/extrinsics@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.20.tgz#4b50b0efd5be45593ad4dde2913a20e8a3238ab7" +"@polkadot/extrinsics@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.25.tgz#14557293c84c67765fab930b2b19e151721cfa64" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.20" - "@polkadot/primitives" "^0.26.20" - "@polkadot/util" "^0.26.20" + "@polkadot/params" "^0.26.25" + "@polkadot/primitives" "^0.26.25" + "@polkadot/util" "^0.26.25" -"@polkadot/jsonrpc@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.20.tgz#ab8fea3b640938564cbbf8168ca991440f7489d3" +"@polkadot/jsonrpc@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.25.tgz#c43babadd2bbf67998d06e6376c4ad3c496e4c56" dependencies: - "@polkadot/params" "^0.26.20" + "@polkadot/params" "^0.26.25" babel-runtime "^6.26.0" -"@polkadot/params@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.20.tgz#dc5fa8c05dca22d081e8e5b5dafd32eec4c28cca" +"@polkadot/params@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.25.tgz#be64273ad5a3e8079edca46731aa1f129d3d0b76" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.20" - "@polkadot/primitives" "^0.26.20" - "@polkadot/util" "^0.26.20" + "@polkadot/extrinsics" "^0.26.25" + "@polkadot/primitives" "^0.26.25" + "@polkadot/util" "^0.26.25" -"@polkadot/primitives@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.20.tgz#a4c0b7376b5bfa177932ea5742b97f8fe9ae9e82" +"@polkadot/primitives@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.25.tgz#b6b7d5adbae13667aeb0ec4d0c83a6776c73aff9" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.20" - "@polkadot/util" "^0.26.20" + "@polkadot/trie-hash" "^0.26.25" + "@polkadot/util" "^0.26.25" -"@polkadot/storage@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.20.tgz#fa383578e445be5cc4e9e78552a3a9c784f6154a" +"@polkadot/storage@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.25.tgz#4fc9302176af95a2c57ebd669997c64f6fa6ab69" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.20" - "@polkadot/primitives" "^0.26.20" - "@polkadot/util" "^0.26.20" - "@polkadot/util-crypto" "^0.26.20" - "@polkadot/util-keyring" "^0.26.20" + "@polkadot/params" "^0.26.25" + "@polkadot/primitives" "^0.26.25" + "@polkadot/util" "^0.26.25" + "@polkadot/util-crypto" "^0.26.25" + "@polkadot/util-keyring" "^0.26.25" -"@polkadot/trie-db@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.20.tgz#71cb6e0305d78b708fb2ae51aa02f58ea256171d" +"@polkadot/trie-db@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.25.tgz#d6567a1552d1a600bfeba73703904059ce719825" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.20" - "@polkadot/util" "^0.26.20" - "@polkadot/util-crypto" "^0.26.20" - "@polkadot/util-rlp" "^0.26.20" + "@polkadot/trie-hash" "^0.26.25" + "@polkadot/util" "^0.26.25" + "@polkadot/util-crypto" "^0.26.25" + "@polkadot/util-rlp" "^0.26.25" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -814,50 +814,50 @@ readable-stream "^2.2.8" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.20.tgz#0f5f57a1df5713541685008f4d033d0f2fa4f29f" +"@polkadot/trie-hash@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.25.tgz#f3c13f37f285a53997426cb6612a1bfae7398d83" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.20" - "@polkadot/util-crypto" "^0.26.20" - "@polkadot/util-rlp" "^0.26.20" + "@polkadot/util" "^0.26.25" + "@polkadot/util-crypto" "^0.26.25" + "@polkadot/util-rlp" "^0.26.25" "@polkadot/ts@^0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.9.tgz#86010c5a4d63c0fb6b3e85d29db40dcf43c5d7c1" -"@polkadot/util-crypto@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.20.tgz#87f7c1cafe618984ba41dd315c7b46194f258c37" +"@polkadot/util-crypto@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.25.tgz#c5ca7924122fe41b5e8249cdb0d063f41da018d9" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.20" + "@polkadot/util" "^0.26.25" blakejs "^1.1.0" js-sha3 "^0.7.0" tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-keyring@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.20.tgz#a62ea0bc640f7e007d35e264fcdddd4f9213bbe9" +"@polkadot/util-keyring@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.25.tgz#945d9f789a21644a374ab58c940adfa2e3ecec3a" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.20" - "@polkadot/util-crypto" "^0.26.20" + "@polkadot/util" "^0.26.25" + "@polkadot/util-crypto" "^0.26.25" "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.20.tgz#0febb968afe4ef5b8ff00f1579f5b80758ece0c6" +"@polkadot/util-rlp@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.25.tgz#d853cb4bab1888fd44e639347e3a03910079d470" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.20" + "@polkadot/util" "^0.26.25" -"@polkadot/util@^0.26.20": - version "0.26.20" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.20.tgz#3b8800f2b8acb9ae487e957a6378ac35b2b6f91b" +"@polkadot/util@^0.26.25": + version "0.26.25" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.25.tgz#57f5735bc75ffb586ec60a5f4ea954cb9542bb80" dependencies: "@babel/runtime" "^7.0.0-beta.51" "@types/bn.js" "^4.11.1" From cf1aa27cab936cf29ada935240acd9a38daf9575 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 25 Jul 2018 12:59:51 +0200 Subject: [PATCH 02/34] Pass bootNodes into p2p creation --- packages/client-chains/src/chains/dev.json | 1 + packages/client-p2p/src/create/modules.ts | 6 ++++-- packages/client-p2p/src/create/node.ts | 5 +++-- packages/client-p2p/src/index.ts | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/client-chains/src/chains/dev.json b/packages/client-chains/src/chains/dev.json index 54716f84..a478c885 100644 --- a/packages/client-chains/src/chains/dev.json +++ b/packages/client-chains/src/chains/dev.json @@ -1,6 +1,7 @@ { "name": "Development", "id": "dev", + "bootNodes": [], "genesis": {"raw": { "0x1d007e138cb61e2524a67b15ec01d8cb": "0x00000000000000600000000000000000", "0x81c1e7165a6371a30eda241a30ea26dd": "0x02000000000000000000000000000000", diff --git a/packages/client-p2p/src/create/modules.ts b/packages/client-p2p/src/create/modules.ts index ed7de28c..1e51b8f2 100644 --- a/packages/client-p2p/src/create/modules.ts +++ b/packages/client-p2p/src/create/modules.ts @@ -14,7 +14,9 @@ import TCP from 'libp2p-tcp'; import PeerInfo from 'peer-info'; // import WS from 'libp2p-websockets'; -export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes): LibP2p.OptionsModules { +export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes, nodes: P2pNodes): LibP2p.OptionsModules { + const list = bootNodes.concat(nodes); + return { connEncryption: [ // secio @@ -26,7 +28,7 @@ export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes): dht: DHT, peerDiscovery: [ // new Multicast(peerInfo), - new Railing({ list: bootNodes }) + new Railing({ list }) ], transport: [ new TCP() diff --git a/packages/client-p2p/src/create/node.ts b/packages/client-p2p/src/create/node.ts index 5e50edef..b75a467d 100644 --- a/packages/client-p2p/src/create/node.ts +++ b/packages/client-p2p/src/create/node.ts @@ -2,6 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. +import { ChainInterface } from '@polkadot/client-chains/types'; import { Config } from '@polkadot/client/types'; import { Logger } from '@polkadot/util/types'; @@ -21,10 +22,10 @@ const config = { } }; -export default async function createNode ({ p2p: { address, port, nodes = [] } }: Config, l: Logger): Promise { +export default async function createNode ({ p2p: { address, nodes = [], port } }: Config, { chain: { bootNodes = [] } }: ChainInterface, l: Logger): Promise { const peerBook = await createPeerBook([]); const peerInfo = await createListener(address, port); - const modules = createModules(peerInfo, nodes); + const modules = createModules(peerInfo, bootNodes, nodes); const addrs = peerInfo.multiaddrs.toArray().map((addr) => addr.toString()); l.log(`creating Libp2p with ${addrs.join(', ')}`); diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 37893a3b..cd596cf4 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -62,7 +62,7 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { async start (): Promise { await this.stop(); - this.node = await createNode(this.config, this.l); + this.node = await createNode(this.config, this.chain, this.l); this.peers = new Peers(this.config, this.chain, this.node); this._handleProtocol(this.node, this.peers); From 792aae5004acf9bb4481684c5562d047491dc54b Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 25 Jul 2018 13:16:26 +0200 Subject: [PATCH 03/34] Rename spec to be, well, a spec --- packages/client-chains/src/chains/{dev.js => dev.spec.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/client-chains/src/chains/{dev.js => dev.spec.js} (100%) diff --git a/packages/client-chains/src/chains/dev.js b/packages/client-chains/src/chains/dev.spec.js similarity index 100% rename from packages/client-chains/src/chains/dev.js rename to packages/client-chains/src/chains/dev.spec.js From 2216b114c42d311e4ea4efbc03e6bd42711ed033 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 26 Jul 2018 11:47:11 +0200 Subject: [PATCH 04/34] Allow nodes with /p2p/ --- packages/client-p2p/src/create/modules.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client-p2p/src/create/modules.ts b/packages/client-p2p/src/create/modules.ts index 1e51b8f2..4982a8d8 100644 --- a/packages/client-p2p/src/create/modules.ts +++ b/packages/client-p2p/src/create/modules.ts @@ -15,7 +15,7 @@ import PeerInfo from 'peer-info'; // import WS from 'libp2p-websockets'; export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes, nodes: P2pNodes): LibP2p.OptionsModules { - const list = bootNodes.concat(nodes); + const list = bootNodes.concat(nodes).map((node) => node.replace('/p2p/', '/ipfs/')); return { connEncryption: [ From 675981245c43d075bf41d921cb53a3e74686b285 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 26 Jul 2018 17:59:07 +0200 Subject: [PATCH 05/34] Binary network messages (WIP) --- packages/client-chains/package.json | 14 +-- packages/client-db-chain/package.json | 10 +- packages/client-db/package.json | 4 +- packages/client-p2p-messages/package.json | 6 +- .../client-p2p-messages/src/BaseMessage.ts | 17 +++ packages/client-p2p-messages/src/Bft.ts | 32 +++++ .../client-p2p-messages/src/BlockAnnounce.ts | 33 +++--- .../client-p2p-messages/src/BlockRequest.ts | 87 +++++++++----- .../client-p2p-messages/src/BlockResponse.ts | 26 +++-- packages/client-p2p-messages/src/Status.ts | 89 +++++++------- .../client-p2p-messages/src/Transactions.ts | 56 +++++++++ packages/client-p2p-messages/src/attrs/all.ts | 15 +++ .../src/attrs/fromAttrs.ts | 13 +++ .../client-p2p-messages/src/attrs/toAttrs.ts | 18 +++ packages/client-p2p-messages/src/index.ts | 26 +++-- packages/client-p2p-messages/src/types.d.ts | 64 +++------- packages/client-p2p/package.json | 4 +- packages/client-p2p/src/defaults.ts | 4 +- packages/client-p2p/src/handler/bft.ts | 17 +++ .../client-p2p/src/handler/blockAnnounce.ts | 2 +- .../client-p2p/src/handler/blockRequest.ts | 2 +- .../client-p2p/src/handler/blockResponse.ts | 2 +- packages/client-p2p/src/handler/index.ts | 4 +- packages/client-p2p/src/handler/status.ts | 3 +- .../client-p2p/src/handler/transactions.ts | 17 +++ packages/client-p2p/src/peer/index.ts | 32 ++--- packages/client-p2p/src/peers/index.ts | 6 +- packages/client-p2p/src/types.d.ts | 1 + packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 2 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-telemetry/src/defaults.ts | 2 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- yarn.lock | 110 ++++++++++++++++-- 36 files changed, 517 insertions(+), 223 deletions(-) create mode 100644 packages/client-p2p-messages/src/BaseMessage.ts create mode 100644 packages/client-p2p-messages/src/Bft.ts create mode 100644 packages/client-p2p-messages/src/Transactions.ts create mode 100644 packages/client-p2p-messages/src/attrs/all.ts create mode 100644 packages/client-p2p-messages/src/attrs/fromAttrs.ts create mode 100644 packages/client-p2p-messages/src/attrs/toAttrs.ts create mode 100644 packages/client-p2p/src/handler/bft.ts create mode 100644 packages/client-p2p/src/handler/transactions.ts diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 6a954ac8..4def20a2 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.25", - "@polkadot/util": "^0.26.25", - "@polkadot/util-crypto": "^0.26.25", - "@polkadot/util-keyring": "^0.26.25" + "@polkadot/storage": "^0.26.26", + "@polkadot/util": "^0.26.26", + "@polkadot/util-crypto": "^0.26.26", + "@polkadot/util-keyring": "^0.26.26" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.25", - "@polkadot/primitives": "^0.26.25", - "@polkadot/storage": "^0.26.25" + "@polkadot/extrinsics": "^0.26.26", + "@polkadot/primitives": "^0.26.26", + "@polkadot/storage": "^0.26.26" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 28ff0223..a86bd0f7 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.25", - "@polkadot/trie-hash": "^0.26.25", - "@polkadot/util": "^0.26.25", - "@polkadot/util-crypto": "^0.26.25" + "@polkadot/storage": "^0.26.26", + "@polkadot/trie-hash": "^0.26.26", + "@polkadot/util": "^0.26.26", + "@polkadot/util-crypto": "^0.26.26" }, "devDependencies": { - "@polkadot/storage": "^0.26.25" + "@polkadot/storage": "^0.26.26" } } diff --git a/packages/client-db/package.json b/packages/client-db/package.json index f9b3563c..0aae8d50 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.25", - "@polkadot/util": "^0.26.25", + "@polkadot/trie-db": "^0.26.26", + "@polkadot/util": "^0.26.26", "@types/mkdirp": "^0.5.2", "mkdirp": "^0.5.1" }, diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index 8742e8a8..e4ff54b3 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.25", - "@polkadot/primitives": "^0.26.25", - "@polkadot/util": "^0.26.25" + "@polkadot/jsonrpc": "^0.26.26", + "@polkadot/primitives": "^0.26.26", + "@polkadot/util": "^0.26.26" } } diff --git a/packages/client-p2p-messages/src/BaseMessage.ts b/packages/client-p2p-messages/src/BaseMessage.ts new file mode 100644 index 00000000..dc837c15 --- /dev/null +++ b/packages/client-p2p-messages/src/BaseMessage.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2018 @polkadot/client-p2p-messages authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import bnToU8a from '@polkadot/util/bn/toU8a'; + +export default class BaseMessage { + readonly type: number; + + constructor (type: number) { + this.type = type; + } + + encode (): Uint8Array { + return bnToU8a(this.type, 8, true); + } +} diff --git a/packages/client-p2p-messages/src/Bft.ts b/packages/client-p2p-messages/src/Bft.ts new file mode 100644 index 00000000..a20bf7bb --- /dev/null +++ b/packages/client-p2p-messages/src/Bft.ts @@ -0,0 +1,32 @@ +// Copyright 2017-2018 @polkadot/client-p2p-messages authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { MessageInterface, BftMessage } from './types'; + +import u8aConcat from '@polkadot/util/u8a/concat'; + +import BaseMessage from './BaseMessage'; + +export default class Bft extends BaseMessage implements MessageInterface, BftMessage { + static type = 5; + readonly type = Bft.type; + + constructor () { + super(Bft.type); + } + + encode (): Uint8Array { + return u8aConcat( + super.encode() + ); + } + + toJSON (): any { + return {}; + } + + static decode (u8a: Uint8Array): Bft { + return new Bft(); + } +} diff --git a/packages/client-p2p-messages/src/BlockAnnounce.ts b/packages/client-p2p-messages/src/BlockAnnounce.ts index 4cdc7355..d6e5d6a1 100644 --- a/packages/client-p2p-messages/src/BlockAnnounce.ts +++ b/packages/client-p2p-messages/src/BlockAnnounce.ts @@ -3,32 +3,39 @@ // of the ISC license. See the LICENSE file for details. import { Header } from '@polkadot/primitives/header'; -import { BlockAnnounceEncoded, BlockAnnounceMessage, MessageEncoder } from './types'; +import { MessageInterface, BlockAnnounceMessage } from './types'; -import headerDecode from '@polkadot/primitives/json/header/decode'; -import headerEncode from '@polkadot/primitives/json/header/encode'; +import headerDecode from '@polkadot/primitives/codec/header/decode'; +import headerEncode from '@polkadot/primitives/codec/header/encode'; +import u8aConcat from '@polkadot/util/u8a/concat'; -export default class BlockAnnounce implements MessageEncoder, BlockAnnounceMessage { +import BaseMessage from './BaseMessage'; + +export default class BlockAnnounce extends BaseMessage implements MessageInterface, BlockAnnounceMessage { static type = 3; - readonly type = BlockAnnounce.type; header: Header; constructor ({ header }: BlockAnnounceMessage) { + super(BlockAnnounce.type); + this.header = header; } - encode (): BlockAnnounceEncoded { - return { - BlockAnnounce: { - header: headerEncode(this.header) - } - }; + encode (): Uint8Array { + return u8aConcat( + super.encode(), + headerEncode(this.header) + ); + } + + toJSON (): any { + return this.header; } - static decode ({ BlockAnnounce: { header } }: BlockAnnounceEncoded): BlockAnnounce { + static decode (u8a: Uint8Array): BlockAnnounce { return new BlockAnnounce({ - header: headerDecode(header) + header: headerDecode(u8a) }); } } diff --git a/packages/client-p2p-messages/src/BlockRequest.ts b/packages/client-p2p-messages/src/BlockRequest.ts index ebda2a64..6ef6f2c5 100644 --- a/packages/client-p2p-messages/src/BlockRequest.ts +++ b/packages/client-p2p-messages/src/BlockRequest.ts @@ -4,58 +4,87 @@ import BN from 'bn.js'; import { HeaderHash } from '@polkadot/primitives/base'; -import { MessageEncoder, BlockRequestEncoded, BlockRequestMessage, BlockRequestMessageDirection, BlockRequestMessageField } from './types'; +import { BlockAttr, MessageInterface, BlockRequestMessage, BlockRequestMessageDirection } from './types'; import defaults from '@polkadot/client-p2p/defaults'; -import hashEncode from '@polkadot/primitives/json/hash/encode'; +import u8aConcat from '@polkadot/util/u8a/concat'; +import u8aToBn from '@polkadot/util/u8a/toBn'; +import bnToU8a from '@polkadot/util/bn/toU8a'; import isBn from '@polkadot/util/is/bn'; -import bnDecode from '@polkadot/primitives/json/bn/decode'; -import hashDecode from '@polkadot/primitives/json/hash/decode'; -import isString from '@polkadot/util/is/string'; +import isNull from '@polkadot/util/is/null'; +import bnToHex from '@polkadot/util/bn/toHex'; +import u8aToHex from '@polkadot/util/u8a/toHex'; -export default class BlockRequest implements MessageEncoder, BlockRequestMessage { +import fromAttrs from './attrs/fromAttrs'; +import toAttrs from './attrs/toAttrs'; +import BaseMessage from './BaseMessage'; + +export default class BlockRequest extends BaseMessage implements MessageInterface, BlockRequestMessage { static type = 1; - readonly type = BlockRequest.type; direction: BlockRequestMessageDirection; - fields: Array; + fields: Array; from: HeaderHash | BN; id: number; max: number; - // to: HeaderHash | null; + to: HeaderHash | null; + + constructor ({ direction, fields, from, id, max, to = null }: BlockRequestMessage) { + super(BlockRequest.type); - constructor ({ direction, fields, from, id, max }: BlockRequestMessage) { this.direction = direction; this.fields = fields; this.from = from; this.id = id; this.max = max || defaults.MAX_SYNC_BLOCKS; + this.to = to; } - encode (): BlockRequestEncoded { + encode (): Uint8Array { + return u8aConcat( + super.encode(), + bnToU8a(this.id, 32, true), + bnToU8a(fromAttrs(this.fields), 8, true), + new Uint8Array(isBn(this.from) ? [1] : [0]), + isBn(this.from) + ? bnToU8a(this.from, 64, true) + : this.from, + isNull(this.to) + ? new Uint8Array([0]) + : u8aConcat( + new Uint8Array([1]), + this.to + ), + new Uint8Array(this.direction === 'Ascending' ? [0] : [1]), + bnToU8a(this.max, 32, true) + ); + } + + toJSON (): any { return { - BlockRequest: { - direction: this.direction, - fields: this.fields, - from: isBn(this.from) - ? this.from.toNumber() // bnEncode(from, 64) - : hashEncode(this.from, 256), - id: this.id, - max: this.max, - to: null - } + direction: this.direction, + from: isBn(this.from) + ? bnToHex(this.from) + : u8aToHex(this.from) }; } - static decode ({ BlockRequest: { direction, fields, from, id, max } }: BlockRequestEncoded): BlockRequest { + static decode (u8a: Uint8Array): BlockRequest { + const fromLength = u8a[5] === 0 ? 16 : 32; + const fromTo = u8a[5 + fromLength] === 0 ? 0 : 32; + const atDirection = 5 + fromLength + fromTo; + return new BlockRequest({ - direction, - fields, - from: isString(from) - ? hashDecode(from, 256) - : bnDecode(from.toString(), 64), - id, - max + id: u8aToBn(u8a.subarray(0, 4), true).toNumber(), + fields: toAttrs(u8a[4]), + from: fromLength === 16 + ? u8aToBn(u8a.subarray(5, 21), true) + : u8a.slice(5, 37), + to: fromTo === 0 + ? null + : u8a.slice(5 + fromLength, atDirection), + direction: u8a[atDirection] === 0 ? 'Ascending' : 'Descending', + max: u8aToBn(u8a.subarray(atDirection, atDirection + 32), true).toNumber() }); } } diff --git a/packages/client-p2p-messages/src/BlockResponse.ts b/packages/client-p2p-messages/src/BlockResponse.ts index df1ba1b6..87261b2a 100644 --- a/packages/client-p2p-messages/src/BlockResponse.ts +++ b/packages/client-p2p-messages/src/BlockResponse.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { MessageEncoder, BlockResponseEncoded, BlockResponseMessage, BlockResponseMessageBlock } from './types'; +import { MessageInterface, BlockResponseMessage, BlockResponseMessageBlock } from './types'; import bnToBn from '@polkadot/util/bn/toBn'; import bnToU8a from '@polkadot/util/bn/toU8a'; @@ -11,28 +11,32 @@ import u8aToU8a from '@polkadot/util/u8a/toU8a'; import encodeHeader from '@polkadot/primitives/codec/header/encode'; import hashDecode from '@polkadot/primitives/json/hash/decode'; -export default class BlockResponse implements MessageEncoder, BlockResponseMessage { +import BaseMessage from './BaseMessage'; + +export default class BlockResponse extends BaseMessage implements MessageInterface, BlockResponseMessage { static type = 2; - readonly type = BlockResponse.type; id: number; blocks: Array; constructor ({ blocks, id }: BlockResponseMessage) { + super(BlockResponse.type); + this.blocks = blocks; this.id = id; } - encode (): BlockResponseEncoded { - return { - BlockResponse: { - id: this.id - // FIXME we need to provide the actual blocks here - } - } as BlockResponseEncoded; + encode (): Uint8Array { + return u8aConcat( + super.encode() + ); + } + + toJSON (): any { + return {}; } - static decode ({ BlockResponse: { id, blocks } }: BlockResponseEncoded): BlockResponse { + static decode (u8a: Uint8Array): BlockResponse { return new BlockResponse({ id, blocks: blocks.map(({ body, hash, header, justification }): BlockResponseMessageBlock => ({ diff --git a/packages/client-p2p-messages/src/Status.ts b/packages/client-p2p-messages/src/Status.ts index d11f6ea5..18b3e8d8 100644 --- a/packages/client-p2p-messages/src/Status.ts +++ b/packages/client-p2p-messages/src/Status.ts @@ -2,79 +2,72 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { AccountId, BlockNumber, HeaderHash, ParaChainId, Signature } from '@polkadot/primitives/base'; +import { BlockNumber, HeaderHash } from '@polkadot/primitives/base'; import { Role } from '@polkadot/primitives/role'; -import { MessageEncoder, StatusEncoded, StatusMessage } from './types'; +import { MessageInterface, StatusMessage } from './types'; -import accountIdDecode from '@polkadot/primitives/json/accountId/decode'; -import bnDecode from '@polkadot/primitives/json/bn/decode'; -import hashDecode from '@polkadot/primitives/json/hash/decode'; -import parachainIdDecode from '@polkadot/primitives/json/parachainId/decode'; -import signatureDecode from '@polkadot/primitives/json/signature/decode'; +import rolesToId from '@polkadot/primitives/role/toId'; +import rolesFromId from '@polkadot/primitives/role/fromId'; +import u8aConcat from '@polkadot/util/u8a/concat'; +import u8aToBn from '@polkadot/util/u8a/toBn'; +import bnToU8a from '@polkadot/util/bn/toU8a'; +import bnToHex from '@polkadot/util/bn/toHex'; +import u8aToHex from '@polkadot/util/u8a/toHex'; -// import bnEncode from '@polkadot/primitives/json/bn/encode'; -import hashEncode from '@polkadot/primitives/json/hash/encode'; +import BaseMessage from './BaseMessage'; -export default class Status implements MessageEncoder, StatusMessage { +export default class Status extends BaseMessage implements MessageInterface, StatusMessage { static type = 0; readonly type = Status.type; bestHash: HeaderHash; bestNumber: BlockNumber; + chainStatus: Uint8Array; genesisHash: HeaderHash; - parachainId: ParaChainId | null; roles: Array; - validatorSignature: Signature | null; - validatorId: AccountId | null; version: number; - constructor ({ bestHash, bestNumber, genesisHash, parachainId = null, roles, validatorId = null, validatorSignature = null, version }: StatusMessage) { + constructor ({ bestHash, bestNumber, genesisHash, roles, version }: StatusMessage) { + super(Status.type); + this.bestHash = bestHash; this.bestNumber = bestNumber; + this.chainStatus = new Uint8Array([1]); this.genesisHash = genesisHash; - this.parachainId = parachainId; this.roles = roles; - this.validatorId = validatorId; - this.validatorSignature = validatorSignature; this.version = version; } - encode (): StatusEncoded { + encode (): Uint8Array { + return u8aConcat( + super.encode(), + bnToU8a(this.version, 32, true), + bnToU8a(rolesToId(this.roles), 8, true), + bnToU8a(this.bestNumber, 64, true), + this.bestHash, + this.genesisHash, + bnToU8a(this.chainStatus.length, 32, true), + this.chainStatus + ); + } + + toJSON (): any { return { - Status: { - best_hash: hashEncode(this.bestHash, 256), - best_number: this.bestNumber.toNumber(), // bnEncode(bestNumber, 64), - genesis_hash: hashEncode(this.genesisHash, 256), - roles: this.roles.map((role) => - `${role.charAt(0).toUpperCase()}${role.slice(1)}` - ), - version: this.version, - // TODO actual values as required - parachain_id: null, - validator_id: null, - validator_signature: null - } + bestNumber: bnToHex(this.bestNumber), + bestHash: u8aToHex(this.bestHash), + genesisHash: u8aToHex(this.genesisHash), + roles: this.roles }; } - static decode ({ Status: { best_hash, best_number, genesis_hash, parachain_id, roles, validator_id, validator_signature, version } }: StatusEncoded): Status { + static decode (u8a: Uint8Array): Status { return new Status({ - bestNumber: bnDecode(best_number.toString(), 64), - bestHash: hashDecode(best_hash, 256), - genesisHash: hashDecode(genesis_hash, 256), - parachainId: parachain_id - ? parachainIdDecode(parachain_id) - : null, - roles: roles.map((role) => - role.toLocaleLowerCase() as Role - ), - validatorId: validator_id - ? accountIdDecode(validator_id) - : null, - validatorSignature: validator_signature - ? signatureDecode(validator_signature) - : null, - version + version: u8aToBn(u8a.subarray(0, 4), true).toNumber(), + roles: rolesFromId(u8a[4]), + bestNumber: u8aToBn(u8a.subarray(5, 13), true), + bestHash: u8a.slice(13, 45), + genesisHash: u8a.slice(45, 77) + // ignoring chainStatus for now }); } } diff --git a/packages/client-p2p-messages/src/Transactions.ts b/packages/client-p2p-messages/src/Transactions.ts new file mode 100644 index 00000000..27cbb7e4 --- /dev/null +++ b/packages/client-p2p-messages/src/Transactions.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2018 @polkadot/client-p2p-messages authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { MessageInterface, TransactionsMessage } from './types'; + +import u8aConcat from '@polkadot/util/u8a/concat'; + +import BaseMessage from './BaseMessage'; +import bnToU8a from '@polkadot/util/bn/toU8a'; +import u8aToBn from '@polkadot/util/u8a/toBn'; +import u8aToHex from '@polkadot/util/u8a/toHex'; + +export default class Transactions extends BaseMessage implements MessageInterface, TransactionsMessage { + static type = 4; + + transactions: Array; + + constructor (transactions: Array) { + super(Transactions.type); + + this.transactions = transactions; + } + + encode (): Uint8Array { + return u8aConcat.apply( + null, + [ + super.encode(), + bnToU8a(this.transactions.length, 32, true) + ].concat(this.transactions)); + } + + toJSON (): any { + return { + transactions: this.transactions.map((transaction) => + u8aToHex(transaction) + ) + }; + } + + static decode (u8a: Uint8Array): Transactions { + const count = u8aToBn(u8a.subarray(0, 4), true).toNumber(); + const transactions: Array = []; + let offset = 4; + + for (let i = 0; i < count; i++) { + const length = u8aToBn(u8a.subarray(offset, offset + 4), true).toNumber(); + + transactions.push(u8a.subarray(offset, offset + 4 + length)); + offset += 4 + length; + } + + return new Transactions(transactions); + } +} diff --git a/packages/client-p2p-messages/src/attrs/all.ts b/packages/client-p2p-messages/src/attrs/all.ts new file mode 100644 index 00000000..82d10211 --- /dev/null +++ b/packages/client-p2p-messages/src/attrs/all.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2018 @polkadot/client-p2p-messages authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { BlockAttrMap } from '../types'; + +const all: BlockAttrMap = { + header: 0b00000001, + body: 0b00000010, + receipt: 0b00000100, + messageQueue: 0b00001000, + justification: 0b00010000 +}; + +export default all; diff --git a/packages/client-p2p-messages/src/attrs/fromAttrs.ts b/packages/client-p2p-messages/src/attrs/fromAttrs.ts new file mode 100644 index 00000000..f603b1cb --- /dev/null +++ b/packages/client-p2p-messages/src/attrs/fromAttrs.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2018 @polkadot/client-p2p-messages authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { BlockAttr } from '..Block/types'; + +import all from './all'; + +export default function fromAttrs (attrs: Array): number { + return attrs.reduce((result, attr) => { + return result | all[attr]; + }, 0); +} diff --git a/packages/client-p2p-messages/src/attrs/toAttrs.ts b/packages/client-p2p-messages/src/attrs/toAttrs.ts new file mode 100644 index 00000000..79c5800c --- /dev/null +++ b/packages/client-p2p-messages/src/attrs/toAttrs.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2018 @polkadot/client-p2p-messages authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { BlockAttr } from '.../types'; + +import all from './all'; + +export default function toAttrs (encoded: number): Array { + return Object + .keys(all) + .map((key) => + key as BlockAttr + ) + .filter((attr) => + (encoded & all[attr]) === all[attr] + ); +} diff --git a/packages/client-p2p-messages/src/index.ts b/packages/client-p2p-messages/src/index.ts index afa58828..0191b9c1 100644 --- a/packages/client-p2p-messages/src/index.ts +++ b/packages/client-p2p-messages/src/index.ts @@ -6,29 +6,33 @@ import { MessageDecoder, MessageInterface } from './types'; import assert from '@polkadot/util/assert'; import isUndefined from '@polkadot/util/is/undefined'; +import u8aToHex from '@polkadot/util/u8a/toHex'; +import Bft from './Bft'; import BlockAnnounce from './BlockAnnounce'; import BlockRequest from './BlockRequest'; import BlockResponse from './BlockResponse'; import Status from './Status'; +import Transactions from './Transactions'; type DecoderMapping = { - [index: string]: MessageDecoder + [index: number]: MessageDecoder }; const decoders: DecoderMapping = { - BlockAnnounce, - BlockRequest, - BlockResponse, - Status + [Bft.type]: Bft, + [BlockAnnounce.type]: BlockAnnounce, + [BlockRequest.type]: BlockRequest, + [BlockResponse.type]: BlockResponse, + [Status.type]: Status, + [Transactions.type]: Transactions }; -export default function decodeMessage (encoded: string): MessageInterface { - const json: any = JSON.parse(encoded); - const [type] = Object.keys(json); - const Decoder = decoders[type]; +export default function decodeMessage (encoded: Uint8Array): MessageInterface { + const id = encoded[0]; + const Decoder = decoders[id]; - assert(!isUndefined(Decoder), `Unknown message received, ${json}`); + assert(!isUndefined(Decoder), `Unknown message received, id=${id}, ${u8aToHex(encoded)}`); - return Decoder.decode(json); + return Decoder.decode(encoded.subarray(1)); } diff --git a/packages/client-p2p-messages/src/types.d.ts b/packages/client-p2p-messages/src/types.d.ts index 645f92b2..c601868b 100644 --- a/packages/client-p2p-messages/src/types.d.ts +++ b/packages/client-p2p-messages/src/types.d.ts @@ -9,48 +9,41 @@ import { Header } from '@polkadot/primitives/header'; import { JsonHeader } from '@polkadot/primitives/json/types'; import { Role } from '@polkadot/primitives/role'; -export interface MessageEncoder { +export interface MessageInterface { readonly type: number; - encode (): M; + encode (): Uint8Array; + toJSON (): any; } -export type MessageInterface = MessageEncoder; - -export interface MessageDecoder { +export interface MessageDecoder { readonly type: number; - decode (input: M): C; + decode (input: Uint8Array): C; } -export type BlockAnnounceEncoded = { - BlockAnnounce: { - header: JsonHeader - } -}; +export interface BftMessage { +} export interface BlockAnnounceMessage { header: Header } -export type BlockRequestEncoded = { - BlockRequest: { - direction: BlockRequestMessageDirection, - fields: Array, - from: string | number, - id: number, - max: number, - to?: string | number | null - } +export type BlockAttrMap = { + header: number, + body: number, + receipt: number, + messageQueue: number, + justification: number }; -export type BlockRequestMessageField = 'Header' | 'Body' | 'Receipt' | 'MessageQueue' | 'Justification'; +export type BlockAttr = keyof BlockAttrMap; export type BlockRequestMessageDirection = 'Ascending' | 'Descending'; export type BlockRequestMessage = { direction: BlockRequestMessageDirection, - fields: Array, + fields: Array, from: HeaderHash | BN, id: number, max?: number | null, @@ -66,13 +59,6 @@ export type BlockResponseEncodedBlock = { justification: Justification }; -export type BlockResponseEncoded = { - BlockResponse: { - id: number, - blocks: Array - } -}; - export type BlockResponseMessageBlock = { hash: Uint8Array, header: Header, @@ -86,26 +72,14 @@ export type BlockResponseMessage = { blocks: Array, } -export type StatusEncoded = { - Status: { - best_hash: string, - best_number: number, - genesis_hash: string, - parachain_id?: string | null, - roles: Array, - validator_id?: string | null, - validator_signature?: string | null, - version: number - } -}; - export interface StatusMessage { bestHash: HeaderHash, bestNumber: BlockNumber, genesisHash: HeaderHash, - parachainId?: ParaChainId | null, roles: Array, - validatorSignature?: Signature | null, - validatorId?: AccountId | null, version: number } + +export interface TransactionsMessage { + transactions: Array +} diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index addd4fad..dfdb0481 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.25", - "@polkadot/util": "^0.26.25", + "@polkadot/primitives": "^0.26.26", + "@polkadot/util": "^0.26.26", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", diff --git a/packages/client-p2p/src/defaults.ts b/packages/client-p2p/src/defaults.ts index 1a018119..5f69e4ff 100644 --- a/packages/client-p2p/src/defaults.ts +++ b/packages/client-p2p/src/defaults.ts @@ -4,7 +4,7 @@ import { Role } from '@polkadot/primitives/role'; -const ADDRESS = '127.0.0.1'; +const ADDRESS = '0.0.0.0'; const CLIENT_ID = 'polkadot-js/0.0.0'; const MAX_PEERS = 25; const MAX_SYNC_BLOCKS = 64; @@ -12,7 +12,7 @@ const PORT = 39933; const ROLE: Role = 'full'; const PROTOCOL_BASE = '/substrate'; const PROTOCOL_TYPE = '/dot'; -const PROTOCOL_VERSION = 0; +const PROTOCOL_VERSION = 1; const PROTOCOL = `${PROTOCOL_BASE}${PROTOCOL_TYPE}/${PROTOCOL_VERSION}`; export default { diff --git a/packages/client-p2p/src/handler/bft.ts b/packages/client-p2p/src/handler/bft.ts new file mode 100644 index 00000000..1b28b0be --- /dev/null +++ b/packages/client-p2p/src/handler/bft.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2018 @polkadot/client-p2p authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { P2pInterface, PeerInterface } from '../types'; +import { Handler } from './types'; + +import Bft from '@polkadot/client-p2p-messages/Bft'; + +// TODO Propagate +function handleBft (self: P2pInterface, peer: PeerInterface, message: Bft): void { + // self.l.debug(() => [peer.shortId, 'Bft', JSON.stringify(message)]); +} + +(handleBft as Handler).type = Bft.type; + +export default (handleBft as Handler); diff --git a/packages/client-p2p/src/handler/blockAnnounce.ts b/packages/client-p2p/src/handler/blockAnnounce.ts index 5ffb20fe..0cbd31ba 100644 --- a/packages/client-p2p/src/handler/blockAnnounce.ts +++ b/packages/client-p2p/src/handler/blockAnnounce.ts @@ -10,7 +10,7 @@ import encodeHeader from '@polkadot/primitives/codec/header/encode'; import blake2Asu8a from '@polkadot/util-crypto/blake2/asU8a'; function handleBlockAnnounce (self: P2pInterface, peer: PeerInterface, message: BlockAnnounce): void { - self.l.debug(() => [peer.shortId, 'BlockAnnounce', JSON.stringify(message.encode())]); + self.l.debug(() => [peer.shortId, 'BlockAnnounce', JSON.stringify(message)]); const header = message.header; diff --git a/packages/client-p2p/src/handler/blockRequest.ts b/packages/client-p2p/src/handler/blockRequest.ts index 811dfb2a..d5447014 100644 --- a/packages/client-p2p/src/handler/blockRequest.ts +++ b/packages/client-p2p/src/handler/blockRequest.ts @@ -8,7 +8,7 @@ import { Handler } from './types'; import BlockRequest from '@polkadot/client-p2p-messages/BlockRequest'; function handleBlockRequest (self: P2pInterface, peer: PeerInterface, message: BlockRequest): void { - self.l.debug(() => [peer.shortId, 'BlockRequest', JSON.stringify(message.encode())]); + self.l.debug(() => [peer.shortId, 'BlockRequest', JSON.stringify(message)]); self.sync.provideBlocks(peer, message); } diff --git a/packages/client-p2p/src/handler/blockResponse.ts b/packages/client-p2p/src/handler/blockResponse.ts index 79bc40cf..a03dbe8c 100644 --- a/packages/client-p2p/src/handler/blockResponse.ts +++ b/packages/client-p2p/src/handler/blockResponse.ts @@ -8,7 +8,7 @@ import { Handler } from './types'; import BlockResponse from '@polkadot/client-p2p-messages/BlockResponse'; function handleBlockResponse (self: P2pInterface, peer: PeerInterface, message: BlockResponse): void { - self.l.debug(() => [peer.shortId, 'BlockResponse', JSON.stringify(message.encode())]); + self.l.debug(() => [peer.shortId, 'BlockResponse', JSON.stringify(message)]); self.sync.queueBlocks(peer, message); } diff --git a/packages/client-p2p/src/handler/index.ts b/packages/client-p2p/src/handler/index.ts index 108c41c2..f44c843b 100644 --- a/packages/client-p2p/src/handler/index.ts +++ b/packages/client-p2p/src/handler/index.ts @@ -4,13 +4,15 @@ import { Handler } from './types'; +import bft from './bft'; import blockAnnounce from './blockAnnounce'; import blockRequest from './blockRequest'; import blockResponse from './blockResponse'; import status from './status'; +import transactions from './transactions'; const handlers: Array = [ - blockAnnounce, blockRequest, blockResponse, status + bft, blockAnnounce, blockRequest, blockResponse, status, transactions ]; export default handlers; diff --git a/packages/client-p2p/src/handler/status.ts b/packages/client-p2p/src/handler/status.ts index ffd5e4b6..dc8afa4a 100644 --- a/packages/client-p2p/src/handler/status.ts +++ b/packages/client-p2p/src/handler/status.ts @@ -9,11 +9,12 @@ import Status from '@polkadot/client-p2p-messages/Status'; // TODO: We should check the genesisHash here and act appropriately function handleStatus (self: P2pInterface, peer: PeerInterface, message: Status): void { - self.l.debug(() => [peer.shortId, 'Status', JSON.stringify(message.encode())]); + self.l.debug(() => [peer.shortId, 'Status', JSON.stringify(message)]); const { bestHash, bestNumber } = message; peer.setBest(bestNumber, bestHash); + self.sync.requestBlocks(peer); } (handleStatus as Handler).type = Status.type; diff --git a/packages/client-p2p/src/handler/transactions.ts b/packages/client-p2p/src/handler/transactions.ts new file mode 100644 index 00000000..964202c1 --- /dev/null +++ b/packages/client-p2p/src/handler/transactions.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2018 @polkadot/client-p2p authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import { P2pInterface, PeerInterface } from '../types'; +import { Handler } from './types'; + +import Transactions from '@polkadot/client-p2p-messages/Transactions'; + +// TODO Propagate +function handleTransactions (self: P2pInterface, peer: PeerInterface, message: Transactions): void { + self.l.debug(() => [peer.shortId, 'Transactions', JSON.stringify(message)]); +} + +(handleTransactions as Handler).type = Transactions.type; + +export default (handleTransactions as Handler); diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index 744063e9..c635cd46 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -21,10 +21,8 @@ import bufferToU8a from '@polkadot/util/buffer/toU8a'; import logger from '@polkadot/util/logger'; import stringShorten from '@polkadot/util/string/shorten'; import u8aConcat from '@polkadot/util/u8a/concat'; -import u8aFromUtf8 from '@polkadot/util/u8a/fromUtf8'; import u8aToBuffer from '@polkadot/util/u8a/toBuffer'; import u8aToHex from '@polkadot/util/u8a/toHex'; -import u8aToUtf8 from '@polkadot/util/u8a/toUtf8'; import defaults from '../defaults'; @@ -62,16 +60,22 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { connection ); - this.send(new Status({ - roles: this.config.roles, - bestNumber: this.chain.blocks.bestNumber.get(), - bestHash: this.chain.blocks.bestHash.get(), - genesisHash: this.chain.genesis.headerHash, - version: defaults.PROTOCOL_VERSION - })); + this.send( + new Status({ + roles: this.config.roles, + bestNumber: this.chain.blocks.bestNumber.get(), + bestHash: this.chain.blocks.bestHash.get(), + genesisHash: this.chain.genesis.headerHash, + version: defaults.PROTOCOL_VERSION + }) + ); } } + isActive (): boolean { + return this.bestHash.length !== 0; + } + isWritable (): boolean { return !!this.pushable; } @@ -90,14 +94,13 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { const length = varint.decode(buffer); const offset = varint.decode.bytes; const u8a = bufferToU8a(buffer.slice(offset + 1)); - const utf8 = u8aToUtf8(u8a); // TODO Do we keep this peer or drop it (like Rust does on invalid messages). Additionally, do we _really_ want to throw here? assert(u8a.length === length - 1, 'Invalid buffer length received'); - this.l.debug(() => `received ${u8aToHex(u8a)} => ${utf8}`); + // this.l.debug(() => `received ${u8a.length} bytes, ${u8aToHex(u8a)}`); - this.emit('message', decodeMessage(utf8)); + this.emit('message', decodeMessage(u8a)); }, () => false ) @@ -117,11 +120,10 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { } try { - const utf8 = JSON.stringify(message.encode()); - const encoded = u8aFromUtf8(utf8); + const encoded = message.encode(); const length = varint.encode(encoded.length + 1); - this.l.debug(() => `sending ${u8aToHex(encoded)} <= ${utf8}`); + this.l.debug(() => `sending ${u8aToHex(encoded)}`); this.pushable.push( u8aToBuffer( diff --git a/packages/client-p2p/src/peers/index.ts b/packages/client-p2p/src/peers/index.ts index cd55e413..3e50013a 100644 --- a/packages/client-p2p/src/peers/index.ts +++ b/packages/client-p2p/src/peers/index.ts @@ -55,7 +55,11 @@ export default class Peers extends E3.EventEmitter implements PeersInterface { } count (): number { - return Object.keys(this.map).length; + return Object + .values(this.map) + .filter((peer) => + peer.isActive() + ).length; } log (event: PeersInterface$Events, peer: PeerInterface, withShort: boolean = true): void { diff --git a/packages/client-p2p/src/types.d.ts b/packages/client-p2p/src/types.d.ts index e91582fd..4585211d 100644 --- a/packages/client-p2p/src/types.d.ts +++ b/packages/client-p2p/src/types.d.ts @@ -47,6 +47,7 @@ export interface PeerInterface { readonly shortId: string, addConnection: (connection: LibP2pConnection, isWritable: boolean) => void, + isActive: () => boolean, isWritable: () => boolean, getNextId: () => number, on (type: PeerInterface$Events, cb: (message: MessageInterface) => any): any, diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index c42c2802..ccb98712 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.25", - "@polkadot/primitives": "^0.26.25", - "@polkadot/util": "^0.26.25" + "@polkadot/jsonrpc": "^0.26.26", + "@polkadot/primitives": "^0.26.26", + "@polkadot/util": "^0.26.26" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index e2a0bcb8..7f18bdfd 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -40,7 +40,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.25", + "@polkadot/util": "^0.26.26", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 7ce68989..50ede368 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.25", - "@polkadot/util-crypto": "^0.26.25" + "@polkadot/util": "^0.26.26", + "@polkadot/util-crypto": "^0.26.26" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 52ae973e..912adfab 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.25", + "@polkadot/util": "^0.26.26", "websocket": "^1.0.26" } } diff --git a/packages/client-telemetry/src/defaults.ts b/packages/client-telemetry/src/defaults.ts index ae39b297..2de7c0c1 100644 --- a/packages/client-telemetry/src/defaults.ts +++ b/packages/client-telemetry/src/defaults.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -const URL = 'ws://telemetry.polkadot.io:1024'; +const URL = ' wss://telemetry.polkadot.io/submit/'; export default { URL diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index a25a02e6..2b7daa89 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.25", - "@polkadot/util": "^0.26.25", + "@polkadot/primitives": "^0.26.26", + "@polkadot/util": "^0.26.26", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client/package.json b/packages/client/package.json index 93d8ab6e..0f07b2aa 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.25", - "@polkadot/primitives": "^0.26.25", - "@polkadot/util": "^0.26.25", + "@polkadot/jsonrpc": "^0.26.26", + "@polkadot/primitives": "^0.26.26", + "@polkadot/util": "^0.26.26", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 74202dac..089b9a41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -760,11 +760,20 @@ "@polkadot/primitives" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/jsonrpc@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.25.tgz#c43babadd2bbf67998d06e6376c4ad3c496e4c56" +"@polkadot/extrinsics@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.26.tgz#aba6e89a34b51018cd0f2dbeacba3d78a320d78f" dependencies: - "@polkadot/params" "^0.26.25" + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/params" "^0.26.26" + "@polkadot/primitives" "^0.26.26" + "@polkadot/util" "^0.26.26" + +"@polkadot/jsonrpc@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.26.tgz#2808ee52338b92df0a68a89945ae33fc55a4af61" + dependencies: + "@polkadot/params" "^0.26.26" babel-runtime "^6.26.0" "@polkadot/params@^0.26.25": @@ -776,6 +785,15 @@ "@polkadot/primitives" "^0.26.25" "@polkadot/util" "^0.26.25" +"@polkadot/params@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.26.tgz#b0621cb84a5af17bced0e1a8561cd89bf0b1967a" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/extrinsics" "^0.26.26" + "@polkadot/primitives" "^0.26.26" + "@polkadot/util" "^0.26.26" + "@polkadot/primitives@^0.26.25": version "0.26.25" resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.25.tgz#b6b7d5adbae13667aeb0ec4d0c83a6776c73aff9" @@ -784,6 +802,14 @@ "@polkadot/trie-hash" "^0.26.25" "@polkadot/util" "^0.26.25" +"@polkadot/primitives@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.26.tgz#d2117209bc47d48b174835c8dd35be6d7ae50f4d" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/trie-hash" "^0.26.26" + "@polkadot/util" "^0.26.26" + "@polkadot/storage@^0.26.25": version "0.26.25" resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.25.tgz#4fc9302176af95a2c57ebd669997c64f6fa6ab69" @@ -795,15 +821,26 @@ "@polkadot/util-crypto" "^0.26.25" "@polkadot/util-keyring" "^0.26.25" -"@polkadot/trie-db@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.25.tgz#d6567a1552d1a600bfeba73703904059ce719825" +"@polkadot/storage@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.26.tgz#75b7f6f51da15e72021d2c9760d11e44b145a872" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.25" - "@polkadot/util" "^0.26.25" - "@polkadot/util-crypto" "^0.26.25" - "@polkadot/util-rlp" "^0.26.25" + "@polkadot/params" "^0.26.26" + "@polkadot/primitives" "^0.26.26" + "@polkadot/util" "^0.26.26" + "@polkadot/util-crypto" "^0.26.26" + "@polkadot/util-keyring" "^0.26.26" + +"@polkadot/trie-db@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.26.tgz#0c628380a97408a2212d63d88c17ff2749bd83dd" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/trie-hash" "^0.26.26" + "@polkadot/util" "^0.26.26" + "@polkadot/util-crypto" "^0.26.26" + "@polkadot/util-rlp" "^0.26.26" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -823,6 +860,15 @@ "@polkadot/util-crypto" "^0.26.25" "@polkadot/util-rlp" "^0.26.25" +"@polkadot/trie-hash@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.26.tgz#eb541ec40b30726cc5f6987c0db679f81898a53d" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.26" + "@polkadot/util-crypto" "^0.26.26" + "@polkadot/util-rlp" "^0.26.26" + "@polkadot/ts@^0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.9.tgz#86010c5a4d63c0fb6b3e85d29db40dcf43c5d7c1" @@ -838,6 +884,17 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" +"@polkadot/util-crypto@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.26.tgz#3e816dc6cf55e6dcfddcca34c5aa0f99a7ee9370" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.26" + blakejs "^1.1.0" + js-sha3 "^0.7.0" + tweetnacl "^1.0.0" + xxhashjs "^0.2.2" + "@polkadot/util-keyring@^0.26.25": version "0.26.25" resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.25.tgz#945d9f789a21644a374ab58c940adfa2e3ecec3a" @@ -848,6 +905,16 @@ "@types/bs58" "^3.0.30" bs58 "^4.0.1" +"@polkadot/util-keyring@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.26.tgz#e28e1f594f00d86b68e15378cb284c09edb5ebce" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.26" + "@polkadot/util-crypto" "^0.26.26" + "@types/bs58" "^3.0.30" + bs58 "^4.0.1" + "@polkadot/util-rlp@^0.26.25": version "0.26.25" resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.25.tgz#d853cb4bab1888fd44e639347e3a03910079d470" @@ -855,6 +922,13 @@ "@babel/runtime" "^7.0.0-beta.51" "@polkadot/util" "^0.26.25" +"@polkadot/util-rlp@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.26.tgz#b6c228926314255cc4fa1db10f6e2874fd746e87" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.26" + "@polkadot/util@^0.26.25": version "0.26.25" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.25.tgz#57f5735bc75ffb586ec60a5f4ea954cb9542bb80" @@ -869,6 +943,20 @@ deasync "^0.1.13" ip-regex "^2.1.0" +"@polkadot/util@^0.26.26": + version "0.26.26" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.26.tgz#2ef1fed37464c939c56b35db58fa6d1dbeceb454" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@types/bn.js" "^4.11.1" + "@types/deasync" "^0.1.0" + "@types/ip-regex" "^2.0.0" + "@types/xxhashjs" "^0.1.1" + bn.js "^4.11.8" + chalk "^2.4.1" + deasync "^0.1.13" + ip-regex "^2.1.0" + "@polkadot/wasm-bin@paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324": version "20180601.165414.0" resolved "https://codeload.github.com/paritytech/polkadot-wasm-bin/tar.gz/5ab4fc6083501b26e5fd979b93c35e2f9010b324" From d9cafac29cc0f8bf77776bf580334273648cac88 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 27 Jul 2018 13:52:01 +0200 Subject: [PATCH 06/34] WIP... almost there with sync --- packages/client-chains/package.json | 14 +-- packages/client-db-chain/package.json | 10 +- packages/client-db-chain/src/db/arrayU8a.ts | 2 +- packages/client-db/package.json | 4 +- packages/client-p2p-messages/package.json | 6 +- packages/client-p2p-messages/src/Bft.ts | 1 - .../client-p2p-messages/src/BlockAnnounce.ts | 12 +- .../client-p2p-messages/src/BlockRequest.ts | 34 +++-- .../client-p2p-messages/src/BlockResponse.ts | 78 +++++++----- packages/client-p2p-messages/src/Status.ts | 17 ++- .../src/attrs/fromAttrs.ts | 2 +- .../client-p2p-messages/src/attrs/toAttrs.ts | 2 +- packages/client-p2p-messages/src/types.d.ts | 18 +-- packages/client-p2p/package.json | 4 +- packages/client-p2p/src/peer/index.ts | 2 +- packages/client-p2p/src/sync/index.ts | 15 ++- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 2 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- yarn.lock | 116 +++++++++--------- 23 files changed, 198 insertions(+), 163 deletions(-) diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 4def20a2..a17fec5e 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.26", - "@polkadot/util": "^0.26.26", - "@polkadot/util-crypto": "^0.26.26", - "@polkadot/util-keyring": "^0.26.26" + "@polkadot/storage": "^0.26.29", + "@polkadot/util": "^0.26.29", + "@polkadot/util-crypto": "^0.26.29", + "@polkadot/util-keyring": "^0.26.29" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.26", - "@polkadot/primitives": "^0.26.26", - "@polkadot/storage": "^0.26.26" + "@polkadot/extrinsics": "^0.26.29", + "@polkadot/primitives": "^0.26.29", + "@polkadot/storage": "^0.26.29" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index a86bd0f7..74ca09c4 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.26", - "@polkadot/trie-hash": "^0.26.26", - "@polkadot/util": "^0.26.26", - "@polkadot/util-crypto": "^0.26.26" + "@polkadot/storage": "^0.26.29", + "@polkadot/trie-hash": "^0.26.29", + "@polkadot/util": "^0.26.29", + "@polkadot/util-crypto": "^0.26.29" }, "devDependencies": { - "@polkadot/storage": "^0.26.26" + "@polkadot/storage": "^0.26.29" } } diff --git a/packages/client-db-chain/src/db/arrayU8a.ts b/packages/client-db-chain/src/db/arrayU8a.ts index ada59f89..15965f08 100644 --- a/packages/client-db-chain/src/db/arrayU8a.ts +++ b/packages/client-db-chain/src/db/arrayU8a.ts @@ -26,7 +26,7 @@ export default function decodeArrayU8a (db: BaseDb, key: SectionItem): St return []; } - const length = u8aToBn(u8a.subarray(0, 4)).toNumber(); + const length = u8aToBn(u8a.subarray(0, 4), true).toNumber(); const result = []; let offset = 4; diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 0aae8d50..c4c36e4f 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.26", - "@polkadot/util": "^0.26.26", + "@polkadot/trie-db": "^0.26.29", + "@polkadot/util": "^0.26.29", "@types/mkdirp": "^0.5.2", "mkdirp": "^0.5.1" }, diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index e4ff54b3..af2160dd 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.26", - "@polkadot/primitives": "^0.26.26", - "@polkadot/util": "^0.26.26" + "@polkadot/jsonrpc": "^0.26.29", + "@polkadot/primitives": "^0.26.29", + "@polkadot/util": "^0.26.29" } } diff --git a/packages/client-p2p-messages/src/Bft.ts b/packages/client-p2p-messages/src/Bft.ts index a20bf7bb..042cb6be 100644 --- a/packages/client-p2p-messages/src/Bft.ts +++ b/packages/client-p2p-messages/src/Bft.ts @@ -10,7 +10,6 @@ import BaseMessage from './BaseMessage'; export default class Bft extends BaseMessage implements MessageInterface, BftMessage { static type = 5; - readonly type = Bft.type; constructor () { super(Bft.type); diff --git a/packages/client-p2p-messages/src/BlockAnnounce.ts b/packages/client-p2p-messages/src/BlockAnnounce.ts index d6e5d6a1..403a70e1 100644 --- a/packages/client-p2p-messages/src/BlockAnnounce.ts +++ b/packages/client-p2p-messages/src/BlockAnnounce.ts @@ -8,6 +8,8 @@ import { MessageInterface, BlockAnnounceMessage } from './types'; import headerDecode from '@polkadot/primitives/codec/header/decode'; import headerEncode from '@polkadot/primitives/codec/header/encode'; import u8aConcat from '@polkadot/util/u8a/concat'; +import u8aToHex from '@polkadot/util/u8a/toHex'; +import bnToHex from '@polkadot/util/bn/toHex'; import BaseMessage from './BaseMessage'; @@ -30,7 +32,15 @@ export default class BlockAnnounce extends BaseMessage implements MessageInterfa } toJSON (): any { - return this.header; + const { digest, extrinsicsRoot, parentHash, stateRoot } = this.header; + + return { + number: bnToHex(this.header.number), + extrinsicsRoot: u8aToHex(extrinsicsRoot), + parentHash: u8aToHex(parentHash), + stateRoot: u8aToHex(stateRoot), + digest + }; } static decode (u8a: Uint8Array): BlockAnnounce { diff --git a/packages/client-p2p-messages/src/BlockRequest.ts b/packages/client-p2p-messages/src/BlockRequest.ts index 6ef6f2c5..7d5846a8 100644 --- a/packages/client-p2p-messages/src/BlockRequest.ts +++ b/packages/client-p2p-messages/src/BlockRequest.ts @@ -19,6 +19,10 @@ import fromAttrs from './attrs/fromAttrs'; import toAttrs from './attrs/toAttrs'; import BaseMessage from './BaseMessage'; +const FIELD_OFF = 8; +const FROM_OFF = FIELD_OFF + 1; +const FROM_DATA = FROM_OFF + 1; + export default class BlockRequest extends BaseMessage implements MessageInterface, BlockRequestMessage { static type = 1; @@ -29,7 +33,7 @@ export default class BlockRequest extends BaseMessage implements MessageInterfac max: number; to: HeaderHash | null; - constructor ({ direction, fields, from, id, max, to = null }: BlockRequestMessage) { + constructor ({ direction = 'Ascending', fields = ['header', 'body', 'justification'], from, id, max, to = null }: BlockRequestMessage) { super(BlockRequest.type); this.direction = direction; @@ -43,7 +47,7 @@ export default class BlockRequest extends BaseMessage implements MessageInterfac encode (): Uint8Array { return u8aConcat( super.encode(), - bnToU8a(this.id, 32, true), + bnToU8a(this.id, 64, true), bnToU8a(fromAttrs(this.fields), 8, true), new Uint8Array(isBn(this.from) ? [1] : [0]), isBn(this.from) @@ -56,35 +60,41 @@ export default class BlockRequest extends BaseMessage implements MessageInterfac this.to ), new Uint8Array(this.direction === 'Ascending' ? [0] : [1]), + new Uint8Array([1]), bnToU8a(this.max, 32, true) ); } toJSON (): any { return { + id: this.id, direction: this.direction, from: isBn(this.from) ? bnToHex(this.from) - : u8aToHex(this.from) + : u8aToHex(this.from), + max: this.max }; } static decode (u8a: Uint8Array): BlockRequest { - const fromLength = u8a[5] === 0 ? 16 : 32; - const fromTo = u8a[5 + fromLength] === 0 ? 0 : 32; - const atDirection = 5 + fromLength + fromTo; + const fromLength = u8a[FROM_OFF] === 0 ? 16 : 32; + const fromTo = u8a[FROM_DATA + fromLength] === 0 ? 0 : 32; + const atDirection = FROM_DATA + fromLength + fromTo; + const maxOff = atDirection + 1; return new BlockRequest({ - id: u8aToBn(u8a.subarray(0, 4), true).toNumber(), - fields: toAttrs(u8a[4]), + id: u8aToBn(u8a.subarray(0, FIELD_OFF), true).toNumber(), + fields: toAttrs(u8a[FIELD_OFF]), from: fromLength === 16 - ? u8aToBn(u8a.subarray(5, 21), true) - : u8a.slice(5, 37), + ? u8aToBn(u8a.subarray(FROM_DATA, FROM_DATA + fromLength), true) + : u8a.slice(FROM_DATA, FROM_DATA + fromLength), to: fromTo === 0 ? null - : u8a.slice(5 + fromLength, atDirection), + : u8a.slice(FROM_DATA + fromLength, atDirection), direction: u8a[atDirection] === 0 ? 'Ascending' : 'Descending', - max: u8aToBn(u8a.subarray(atDirection, atDirection + 32), true).toNumber() + max: u8a[maxOff] === 1 + ? u8aToBn(u8a.subarray(maxOff + 1, maxOff + 1 + 32), true).toNumber() + : null }); } } diff --git a/packages/client-p2p-messages/src/BlockResponse.ts b/packages/client-p2p-messages/src/BlockResponse.ts index 87261b2a..ca985ef2 100644 --- a/packages/client-p2p-messages/src/BlockResponse.ts +++ b/packages/client-p2p-messages/src/BlockResponse.ts @@ -4,15 +4,20 @@ import { MessageInterface, BlockResponseMessage, BlockResponseMessageBlock } from './types'; -import bnToBn from '@polkadot/util/bn/toBn'; -import bnToU8a from '@polkadot/util/bn/toU8a'; import u8aConcat from '@polkadot/util/u8a/concat'; -import u8aToU8a from '@polkadot/util/u8a/toU8a'; -import encodeHeader from '@polkadot/primitives/codec/header/encode'; -import hashDecode from '@polkadot/primitives/json/hash/decode'; +import decodeHeaderRaw from '@polkadot/primitives/codec/header/decodeRaw'; +import decodeHeader from '@polkadot/primitives/codec/header/decode'; +import u8aToBn from '@polkadot/util/u8a/toBn'; +import bnToU8a from '@polkadot/util/bn/toU8a'; import BaseMessage from './BaseMessage'; +const COUNT_OFF = 8; +const BLOCK_OFF = COUNT_OFF + 4; + +const I_HDRP_OFF = 32; +const I_HDRD_OFF = I_HDRP_OFF + 1; + export default class BlockResponse extends BaseMessage implements MessageInterface, BlockResponseMessage { static type = 2; @@ -33,34 +38,51 @@ export default class BlockResponse extends BaseMessage implements MessageInterfa } toJSON (): any { - return {}; + return { + id: this.id + }; } + // NOTE: This assumes that we are getting back everything we requested as specified in BlockRequest static decode (u8a: Uint8Array): BlockResponse { + const id = u8aToBn(u8a.subarray(0, COUNT_OFF), true).toNumber(); + const numBlocks = u8aToBn(u8a.subarray(COUNT_OFF, BLOCK_OFF), true).toNumber(); + const blocks: Array = []; + let offset = BLOCK_OFF; + + for (let i = 0; i < numBlocks; i++) { + const hash = u8a.slice(offset, offset + I_HDRP_OFF); + const headerRaw = decodeHeaderRaw(u8a.subarray(offset + I_HDRD_OFF)).header; + const header = decodeHeader(headerRaw); + + offset += I_HDRD_OFF + headerRaw.length + 1; // skip 00/01 + + const numExt = u8aToBn(u8a.subarray(offset, offset + 4), true).toNumber(); + const extrinsics: Array = []; + + offset += 4; + + for (let j = 0; j < numExt; j++) { + const length = u8aToBn(u8a.subarray(offset, offset + 4), true).toNumber(); + + extrinsics.push(u8a.slice(offset, offset + 4 + length)); + + offset += 4 + length; + } + + const encoded = u8aConcat.apply(null, [headerRaw, bnToU8a(numExt, 32, true)].concat(extrinsics)); + + blocks.push({ + hash, + header, + encoded, + justification: u8a.slice(offset + 3); // skip reciept, queue and assume we are at justification + }); + } + return new BlockResponse({ id, - blocks: blocks.map(({ body, hash, header, justification }): BlockResponseMessageBlock => ({ - hash: hashDecode(hash), - header, - importable: u8aConcat( - encodeHeader({ - digest: header.digest, - extrinsicsRoot: u8aToU8a(header.extrinsicsRoot), - number: bnToBn(header.number), - parentHash: u8aToU8a(header.parentHash), - stateRoot: u8aToU8a(header.stateRoot) - }), - bnToU8a(body.length, 32, true), - u8aConcat.apply(null, body.map((tx) => - u8aConcat( - bnToU8a(tx.length, 32, true), - new Uint8Array(tx) - ) - )) - ), - number: bnToBn(header.number), - justification - })) + blocks }); } } diff --git a/packages/client-p2p-messages/src/Status.ts b/packages/client-p2p-messages/src/Status.ts index 18b3e8d8..7e54eca8 100644 --- a/packages/client-p2p-messages/src/Status.ts +++ b/packages/client-p2p-messages/src/Status.ts @@ -16,9 +16,14 @@ import u8aToHex from '@polkadot/util/u8a/toHex'; import BaseMessage from './BaseMessage'; +const ROLES_OFF = 4; +const BEST_OFF = ROLES_OFF + 1; +const HASH_OFF = BEST_OFF + 8; +const GEN_OFF = HASH_OFF + 32; +const CHAIN_OFF = GEN_OFF + 32; + export default class Status extends BaseMessage implements MessageInterface, StatusMessage { static type = 0; - readonly type = Status.type; bestHash: HeaderHash; bestNumber: BlockNumber; @@ -62,11 +67,11 @@ export default class Status extends BaseMessage implements MessageInterface, Sta static decode (u8a: Uint8Array): Status { return new Status({ - version: u8aToBn(u8a.subarray(0, 4), true).toNumber(), - roles: rolesFromId(u8a[4]), - bestNumber: u8aToBn(u8a.subarray(5, 13), true), - bestHash: u8a.slice(13, 45), - genesisHash: u8a.slice(45, 77) + version: u8aToBn(u8a.subarray(0, ROLES_OFF), true).toNumber(), + roles: rolesFromId(u8a[ROLES_OFF]), + bestNumber: u8aToBn(u8a.subarray(BEST_OFF, HASH_OFF), true), + bestHash: u8a.slice(HASH_OFF, GEN_OFF), + genesisHash: u8a.slice(GEN_OFF, CHAIN_OFF) // ignoring chainStatus for now }); } diff --git a/packages/client-p2p-messages/src/attrs/fromAttrs.ts b/packages/client-p2p-messages/src/attrs/fromAttrs.ts index f603b1cb..5db7922b 100644 --- a/packages/client-p2p-messages/src/attrs/fromAttrs.ts +++ b/packages/client-p2p-messages/src/attrs/fromAttrs.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { BlockAttr } from '..Block/types'; +import { BlockAttr } from '../types'; import all from './all'; diff --git a/packages/client-p2p-messages/src/attrs/toAttrs.ts b/packages/client-p2p-messages/src/attrs/toAttrs.ts index 79c5800c..2c3772e2 100644 --- a/packages/client-p2p-messages/src/attrs/toAttrs.ts +++ b/packages/client-p2p-messages/src/attrs/toAttrs.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { BlockAttr } from '.../types'; +import { BlockAttr } from '../types'; import all from './all'; diff --git a/packages/client-p2p-messages/src/types.d.ts b/packages/client-p2p-messages/src/types.d.ts index c601868b..11ada668 100644 --- a/packages/client-p2p-messages/src/types.d.ts +++ b/packages/client-p2p-messages/src/types.d.ts @@ -42,29 +42,19 @@ export type BlockAttr = keyof BlockAttrMap; export type BlockRequestMessageDirection = 'Ascending' | 'Descending'; export type BlockRequestMessage = { - direction: BlockRequestMessageDirection, - fields: Array, + direction?: BlockRequestMessageDirection, + fields?: Array, from: HeaderHash | BN, id: number, max?: number | null, to?: HeaderHash | null } -export type BlockResponseEncodedBlock = { - hash: string, - header: Header, - body: Array>, - receipt: null, - messageQueue: null, - justification: Justification -}; - export type BlockResponseMessageBlock = { hash: Uint8Array, header: Header, - importable: Uint8Array, - justification: Justification, - number: BN + encoded: Uint8Array, + justification: Uint8Array // Justification } export type BlockResponseMessage = { diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index dfdb0481..08ef766f 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.26", - "@polkadot/util": "^0.26.26", + "@polkadot/primitives": "^0.26.29", + "@polkadot/util": "^0.26.29", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index c635cd46..a6aa5517 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -123,7 +123,7 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { const encoded = message.encode(); const length = varint.encode(encoded.length + 1); - this.l.debug(() => `sending ${u8aToHex(encoded)}`); + // this.l.debug(() => `sending ${u8aToHex(encoded)}`); this.pushable.push( u8aToBuffer( diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index cf43cad4..4f9bf2a4 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -4,7 +4,7 @@ import { Config } from '@polkadot/client/types'; import { ChainInterface } from '@polkadot/client-chains/types'; -import { BlockRequestMessageField, BlockResponseMessage, BlockResponseMessageBlock } from '@polkadot/client-p2p-messages/types'; +import { BlockAttr, BlockResponseMessage, BlockResponseMessageBlock } from '@polkadot/client-p2p-messages/types'; import { Logger } from '@polkadot/util/types'; import { PeerInterface, SyncStatus } from '../types'; import { SyncInterface, SyncState$Request, SyncState$BlockRequests, SyncState$BlockQueue } from './types'; @@ -36,7 +36,7 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { this.l = logger('sync'); } - getBlockData (fields: Array, hash: Uint8Array): BlockResponseMessageBlock { + getBlockData (fields: Array, hash: Uint8Array): BlockResponseMessageBlock { const { body, header } = decodeBlock( this.chain.blocks.block.get(hash) ); @@ -70,11 +70,11 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { let count = 0; while (this.blockQueue[nextNumber.toString()]) { - const { hash, importable } = this.blockQueue[nextNumber.toString()]; + const { hash, encoded } = this.blockQueue[nextNumber.toString()]; this.l.debug(() => `Importing block #${nextNumber.toString()}, ${u8aToHex(hash)}`); - if (!this.chain.executor.importBlock(importable)) { + if (!this.chain.executor.importBlock(encoded)) { break; } @@ -135,13 +135,14 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { const count = blocks.reduce((count: number, block) => { const hasImported = this.chain.blocks.block.get(block.hash).length !== 0; - const hasQueued = !!this.blockQueue[block.number.toString()]; + const blockNumber = block.header.number.toString(); + const hasQueued = !!this.blockQueue[blockNumber]; if (hasImported && hasQueued) { return count; } - this.blockQueue[block.number.toString()] = block; + this.blockQueue[blockNumber] = block; return count + 1; }, 0); @@ -162,8 +163,6 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { this.l.debug(() => `Requesting blocks from ${peer.shortId}, #${from.toString()} -`); const request = new BlockRequest({ - direction: 'Ascending', - fields: ['Body', 'Header', 'Justification'], from, id: peer.getNextId() }); diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index ccb98712..4a1135bd 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.26", - "@polkadot/primitives": "^0.26.26", - "@polkadot/util": "^0.26.26" + "@polkadot/jsonrpc": "^0.26.29", + "@polkadot/primitives": "^0.26.29", + "@polkadot/util": "^0.26.29" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 7f18bdfd..d4be1d80 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -40,7 +40,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.26", + "@polkadot/util": "^0.26.29", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 50ede368..0f7d8137 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.26", - "@polkadot/util-crypto": "^0.26.26" + "@polkadot/util": "^0.26.29", + "@polkadot/util-crypto": "^0.26.29" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 912adfab..4311a705 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.26", + "@polkadot/util": "^0.26.29", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index 2b7daa89..8f341250 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.26", - "@polkadot/util": "^0.26.26", + "@polkadot/primitives": "^0.26.29", + "@polkadot/util": "^0.26.29", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client/package.json b/packages/client/package.json index 0f07b2aa..a993bac0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.26", - "@polkadot/primitives": "^0.26.26", - "@polkadot/util": "^0.26.26", + "@polkadot/jsonrpc": "^0.26.29", + "@polkadot/primitives": "^0.26.29", + "@polkadot/util": "^0.26.29", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 089b9a41..b063074c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -760,20 +760,20 @@ "@polkadot/primitives" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/extrinsics@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.26.tgz#aba6e89a34b51018cd0f2dbeacba3d78a320d78f" +"@polkadot/extrinsics@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.29.tgz#35e7efa9c3adbc9900cdf16593b7c1579c281941" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.26" - "@polkadot/primitives" "^0.26.26" - "@polkadot/util" "^0.26.26" + "@polkadot/params" "^0.26.29" + "@polkadot/primitives" "^0.26.29" + "@polkadot/util" "^0.26.29" -"@polkadot/jsonrpc@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.26.tgz#2808ee52338b92df0a68a89945ae33fc55a4af61" +"@polkadot/jsonrpc@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.29.tgz#7aaff2c355ff8e55baaee1cc33e0d597cfd3029d" dependencies: - "@polkadot/params" "^0.26.26" + "@polkadot/params" "^0.26.29" babel-runtime "^6.26.0" "@polkadot/params@^0.26.25": @@ -785,14 +785,14 @@ "@polkadot/primitives" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/params@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.26.tgz#b0621cb84a5af17bced0e1a8561cd89bf0b1967a" +"@polkadot/params@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.29.tgz#ba6f1026f391bead3f2efacd0fb554004b84a3bd" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.26" - "@polkadot/primitives" "^0.26.26" - "@polkadot/util" "^0.26.26" + "@polkadot/extrinsics" "^0.26.29" + "@polkadot/primitives" "^0.26.29" + "@polkadot/util" "^0.26.29" "@polkadot/primitives@^0.26.25": version "0.26.25" @@ -802,13 +802,13 @@ "@polkadot/trie-hash" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/primitives@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.26.tgz#d2117209bc47d48b174835c8dd35be6d7ae50f4d" +"@polkadot/primitives@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.29.tgz#bf3d45c6dfa1795fbaea696a67647f2558567794" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.26" - "@polkadot/util" "^0.26.26" + "@polkadot/trie-hash" "^0.26.29" + "@polkadot/util" "^0.26.29" "@polkadot/storage@^0.26.25": version "0.26.25" @@ -821,26 +821,26 @@ "@polkadot/util-crypto" "^0.26.25" "@polkadot/util-keyring" "^0.26.25" -"@polkadot/storage@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.26.tgz#75b7f6f51da15e72021d2c9760d11e44b145a872" +"@polkadot/storage@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.29.tgz#b3283a6eb79fe47de3c4f4a3e2e6e238880a990e" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.26" - "@polkadot/primitives" "^0.26.26" - "@polkadot/util" "^0.26.26" - "@polkadot/util-crypto" "^0.26.26" - "@polkadot/util-keyring" "^0.26.26" + "@polkadot/params" "^0.26.29" + "@polkadot/primitives" "^0.26.29" + "@polkadot/util" "^0.26.29" + "@polkadot/util-crypto" "^0.26.29" + "@polkadot/util-keyring" "^0.26.29" -"@polkadot/trie-db@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.26.tgz#0c628380a97408a2212d63d88c17ff2749bd83dd" +"@polkadot/trie-db@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.29.tgz#df249bc30ffaa4f5f96d5882fcbd720eab24fe8f" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.26" - "@polkadot/util" "^0.26.26" - "@polkadot/util-crypto" "^0.26.26" - "@polkadot/util-rlp" "^0.26.26" + "@polkadot/trie-hash" "^0.26.29" + "@polkadot/util" "^0.26.29" + "@polkadot/util-crypto" "^0.26.29" + "@polkadot/util-rlp" "^0.26.29" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -860,14 +860,14 @@ "@polkadot/util-crypto" "^0.26.25" "@polkadot/util-rlp" "^0.26.25" -"@polkadot/trie-hash@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.26.tgz#eb541ec40b30726cc5f6987c0db679f81898a53d" +"@polkadot/trie-hash@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.29.tgz#0ceeca630c7d7274e1e77108d342b7b4b7810e91" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.26" - "@polkadot/util-crypto" "^0.26.26" - "@polkadot/util-rlp" "^0.26.26" + "@polkadot/util" "^0.26.29" + "@polkadot/util-crypto" "^0.26.29" + "@polkadot/util-rlp" "^0.26.29" "@polkadot/ts@^0.1.9": version "0.1.9" @@ -884,12 +884,12 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-crypto@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.26.tgz#3e816dc6cf55e6dcfddcca34c5aa0f99a7ee9370" +"@polkadot/util-crypto@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.29.tgz#f3d264f6f096ae4a59d3a535dc2111bee403a5fe" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.26" + "@polkadot/util" "^0.26.29" blakejs "^1.1.0" js-sha3 "^0.7.0" tweetnacl "^1.0.0" @@ -905,13 +905,13 @@ "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-keyring@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.26.tgz#e28e1f594f00d86b68e15378cb284c09edb5ebce" +"@polkadot/util-keyring@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.29.tgz#c43a15d7b05c1a797b1e4f64fa045b33da11dc94" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.26" - "@polkadot/util-crypto" "^0.26.26" + "@polkadot/util" "^0.26.29" + "@polkadot/util-crypto" "^0.26.29" "@types/bs58" "^3.0.30" bs58 "^4.0.1" @@ -922,12 +922,12 @@ "@babel/runtime" "^7.0.0-beta.51" "@polkadot/util" "^0.26.25" -"@polkadot/util-rlp@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.26.tgz#b6c228926314255cc4fa1db10f6e2874fd746e87" +"@polkadot/util-rlp@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.29.tgz#c3cffdfdb5a4f73d6541186c9f32f038e344a0fa" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.26" + "@polkadot/util" "^0.26.29" "@polkadot/util@^0.26.25": version "0.26.25" @@ -943,9 +943,9 @@ deasync "^0.1.13" ip-regex "^2.1.0" -"@polkadot/util@^0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.26.tgz#2ef1fed37464c939c56b35db58fa6d1dbeceb454" +"@polkadot/util@^0.26.29": + version "0.26.29" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.29.tgz#6d8336759b37c66e4bf32f2fea0446729352ffe0" dependencies: "@babel/runtime" "^7.0.0-beta.51" "@types/bn.js" "^4.11.1" From 56a8015436d51e7d4c11cf4347e12eef10432139 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 27 Jul 2018 17:11:39 +0200 Subject: [PATCH 07/34] ping/pong --- .gitignore | 1 + packages/client-chains/package.json | 14 +- packages/client-db-chain/package.json | 10 +- packages/client-db/package.json | 4 +- packages/client-p2p-messages/package.json | 6 +- .../client-p2p-messages/src/BlockRequest.ts | 3 +- .../client-p2p-messages/src/BlockResponse.ts | 9 +- packages/client-p2p/package.json | 5 +- packages/client-p2p/src/create/node.ts | 7 +- packages/client-p2p/src/index.ts | 32 ++--- packages/client-p2p/src/peer/index.ts | 17 ++- packages/client-p2p/src/peers/index.ts | 6 +- packages/client-p2p/src/types.d.ts | 2 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 2 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-telemetry/src/defaults.ts | 2 +- packages/client-telemetry/src/index.ts | 10 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- yarn.lock | 129 ++++++++++-------- 22 files changed, 159 insertions(+), 122 deletions(-) diff --git a/.gitignore b/.gitignore index 3e0b4ae0..4a752ad8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ coverage/ node_modules/ tmp/ packages/client-wasm/test/wasm-bin +test.sh .DS_Store .env.local .env.development.local diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index a17fec5e..2cf99a2d 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.29", - "@polkadot/util": "^0.26.29", - "@polkadot/util-crypto": "^0.26.29", - "@polkadot/util-keyring": "^0.26.29" + "@polkadot/storage": "^0.26.30", + "@polkadot/util": "^0.26.30", + "@polkadot/util-crypto": "^0.26.30", + "@polkadot/util-keyring": "^0.26.30" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.29", - "@polkadot/primitives": "^0.26.29", - "@polkadot/storage": "^0.26.29" + "@polkadot/extrinsics": "^0.26.30", + "@polkadot/primitives": "^0.26.30", + "@polkadot/storage": "^0.26.30" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 74ca09c4..8dd9ff0d 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.29", - "@polkadot/trie-hash": "^0.26.29", - "@polkadot/util": "^0.26.29", - "@polkadot/util-crypto": "^0.26.29" + "@polkadot/storage": "^0.26.30", + "@polkadot/trie-hash": "^0.26.30", + "@polkadot/util": "^0.26.30", + "@polkadot/util-crypto": "^0.26.30" }, "devDependencies": { - "@polkadot/storage": "^0.26.29" + "@polkadot/storage": "^0.26.30" } } diff --git a/packages/client-db/package.json b/packages/client-db/package.json index c4c36e4f..d972a9ed 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.29", - "@polkadot/util": "^0.26.29", + "@polkadot/trie-db": "^0.26.30", + "@polkadot/util": "^0.26.30", "@types/mkdirp": "^0.5.2", "mkdirp": "^0.5.1" }, diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index af2160dd..5ae9ef5e 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.29", - "@polkadot/primitives": "^0.26.29", - "@polkadot/util": "^0.26.29" + "@polkadot/jsonrpc": "^0.26.30", + "@polkadot/primitives": "^0.26.30", + "@polkadot/util": "^0.26.30" } } diff --git a/packages/client-p2p-messages/src/BlockRequest.ts b/packages/client-p2p-messages/src/BlockRequest.ts index 7d5846a8..f3a72ca9 100644 --- a/packages/client-p2p-messages/src/BlockRequest.ts +++ b/packages/client-p2p-messages/src/BlockRequest.ts @@ -33,7 +33,8 @@ export default class BlockRequest extends BaseMessage implements MessageInterfac max: number; to: HeaderHash | null; - constructor ({ direction = 'Ascending', fields = ['header', 'body', 'justification'], from, id, max, to = null }: BlockRequestMessage) { + // TODO: Re-add 'justification' in here, with proper decoding in BlockResponse + constructor ({ direction = 'Ascending', fields = ['header', 'body'], from, id, max, to = null }: BlockRequestMessage) { super(BlockRequest.type); this.direction = direction; diff --git a/packages/client-p2p-messages/src/BlockResponse.ts b/packages/client-p2p-messages/src/BlockResponse.ts index ca985ef2..30726def 100644 --- a/packages/client-p2p-messages/src/BlockResponse.ts +++ b/packages/client-p2p-messages/src/BlockResponse.ts @@ -11,6 +11,7 @@ import u8aToBn from '@polkadot/util/u8a/toBn'; import bnToU8a from '@polkadot/util/bn/toU8a'; import BaseMessage from './BaseMessage'; +import u8aToHex from '../../../node_modules/@polkadot/util/u8a/toHex'; const COUNT_OFF = 8; const BLOCK_OFF = COUNT_OFF + 4; @@ -52,7 +53,7 @@ export default class BlockResponse extends BaseMessage implements MessageInterfa for (let i = 0; i < numBlocks; i++) { const hash = u8a.slice(offset, offset + I_HDRP_OFF); - const headerRaw = decodeHeaderRaw(u8a.subarray(offset + I_HDRD_OFF)).header; + const headerRaw = decodeHeaderRaw(u8a.subarray(offset + I_HDRD_OFF)).header.slice(); const header = decodeHeader(headerRaw); offset += I_HDRD_OFF + headerRaw.length + 1; // skip 00/01 @@ -70,13 +71,13 @@ export default class BlockResponse extends BaseMessage implements MessageInterfa offset += 4 + length; } - const encoded = u8aConcat.apply(null, [headerRaw, bnToU8a(numExt, 32, true)].concat(extrinsics)); + offset += 3; // skip reciept, queue and justification blocks.push({ hash, header, - encoded, - justification: u8a.slice(offset + 3); // skip reciept, queue and assume we are at justification + encoded: u8aConcat.apply(null, [headerRaw, bnToU8a(numExt, 32, true)].concat(extrinsics)), + justification: new Uint8Array([]) }); } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index 08ef766f..570c5123 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,13 +36,14 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.29", - "@polkadot/util": "^0.26.29", + "@polkadot/primitives": "^0.26.30", + "@polkadot/util": "^0.26.30", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", "libp2p-mdns": "^0.11.0", "libp2p-mplex": "^0.7.0", + "libp2p-ping": "jacogr/js-libp2p-ping#jg-dialProtocol", "libp2p-railing": "^0.9.1", "libp2p-secio": "^0.10.0", "libp2p-spdy": "^0.12.1", diff --git a/packages/client-p2p/src/create/node.ts b/packages/client-p2p/src/create/node.ts index b75a467d..ca3bd8e4 100644 --- a/packages/client-p2p/src/create/node.ts +++ b/packages/client-p2p/src/create/node.ts @@ -7,6 +7,7 @@ import { Config } from '@polkadot/client/types'; import { Logger } from '@polkadot/util/types'; import Libp2p from 'libp2p'; +import Ping from 'libp2p-ping'; import createModules from './modules'; import createListener from './listener'; @@ -30,10 +31,14 @@ export default async function createNode ({ p2p: { address, nodes = [], port } } l.log(`creating Libp2p with ${addrs.join(', ')}`); - return new Libp2p({ + const libp2p = new Libp2p({ config, modules, peerBook, peerInfo }); + + Ping.mount(libp2p); + + return libp2p; } diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index cd596cf4..43f8f04a 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -95,22 +95,22 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { return true; } - _announceBlock (hash: Uint8Array, _header: Uint8Array, body: Uint8Array): void { - if (!this.peers) { - return; - } - - const header = decodeHeader(_header); - const message = new BlockAnnounce({ - header - }); - - this.peers.peers().forEach((peer) => { - if (header.number.gt(peer.bestNumber)) { - peer.send(message); - } - }); - } + // _announceBlock (hash: Uint8Array, _header: Uint8Array, body: Uint8Array): void { + // if (!this.peers) { + // return; + // } + + // const header = decodeHeader(_header); + // const message = new BlockAnnounce({ + // header + // }); + + // this.peers.peers().forEach((peer) => { + // if (header.number.gt(peer.bestNumber)) { + // peer.send(message); + // } + // }); + // } private _onPeerDiscovery (node: LibP2p, peers: PeersInterface): void { node.on('start', () => diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index a6aa5517..83fff63b 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -2,6 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. +import LibP2p from 'libp2p'; import PeerInfo from 'peer-info'; import { Config } from '@polkadot/client/types'; import { ChainInterface } from '@polkadot/client-chains/types'; @@ -11,6 +12,7 @@ import { PeerInterface } from '../types'; import BN from 'bn.js'; import E3 from 'eventemitter3'; +import Ping from 'libp2p-ping'; import PullPushable, { Pushable } from 'pull-pushable'; import pull from 'pull-stream'; import varint from 'varint'; @@ -22,7 +24,7 @@ import logger from '@polkadot/util/logger'; import stringShorten from '@polkadot/util/string/shorten'; import u8aConcat from '@polkadot/util/u8a/concat'; import u8aToBuffer from '@polkadot/util/u8a/toBuffer'; -import u8aToHex from '@polkadot/util/u8a/toHex'; +// import u8aToHex from '@polkadot/util/u8a/toHex'; import defaults from '../defaults'; @@ -34,17 +36,19 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { readonly id: string; readonly l: Logger; private nextId: number = 0; + private node: LibP2p; readonly peerInfo: PeerInfo; private pushable: Pushable | null = null; readonly shortId: string; - constructor (config: Config, chain: ChainInterface, peerInfo: PeerInfo) { + constructor (config: Config, chain: ChainInterface, peerInfo: PeerInfo, node: LibP2p) { super(); this.chain = chain; this.config = config; this.id = peerInfo.id.toB58String(); this.l = logger('p2p/peer'); + this.node = node; this.peerInfo = peerInfo; this.shortId = stringShorten(this.id); } @@ -55,6 +59,15 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { if (isWritable) { this.pushable = PullPushable(); + const p = new Ping(this.node, this.peerInfo); // Ping peerDst, peerDst must be a peer-info object + + p.on('ping', (time: number) => { + console.log(time + 'ms'); + // p.stop() // stop sending pings + }); + + p.start(); + pull( this.pushable, connection diff --git a/packages/client-p2p/src/peers/index.ts b/packages/client-p2p/src/peers/index.ts index 3e50013a..dfb5ec0f 100644 --- a/packages/client-p2p/src/peers/index.ts +++ b/packages/client-p2p/src/peers/index.ts @@ -36,12 +36,12 @@ export default class Peers extends E3.EventEmitter implements PeersInterface { this._onDiscovery(node); } - add (peerInfo: PeerInfo): PeerInterface { + add (peerInfo: PeerInfo, node: LibP2p): PeerInterface { const id = peerInfo.id.toB58String(); let peer = this.map[id]; if (!peer) { - this.map[id] = peer = new Peer(this.config, this.chain, peerInfo); + this.map[id] = peer = new Peer(this.config, this.chain, peerInfo, node); peer.on('message', (message: MessageInterface): void => { this.emit('message', { @@ -130,7 +130,7 @@ export default class Peers extends E3.EventEmitter implements PeersInterface { return false; } - peer = this.add(peerInfo); + peer = this.add(peerInfo, node); this.log('discovered', peer, false); diff --git a/packages/client-p2p/src/types.d.ts b/packages/client-p2p/src/types.d.ts index 4585211d..031f37c9 100644 --- a/packages/client-p2p/src/types.d.ts +++ b/packages/client-p2p/src/types.d.ts @@ -72,7 +72,7 @@ export type P2pInterface = { readonly l: Logger; readonly sync: Sync; - _announceBlock: (hash: Uint8Array, header: Uint8Array, body: Uint8Array) => void, + // _announceBlock: (hash: Uint8Array, header: Uint8Array, body: Uint8Array) => void, isStarted: () => boolean, on: (type: P2pInterface$Events, cb: () => any) => any, getNumPeers: () => number, diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 4a1135bd..510cb047 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.29", - "@polkadot/primitives": "^0.26.29", - "@polkadot/util": "^0.26.29" + "@polkadot/jsonrpc": "^0.26.30", + "@polkadot/primitives": "^0.26.30", + "@polkadot/util": "^0.26.30" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index d4be1d80..38440a42 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -40,7 +40,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.29", + "@polkadot/util": "^0.26.30", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 0f7d8137..3d3c8fee 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.29", - "@polkadot/util-crypto": "^0.26.29" + "@polkadot/util": "^0.26.30", + "@polkadot/util-crypto": "^0.26.30" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 4311a705..8d1c0451 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.29", + "@polkadot/util": "^0.26.30", "websocket": "^1.0.26" } } diff --git a/packages/client-telemetry/src/defaults.ts b/packages/client-telemetry/src/defaults.ts index 2de7c0c1..9329211d 100644 --- a/packages/client-telemetry/src/defaults.ts +++ b/packages/client-telemetry/src/defaults.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -const URL = ' wss://telemetry.polkadot.io/submit/'; +const URL = 'wss://telemetry.polkadot.io/submit/'; export default { URL diff --git a/packages/client-telemetry/src/index.ts b/packages/client-telemetry/src/index.ts index e6275453..2c4df4fc 100644 --- a/packages/client-telemetry/src/index.ts +++ b/packages/client-telemetry/src/index.ts @@ -28,13 +28,15 @@ export default class Telemetry implements TelemetryInterface { private url: string; private websocket: WebSocket | null = null; - constructor ({ chain, telemetry: { name, url } }: Config, { blocks }: ChainInterface) { + constructor ({ telemetry }: Config, { blocks, chain }: ChainInterface) { + const name = telemetry.name ? telemetry.name.trim() : ''; + this.l = logger('telemetry'); this.blocks = blocks; - this.isActive = !!name && !!url; - this.chain = chain; + this.isActive = !!name.length && !!telemetry.url.length; + this.chain = chain.name; this.name = name; - this.url = url; + this.url = telemetry.url; } async start () { diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index 8f341250..641a5252 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.29", - "@polkadot/util": "^0.26.29", + "@polkadot/primitives": "^0.26.30", + "@polkadot/util": "^0.26.30", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client/package.json b/packages/client/package.json index a993bac0..1d1aa3b2 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.29", - "@polkadot/primitives": "^0.26.29", - "@polkadot/util": "^0.26.29", + "@polkadot/jsonrpc": "^0.26.30", + "@polkadot/primitives": "^0.26.30", + "@polkadot/util": "^0.26.30", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index b063074c..0f24f75c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -760,20 +760,20 @@ "@polkadot/primitives" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/extrinsics@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.29.tgz#35e7efa9c3adbc9900cdf16593b7c1579c281941" +"@polkadot/extrinsics@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.30.tgz#a13bbdbee23520e5acd3104cf2a098c7eeb47ab0" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.29" - "@polkadot/primitives" "^0.26.29" - "@polkadot/util" "^0.26.29" + "@polkadot/params" "^0.26.30" + "@polkadot/primitives" "^0.26.30" + "@polkadot/util" "^0.26.30" -"@polkadot/jsonrpc@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.29.tgz#7aaff2c355ff8e55baaee1cc33e0d597cfd3029d" +"@polkadot/jsonrpc@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.30.tgz#38c069158f6462387f83a6cad760d73b51760498" dependencies: - "@polkadot/params" "^0.26.29" + "@polkadot/params" "^0.26.30" babel-runtime "^6.26.0" "@polkadot/params@^0.26.25": @@ -785,14 +785,14 @@ "@polkadot/primitives" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/params@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.29.tgz#ba6f1026f391bead3f2efacd0fb554004b84a3bd" +"@polkadot/params@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.30.tgz#3cacbcf71ac105f65281474ac851d63939a901f8" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.29" - "@polkadot/primitives" "^0.26.29" - "@polkadot/util" "^0.26.29" + "@polkadot/extrinsics" "^0.26.30" + "@polkadot/primitives" "^0.26.30" + "@polkadot/util" "^0.26.30" "@polkadot/primitives@^0.26.25": version "0.26.25" @@ -802,13 +802,13 @@ "@polkadot/trie-hash" "^0.26.25" "@polkadot/util" "^0.26.25" -"@polkadot/primitives@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.29.tgz#bf3d45c6dfa1795fbaea696a67647f2558567794" +"@polkadot/primitives@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.30.tgz#e366d97d180007d6eef603e26ba82da62e028b48" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.29" - "@polkadot/util" "^0.26.29" + "@polkadot/trie-hash" "^0.26.30" + "@polkadot/util" "^0.26.30" "@polkadot/storage@^0.26.25": version "0.26.25" @@ -821,26 +821,26 @@ "@polkadot/util-crypto" "^0.26.25" "@polkadot/util-keyring" "^0.26.25" -"@polkadot/storage@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.29.tgz#b3283a6eb79fe47de3c4f4a3e2e6e238880a990e" +"@polkadot/storage@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.30.tgz#42505444e08841aeceb5756f383cb6f410fe13ec" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.29" - "@polkadot/primitives" "^0.26.29" - "@polkadot/util" "^0.26.29" - "@polkadot/util-crypto" "^0.26.29" - "@polkadot/util-keyring" "^0.26.29" + "@polkadot/params" "^0.26.30" + "@polkadot/primitives" "^0.26.30" + "@polkadot/util" "^0.26.30" + "@polkadot/util-crypto" "^0.26.30" + "@polkadot/util-keyring" "^0.26.30" -"@polkadot/trie-db@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.29.tgz#df249bc30ffaa4f5f96d5882fcbd720eab24fe8f" +"@polkadot/trie-db@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.30.tgz#5acd1ec0bf797647864da8164114cf8619b0f4f0" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.29" - "@polkadot/util" "^0.26.29" - "@polkadot/util-crypto" "^0.26.29" - "@polkadot/util-rlp" "^0.26.29" + "@polkadot/trie-hash" "^0.26.30" + "@polkadot/util" "^0.26.30" + "@polkadot/util-crypto" "^0.26.30" + "@polkadot/util-rlp" "^0.26.30" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -860,14 +860,14 @@ "@polkadot/util-crypto" "^0.26.25" "@polkadot/util-rlp" "^0.26.25" -"@polkadot/trie-hash@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.29.tgz#0ceeca630c7d7274e1e77108d342b7b4b7810e91" +"@polkadot/trie-hash@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.30.tgz#4f6814e31343526ede1c73c9ab92a5388fce4bc5" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.29" - "@polkadot/util-crypto" "^0.26.29" - "@polkadot/util-rlp" "^0.26.29" + "@polkadot/util" "^0.26.30" + "@polkadot/util-crypto" "^0.26.30" + "@polkadot/util-rlp" "^0.26.30" "@polkadot/ts@^0.1.9": version "0.1.9" @@ -884,12 +884,12 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-crypto@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.29.tgz#f3d264f6f096ae4a59d3a535dc2111bee403a5fe" +"@polkadot/util-crypto@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.30.tgz#13371ef5aa07c205fc321b464e15b18aff0e0f24" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.29" + "@polkadot/util" "^0.26.30" blakejs "^1.1.0" js-sha3 "^0.7.0" tweetnacl "^1.0.0" @@ -905,13 +905,13 @@ "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-keyring@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.29.tgz#c43a15d7b05c1a797b1e4f64fa045b33da11dc94" +"@polkadot/util-keyring@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.30.tgz#75c7f63835734142971cd705539327e6c31854f0" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.29" - "@polkadot/util-crypto" "^0.26.29" + "@polkadot/util" "^0.26.30" + "@polkadot/util-crypto" "^0.26.30" "@types/bs58" "^3.0.30" bs58 "^4.0.1" @@ -922,12 +922,12 @@ "@babel/runtime" "^7.0.0-beta.51" "@polkadot/util" "^0.26.25" -"@polkadot/util-rlp@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.29.tgz#c3cffdfdb5a4f73d6541186c9f32f038e344a0fa" +"@polkadot/util-rlp@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.30.tgz#2abe08d5ca770f625b65a6ddff327d7c2019160c" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.29" + "@polkadot/util" "^0.26.30" "@polkadot/util@^0.26.25": version "0.26.25" @@ -943,9 +943,9 @@ deasync "^0.1.13" ip-regex "^2.1.0" -"@polkadot/util@^0.26.29": - version "0.26.29" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.29.tgz#6d8336759b37c66e4bf32f2fea0446729352ffe0" +"@polkadot/util@^0.26.30": + version "0.26.30" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.30.tgz#1c3648ebc7dcbbd44e87f1fd720396c837200c13" dependencies: "@babel/runtime" "^7.0.0-beta.51" "@types/bn.js" "^4.11.1" @@ -956,6 +956,7 @@ chalk "^2.4.1" deasync "^0.1.13" ip-regex "^2.1.0" + moment "^2.22.2" "@polkadot/wasm-bin@paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324": version "20180601.165414.0" @@ -5073,6 +5074,14 @@ libp2p-mplex@^0.7.0: through2 "^2.0.3" varint "^5.0.0" +libp2p-ping@jacogr/js-libp2p-ping#jg-dialProtocol: + version "0.8.0" + resolved "https://codeload.github.com/jacogr/js-libp2p-ping/tar.gz/19a1a53799b7a3a8303466a54eade3bcff6ae2b4" + dependencies: + libp2p-crypto "~0.13.0" + pull-handshake "^1.1.4" + pull-stream "^3.6.7" + libp2p-ping@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/libp2p-ping/-/libp2p-ping-0.8.0.tgz#14e23d87c69005a1e02895568359c34d2e89fa65" @@ -5618,6 +5627,10 @@ modify-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" +moment@^2.22.2: + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" + moment@^2.6.0: version "2.19.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.4.tgz#17e5e2c6ead8819c8ecfad83a0acccb312e94682" From 3f80a03756875de5c0694629e1ef931b868afa45 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 27 Jul 2018 18:13:54 +0200 Subject: [PATCH 08/34] Ping attempt... try #2 --- packages/client-p2p/package.json | 1 - packages/client-p2p/src/defaults.ts | 2 ++ packages/client-p2p/src/index.ts | 49 +++++++++++++++++++++++--- packages/client-p2p/src/peer/index.ts | 15 +------- packages/client-p2p/src/peers/index.ts | 6 ++-- yarn.lock | 8 ----- 6 files changed, 51 insertions(+), 30 deletions(-) diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index 570c5123..b2341444 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -43,7 +43,6 @@ "libp2p-kad-dht": "^0.10.0", "libp2p-mdns": "^0.11.0", "libp2p-mplex": "^0.7.0", - "libp2p-ping": "jacogr/js-libp2p-ping#jg-dialProtocol", "libp2p-railing": "^0.9.1", "libp2p-secio": "^0.10.0", "libp2p-spdy": "^0.12.1", diff --git a/packages/client-p2p/src/defaults.ts b/packages/client-p2p/src/defaults.ts index 5f69e4ff..2afd5964 100644 --- a/packages/client-p2p/src/defaults.ts +++ b/packages/client-p2p/src/defaults.ts @@ -14,12 +14,14 @@ const PROTOCOL_BASE = '/substrate'; const PROTOCOL_TYPE = '/dot'; const PROTOCOL_VERSION = 1; const PROTOCOL = `${PROTOCOL_BASE}${PROTOCOL_TYPE}/${PROTOCOL_VERSION}`; +const PING_PROTOCOL = '/ipfs/ping/1.0.0'; export default { ADDRESS, CLIENT_ID, MAX_PEERS, MAX_SYNC_BLOCKS, + PING_PROTOCOL, PORT, PROTOCOL, PROTOCOL_BASE, diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 43f8f04a..0b2a0041 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -11,6 +11,8 @@ import { P2pInterface, PeerInterface, PeersInterface } from './types'; import handlers from './handler'; import E3 from 'eventemitter3'; +import pull from 'pull-stream'; +import handshake from 'pull-handshake'; import BlockAnnounce from '@polkadot/client-p2p-messages/BlockAnnounce'; import decodeHeader from '@polkadot/primitives/codec/header/decode'; import logger from '@polkadot/util/logger'; @@ -65,12 +67,15 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.node = await createNode(this.config, this.chain, this.l); this.peers = new Peers(this.config, this.chain, this.node); + this._handlePing(this.node); this._handleProtocol(this.node, this.peers); this._onPeerDiscovery(this.node, this.peers); this._onPeerMessage(this.node, this.peers); await promisify(this.node, this.node.start); + console.error('node=', this.node); + this.l.log(`Started on address=${this.config.p2p.address}, port=${this.config.p2p.port}`); this.emit('started'); @@ -137,6 +142,42 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { }); } + private _handlePing (node: LibP2p): void { + node.handle( + defaults.PING_PROTOCOL, + (protocol: string, connection: LibP2pConnection): void => { + console.error('##### new pong proto', protocol, connection); + + const stream = handshake({ timeout: 0 }); + const shake = stream.handshake; + + // receive and echo back + function next () { + shake.read(32, (error, buf) => { + console.error('##### received ping', buf); + + if (error) { + return; + } + + console.error('##### writing pong', buf); + + shake.write(buf); + return next(); + }); + } + + pull( + connection, + stream, + connection + ); + + next(); + } + ); + } + private _handleProtocol (node: LibP2p, peers: PeersInterface): void { node.handle( defaults.PROTOCOL, @@ -155,11 +196,11 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.l.error('protocol handling error', error); } } - , (protocol: string, requested: string, callback: (error: null, accept: boolean) => void): void => { - this.l.debug(() => `matching protocol ${requested}`); + // , (protocol: string, requested: string, callback: (error: null, accept: boolean) => void): void => { + // this.l.debug(() => `matching protocol ${requested}`); - callback(null, requested.indexOf(defaults.PROTOCOL) === 0); - } + // callback(null, requested.indexOf(defaults.PROTOCOL) === 0); + // } ); } diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index 83fff63b..95a887c6 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -2,7 +2,6 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import LibP2p from 'libp2p'; import PeerInfo from 'peer-info'; import { Config } from '@polkadot/client/types'; import { ChainInterface } from '@polkadot/client-chains/types'; @@ -12,7 +11,6 @@ import { PeerInterface } from '../types'; import BN from 'bn.js'; import E3 from 'eventemitter3'; -import Ping from 'libp2p-ping'; import PullPushable, { Pushable } from 'pull-pushable'; import pull from 'pull-stream'; import varint from 'varint'; @@ -36,19 +34,17 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { readonly id: string; readonly l: Logger; private nextId: number = 0; - private node: LibP2p; readonly peerInfo: PeerInfo; private pushable: Pushable | null = null; readonly shortId: string; - constructor (config: Config, chain: ChainInterface, peerInfo: PeerInfo, node: LibP2p) { + constructor (config: Config, chain: ChainInterface, peerInfo: PeerInfo) { super(); this.chain = chain; this.config = config; this.id = peerInfo.id.toB58String(); this.l = logger('p2p/peer'); - this.node = node; this.peerInfo = peerInfo; this.shortId = stringShorten(this.id); } @@ -59,15 +55,6 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { if (isWritable) { this.pushable = PullPushable(); - const p = new Ping(this.node, this.peerInfo); // Ping peerDst, peerDst must be a peer-info object - - p.on('ping', (time: number) => { - console.log(time + 'ms'); - // p.stop() // stop sending pings - }); - - p.start(); - pull( this.pushable, connection diff --git a/packages/client-p2p/src/peers/index.ts b/packages/client-p2p/src/peers/index.ts index dfb5ec0f..3e50013a 100644 --- a/packages/client-p2p/src/peers/index.ts +++ b/packages/client-p2p/src/peers/index.ts @@ -36,12 +36,12 @@ export default class Peers extends E3.EventEmitter implements PeersInterface { this._onDiscovery(node); } - add (peerInfo: PeerInfo, node: LibP2p): PeerInterface { + add (peerInfo: PeerInfo): PeerInterface { const id = peerInfo.id.toB58String(); let peer = this.map[id]; if (!peer) { - this.map[id] = peer = new Peer(this.config, this.chain, peerInfo, node); + this.map[id] = peer = new Peer(this.config, this.chain, peerInfo); peer.on('message', (message: MessageInterface): void => { this.emit('message', { @@ -130,7 +130,7 @@ export default class Peers extends E3.EventEmitter implements PeersInterface { return false; } - peer = this.add(peerInfo, node); + peer = this.add(peerInfo); this.log('discovered', peer, false); diff --git a/yarn.lock b/yarn.lock index 0f24f75c..2294175b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5074,14 +5074,6 @@ libp2p-mplex@^0.7.0: through2 "^2.0.3" varint "^5.0.0" -libp2p-ping@jacogr/js-libp2p-ping#jg-dialProtocol: - version "0.8.0" - resolved "https://codeload.github.com/jacogr/js-libp2p-ping/tar.gz/19a1a53799b7a3a8303466a54eade3bcff6ae2b4" - dependencies: - libp2p-crypto "~0.13.0" - pull-handshake "^1.1.4" - pull-stream "^3.6.7" - libp2p-ping@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/libp2p-ping/-/libp2p-ping-0.8.0.tgz#14e23d87c69005a1e02895568359c34d2e89fa65" From 115901cab76bb2e29924f738d9d6906204c767ed Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 28 Jul 2018 16:14:18 +0200 Subject: [PATCH 09/34] Hacked-up pong (no ping), and we are sync-ing --- .../client-chains/src/chains/krummelanke.json | 2 +- packages/client-p2p/src/create/node.ts | 7 +- packages/client-p2p/src/defaults.ts | 4 +- packages/client-p2p/src/index.ts | 90 +++++++++---------- 4 files changed, 47 insertions(+), 56 deletions(-) diff --git a/packages/client-chains/src/chains/krummelanke.json b/packages/client-chains/src/chains/krummelanke.json index 756106e7..7b04357e 100644 --- a/packages/client-chains/src/chains/krummelanke.json +++ b/packages/client-chains/src/chains/krummelanke.json @@ -43,7 +43,7 @@ "bootNodes": [ "/ip4/104.211.54.233/tcp/30333/p2p/QmRMGcQh69t8a8YwzHkofVo9SFr7ffggUwhAYjVSTChmrd", "/ip4/104.211.48.51/tcp/30333/p2p/QmWCnXrhM1in1qPqVT3rDXQEJHedAzbPDMimdjqy2P9fGn", - "/ip4/104.211.48.247/tcp/30333/p2p/QmYPx99i3H8EKXrvYHTBwqz3jjFC1kBfkvmSKd2h9zwQFr", + "/ip4/104.211.48.247/tcp/30333/p2p/QmY33GW69TnTsdQWjAkxJR1GrWTdeV1PmzzcSmUay4HvAB", "/ip4/40.114.120.164/tcp/30333/p2p/QmWzYU5X1NpFrprD1YZF5Lcj9aE5WF4QEg5FpvQx5XGWG7", "/ip4/40.117.153.33/tcp/30333/p2p/QmSz8qCADMmi92QB8dTqMPu56JYQQKZBAHz7y8KXjvqcvW" ] diff --git a/packages/client-p2p/src/create/node.ts b/packages/client-p2p/src/create/node.ts index ca3bd8e4..b75a467d 100644 --- a/packages/client-p2p/src/create/node.ts +++ b/packages/client-p2p/src/create/node.ts @@ -7,7 +7,6 @@ import { Config } from '@polkadot/client/types'; import { Logger } from '@polkadot/util/types'; import Libp2p from 'libp2p'; -import Ping from 'libp2p-ping'; import createModules from './modules'; import createListener from './listener'; @@ -31,14 +30,10 @@ export default async function createNode ({ p2p: { address, nodes = [], port } } l.log(`creating Libp2p with ${addrs.join(', ')}`); - const libp2p = new Libp2p({ + return new Libp2p({ config, modules, peerBook, peerInfo }); - - Ping.mount(libp2p); - - return libp2p; } diff --git a/packages/client-p2p/src/defaults.ts b/packages/client-p2p/src/defaults.ts index 2afd5964..f6f8dbb7 100644 --- a/packages/client-p2p/src/defaults.ts +++ b/packages/client-p2p/src/defaults.ts @@ -4,7 +4,7 @@ import { Role } from '@polkadot/primitives/role'; -const ADDRESS = '0.0.0.0'; +const ADDRESS = '127.0.0.1'; const CLIENT_ID = 'polkadot-js/0.0.0'; const MAX_PEERS = 25; const MAX_SYNC_BLOCKS = 64; @@ -14,14 +14,12 @@ const PROTOCOL_BASE = '/substrate'; const PROTOCOL_TYPE = '/dot'; const PROTOCOL_VERSION = 1; const PROTOCOL = `${PROTOCOL_BASE}${PROTOCOL_TYPE}/${PROTOCOL_VERSION}`; -const PING_PROTOCOL = '/ipfs/ping/1.0.0'; export default { ADDRESS, CLIENT_ID, MAX_PEERS, MAX_SYNC_BLOCKS, - PING_PROTOCOL, PORT, PROTOCOL, PROTOCOL_BASE, diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 0b2a0041..49eed7f4 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -11,10 +11,9 @@ import { P2pInterface, PeerInterface, PeersInterface } from './types'; import handlers from './handler'; import E3 from 'eventemitter3'; +// import handshake from 'pull-handshake'; +import PullPushable from 'pull-pushable'; import pull from 'pull-stream'; -import handshake from 'pull-handshake'; -import BlockAnnounce from '@polkadot/client-p2p-messages/BlockAnnounce'; -import decodeHeader from '@polkadot/primitives/codec/header/decode'; import logger from '@polkadot/util/logger'; import promisify from '@polkadot/util/promisify'; @@ -67,15 +66,12 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.node = await createNode(this.config, this.chain, this.l); this.peers = new Peers(this.config, this.chain, this.node); - this._handlePing(this.node); this._handleProtocol(this.node, this.peers); this._onPeerDiscovery(this.node, this.peers); this._onPeerMessage(this.node, this.peers); await promisify(this.node, this.node.start); - console.error('node=', this.node); - this.l.log(`Started on address=${this.config.p2p.address}, port=${this.config.p2p.port}`); this.emit('started'); @@ -142,42 +138,6 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { }); } - private _handlePing (node: LibP2p): void { - node.handle( - defaults.PING_PROTOCOL, - (protocol: string, connection: LibP2pConnection): void => { - console.error('##### new pong proto', protocol, connection); - - const stream = handshake({ timeout: 0 }); - const shake = stream.handshake; - - // receive and echo back - function next () { - shake.read(32, (error, buf) => { - console.error('##### received ping', buf); - - if (error) { - return; - } - - console.error('##### writing pong', buf); - - shake.write(buf); - return next(); - }); - } - - pull( - connection, - stream, - connection - ); - - next(); - } - ); - } - private _handleProtocol (node: LibP2p, peers: PeersInterface): void { node.handle( defaults.PROTOCOL, @@ -196,14 +156,50 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.l.error('protocol handling error', error); } } - // , (protocol: string, requested: string, callback: (error: null, accept: boolean) => void): void => { - // this.l.debug(() => `matching protocol ${requested}`); + , (protocol: string, requested: string, callback: (error: null, accept: boolean) => void): void => { + this.l.debug(() => `matching protocol ${requested}`); - // callback(null, requested.indexOf(defaults.PROTOCOL) === 0); - // } + callback(null, requested.indexOf(defaults.PROTOCOL) === 0); + } ); } + private async _pingPeer (peer: PeerInterface): Promise { + if (!this.node) { + return false; + } + + try { + const connection = await promisify( + this.node, this.node.dialProtocol, peer.peerInfo, '/ipfs/ping/1.0.0' + ); + + const pushable = PullPushable(); + + pull( + pushable, + connection + ); + + pull( + connection, + pull.drain( + (buffer: Buffer): void => { + this.l.debug(() => ['ping', peer.shortId]); + + pushable.push(buffer); + }, + () => false + ) + ); + } catch (error) { + // ignore + return false; + } + + return true; + } + private async _dialPeer (peer: PeerInterface): Promise { if (!this.node) { return false; @@ -216,6 +212,8 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.node, this.node.dialProtocol, peer.peerInfo, defaults.PROTOCOL ); + this._pingPeer(peer); + peer.addConnection(connection, true); return true; From 6237f5ea7c4c0382f195e7a88da8214e7e621833 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 28 Jul 2018 16:58:07 +0200 Subject: [PATCH 10/34] Requests blocks after import --- packages/client-p2p/src/handler/blockResponse.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/client-p2p/src/handler/blockResponse.ts b/packages/client-p2p/src/handler/blockResponse.ts index a03dbe8c..c281d5fe 100644 --- a/packages/client-p2p/src/handler/blockResponse.ts +++ b/packages/client-p2p/src/handler/blockResponse.ts @@ -11,6 +11,7 @@ function handleBlockResponse (self: P2pInterface, peer: PeerInterface, message: self.l.debug(() => [peer.shortId, 'BlockResponse', JSON.stringify(message)]); self.sync.queueBlocks(peer, message); + self.sync.requestBlocks(peer); } (handleBlockResponse as Handler).type = BlockResponse.type; From cf98fc88dd00dac077ca2b9d8c6523866a982581 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Mon, 30 Jul 2018 15:31:49 +0200 Subject: [PATCH 11/34] On-disk WIP --- package.json | 2 +- packages/client-chains/package.json | 14 +- packages/client-chains/src/index.ts | 36 +- packages/client-db-chain/package.json | 10 +- packages/client-db-chain/src/types.d.ts | 4 +- packages/client-db/package.json | 5 +- packages/client-db/src/Hash.ts | 25 - packages/client-db/src/Hash/Base.ts | 33 ++ packages/client-db/src/Hash/Disk.ts | 13 + packages/client-db/src/Hash/Memory.ts | 13 + packages/client-db/src/Sync/index.ts | 21 +- packages/client-db/src/Sync/types.d.ts | 11 +- packages/client-db/src/Sync/worker/index.js | 26 +- packages/client-db/src/Trie/Disk.ts | 25 + packages/client-db/src/{ => Trie}/Memory.ts | 4 +- packages/client-db/src/{ => Trie}/Overlay.ts | 16 +- packages/client-db/src/defaults.ts | 4 +- packages/client-db/src/types.d.ts | 10 +- packages/client-db/src/util/dir.spec.js | 21 - packages/client-db/src/util/dir.ts | 16 - packages/client-p2p-messages/package.json | 6 +- .../client-p2p-messages/src/BlockResponse.ts | 1 - packages/client-p2p/package.json | 4 +- packages/client-p2p/src/index.ts | 2 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc-handlers/src/system.ts | 2 +- packages/client-rpc/package.json | 4 +- packages/client-runtime/package.json | 4 +- packages/client-runtime/src/storage/trie.ts | 2 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- packages/client/src/index.ts | 4 +- yarn.lock | 460 +++++++++++------- 34 files changed, 510 insertions(+), 306 deletions(-) delete mode 100644 packages/client-db/src/Hash.ts create mode 100644 packages/client-db/src/Hash/Base.ts create mode 100644 packages/client-db/src/Hash/Disk.ts create mode 100644 packages/client-db/src/Hash/Memory.ts create mode 100644 packages/client-db/src/Trie/Disk.ts rename packages/client-db/src/{ => Trie}/Memory.ts (82%) rename packages/client-db/src/{ => Trie}/Overlay.ts (78%) delete mode 100644 packages/client-db/src/util/dir.spec.js delete mode 100644 packages/client-db/src/util/dir.ts diff --git a/package.json b/package.json index c01edb29..66b2f547 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "clean": "polkadot-dev-clean-build", "postinstall": "polkadot-dev-yarn-only", "test": "NODE_OPTIONS=--experimental-worker jest --coverage", - "start": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js --db-path ./tmp/start-1", + "start": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js", "start2": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js --db-path ./tmp/start-2 --p2p-nodes /ip4/127.0.0.1/tcp/39933/ipfs/QmfUiXCYtrKotHgDbP4Kc74NUi2LxckEiAdkK1SMSosLaz --p2p-port 39934 --rpc-port 9934", "start-rust": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js --db-path ./tmp/start-rust --p2p-nodes /ip4/127.0.0.1/tcp/30333/ipfs/QmXBQmmjNsBLobf5Xx8Kqz7rvUrGgiBLTYm2EmQvcZyrKR --p2p-port 39935 --rpc-port 9935" }, diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 2cf99a2d..0e7ae9d5 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.30", - "@polkadot/util": "^0.26.30", - "@polkadot/util-crypto": "^0.26.30", - "@polkadot/util-keyring": "^0.26.30" + "@polkadot/storage": "^0.26.33", + "@polkadot/util": "^0.26.33", + "@polkadot/util-crypto": "^0.26.33", + "@polkadot/util-keyring": "^0.26.33" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.30", - "@polkadot/primitives": "^0.26.30", - "@polkadot/storage": "^0.26.30" + "@polkadot/extrinsics": "^0.26.33", + "@polkadot/primitives": "^0.26.33", + "@polkadot/storage": "^0.26.33" } } diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index e7a609ab..411256f7 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -3,11 +3,15 @@ // of the ISC license. See the LICENSE file for details. import { Config } from '@polkadot/client/types'; -import { BaseDb, TrieDb } from '@polkadot/client-db/types'; import { BlockDb, StateDb } from '@polkadot/client-db-chain/types'; import { ExecutorInterface } from '@polkadot/client-wasm/types'; import { ChainInterface, ChainGenesis, ChainJson } from './types'; +import path from 'path'; +import HashDiskDb from '@polkadot/client-db/Hash/Disk'; +import HashMemoryDb from '@polkadot/client-db/Hash/Memory'; +import TrieDiskDb from '@polkadot/client-db/Trie/Disk'; +import TrieMemoryDb from '@polkadot/client-db/Trie/Memory'; import createBlockDb from '@polkadot/client-db-chain/block'; import createStateDb from '@polkadot/client-db-chain/state'; import createRuntime from '@polkadot/client-runtime/index'; @@ -19,6 +23,7 @@ import storage from '@polkadot/storage'; import key from '@polkadot/storage/key'; import assert from '@polkadot/util/assert'; import hexToU8a from '@polkadot/util/hex/toU8a'; +import u8aToHex from '@polkadot/util/u8a/toHex'; import blake2Asu8a from '@polkadot/util-crypto/blake2/asU8a'; import trieRoot from '@polkadot/trie-hash/root'; @@ -31,14 +36,23 @@ export default class Chain implements ChainInterface { readonly genesis: ChainGenesis; readonly state: StateDb; - constructor (config: Config, stateDb: TrieDb, blockDb: BaseDb) { + constructor (config: Config) { + this.chain = this.load(config.chain); + + const isDisk = config.db && config.db.type === 'disk'; + const genesisRoot = this.calcGenesisRoot(); + const dbPath = isDisk ? path.join(config.db.path, 'chains', `${this.chain.id}-${u8aToHex(genesisRoot)}`) : '.'; + + const stateDb = isDisk ? new TrieDiskDb(path.join(dbPath, 'state')) : new TrieMemoryDb(); + const blockDb = isDisk ? new HashDiskDb(path.join(dbPath, 'block')) : new HashMemoryDb(); const runtime = createRuntime(stateDb); - this.chain = this.load(config.chain); this.blocks = createBlockDb(blockDb); this.state = createStateDb(stateDb); this.genesis = this.initGenesis(); this.executor = new Executor(config, this.blocks, this.state, runtime); + + console.log('checking', u8aToHex(genesisRoot), u8aToHex(this.genesis.header.stateRoot)); } // TODO We should load chains from json files as well @@ -50,11 +64,25 @@ export default class Chain implements ChainInterface { return chain; } + private calcGenesisRoot (): Uint8Array { + const { genesis: { raw } } = this.chain; + + return trieRoot( + Object.keys(raw).map((key) => ({ + k: hexToU8a(key), + v: hexToU8a(raw[key]) + })) + ); + } + private initGenesis () { + console.error('updating statedb'); this.initGenesisState(); const genesis = this.initGenesisBlock(); + console.error('updating blockdb'); + this.blocks.bestHash.set(genesis.headerHash); this.blocks.bestNumber.set(0); this.blocks.block.set(genesis.block, genesis.headerHash); @@ -73,7 +101,7 @@ export default class Chain implements ChainInterface { const block = createBlock({ header: { - stateRoot: this.state.db.trieRoot(), + stateRoot: this.state.db.getRoot(), extrinsicsRoot: trieRoot([]) } }); diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 8dd9ff0d..4a7d9a60 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.30", - "@polkadot/trie-hash": "^0.26.30", - "@polkadot/util": "^0.26.30", - "@polkadot/util-crypto": "^0.26.30" + "@polkadot/storage": "^0.26.33", + "@polkadot/trie-hash": "^0.26.33", + "@polkadot/util": "^0.26.33", + "@polkadot/util-crypto": "^0.26.33" }, "devDependencies": { - "@polkadot/storage": "^0.26.30" + "@polkadot/storage": "^0.26.33" } } diff --git a/packages/client-db-chain/src/types.d.ts b/packages/client-db-chain/src/types.d.ts index 6c10aba6..442dff9f 100644 --- a/packages/client-db-chain/src/types.d.ts +++ b/packages/client-db-chain/src/types.d.ts @@ -3,7 +3,7 @@ // of the ISC license. See the LICENSE file for details. import BN from 'bn.js'; -import { BaseDb, TrieDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb, BaseDb, TrieDb } from '@polkadot/client-db/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; export type StorageMethod = { @@ -28,7 +28,7 @@ export type StorageMethod$ArrayU8a = StorageMethod, Array { + await this.db.del(key); + } + + async get (key: Uint8Array): Promise { + const value = await this.db.get(key); + + return value; + } + + async put (key: Uint8Array, value: Uint8Array): Promise { + await this.db.put(key); + } +} diff --git a/packages/client-db/src/Hash/Disk.ts b/packages/client-db/src/Hash/Disk.ts new file mode 100644 index 00000000..dfda9351 --- /dev/null +++ b/packages/client-db/src/Hash/Disk.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2018 @polkadot/client-db authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import leveldown from 'leveldown'; + +import HashBaseDb from './Base'; + +export default class HashDiskDb extends HashBaseDb { + constructor (path: string) { + super(leveldown(path)); + } +} diff --git a/packages/client-db/src/Hash/Memory.ts b/packages/client-db/src/Hash/Memory.ts new file mode 100644 index 00000000..c3eac029 --- /dev/null +++ b/packages/client-db/src/Hash/Memory.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2018 @polkadot/client-db authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import memdown from 'memdown'; + +import HashBaseDb from './Base'; + +export default class HashMemoryDb extends HashBaseDb { + constructor () { + super(memdown()); + } +} diff --git a/packages/client-db/src/Sync/index.ts b/packages/client-db/src/Sync/index.ts index 24ae36b4..a930ea94 100644 --- a/packages/client-db/src/Sync/index.ts +++ b/packages/client-db/src/Sync/index.ts @@ -2,10 +2,10 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { TrieDb } from '../types'; +import { TrieDb, DbConfig$Type } from '../types'; import { Message, MessageData, MessageType, MessageTypeRead, MessageTypeWrite } from './types'; -import path from 'path'; +import nodePath from 'path'; import { Worker } from 'worker_threads'; import promisify from '@polkadot/util/promisify'; @@ -16,11 +16,16 @@ const emptyBuffer = new Uint8Array(); export default class SyncDb implements TrieDb { private worker: WorkerThreads.Worker; - constructor () { + constructor (type: DbConfig$Type = 'memory', path: string = '.') { // NOTE Node 10.6 relative paths for Workers are broken - adding here tries to load // the worker from /client, not client-db. // FIXME We should be passing the trie params info into construction - this.worker = new Worker(path.join(__dirname, './worker/index.js')); + this.worker = new Worker(nodePath.join(__dirname, './worker/index.js'), { + workerData: { + path, + type + } + }); } checkpoint (): void { @@ -47,8 +52,12 @@ export default class SyncDb implements TrieDb { this._executeWrite('put', key, value); } - trieRoot (): Uint8Array { - return this._executeRead('root') as Uint8Array; + getRoot (): Uint8Array { + return this._executeRead('getRoot') as Uint8Array; + } + + setRoot (value: Uint8Array): void { + this._executeWrite('setRoot', undefined, value); } async terminate () { diff --git a/packages/client-db/src/Sync/types.d.ts b/packages/client-db/src/Sync/types.d.ts index 0abb1abb..c015cfd9 100644 --- a/packages/client-db/src/Sync/types.d.ts +++ b/packages/client-db/src/Sync/types.d.ts @@ -2,9 +2,11 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -export type MessageTypeRead = 'get' | 'root'; +import { DbConfig$Type } from '../types'; -export type MessageTypeWrite = 'checkpoint' | 'commit' | 'del' | 'put' | 'revert'; +export type MessageTypeRead = 'get' | 'getRoot'; + +export type MessageTypeWrite = 'checkpoint' | 'commit' | 'del' | 'put' | 'revert' | 'setRoot'; export type MessageType = MessageTypeRead | MessageTypeWrite; @@ -18,3 +20,8 @@ export type Message = MessageData & { state: Int32Array, type: MessageType } + +export type WorkerData = { + path: string, + type: DbConfig$Type +}; diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 8610d1d3..4aa93648 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -5,15 +5,21 @@ // import { Message } from '../types'; // import { FnMap } from './types; +const leveldown = require('leveldown'); +const memdown = require('memdown'); // import { parentPort } from 'worker_threads'; -const { parentPort } = require('worker_threads'); +const worker = require('worker_threads'); // import Trie from '@polkadot/trie-db'; const Trie = require('@polkadot/trie-db').default; const { notifyOnDone, notifyOnValue } = require('./notify'); // @ts-ignore Oops, we need the params here -const trie = new Trie(); +const trie = new Trie( + worker.workerData.type === 'disk' + ? leveldown(worker.workerData.path) + : memdown() +); // const functions: FnMap = { const functions = { @@ -47,15 +53,21 @@ const functions = { notifyOnDone(state, () => trie.revert() ), - // root ({ buffer, state }: Message) => - root: ({ buffer, state }) => + // getRoot ({ buffer, state }: Message) => + getRoot: ({ buffer, state }) => notifyOnValue(state, buffer, async () => trie.root - ) + ), + // setRoot: ({ state, value }: Message) => + setRoot: ({ state, value }) => + notifyOnDone(state, async () => { + trie.root = value; + }) + }; -// parentPort.on('message', (message: Message): void => { -parentPort.on('message', (message) => { +// worker.parentPort.on('message', (message: Message): void => { + worker.parentPort.on('message', (message) => { const fn = functions[message.type]; if (fn) { diff --git a/packages/client-db/src/Trie/Disk.ts b/packages/client-db/src/Trie/Disk.ts new file mode 100644 index 00000000..3b311f6e --- /dev/null +++ b/packages/client-db/src/Trie/Disk.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2018 @polkadot/client-db authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +import fs from 'fs'; +import mkdirp from 'mkdirp'; + +import SyncDb from '../Sync'; +import OverlayDb from './Overlay'; + +export default class DiskDb extends OverlayDb { + readonly hasAtStart: boolean; + + constructor (path: string) { + const hasAtStart = fs.existsSync(path); + + if (!hasAtStart) { + mkdirp.sync(path); + } + + super(new SyncDb('disk', path)); + + this.hasAtStart = hasAtStart; + } +} diff --git a/packages/client-db/src/Memory.ts b/packages/client-db/src/Trie/Memory.ts similarity index 82% rename from packages/client-db/src/Memory.ts rename to packages/client-db/src/Trie/Memory.ts index 563682c2..3394a70e 100644 --- a/packages/client-db/src/Memory.ts +++ b/packages/client-db/src/Trie/Memory.ts @@ -2,11 +2,11 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. +import SyncDb from '../Sync'; import OverlayDb from './Overlay'; -import SyncDb from './Sync'; export default class MemoryDb extends OverlayDb { constructor () { - super(new SyncDb()); + super(new SyncDb('memory')); } } diff --git a/packages/client-db/src/Overlay.ts b/packages/client-db/src/Trie/Overlay.ts similarity index 78% rename from packages/client-db/src/Overlay.ts rename to packages/client-db/src/Trie/Overlay.ts index 0ff6a458..9c028b53 100644 --- a/packages/client-db/src/Overlay.ts +++ b/packages/client-db/src/Trie/Overlay.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { TrieDb } from './types'; +import { TrieDb } from '../types'; import isUndefined from '@polkadot/util/is/undefined'; import logger from '@polkadot/util/logger'; @@ -24,7 +24,7 @@ export default class OverlayDb implements TrieDb { } checkpoint () { - l.debug(() => ['checkpoint at', u8aToHex(this.trieRoot())]); + l.debug(() => ['checkpoint at', u8aToHex(this.getRoot())]); this.wrapped.checkpoint(); } @@ -32,14 +32,14 @@ export default class OverlayDb implements TrieDb { commit () { this.wrapped.commit(); - l.debug(() => ['committed at', u8aToHex(this.trieRoot())]); + l.debug(() => ['committed at', u8aToHex(this.getRoot())]); } revert () { this.cache = {}; this.wrapped.revert(); - l.debug(() => ['reverted to', u8aToHex(this.trieRoot())]); + l.debug(() => ['reverted to', u8aToHex(this.getRoot())]); } del (key: Uint8Array): void { @@ -68,8 +68,12 @@ export default class OverlayDb implements TrieDb { return this.wrapped.put(key, value); } - trieRoot (): Uint8Array { - return this.wrapped.trieRoot(); + getRoot (): Uint8Array { + return this.wrapped.getRoot(); + } + + setRoot (value: Uint8Array): void { + return this.wrapped.setRoot(value); } terminate () { diff --git a/packages/client-db/src/defaults.ts b/packages/client-db/src/defaults.ts index f3402215..a8d8f965 100644 --- a/packages/client-db/src/defaults.ts +++ b/packages/client-db/src/defaults.ts @@ -7,12 +7,10 @@ import { DbPathPrefix, DbConfig$Type } from './types'; import os from 'os'; import path from 'path'; -const PREFIX_DB: DbPathPrefix = 'database'; -const PATH = path.join(os.homedir(), '.@polkadot'); +const PATH = path.join(os.homedir(), '.polkadot-js'); const TYPE: DbConfig$Type = 'memory'; export default { - PREFIX_DB, PATH, TYPE }; diff --git a/packages/client-db/src/types.d.ts b/packages/client-db/src/types.d.ts index b62dc093..e5cb85f7 100644 --- a/packages/client-db/src/types.d.ts +++ b/packages/client-db/src/types.d.ts @@ -7,6 +7,7 @@ export type DbPathPrefix = 'database'; export type DbConfig$Type = 'disk' | 'memory'; export type DbConfig = { + isTrieDb: boolean, path: string, type: DbConfig$Type }; @@ -17,10 +18,17 @@ export interface BaseDb { put: (key: Uint8Array, value: Uint8Array) => void } +export interface AsyncBaseDb { + del: (key: Uint8Array) => Promise, + get: (key: Uint8Array) => Promise, + put: (key: Uint8Array, value: Uint8Array) => Promise +} + export interface TrieDb extends BaseDb { checkpoint: () => void, commit: () => void, revert: () => void, - trieRoot: () => Uint8Array, + getRoot: () => Uint8Array, + setRoot: (value: Uint8Array) => void, terminate: () => Promise } diff --git a/packages/client-db/src/util/dir.spec.js b/packages/client-db/src/util/dir.spec.js deleted file mode 100644 index bc263aec..00000000 --- a/packages/client-db/src/util/dir.spec.js +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017-2018 @polkadot/client-db authors & contributors -// This software may be modified and distributed under the terms -// of the ISC license. See the LICENSE file for details. - -import fs from 'fs'; -import rimraf from 'rimraf'; - -import createDir from './dir'; - -describe('createDir', () => { - it('creates the path', () => { - rimraf.sync('./tmp/test/whatever'); - createDir('./tmp', 'test', 'whatever'); - - const stats = fs.lstatSync('./tmp/test/whatever'); - - expect( - stats.isDirectory() - ).toEqual(true); - }); -}); diff --git a/packages/client-db/src/util/dir.ts b/packages/client-db/src/util/dir.ts deleted file mode 100644 index 18aeaf51..00000000 --- a/packages/client-db/src/util/dir.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2017-2018 @polkadot/client-db authors & contributors -// This software may be modified and distributed under the terms -// of the ISC license. See the LICENSE file for details. - -import { DbPathPrefix } from '../types'; - -import mkdirp from 'mkdirp'; -import path from 'path'; - -export default function createDir (rootDir: string, prefix: DbPathPrefix, subDir: string): string { - const location = path.join(rootDir, prefix, subDir); - - mkdirp.sync(location); - - return location; -} diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index 5ae9ef5e..2ff927d3 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.30", - "@polkadot/primitives": "^0.26.30", - "@polkadot/util": "^0.26.30" + "@polkadot/jsonrpc": "^0.26.33", + "@polkadot/primitives": "^0.26.33", + "@polkadot/util": "^0.26.33" } } diff --git a/packages/client-p2p-messages/src/BlockResponse.ts b/packages/client-p2p-messages/src/BlockResponse.ts index 30726def..884f98d0 100644 --- a/packages/client-p2p-messages/src/BlockResponse.ts +++ b/packages/client-p2p-messages/src/BlockResponse.ts @@ -11,7 +11,6 @@ import u8aToBn from '@polkadot/util/u8a/toBn'; import bnToU8a from '@polkadot/util/bn/toU8a'; import BaseMessage from './BaseMessage'; -import u8aToHex from '../../../node_modules/@polkadot/util/u8a/toHex'; const COUNT_OFF = 8; const BLOCK_OFF = COUNT_OFF + 4; diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index b2341444..cf584abb 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.30", - "@polkadot/util": "^0.26.30", + "@polkadot/primitives": "^0.26.33", + "@polkadot/util": "^0.26.33", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 49eed7f4..20ba6440 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -212,7 +212,7 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.node, this.node.dialProtocol, peer.peerInfo, defaults.PROTOCOL ); - this._pingPeer(peer); + await this._pingPeer(peer); peer.addConnection(connection, true); diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 510cb047..2a825d0c 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.30", - "@polkadot/primitives": "^0.26.30", - "@polkadot/util": "^0.26.30" + "@polkadot/jsonrpc": "^0.26.33", + "@polkadot/primitives": "^0.26.33", + "@polkadot/util": "^0.26.33" } } diff --git a/packages/client-rpc-handlers/src/system.ts b/packages/client-rpc-handlers/src/system.ts index fc7c6bed..b9fb8532 100644 --- a/packages/client-rpc-handlers/src/system.ts +++ b/packages/client-rpc-handlers/src/system.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { ChainInterface, ChainJson } from '@polkadot/client-chains/types'; +import { ChainInterface } from '@polkadot/client-chains/types'; import { Config } from '@polkadot/client/types'; import { Endpoint } from './types'; diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 38440a42..a927f1ba 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,13 +34,13 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.14.23", + "@polkadot/api-provider": "^0.14.25", "@polkadot/client": "^0.13.8" }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.30", + "@polkadot/util": "^0.26.33", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 3d3c8fee..0101d11a 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.30", - "@polkadot/util-crypto": "^0.26.30" + "@polkadot/util": "^0.26.33", + "@polkadot/util-crypto": "^0.26.33" } } diff --git a/packages/client-runtime/src/storage/trie.ts b/packages/client-runtime/src/storage/trie.ts index 8db86fac..a8f4fe15 100644 --- a/packages/client-runtime/src/storage/trie.ts +++ b/packages/client-runtime/src/storage/trie.ts @@ -29,7 +29,7 @@ export default function storage ({ l, heap, db }: RuntimeEnv): RuntimeInterface$ }), storage_root: (resultPtr: Pointer): void => instrument('storage_root', (): void => { - const root = db.trieRoot(); + const root = db.getRoot(); l.debug(() => ['storage_root', [resultPtr], '->', u8aToHex(root)]); diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 8d1c0451..2580247f 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.30", + "@polkadot/util": "^0.26.33", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index 641a5252..fc770b6f 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.30", - "@polkadot/util": "^0.26.30", + "@polkadot/primitives": "^0.26.33", + "@polkadot/util": "^0.26.33", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client/package.json b/packages/client/package.json index 1d1aa3b2..b67c5ffc 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.30", - "@polkadot/primitives": "^0.26.30", - "@polkadot/util": "^0.26.30", + "@polkadot/jsonrpc": "^0.26.33", + "@polkadot/primitives": "^0.26.33", + "@polkadot/util": "^0.26.33", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index d28e2668..125939bb 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -14,8 +14,6 @@ import './license'; import Chain from '@polkadot/client-chains/index'; import Telemetry from '@polkadot/client-telemetry/index'; import logger from '@polkadot/util/logger'; -import HashDb from '@polkadot/client-db/Hash'; -import MemoryDb from '@polkadot/client-db/Memory'; import Rpc from '@polkadot/client-rpc/index'; import P2p from '@polkadot/client-p2p/index'; import isUndefined from '@polkadot/util/is/undefined'; @@ -43,7 +41,7 @@ class Client { this.l.log(`Running version ${clientId.version} (${verStatus})`); this.l.log(`Initialising for roles=${config.roles.join(',')} on chain=${config.chain}`); - this.chain = new Chain(config, new MemoryDb(), new HashDb()); + this.chain = new Chain(config); this.p2p = new P2p(config, this.chain); this.rpc = new Rpc(config, this.chain); this.telemetry = new Telemetry(config, this.chain); diff --git a/yarn.lock b/yarn.lock index 2294175b..f0224cd3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -691,15 +691,15 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" -"@polkadot/api-provider@^0.14.23": - version "0.14.23" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.23.tgz#8249e707d709ec9cfb69cb433bd9c0cd055d9575" +"@polkadot/api-provider@^0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.25.tgz#6dc787cd0c067c3d509526716c84c285ee9b9a6a" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/storage" "^0.26.25" - "@polkadot/util" "^0.26.25" - "@polkadot/util-crypto" "^0.26.25" - "@polkadot/util-keyring" "^0.26.25" + "@polkadot/storage" "^0.26.33" + "@polkadot/util" "^0.26.33" + "@polkadot/util-crypto" "^0.26.33" + "@polkadot/util-keyring" "^0.26.33" "@types/nock" "^9.1.3" eventemitter3 "^2.0.3" isomorphic-fetch "^2.2.1" @@ -751,96 +751,59 @@ typedoc "^0.11.1" typescript "^2.9.2" -"@polkadot/extrinsics@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.25.tgz#14557293c84c67765fab930b2b19e151721cfa64" +"@polkadot/extrinsics@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.33.tgz#afb5a3ed880d90d07a41d7ab1b770c4eee3771e4" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.25" - "@polkadot/primitives" "^0.26.25" - "@polkadot/util" "^0.26.25" + "@polkadot/params" "^0.26.33" + "@polkadot/primitives" "^0.26.33" + "@polkadot/util" "^0.26.33" -"@polkadot/extrinsics@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.30.tgz#a13bbdbee23520e5acd3104cf2a098c7eeb47ab0" +"@polkadot/jsonrpc@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.33.tgz#ad1c7802328ccf45ddda3df7c8262bb71d70ac6b" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.30" - "@polkadot/primitives" "^0.26.30" - "@polkadot/util" "^0.26.30" - -"@polkadot/jsonrpc@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.30.tgz#38c069158f6462387f83a6cad760d73b51760498" - dependencies: - "@polkadot/params" "^0.26.30" + "@polkadot/params" "^0.26.33" babel-runtime "^6.26.0" -"@polkadot/params@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.25.tgz#be64273ad5a3e8079edca46731aa1f129d3d0b76" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.25" - "@polkadot/primitives" "^0.26.25" - "@polkadot/util" "^0.26.25" - -"@polkadot/params@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.30.tgz#3cacbcf71ac105f65281474ac851d63939a901f8" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.30" - "@polkadot/primitives" "^0.26.30" - "@polkadot/util" "^0.26.30" - -"@polkadot/primitives@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.25.tgz#b6b7d5adbae13667aeb0ec4d0c83a6776c73aff9" +"@polkadot/params@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.33.tgz#f04e030e6431dd18344c564c62fa7eb3120d2855" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.25" - "@polkadot/util" "^0.26.25" + "@polkadot/extrinsics" "^0.26.33" + "@polkadot/primitives" "^0.26.33" + "@polkadot/util" "^0.26.33" -"@polkadot/primitives@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.30.tgz#e366d97d180007d6eef603e26ba82da62e028b48" +"@polkadot/primitives@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.33.tgz#32caec98d3a711f24014bd9ff3e38e1117de2c32" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.30" - "@polkadot/util" "^0.26.30" + "@polkadot/trie-hash" "^0.26.33" + "@polkadot/util" "^0.26.33" -"@polkadot/storage@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.25.tgz#4fc9302176af95a2c57ebd669997c64f6fa6ab69" +"@polkadot/storage@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.33.tgz#adc05617d2c53a402ff8f5241de1b0c81cf1b5f7" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.25" - "@polkadot/primitives" "^0.26.25" - "@polkadot/util" "^0.26.25" - "@polkadot/util-crypto" "^0.26.25" - "@polkadot/util-keyring" "^0.26.25" + "@polkadot/params" "^0.26.33" + "@polkadot/primitives" "^0.26.33" + "@polkadot/util" "^0.26.33" + "@polkadot/util-crypto" "^0.26.33" + "@polkadot/util-keyring" "^0.26.33" -"@polkadot/storage@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.30.tgz#42505444e08841aeceb5756f383cb6f410fe13ec" +"@polkadot/trie-db@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.33.tgz#853e07cc904ec1686a6001cc79f6fb223792c53b" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.30" - "@polkadot/primitives" "^0.26.30" - "@polkadot/util" "^0.26.30" - "@polkadot/util-crypto" "^0.26.30" - "@polkadot/util-keyring" "^0.26.30" - -"@polkadot/trie-db@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.30.tgz#5acd1ec0bf797647864da8164114cf8619b0f4f0" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.30" - "@polkadot/util" "^0.26.30" - "@polkadot/util-crypto" "^0.26.30" - "@polkadot/util-rlp" "^0.26.30" + "@polkadot/trie-hash" "^0.26.33" + "@polkadot/util" "^0.26.33" + "@polkadot/util-crypto" "^0.26.33" + "@polkadot/util-rlp" "^0.26.33" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -851,101 +814,50 @@ readable-stream "^2.2.8" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.25.tgz#f3c13f37f285a53997426cb6612a1bfae7398d83" +"@polkadot/trie-hash@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.33.tgz#5bc89557ea26d775583cb30b8be6e827dd65ea5e" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.25" - "@polkadot/util-crypto" "^0.26.25" - "@polkadot/util-rlp" "^0.26.25" - -"@polkadot/trie-hash@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.30.tgz#4f6814e31343526ede1c73c9ab92a5388fce4bc5" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.30" - "@polkadot/util-crypto" "^0.26.30" - "@polkadot/util-rlp" "^0.26.30" + "@polkadot/util" "^0.26.33" + "@polkadot/util-crypto" "^0.26.33" + "@polkadot/util-rlp" "^0.26.33" "@polkadot/ts@^0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.9.tgz#86010c5a4d63c0fb6b3e85d29db40dcf43c5d7c1" -"@polkadot/util-crypto@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.25.tgz#c5ca7924122fe41b5e8249cdb0d063f41da018d9" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.25" - blakejs "^1.1.0" - js-sha3 "^0.7.0" - tweetnacl "^1.0.0" - xxhashjs "^0.2.2" - -"@polkadot/util-crypto@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.30.tgz#13371ef5aa07c205fc321b464e15b18aff0e0f24" +"@polkadot/util-crypto@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.33.tgz#f447880d3793922d9ec8bf4a5d1b2a832a088093" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.30" + "@polkadot/util" "^0.26.33" blakejs "^1.1.0" js-sha3 "^0.7.0" tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-keyring@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.25.tgz#945d9f789a21644a374ab58c940adfa2e3ecec3a" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.25" - "@polkadot/util-crypto" "^0.26.25" - "@types/bs58" "^3.0.30" - bs58 "^4.0.1" - -"@polkadot/util-keyring@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.30.tgz#75c7f63835734142971cd705539327e6c31854f0" +"@polkadot/util-keyring@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.33.tgz#e6407e75a821a0e5616ad9c7895c471f83e75e3f" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.30" - "@polkadot/util-crypto" "^0.26.30" + "@polkadot/util" "^0.26.33" + "@polkadot/util-crypto" "^0.26.33" "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.25.tgz#d853cb4bab1888fd44e639347e3a03910079d470" +"@polkadot/util-rlp@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.33.tgz#9af719a3bbcc2d64b166850b8b2d0a361fcaba55" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.25" + "@polkadot/util" "^0.26.33" -"@polkadot/util-rlp@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.30.tgz#2abe08d5ca770f625b65a6ddff327d7c2019160c" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.30" - -"@polkadot/util@^0.26.25": - version "0.26.25" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.25.tgz#57f5735bc75ffb586ec60a5f4ea954cb9542bb80" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@types/bn.js" "^4.11.1" - "@types/deasync" "^0.1.0" - "@types/ip-regex" "^2.0.0" - "@types/xxhashjs" "^0.1.1" - bn.js "^4.11.8" - chalk "^2.4.1" - deasync "^0.1.13" - ip-regex "^2.1.0" - -"@polkadot/util@^0.26.30": - version "0.26.30" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.30.tgz#1c3648ebc7dcbbd44e87f1fd720396c837200c13" +"@polkadot/util@^0.26.33": + version "0.26.33" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.33.tgz#41497f90e1c8b6335b88bb06a58dc8dee82b2cef" dependencies: "@babel/runtime" "^7.0.0-beta.51" "@types/bn.js" "^4.11.1" @@ -1499,7 +1411,31 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.0.0, babel-core@^7.0.0-bridge.0: +babel-core@^6.0.0, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" @@ -1527,6 +1463,26 @@ babel-generator@^6.18.0: source-map "^0.5.6" trim-right "^1.0.1" +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-jest@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" @@ -1574,6 +1530,18 @@ babel-preset-jest@^23.0.1: babel-plugin-jest-hoist "^23.0.1" babel-plugin-syntax-object-rest-spread "^6.13.0" +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1581,7 +1549,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0: +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -1668,7 +1636,7 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" -bindings@^1.2.1: +bindings@^1.2.1, bindings@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" @@ -1682,6 +1650,13 @@ bip66@^1.1.3: dependencies: safe-buffer "^5.0.1" +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + blakejs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" @@ -1807,10 +1782,21 @@ bser@^2.0.0: dependencies: node-int64 "^0.4.0" -buffer-alloc-unsafe@^1.0.0: +buffer-alloc-unsafe@^1.0.0, buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + buffer-from@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" @@ -2347,7 +2333,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.1.0, convert-source-map@^1.4.0: +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2377,7 +2363,7 @@ core-js@^2.4.0: version "2.5.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.2.tgz#bc4648656e7dc9dc80d7d3c7bbc172d96e744e63" -core-js@^2.5.7: +core-js@^2.5.0, core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -2490,7 +2476,7 @@ debug@*, debug@^3.1.0: dependencies: ms "2.0.0" -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -2511,6 +2497,12 @@ decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + dependencies: + mimic-response "^1.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -2610,7 +2602,7 @@ detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" -detect-libc@^1.0.2: +detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -3028,6 +3020,10 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +expand-template@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd" + expect@^23.1.0: version "23.1.0" resolved "https://registry.yarnpkg.com/expect/-/expect-23.1.0.tgz#bfdfd57a2a20170d875999ee9787cc71f01c205f" @@ -3095,6 +3091,10 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-future@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -3247,6 +3247,10 @@ fresh@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + fs-extra@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -3415,6 +3419,10 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -3673,6 +3681,13 @@ hoek@5.x.x: version "5.0.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" @@ -4887,6 +4902,16 @@ level-ws@0.1.0: readable-stream "^2.2.8" xtend "^4.0.0" +leveldown@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-4.0.1.tgz#7bc3df93c9fa574feb39ce45a0c4073aa948cfef" + dependencies: + abstract-leveldown "~5.0.0" + bindings "~1.3.0" + fast-future "~1.0.2" + nan "~2.10.0" + prebuild-install "^4.0.0" + levelup@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.0.1.tgz#07794639fd0af185089130aaea09d03023637b8d" @@ -5552,6 +5577,10 @@ mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" @@ -5744,7 +5773,7 @@ nan@^2.0.7, nan@^2.2.1, nan@^2.3.0, nan@^2.3.3: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" -nan@^2.9.2: +nan@^2.9.2, nan@~2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" @@ -5785,6 +5814,12 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +node-abi@^2.2.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b" + dependencies: + semver "^5.4.1" + node-fetch@^1.0.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" @@ -5858,6 +5893,10 @@ noms@0.0.0: inherits "^2.0.1" readable-stream "~1.0.31" +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -5897,7 +5936,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2, npmlog@^4.1.2: +npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -6018,7 +6057,7 @@ options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" -os-homedir@^1.0.0: +os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -6030,7 +6069,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -6126,7 +6165,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6271,6 +6310,26 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" +prebuild-install@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-4.0.0.tgz#206ce8106ce5efa4b6cf062fc8a0a7d93c17f3a8" + dependencies: + detect-libc "^1.0.3" + expand-template "^1.0.2" + github-from-package "0.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + node-abi "^2.2.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + os-homedir "^1.0.1" + pump "^2.0.1" + rc "^1.1.6" + simple-get "^2.7.0" + tar-fs "^1.13.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -6294,7 +6353,7 @@ priorityqueue@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/priorityqueue/-/priorityqueue-0.2.1.tgz#f57e623f20237f30c142d4cb45fafed9e7d51403" -private@^0.1.6: +private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -6407,6 +6466,20 @@ pull-ws@^3.3.1: safe-buffer "^5.1.1" ws "^1.1.0" +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -6540,7 +6613,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.6: +readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -7055,6 +7128,18 @@ signed-varint@^2.0.1: dependencies: varint "~5.0.0" +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -7120,7 +7205,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.2: +source-map-support@^0.4.15, source-map-support@^0.4.2: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: @@ -7143,7 +7228,7 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.6: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7384,6 +7469,15 @@ table@4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" +tar-fs@^1.13.0: + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + tar-pack@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" @@ -7397,6 +7491,18 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" +tar-stream@^1.1.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" + dependencies: + bl "^1.0.0" + buffer-alloc "^1.1.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.0" + xtend "^4.0.0" + tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" @@ -7500,6 +7606,10 @@ tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" +to-buffer@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -7705,7 +7815,11 @@ typedoc@^0.11.1: typedoc-default-themes "^0.5.0" typescript "2.7.2" -typescript@2.7.2, typescript@^2.9.2: +typescript@2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" + +typescript@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" @@ -7949,6 +8063,10 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + which@^1.2.12, which@^1.2.9, which@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" From 16882a106e794f986334c41283dd2eb77ac42b78 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Mon, 30 Jul 2018 17:51:46 +0200 Subject: [PATCH 12/34] async blockDb... on-disk WIP --- packages/client-chains/src/index.ts | 9 +- packages/client-db-chain/src/block/index.ts | 4 +- packages/client-db-chain/src/db/arrayU8a.ts | 12 +- packages/client-db-chain/src/db/base.ts | 24 +-- packages/client-db-chain/src/db/bn.ts | 12 +- packages/client-db-chain/src/db/bool.ts | 15 +- packages/client-db-chain/src/db/u8a.ts | 10 +- packages/client-db-chain/src/state/index.ts | 148 +++++++++--------- packages/client-db-chain/src/types.d.ts | 28 ++-- packages/client-db/src/Sync/index.spec.js | 16 +- packages/client-db/src/Sync/index.ts | 35 +++-- packages/client-db/src/Sync/worker/index.js | 32 ++-- packages/client-db/src/defaults.ts | 2 +- packages/client-p2p/src/index.ts | 3 +- packages/client-p2p/src/peer/index.ts | 6 +- packages/client-p2p/src/sync/index.ts | 80 +++++----- packages/client-p2p/src/types.d.ts | 2 +- packages/client-telemetry/src/index.ts | 18 +-- .../client-wasm/src/generateBlock.spec.js | 24 +-- packages/client-wasm/src/index.ts | 17 +- packages/client-wasm/src/types.d.ts | 4 +- packages/client/src/index.ts | 6 +- 22 files changed, 275 insertions(+), 232 deletions(-) diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index 411256f7..0c312d91 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -79,13 +79,16 @@ export default class Chain implements ChainInterface { console.error('updating statedb'); this.initGenesisState(); + console.error('initi genesis'); const genesis = this.initGenesisBlock(); console.error('updating blockdb'); - this.blocks.bestHash.set(genesis.headerHash); - this.blocks.bestNumber.set(0); - this.blocks.block.set(genesis.block, genesis.headerHash); + Promise.all([ + this.blocks.bestHash.set(genesis.headerHash), + this.blocks.bestNumber.set(0), + this.blocks.block.set(genesis.block, genesis.headerHash) + ]); return genesis; } diff --git a/packages/client-db-chain/src/block/index.ts b/packages/client-db-chain/src/block/index.ts index 16b6e35a..17f4c689 100644 --- a/packages/client-db-chain/src/block/index.ts +++ b/packages/client-db-chain/src/block/index.ts @@ -2,14 +2,14 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { BaseDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb } from '@polkadot/client-db/types'; import { BlockDb } from '../types'; import createBn from '../db/bn'; import createU8a from '../db/u8a'; import keys from './keys'; -export default function blockDb (db: BaseDb): BlockDb { +export default function blockDb (db: AsyncBaseDb): BlockDb { return { db, bestHash: createU8a(db, keys.public.bestHash), diff --git a/packages/client-db-chain/src/db/arrayU8a.ts b/packages/client-db-chain/src/db/arrayU8a.ts index 15965f08..17bd7495 100644 --- a/packages/client-db-chain/src/db/arrayU8a.ts +++ b/packages/client-db-chain/src/db/arrayU8a.ts @@ -4,7 +4,7 @@ import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { BaseDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb } from '@polkadot/client-db/types'; import { StorageMethod$ArrayU8a } from '../types'; import bnToU8a from '@polkadot/util/bn/toU8a'; @@ -13,14 +13,14 @@ import u8aToBn from '@polkadot/util/u8a/toBn'; import creator from '../key'; -export default function decodeArrayU8a (db: BaseDb, key: SectionItem): StorageMethod$ArrayU8a { +export default function decodeArrayU8a (db: AsyncBaseDb, key: SectionItem): StorageMethod$ArrayU8a { const createKey = creator(key); return { - del: (...keyParams: Array): void => + del: (...keyParams: Array): Promise => db.del(createKey(keyParams)), - get: (...keyParams: Array): Array => { - const u8a = db.get(createKey(keyParams)); + get: async (...keyParams: Array): Promise> => { + const u8a = await db.get(createKey(keyParams)); if (u8a === null) { return []; @@ -36,7 +36,7 @@ export default function decodeArrayU8a (db: BaseDb, key: SectionItem): St return result; }, - set: (value: Array, ...keyParams: Array): void => + set: (value: Array, ...keyParams: Array): Promise => db.put(createKey(keyParams), u8aConcat( bnToU8a(value.length, 32, true), u8aConcat.apply(null, value)) diff --git a/packages/client-db-chain/src/db/base.ts b/packages/client-db-chain/src/db/base.ts index 7de19df8..58bab339 100644 --- a/packages/client-db-chain/src/db/base.ts +++ b/packages/client-db-chain/src/db/base.ts @@ -2,27 +2,31 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { BaseDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb } from '@polkadot/client-db/types'; type Base = { - del (key: Uint8Array): void, - get (key: Uint8Array): Uint8Array, - set (key: Uint8Array, value: T, raw: Uint8Array): void, + del (key: Uint8Array): Promise, + get (key: Uint8Array): Promise, + set (key: Uint8Array, value: T, raw: Uint8Array): Promise, onUpdate (subscriber: (value: T, raw: Uint8Array) => void): void }; type Subscribers = Array<(value: T, raw: Uint8Array) => void>; -export default function base (db: BaseDb): Base { +export default function base (db: AsyncBaseDb): Base { const subscribers: Subscribers = []; return { - del: (key: Uint8Array): void => + del: (key: Uint8Array): Promise => db.del(key), - get: (key: Uint8Array): Uint8Array => - db.get(key) || new Uint8Array([]), - set: (key: Uint8Array, value: T, raw: Uint8Array): void => { - db.put(key, raw); + get: async (key: Uint8Array): Promise => { + const value = await db.get(key); + + return value || new Uint8Array([]); + }, + set: async (key: Uint8Array, value: T, raw: Uint8Array): Promise => { + await db.put(key, raw); + subscribers.forEach((subscriber) => subscriber(value, raw) ); diff --git a/packages/client-db-chain/src/db/bn.ts b/packages/client-db-chain/src/db/bn.ts index cf443e68..2b737c0a 100644 --- a/packages/client-db-chain/src/db/bn.ts +++ b/packages/client-db-chain/src/db/bn.ts @@ -5,7 +5,7 @@ import BN from 'bn.js'; import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { BaseDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb } from '@polkadot/client-db/types'; import { StorageMethod$Bn } from '../types'; import bnToU8a from '@polkadot/util/bn/toU8a'; @@ -14,18 +14,18 @@ import u8aToBn from '@polkadot/util/u8a/toBn'; import createBase from './base'; import creator from '../key'; -export default function decodeBn (db: BaseDb, key: SectionItem, bitLength: 32 | 64 | 128): StorageMethod$Bn { +export default function decodeBn (db: AsyncBaseDb, key: SectionItem, bitLength: 32 | 64 | 128): StorageMethod$Bn { const createKey = creator(key); const base = createBase(db); return { - del: (...keyParams: Array): void => + del: (...keyParams: Array): Promise => base.del(createKey(keyParams)), - get: (...keyParams: Array): BN => + get: async (...keyParams: Array): Promise => u8aToBn( - base.get(createKey(keyParams)), true + await base.get(createKey(keyParams)), true ), - set: (value: BN | number, ...keyParams: Array): void => + set: (value: BN | number, ...keyParams: Array): Promise => base.set(createKey(keyParams), value, bnToU8a(value, bitLength, true)), onUpdate: (updater: (value: BN | number, raw: Uint8Array) => void): void => base.onUpdate(updater) diff --git a/packages/client-db-chain/src/db/bool.ts b/packages/client-db-chain/src/db/bool.ts index 945d10f3..85535fc4 100644 --- a/packages/client-db-chain/src/db/bool.ts +++ b/packages/client-db-chain/src/db/bool.ts @@ -4,22 +4,25 @@ import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { BaseDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb } from '@polkadot/client-db/types'; import { StorageMethod$Bool } from '../types'; import createBase from './base'; import creator from '../key'; -export default function decodeBool (db: BaseDb, key: SectionItem): StorageMethod$Bool { +export default function decodeBool (db: AsyncBaseDb, key: SectionItem): StorageMethod$Bool { const createKey = creator(key); const base = createBase(db); return { - del: (...keyParams: Array): void => + del: (...keyParams: Array): Promise => base.del(createKey(keyParams)), - get: (...keyParams: Array): boolean => - base.get(createKey(keyParams))[0] === 1, - set: (value: boolean, ...keyParams: Array): void => + get: async (...keyParams: Array): Promise => { + const value = await base.get(createKey(keyParams)); + + return value[0] === 1; + }, + set: (value: boolean, ...keyParams: Array): Promise => base.set(createKey(keyParams), value, new Uint8Array([value ? 1 : 0])), onUpdate: (updater: (value: boolean, raw: Uint8Array) => void): void => base.onUpdate(updater) diff --git a/packages/client-db-chain/src/db/u8a.ts b/packages/client-db-chain/src/db/u8a.ts index f025c90b..24b8ee66 100644 --- a/packages/client-db-chain/src/db/u8a.ts +++ b/packages/client-db-chain/src/db/u8a.ts @@ -4,22 +4,22 @@ import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { BaseDb } from '@polkadot/client-db/types'; +import { AsyncBaseDb } from '@polkadot/client-db/types'; import { StorageMethod$U8a } from '../types'; import creator from '../key'; import createBase from './base'; -export default function decodeU8a (db: BaseDb, key: SectionItem): StorageMethod$U8a { +export default function decodeU8a (db: AsyncBaseDb, key: SectionItem): StorageMethod$U8a { const createKey = creator(key); const base = createBase(db); return { - del: (...keyParams: Array): void => + del: (...keyParams: Array): Promise => base.del(createKey(keyParams)), - get: (...keyParams: Array): Uint8Array => + get: (...keyParams: Array): Promise => base.get(createKey(keyParams)), - set: (value: Uint8Array, ...keyParams: Array): void => + set: (value: Uint8Array, ...keyParams: Array): Promise => base.set(createKey(keyParams), value, value), onUpdate: (updater: (value: Uint8Array, raw: Uint8Array) => void): void => base.onUpdate(updater) diff --git a/packages/client-db-chain/src/state/index.ts b/packages/client-db-chain/src/state/index.ts index f064019e..093affa2 100644 --- a/packages/client-db-chain/src/state/index.ts +++ b/packages/client-db-chain/src/state/index.ts @@ -2,97 +2,97 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { Section } from '@polkadot/params/types'; -import { Storages } from '@polkadot/storage/types'; +// import { Section } from '@polkadot/params/types'; +// import { Storages } from '@polkadot/storage/types'; import { TrieDb } from '@polkadot/client-db/types'; import { StateDb } from '../types'; -import storage from '@polkadot/storage'; +// import storage from '@polkadot/storage'; -import createAcc from '../db/account'; -import createArrAcc from '../db/arrayAccount'; -import createArrU8a from '../db/arrayU8a'; -import createBn from '../db/bn'; -import createBool from '../db/bool'; -import createU8a from '../db/u8a'; +// import createAcc from '../db/account'; +// import createArrAcc from '../db/arrayAccount'; +// import createArrU8a from '../db/arrayU8a'; +// import createBn from '../db/bn'; +// import createBool from '../db/bool'; +// import createU8a from '../db/u8a'; -const BALANCE_SIZE = 128; -const BLOCKNUM_SIZE = 64; +// const BALANCE_SIZE = 128; +// const BLOCKNUM_SIZE = 64; -const consensus = (db: TrieDb, { public: { authorityAt, authorityCount, code } }: Section) => ({ - authorityAt: createAcc(db, authorityAt), - authorityCount: createBn(db, authorityCount, 32), - code: createU8a(db, code) -}); +// const consensus = (db: TrieDb, { public: { authorityAt, authorityCount, code } }: Section) => ({ +// authorityAt: createAcc(db, authorityAt), +// authorityCount: createBn(db, authorityCount, 32), +// code: createU8a(db, code) +// }); -const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCount, desiredSeats, inactiveGracePeriod, presentationDuration, presentSlashPerVoter, termDuration, votingBond, votingPeriod } }: Section) => ({ - activeCouncil: createArrU8a(db, activeCouncil), - candidacyBond: createBn(db, candidacyBond, BALANCE_SIZE), - carryCount: createBn(db, carryCount, 32), - desiredSeats: createBn(db, desiredSeats, 32), - inactiveGracePeriod: createBn(db, inactiveGracePeriod, 32), - presentationDuration: createBn(db, presentationDuration, BLOCKNUM_SIZE), - presentSlashPerVoter: createBn(db, presentSlashPerVoter, BALANCE_SIZE), - termDuration: createBn(db, termDuration, BLOCKNUM_SIZE), - votingBond: createBn(db, votingBond, BALANCE_SIZE), - votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) -}); +// const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCount, desiredSeats, inactiveGracePeriod, presentationDuration, presentSlashPerVoter, termDuration, votingBond, votingPeriod } }: Section) => ({ +// activeCouncil: createArrU8a(db, activeCouncil), +// candidacyBond: createBn(db, candidacyBond, BALANCE_SIZE), +// carryCount: createBn(db, carryCount, 32), +// desiredSeats: createBn(db, desiredSeats, 32), +// inactiveGracePeriod: createBn(db, inactiveGracePeriod, 32), +// presentationDuration: createBn(db, presentationDuration, BLOCKNUM_SIZE), +// presentSlashPerVoter: createBn(db, presentSlashPerVoter, BALANCE_SIZE), +// termDuration: createBn(db, termDuration, BLOCKNUM_SIZE), +// votingBond: createBn(db, votingBond, BALANCE_SIZE), +// votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) +// }); -const councilVoting = (db: TrieDb, { public: { cooloffPeriod, votingPeriod } }: Section) => ({ - cooloffPeriod: createBn(db, cooloffPeriod, BLOCKNUM_SIZE), - votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) -}); +// const councilVoting = (db: TrieDb, { public: { cooloffPeriod, votingPeriod } }: Section) => ({ +// cooloffPeriod: createBn(db, cooloffPeriod, BLOCKNUM_SIZE), +// votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) +// }); -const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingPeriod } }: Section) => ({ - launchPeriod: createBn(db, launchPeriod, BLOCKNUM_SIZE), - minimumDeposit: createBn(db, minimumDeposit, BALANCE_SIZE), - votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) -}); +// const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingPeriod } }: Section) => ({ +// launchPeriod: createBn(db, launchPeriod, BLOCKNUM_SIZE), +// minimumDeposit: createBn(db, minimumDeposit, BALANCE_SIZE), +// votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) +// }); -const governance = (db: TrieDb, { public: { approvalsRatio } }: Section) => ({ - approvalsRatio: createBn(db, approvalsRatio, BLOCKNUM_SIZE) -}); +// const governance = (db: TrieDb, { public: { approvalsRatio } }: Section) => ({ +// approvalsRatio: createBn(db, approvalsRatio, BLOCKNUM_SIZE) +// }); -const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ - didUpdate: createBool(db, didUpdate) -}); +// const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ +// didUpdate: createBool(db, didUpdate) +// }); -const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ - length: createBn(db, length, BLOCKNUM_SIZE), - validators: createArrAcc(db, validators) -}); +// const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ +// length: createBn(db, length, BLOCKNUM_SIZE), +// validators: createArrAcc(db, validators) +// }); -const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionFee, validatorCount } }: Section) => ({ - bondingDuration: createBn(db, bondingDuration, BLOCKNUM_SIZE), - currentEra: createBn(db, currentEra, BLOCKNUM_SIZE), - freeBalanceOf: createBn(db, freeBalanceOf, BALANCE_SIZE), - intentions: createArrAcc(db, intentions), - sessionsPerEra: createBn(db, sessionsPerEra, BLOCKNUM_SIZE), - transactionFee: createBn(db, transactionFee, BALANCE_SIZE), - validatorCount: createBn(db, validatorCount, 32) -}); +// const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionFee, validatorCount } }: Section) => ({ +// bondingDuration: createBn(db, bondingDuration, BLOCKNUM_SIZE), +// currentEra: createBn(db, currentEra, BLOCKNUM_SIZE), +// freeBalanceOf: createBn(db, freeBalanceOf, BALANCE_SIZE), +// intentions: createArrAcc(db, intentions), +// sessionsPerEra: createBn(db, sessionsPerEra, BLOCKNUM_SIZE), +// transactionFee: createBn(db, transactionFee, BALANCE_SIZE), +// validatorCount: createBn(db, validatorCount, 32) +// }); -const system = (db: TrieDb, { public: { accountIndexOf, blockHashAt } }: Section) => ({ - accountIndexOf: createBn(db, accountIndexOf, 32), - blockHashAt: createU8a(db, blockHashAt) -}); +// const system = (db: TrieDb, { public: { accountIndexOf, blockHashAt } }: Section) => ({ +// accountIndexOf: createBn(db, accountIndexOf, 32), +// blockHashAt: createU8a(db, blockHashAt) +// }); -const timestamp = (db: TrieDb, { public: { didUpdate } }: Section) => ({ - didUpdate: createBool(db, didUpdate) -}); +// const timestamp = (db: TrieDb, { public: { didUpdate } }: Section) => ({ +// didUpdate: createBool(db, didUpdate) +// }); export default function createState (db: TrieDb): StateDb { return { - db, - consensus: consensus(db, storage.consensus), - council: council(db, storage.council), - councilVoting: councilVoting(db, storage.councilVoting), - democracy: democracy(db, storage.democracy), - governance: governance(db, storage.governance), - parachains: parachains(db, storage.parachains), - session: session(db, storage.session), - staking: staking(db, storage.staking), - system: system(db, storage.system), - timestamp: timestamp(db, storage.timestamp) + db + // consensus: consensus(db, storage.consensus), + // council: council(db, storage.council), + // councilVoting: councilVoting(db, storage.councilVoting), + // democracy: democracy(db, storage.democracy), + // governance: governance(db, storage.governance), + // parachains: parachains(db, storage.parachains), + // session: session(db, storage.session), + // staking: staking(db, storage.staking), + // system: system(db, storage.system), + // timestamp: timestamp(db, storage.timestamp) }; } diff --git a/packages/client-db-chain/src/types.d.ts b/packages/client-db-chain/src/types.d.ts index 442dff9f..d22a7d58 100644 --- a/packages/client-db-chain/src/types.d.ts +++ b/packages/client-db-chain/src/types.d.ts @@ -7,9 +7,9 @@ import { AsyncBaseDb, BaseDb, TrieDb } from '@polkadot/client-db/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; export type StorageMethod = { - del: (...params: Array) => void, - get: (...params: Array) => R, - set: (value: P, ...params: Array) => void, + del: (...params: Array) => Promise, + get: (...params: Array) => Promise, + set: (value: P, ...params: Array) => Promise, onUpdate: (callback: (value: P) => void) => void } @@ -98,15 +98,15 @@ export type StateDb$Timestamp = { }; export type StateDb = { - db: TrieDb, - consensus: StateDb$Consensus, - council: StateDb$Council, - councilVoting: StateDb$CouncilVoting, - democracy: StateDb$Democracy, - governance: StateDb$Governance, - parachains: StateDb$Parachains, - session: StateDb$Session, - staking: StateDb$Staking, - system: StateDb$System, - timestamp: StateDb$Timestamp + db: TrieDb + // consensus: StateDb$Consensus, + // council: StateDb$Council, + // councilVoting: StateDb$CouncilVoting, + // democracy: StateDb$Democracy, + // governance: StateDb$Governance, + // parachains: StateDb$Parachains, + // session: StateDb$Session, + // staking: StateDb$Staking, + // system: StateDb$System, + // timestamp: StateDb$Timestamp }; diff --git a/packages/client-db/src/Sync/index.spec.js b/packages/client-db/src/Sync/index.spec.js index d6a918d8..9fe53716 100644 --- a/packages/client-db/src/Sync/index.spec.js +++ b/packages/client-db/src/Sync/index.spec.js @@ -15,7 +15,7 @@ describe('SyncDb', () => { it('starts with the default root', () => { expect( - memory.trieRoot() + memory.getRoot() ).toEqual(EMPTY_ROOT); }); @@ -23,7 +23,7 @@ describe('SyncDb', () => { memory.put(toU8a('hello'), toU8a('world')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( HELLO_ROOT ); @@ -33,7 +33,7 @@ describe('SyncDb', () => { memory.del(toU8a('hello')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( EMPTY_ROOT ); @@ -43,7 +43,7 @@ describe('SyncDb', () => { memory.put(toU8a('hello'), toU8a('world')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( HELLO_ROOT ); @@ -53,7 +53,7 @@ describe('SyncDb', () => { memory.put(toU8a('foo'), toU8a('bar')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( FOO_ROOT ); @@ -63,7 +63,7 @@ describe('SyncDb', () => { memory.del(toU8a('hello')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( toU8a('0x99650c730bbb99f6f58ce8b09bca2a8d90b36ac662e71bf81ec401ed23d199fb') ); @@ -73,7 +73,7 @@ describe('SyncDb', () => { memory.put(toU8a('hello'), toU8a('world')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( FOO_ROOT ); @@ -83,7 +83,7 @@ describe('SyncDb', () => { memory.put(toU8a('hello'), toU8a('mars')); expect( - memory.trieRoot() + memory.getRoot() ).toEqual( toU8a('0x116267e482ab94eb8824af425ea7f20ee84d10a8fa735f26204d80000e2a907e') ); diff --git a/packages/client-db/src/Sync/index.ts b/packages/client-db/src/Sync/index.ts index a930ea94..e6e74ef1 100644 --- a/packages/client-db/src/Sync/index.ts +++ b/packages/client-db/src/Sync/index.ts @@ -5,9 +5,9 @@ import { TrieDb, DbConfig$Type } from '../types'; import { Message, MessageData, MessageType, MessageTypeRead, MessageTypeWrite } from './types'; -import nodePath from 'path'; +import path from 'path'; import { Worker } from 'worker_threads'; -import promisify from '@polkadot/util/promisify'; +// import promisify from '@polkadot/util/promisify'; import commands from './worker/commands'; @@ -16,16 +16,18 @@ const emptyBuffer = new Uint8Array(); export default class SyncDb implements TrieDb { private worker: WorkerThreads.Worker; - constructor (type: DbConfig$Type = 'memory', path: string = '.') { + constructor (type: DbConfig$Type = 'memory', dbPath: string = '.') { // NOTE Node 10.6 relative paths for Workers are broken - adding here tries to load // the worker from /client, not client-db. - // FIXME We should be passing the trie params info into construction - this.worker = new Worker(nodePath.join(__dirname, './worker/index.js'), { - workerData: { - path, - type + this.worker = new Worker( + path.join(__dirname, './worker/index.js'), + { + workerData: { + path: dbPath, + type + } } - }); + ); } checkpoint (): void { @@ -61,28 +63,36 @@ export default class SyncDb implements TrieDb { } async terminate () { + this.worker.unref(); + this.worker = null; // TODO We should cleanup the trie instance gracefully, so another message here // to cleanup and then the termination up next - return promisify(this.worker, this.worker.terminate); + // return promisify(this.worker, this.worker.terminate); } // Sends a message to the worker, waiting until started private _waitOnStart (type: MessageType, message: MessageData): Int32Array { + console.error('_waitOnStart', type); const state = new Int32Array(new SharedArrayBuffer(8)); + console.error('state', state); + this.worker.postMessage({ ...message, state, type } as Message); - Atomics.wait(state, 0, commands.START); + Atomics.wait(state, 0, commands.START, 5000); + + console.error('_waitOnStart', type, 'started'); return state; } // Notifies the worker that it should continue filling the result buffer private _waitOnRead (state: Int32Array): void { + console.error('_waitOnRead'); state[0] = commands.FILL; // @ts-ignore Node is a bit ahead, still to be renamed @@ -93,6 +103,7 @@ export default class SyncDb implements TrieDb { // Ok, this is not something that returns a value, just send the message and // return when we the call has been done private _executeWrite (type: MessageTypeWrite, key?: Uint8Array, value?: Uint8Array): void { + console.error('_executeWrite', type); this._waitOnStart(type, { buffer: emptyBuffer, key, @@ -102,6 +113,7 @@ export default class SyncDb implements TrieDb { // Sends a message to the worker, reading and returning the actual result private _executeRead (type: MessageTypeRead, key?: Uint8Array, value?: Uint8Array): Uint8Array | null { + console.error('_executeRead', type); // The shared data buffer that will be used by the worker to send info back const shared = new SharedArrayBuffer(4096); const buffer = new Uint8Array(shared); @@ -121,6 +133,7 @@ export default class SyncDb implements TrieDb { // Read the size of a structure to be returned from the stream private _readSize (state: Int32Array, shared: SharedArrayBuffer): number { + console.error('_readSize'); const view = new DataView(shared); // expect to read SIZE, END/ERROR here diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 4aa93648..16829c31 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -5,22 +5,30 @@ // import { Message } from '../types'; // import { FnMap } from './types; -const leveldown = require('leveldown'); +console.error('1'); + +// const leveldown = require('leveldown'); const memdown = require('memdown'); -// import { parentPort } from 'worker_threads'; -const worker = require('worker_threads'); +// import { parentPort, workerData } from 'worker_threads'; +const { parentPort, workerData } = require('worker_threads'); // import Trie from '@polkadot/trie-db'; const Trie = require('@polkadot/trie-db').default; +console.error('2'); + const { notifyOnDone, notifyOnValue } = require('./notify'); +console.error('3'); + // @ts-ignore Oops, we need the params here const trie = new Trie( - worker.workerData.type === 'disk' - ? leveldown(worker.workerData.path) - : memdown() + workerData.type === 'disk' + ? leveldown(workerData.path) + : undefined // memdown() ); +console.error('4'); + // const functions: FnMap = { const functions = { // checkpoint: ({ state }: Message) => @@ -38,8 +46,8 @@ const functions = { notifyOnDone(state, () => trie.del(key) ), - // get: async ({ buffer, key, state }: Message) => - get: async ({ buffer, key, state }) => + // get: ({ buffer, key, state }: Message) => + get: ({ buffer, key, state }) => notifyOnValue(state, buffer, () => trie.get(key) ), @@ -63,11 +71,13 @@ const functions = { notifyOnDone(state, async () => { trie.root = value; }) - }; -// worker.parentPort.on('message', (message: Message): void => { - worker.parentPort.on('message', (message) => { +console.error('trie', trie); + +// parentPort.on('message', (message: Message): void => { +parentPort.on('message', (message) => { + console.error('onMessage', message.type); const fn = functions[message.type]; if (fn) { diff --git a/packages/client-db/src/defaults.ts b/packages/client-db/src/defaults.ts index a8d8f965..12fd0f1b 100644 --- a/packages/client-db/src/defaults.ts +++ b/packages/client-db/src/defaults.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { DbPathPrefix, DbConfig$Type } from './types'; +import { DbConfig$Type } from './types'; import os from 'os'; import path from 'path'; diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 20ba6440..dfc2c457 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -147,7 +147,8 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { const peer = peers.add(peerInfo); peers.log('protocol', peer); - peer.addConnection(connection, false); + + await peer.addConnection(connection, false); if (!peer.isWritable()) { this._dialPeers(peer); diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index 95a887c6..bf5b4165 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -49,7 +49,7 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { this.shortId = stringShorten(this.id); } - addConnection (connection: LibP2pConnection, isWritable: boolean): void { + async addConnection (connection: LibP2pConnection, isWritable: boolean): Promise { this._receive(connection); if (isWritable) { @@ -63,8 +63,8 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { this.send( new Status({ roles: this.config.roles, - bestNumber: this.chain.blocks.bestNumber.get(), - bestHash: this.chain.blocks.bestHash.get(), + bestNumber: await this.chain.blocks.bestNumber.get(), + bestHash: await this.chain.blocks.bestHash.get(), genesisHash: this.chain.genesis.headerHash, version: defaults.PROTOCOL_VERSION }) diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index 4f9bf2a4..a94d8b05 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -36,9 +36,9 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { this.l = logger('sync'); } - getBlockData (fields: Array, hash: Uint8Array): BlockResponseMessageBlock { + async getBlockData (fields: Array, hash: Uint8Array): Promise { const { body, header } = decodeBlock( - this.chain.blocks.block.get(hash) + await this.chain.blocks.block.get(hash) ); const data: BlockResponseMessageBlock = { // hash @@ -63,9 +63,10 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { ); } - processBlocks (): void { + async processBlocks () { const start = Date.now(); - const startNumber = this.chain.blocks.bestNumber.get().addn(1); + const bestNumber = await this.chain.blocks.bestNumber.get(); + const startNumber = bestNumber.addn(1); let nextNumber = startNumber; let count = 0; @@ -94,36 +95,36 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { : 'Idle'; } - provideBlocks (peer: PeerInterface, request: BlockRequest): void { - const current = (request.from as BN); - const best = this.chain.blocks.bestNumber.get(); - const blocks = []; + async provideBlocks (peer: PeerInterface, request: BlockRequest) { + // const current = (request.from as BN); + // const best = await this.chain.blocks.bestNumber.get(); + // const blocks = []; - // FIXME: Also send blocks starting with hash - const max = Math.min(request.max || defaults.MAX_SYNC_BLOCKS, defaults.MAX_SYNC_BLOCKS); - let count = isU8a(request.from) ? max : 0; - const increment = request.direction === 'Ascending' ? new BN(1) : new BN(-1); + // // FIXME: Also send blocks starting with hash + // const max = Math.min(request.max || defaults.MAX_SYNC_BLOCKS, defaults.MAX_SYNC_BLOCKS); + // let count = isU8a(request.from) ? max : 0; + // const increment = request.direction === 'Ascending' ? new BN(1) : new BN(-1); - while (count < max && current.lte(best) && !current.isNeg()) { - const hash = this.chain.state.system.blockHashAt.get(current); + // while (count < max && current.lte(best) && !current.isNeg()) { + // const hash = await this.chain.state.system.blockHashAt.get(current); - blocks.push( - this.getBlockData(request.fields, hash) - ); + // blocks.push( + // this.getBlockData(request.fields, hash) + // ); - count++; - current.iadd(increment); - } + // count++; + // current.iadd(increment); + // } - peer.send( - new BlockResponse({ - blocks, - id: request.id - }) - ); + // peer.send( + // new BlockResponse({ + // blocks, + // id: request.id + // }) + // ); } - queueBlocks (peer: PeerInterface, { blocks, id }: BlockResponseMessage): void { + async queueBlocks (peer: PeerInterface, { blocks, id }: BlockResponseMessage): void { const request = this.blockRequests[peer.id]; delete this.blockRequests[peer.id]; @@ -133,27 +134,32 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { return; } - const count = blocks.reduce((count: number, block) => { - const hasImported = this.chain.blocks.block.get(block.hash).length !== 0; + let count = 0; + + for (let i = 0; i < blocks.length; i++) { + const block = blocks[i]; + const data = await this.chain.blocks.block.get(block.hash); + const hasImported = data.length !== 0; const blockNumber = block.header.number.toString(); const hasQueued = !!this.blockQueue[blockNumber]; if (hasImported && hasQueued) { - return count; - } - - this.blockQueue[blockNumber] = block; + // we have it + } else { + this.blockQueue[blockNumber] = block; - return count + 1; - }, 0); + count++; + } + } this.l.log(`Queued ${count} blocks from ${peer.shortId}`); this.processBlocks(); } - requestBlocks (peer: PeerInterface): void { - const from = this.chain.blocks.bestNumber.get().addn(1); + async requestBlocks (peer: PeerInterface) { + const bestNumber = await this.chain.blocks.bestNumber.get(); + const from = bestNumber.addn(1); // TODO: This assumes no stale block downloading if (this.blockRequests[peer.id] || from.gt(peer.bestNumber)) { diff --git a/packages/client-p2p/src/types.d.ts b/packages/client-p2p/src/types.d.ts index 031f37c9..1053ef01 100644 --- a/packages/client-p2p/src/types.d.ts +++ b/packages/client-p2p/src/types.d.ts @@ -46,7 +46,7 @@ export interface PeerInterface { readonly peerInfo: PeerInfo, readonly shortId: string, - addConnection: (connection: LibP2pConnection, isWritable: boolean) => void, + addConnection: (connection: LibP2pConnection, isWritable: boolean) => Promise, isActive: () => boolean, isWritable: () => boolean, getNextId: () => number, diff --git a/packages/client-telemetry/src/index.ts b/packages/client-telemetry/src/index.ts index 2c4df4fc..b3d444ea 100644 --- a/packages/client-telemetry/src/index.ts +++ b/packages/client-telemetry/src/index.ts @@ -70,23 +70,23 @@ export default class Telemetry implements TelemetryInterface { }; } - blockImported (): void { - const bestHash = this.blocks.bestHash.get(); - const bestNumber = this.blocks.bestNumber.get(); + async blockImported () { + const bestHash = await this.blocks.bestHash.get(); + const bestNumber = await this.blocks.bestNumber.get(); this.send(new BlockImport(bestHash, bestNumber)); } - intervalInfo (peers: number, status: SyncStatus): void { - const bestHash = this.blocks.bestHash.get(); - const bestNumber = this.blocks.bestNumber.get(); + async intervalInfo (peers: number, status: SyncStatus) { + const bestHash = await this.blocks.bestHash.get(); + const bestNumber = await this.blocks.bestNumber.get(); this.send(new Interval(bestHash, bestNumber, peers, status)); } - private sendInitial () { - const bestHash = this.blocks.bestHash.get(); - const bestNumber = this.blocks.bestNumber.get(); + private async sendInitial () { + const bestHash = await this.blocks.bestHash.get(); + const bestNumber = await this.blocks.bestNumber.get(); this.send(new Connected(this.chain, this.name)); this.send(new Started(bestHash, bestNumber)); diff --git a/packages/client-wasm/src/generateBlock.spec.js b/packages/client-wasm/src/generateBlock.spec.js index 42e06140..678d96b6 100644 --- a/packages/client-wasm/src/generateBlock.spec.js +++ b/packages/client-wasm/src/generateBlock.spec.js @@ -40,9 +40,9 @@ describe('generateBlock', () => { const stateDb = new MemoryDb(); const chain = new Chain(config, stateDb, new HashDb()); - it('generates a basic block (empty)', () => { + it('generates a basic block (empty)', async () => { expect( - chain.executor.generateBlock([], 54321) + await chain.executor.generateBlock([], 54321) ).toEqual( u8aConcat( new Uint8Array([ @@ -59,9 +59,9 @@ describe('generateBlock', () => { ); }); - it('generates a basic block (with real externals)', () => { + it('generates a basic block (with real externals)', async () => { expect( - chain.executor.generateBlock([ + await chain.executor.generateBlock([ encodeUnchecked(keyring.alice, 0)( methods.staking.public.transfer, [keyring.bob.publicKey(), 69] @@ -70,24 +70,24 @@ describe('generateBlock', () => { ).not.toBeNull(); }); - it.skip('generated blocks are importable', () => { + it.skip('generated blocks are importable', async () => { expect( - chain.executor.importBlock( - chain.executor.generateBlock([]) + await chain.executor.importBlock( + await chain.executor.generateBlock([]) ) ).not.toBeNull(); }); // NOTE Timestamps now check for elapsed times - it.skip('generated blocks are importable on top of each other', () => { + it.skip('generated blocks are importable on top of each other', async () => { expect( - chain.executor.importBlock( - chain.executor.generateBlock([], 54321) + await chain.executor.importBlock( + await chain.executor.generateBlock([], 54321) ) ).not.toBeNull(); expect( - chain.executor.importBlock( - chain.executor.generateBlock([], 54321 + 10) + await chain.executor.importBlock( + await chain.executor.generateBlock([], 54321 + 10) ) ).not.toBeNull(); }); diff --git a/packages/client-wasm/src/index.ts b/packages/client-wasm/src/index.ts index bd185d0a..ce87b312 100644 --- a/packages/client-wasm/src/index.ts +++ b/packages/client-wasm/src/index.ts @@ -102,9 +102,10 @@ export default class Executor implements ExecutorInterface { return result; } - generateBlock (utxs: Array, timestamp: number = Math.ceil(Date.now() / 1000)): Uint8Array { + async generateBlock (utxs: Array, timestamp: number = Math.ceil(Date.now() / 1000)): Promise { const start = Date.now(); - const nextNumber = this.blockDb.bestNumber.get().addn(1); + const bestNumber = await this.blockDb.bestNumber.get(); + const nextNumber = bestNumber.addn(1); this.l.debug(() => `Generating block #${nextNumber.toString()}`); this.stateDb.db.checkpoint(); @@ -112,7 +113,7 @@ export default class Executor implements ExecutorInterface { const extrinsics = this.withInherent(timestamp, utxs); const header = createHeader({ number: nextNumber, - parentHash: this.blockDb.bestHash.get() + parentHash: await this.blockDb.bestHash.get() }, extrinsics); const headerRaw = encodeHeader(header); @@ -136,7 +137,7 @@ export default class Executor implements ExecutorInterface { return block; } - importBlock (block: Uint8Array): Executor$BlockImportResult { + async importBlock (block: Uint8Array): Promise { const start = Date.now(); this.l.debug(() => 'Importing block'); @@ -151,9 +152,11 @@ export default class Executor implements ExecutorInterface { const { body, extrinsics, header, number } = decodeRaw(block); const headerHash = blake2Asu8a(header, 256); - this.blockDb.bestHash.set(headerHash); - this.blockDb.bestNumber.set(number); - this.blockDb.block.set(block, headerHash); + await Promise.all([ + this.blockDb.bestHash.set(headerHash), + this.blockDb.bestNumber.set(number), + this.blockDb.block.set(block, headerHash) + ]); this.l.debug(() => `Imported block #${number.toString()} (${Date.now() - start}ms)`); diff --git a/packages/client-wasm/src/types.d.ts b/packages/client-wasm/src/types.d.ts index 44f36992..6f659a13 100644 --- a/packages/client-wasm/src/types.d.ts +++ b/packages/client-wasm/src/types.d.ts @@ -40,7 +40,7 @@ export type ExecutorInterface = { applyExtrinsic (extrinsic: UncheckedRaw): boolean, executeBlock (block: Uint8Array): boolean, finaliseBlock (header: Uint8Array): Uint8Array, - generateBlock (extrinsics: Array, timestamp?: number): Uint8Array, - importBlock (block: Uint8Array): Executor$BlockImportResult, + generateBlock (extrinsics: Array, timestamp?: number): Promise, + importBlock (block: Uint8Array): Promise, initialiseBlock (header: Uint8Array): boolean }; diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index 125939bb..15935932 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -82,7 +82,7 @@ class Client { this.informantId = undefined; } - private runInformant = (): void => { + private async runInformant = (): void => { if (isUndefined(this.chain) || isUndefined(this.p2p) || isUndefined(this.rpc)) { this.stopInformant(); @@ -90,8 +90,8 @@ class Client { } const numPeers = this.p2p.getNumPeers(); - const bestHash = this.chain.blocks.bestHash.get(); - const bestNumber = this.chain.blocks.bestNumber.get(); + const bestHash = await this.chain.blocks.bestHash.get(); + const bestNumber = await this.chain.blocks.bestNumber.get(); const status = this.p2p.sync.status; this.l.log(`${status} (${numPeers} peers), #${bestNumber.toNumber()}, ${u8aToHex(bestHash, 48)}`); From a16749bff7370d5acdd5fdd21cea038828b4c288 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Mon, 30 Jul 2018 18:02:54 +0200 Subject: [PATCH 13/34] WIP... --- packages/client-chains/src/index.ts | 14 +++++--------- packages/client-db/src/Sync/index.ts | 10 ---------- packages/client-db/src/Sync/worker_threads.d.ts | 2 ++ packages/client-p2p/src/sync/index.ts | 2 +- packages/client/src/index.ts | 2 +- 5 files changed, 9 insertions(+), 21 deletions(-) diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index 0c312d91..bc62804f 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -40,8 +40,10 @@ export default class Chain implements ChainInterface { this.chain = this.load(config.chain); const isDisk = config.db && config.db.type === 'disk'; - const genesisRoot = this.calcGenesisRoot(); - const dbPath = isDisk ? path.join(config.db.path, 'chains', `${this.chain.id}-${u8aToHex(genesisRoot)}`) : '.'; + const genesisStateRoot = this.calcGenesisStateRoot(); + const dbPath = isDisk + ? path.join(config.db.path, 'chains', `${this.chain.id}-${u8aToHex(genesisStateRoot)}`) + : '.'; const stateDb = isDisk ? new TrieDiskDb(path.join(dbPath, 'state')) : new TrieMemoryDb(); const blockDb = isDisk ? new HashDiskDb(path.join(dbPath, 'block')) : new HashMemoryDb(); @@ -51,8 +53,6 @@ export default class Chain implements ChainInterface { this.state = createStateDb(stateDb); this.genesis = this.initGenesis(); this.executor = new Executor(config, this.blocks, this.state, runtime); - - console.log('checking', u8aToHex(genesisRoot), u8aToHex(this.genesis.header.stateRoot)); } // TODO We should load chains from json files as well @@ -64,7 +64,7 @@ export default class Chain implements ChainInterface { return chain; } - private calcGenesisRoot (): Uint8Array { + private calcGenesisStateRoot (): Uint8Array { const { genesis: { raw } } = this.chain; return trieRoot( @@ -76,14 +76,10 @@ export default class Chain implements ChainInterface { } private initGenesis () { - console.error('updating statedb'); this.initGenesisState(); - console.error('initi genesis'); const genesis = this.initGenesisBlock(); - console.error('updating blockdb'); - Promise.all([ this.blocks.bestHash.set(genesis.headerHash), this.blocks.bestNumber.set(0), diff --git a/packages/client-db/src/Sync/index.ts b/packages/client-db/src/Sync/index.ts index e6e74ef1..f27b444e 100644 --- a/packages/client-db/src/Sync/index.ts +++ b/packages/client-db/src/Sync/index.ts @@ -64,7 +64,6 @@ export default class SyncDb implements TrieDb { async terminate () { this.worker.unref(); - this.worker = null; // TODO We should cleanup the trie instance gracefully, so another message here // to cleanup and then the termination up next // return promisify(this.worker, this.worker.terminate); @@ -72,11 +71,8 @@ export default class SyncDb implements TrieDb { // Sends a message to the worker, waiting until started private _waitOnStart (type: MessageType, message: MessageData): Int32Array { - console.error('_waitOnStart', type); const state = new Int32Array(new SharedArrayBuffer(8)); - console.error('state', state); - this.worker.postMessage({ ...message, state, @@ -85,14 +81,11 @@ export default class SyncDb implements TrieDb { Atomics.wait(state, 0, commands.START, 5000); - console.error('_waitOnStart', type, 'started'); - return state; } // Notifies the worker that it should continue filling the result buffer private _waitOnRead (state: Int32Array): void { - console.error('_waitOnRead'); state[0] = commands.FILL; // @ts-ignore Node is a bit ahead, still to be renamed @@ -103,7 +96,6 @@ export default class SyncDb implements TrieDb { // Ok, this is not something that returns a value, just send the message and // return when we the call has been done private _executeWrite (type: MessageTypeWrite, key?: Uint8Array, value?: Uint8Array): void { - console.error('_executeWrite', type); this._waitOnStart(type, { buffer: emptyBuffer, key, @@ -113,7 +105,6 @@ export default class SyncDb implements TrieDb { // Sends a message to the worker, reading and returning the actual result private _executeRead (type: MessageTypeRead, key?: Uint8Array, value?: Uint8Array): Uint8Array | null { - console.error('_executeRead', type); // The shared data buffer that will be used by the worker to send info back const shared = new SharedArrayBuffer(4096); const buffer = new Uint8Array(shared); @@ -133,7 +124,6 @@ export default class SyncDb implements TrieDb { // Read the size of a structure to be returned from the stream private _readSize (state: Int32Array, shared: SharedArrayBuffer): number { - console.error('_readSize'); const view = new DataView(shared); // expect to read SIZE, END/ERROR here diff --git a/packages/client-db/src/Sync/worker_threads.d.ts b/packages/client-db/src/Sync/worker_threads.d.ts index 5f096b7e..29f43091 100644 --- a/packages/client-db/src/Sync/worker_threads.d.ts +++ b/packages/client-db/src/Sync/worker_threads.d.ts @@ -24,6 +24,8 @@ declare namespace WorkerThreads { on (type: 'error' | 'exit' | 'online' | 'message', cb?: (...params: any[]) => any): void; postMessage (message: any): void; + ref (): void; + unref (): void; terminate (cb?: (error: Error | null) => any): void; } } diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index a94d8b05..7eae6d43 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -124,7 +124,7 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { // ); } - async queueBlocks (peer: PeerInterface, { blocks, id }: BlockResponseMessage): void { + async queueBlocks (peer: PeerInterface, { blocks, id }: BlockResponseMessage) { const request = this.blockRequests[peer.id]; delete this.blockRequests[peer.id]; diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index 15935932..d1563459 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -82,7 +82,7 @@ class Client { this.informantId = undefined; } - private async runInformant = (): void => { + private runInformant = async () => { if (isUndefined(this.chain) || isUndefined(this.p2p) || isUndefined(this.rpc)) { this.stopInformant(); From fca66e3ea46eaf8ac901a033d7c39b7d8a65e601 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 31 Jul 2018 10:33:06 +0200 Subject: [PATCH 14/34] Multiple Sync worker instances --- packages/client-db-chain/src/block/index.ts | 4 +- packages/client-db-chain/src/db/arrayU8a.ts | 12 +- packages/client-db-chain/src/db/base.ts | 21 ++- packages/client-db-chain/src/db/bn.ts | 12 +- packages/client-db-chain/src/db/bool.ts | 12 +- packages/client-db-chain/src/db/u8a.ts | 10 +- packages/client-db-chain/src/state/index.ts | 148 +++++++++--------- packages/client-db-chain/src/types.d.ts | 32 ++-- packages/client-db/src/Hash.spec.js | 59 +++++++ packages/client-db/src/Hash/Base.ts | 32 ++-- packages/client-db/src/Hash/Disk.ts | 2 +- packages/client-db/src/Hash/Memory.ts | 2 +- packages/client-db/src/Sync/index.ts | 8 +- packages/client-db/src/Sync/types.d.ts | 1 + packages/client-db/src/Sync/worker/index.js | 123 +++++++-------- packages/client-db/src/Sync/worker/notify.js | 2 +- .../src/{Sync/index.spec.js => Trie.spec.js} | 6 +- packages/client-db/src/Trie/Disk.ts | 2 +- packages/client-db/src/Trie/Memory.ts | 2 +- packages/client-db/src/types.d.ts | 12 +- 20 files changed, 279 insertions(+), 223 deletions(-) create mode 100644 packages/client-db/src/Hash.spec.js rename packages/client-db/src/{Sync/index.spec.js => Trie.spec.js} (95%) diff --git a/packages/client-db-chain/src/block/index.ts b/packages/client-db-chain/src/block/index.ts index 17f4c689..16b6e35a 100644 --- a/packages/client-db-chain/src/block/index.ts +++ b/packages/client-db-chain/src/block/index.ts @@ -2,14 +2,14 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { AsyncBaseDb } from '@polkadot/client-db/types'; +import { BaseDb } from '@polkadot/client-db/types'; import { BlockDb } from '../types'; import createBn from '../db/bn'; import createU8a from '../db/u8a'; import keys from './keys'; -export default function blockDb (db: AsyncBaseDb): BlockDb { +export default function blockDb (db: BaseDb): BlockDb { return { db, bestHash: createU8a(db, keys.public.bestHash), diff --git a/packages/client-db-chain/src/db/arrayU8a.ts b/packages/client-db-chain/src/db/arrayU8a.ts index 17bd7495..15965f08 100644 --- a/packages/client-db-chain/src/db/arrayU8a.ts +++ b/packages/client-db-chain/src/db/arrayU8a.ts @@ -4,7 +4,7 @@ import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { AsyncBaseDb } from '@polkadot/client-db/types'; +import { BaseDb } from '@polkadot/client-db/types'; import { StorageMethod$ArrayU8a } from '../types'; import bnToU8a from '@polkadot/util/bn/toU8a'; @@ -13,14 +13,14 @@ import u8aToBn from '@polkadot/util/u8a/toBn'; import creator from '../key'; -export default function decodeArrayU8a (db: AsyncBaseDb, key: SectionItem): StorageMethod$ArrayU8a { +export default function decodeArrayU8a (db: BaseDb, key: SectionItem): StorageMethod$ArrayU8a { const createKey = creator(key); return { - del: (...keyParams: Array): Promise => + del: (...keyParams: Array): void => db.del(createKey(keyParams)), - get: async (...keyParams: Array): Promise> => { - const u8a = await db.get(createKey(keyParams)); + get: (...keyParams: Array): Array => { + const u8a = db.get(createKey(keyParams)); if (u8a === null) { return []; @@ -36,7 +36,7 @@ export default function decodeArrayU8a (db: AsyncBaseDb, key: SectionItem return result; }, - set: (value: Array, ...keyParams: Array): Promise => + set: (value: Array, ...keyParams: Array): void => db.put(createKey(keyParams), u8aConcat( bnToU8a(value.length, 32, true), u8aConcat.apply(null, value)) diff --git a/packages/client-db-chain/src/db/base.ts b/packages/client-db-chain/src/db/base.ts index 58bab339..ddaa1390 100644 --- a/packages/client-db-chain/src/db/base.ts +++ b/packages/client-db-chain/src/db/base.ts @@ -2,31 +2,30 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { AsyncBaseDb } from '@polkadot/client-db/types'; +import { BaseDb } from '@polkadot/client-db/types'; type Base = { - del (key: Uint8Array): Promise, - get (key: Uint8Array): Promise, - set (key: Uint8Array, value: T, raw: Uint8Array): Promise, + del (key: Uint8Array): void, + get (key: Uint8Array): Uint8Array, + set (key: Uint8Array, value: T, raw: Uint8Array): void, onUpdate (subscriber: (value: T, raw: Uint8Array) => void): void }; type Subscribers = Array<(value: T, raw: Uint8Array) => void>; -export default function base (db: AsyncBaseDb): Base { +export default function base (db: BaseDb): Base { const subscribers: Subscribers = []; return { - del: (key: Uint8Array): Promise => + del: (key: Uint8Array): void => db.del(key), - get: async (key: Uint8Array): Promise => { - const value = await db.get(key); + get: (key: Uint8Array): Uint8Array => { + const value = db.get(key); return value || new Uint8Array([]); }, - set: async (key: Uint8Array, value: T, raw: Uint8Array): Promise => { - await db.put(key, raw); - + set: (key: Uint8Array, value: T, raw: Uint8Array): void => { + db.put(key, raw); subscribers.forEach((subscriber) => subscriber(value, raw) ); diff --git a/packages/client-db-chain/src/db/bn.ts b/packages/client-db-chain/src/db/bn.ts index 2b737c0a..cf443e68 100644 --- a/packages/client-db-chain/src/db/bn.ts +++ b/packages/client-db-chain/src/db/bn.ts @@ -5,7 +5,7 @@ import BN from 'bn.js'; import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { AsyncBaseDb } from '@polkadot/client-db/types'; +import { BaseDb } from '@polkadot/client-db/types'; import { StorageMethod$Bn } from '../types'; import bnToU8a from '@polkadot/util/bn/toU8a'; @@ -14,18 +14,18 @@ import u8aToBn from '@polkadot/util/u8a/toBn'; import createBase from './base'; import creator from '../key'; -export default function decodeBn (db: AsyncBaseDb, key: SectionItem, bitLength: 32 | 64 | 128): StorageMethod$Bn { +export default function decodeBn (db: BaseDb, key: SectionItem, bitLength: 32 | 64 | 128): StorageMethod$Bn { const createKey = creator(key); const base = createBase(db); return { - del: (...keyParams: Array): Promise => + del: (...keyParams: Array): void => base.del(createKey(keyParams)), - get: async (...keyParams: Array): Promise => + get: (...keyParams: Array): BN => u8aToBn( - await base.get(createKey(keyParams)), true + base.get(createKey(keyParams)), true ), - set: (value: BN | number, ...keyParams: Array): Promise => + set: (value: BN | number, ...keyParams: Array): void => base.set(createKey(keyParams), value, bnToU8a(value, bitLength, true)), onUpdate: (updater: (value: BN | number, raw: Uint8Array) => void): void => base.onUpdate(updater) diff --git a/packages/client-db-chain/src/db/bool.ts b/packages/client-db-chain/src/db/bool.ts index 85535fc4..f8536e8c 100644 --- a/packages/client-db-chain/src/db/bool.ts +++ b/packages/client-db-chain/src/db/bool.ts @@ -4,25 +4,25 @@ import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { AsyncBaseDb } from '@polkadot/client-db/types'; +import { BaseDb } from '@polkadot/client-db/types'; import { StorageMethod$Bool } from '../types'; import createBase from './base'; import creator from '../key'; -export default function decodeBool (db: AsyncBaseDb, key: SectionItem): StorageMethod$Bool { +export default function decodeBool (db: BaseDb, key: SectionItem): StorageMethod$Bool { const createKey = creator(key); const base = createBase(db); return { - del: (...keyParams: Array): Promise => + del: (...keyParams: Array): void => base.del(createKey(keyParams)), - get: async (...keyParams: Array): Promise => { - const value = await base.get(createKey(keyParams)); + get: (...keyParams: Array): boolean => { + const value = base.get(createKey(keyParams)); return value[0] === 1; }, - set: (value: boolean, ...keyParams: Array): Promise => + set: (value: boolean, ...keyParams: Array): void => base.set(createKey(keyParams), value, new Uint8Array([value ? 1 : 0])), onUpdate: (updater: (value: boolean, raw: Uint8Array) => void): void => base.onUpdate(updater) diff --git a/packages/client-db-chain/src/db/u8a.ts b/packages/client-db-chain/src/db/u8a.ts index 24b8ee66..f025c90b 100644 --- a/packages/client-db-chain/src/db/u8a.ts +++ b/packages/client-db-chain/src/db/u8a.ts @@ -4,22 +4,22 @@ import { SectionItem } from '@polkadot/params/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; -import { AsyncBaseDb } from '@polkadot/client-db/types'; +import { BaseDb } from '@polkadot/client-db/types'; import { StorageMethod$U8a } from '../types'; import creator from '../key'; import createBase from './base'; -export default function decodeU8a (db: AsyncBaseDb, key: SectionItem): StorageMethod$U8a { +export default function decodeU8a (db: BaseDb, key: SectionItem): StorageMethod$U8a { const createKey = creator(key); const base = createBase(db); return { - del: (...keyParams: Array): Promise => + del: (...keyParams: Array): void => base.del(createKey(keyParams)), - get: (...keyParams: Array): Promise => + get: (...keyParams: Array): Uint8Array => base.get(createKey(keyParams)), - set: (value: Uint8Array, ...keyParams: Array): Promise => + set: (value: Uint8Array, ...keyParams: Array): void => base.set(createKey(keyParams), value, value), onUpdate: (updater: (value: Uint8Array, raw: Uint8Array) => void): void => base.onUpdate(updater) diff --git a/packages/client-db-chain/src/state/index.ts b/packages/client-db-chain/src/state/index.ts index 093affa2..f064019e 100644 --- a/packages/client-db-chain/src/state/index.ts +++ b/packages/client-db-chain/src/state/index.ts @@ -2,97 +2,97 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -// import { Section } from '@polkadot/params/types'; -// import { Storages } from '@polkadot/storage/types'; +import { Section } from '@polkadot/params/types'; +import { Storages } from '@polkadot/storage/types'; import { TrieDb } from '@polkadot/client-db/types'; import { StateDb } from '../types'; -// import storage from '@polkadot/storage'; +import storage from '@polkadot/storage'; -// import createAcc from '../db/account'; -// import createArrAcc from '../db/arrayAccount'; -// import createArrU8a from '../db/arrayU8a'; -// import createBn from '../db/bn'; -// import createBool from '../db/bool'; -// import createU8a from '../db/u8a'; +import createAcc from '../db/account'; +import createArrAcc from '../db/arrayAccount'; +import createArrU8a from '../db/arrayU8a'; +import createBn from '../db/bn'; +import createBool from '../db/bool'; +import createU8a from '../db/u8a'; -// const BALANCE_SIZE = 128; -// const BLOCKNUM_SIZE = 64; +const BALANCE_SIZE = 128; +const BLOCKNUM_SIZE = 64; -// const consensus = (db: TrieDb, { public: { authorityAt, authorityCount, code } }: Section) => ({ -// authorityAt: createAcc(db, authorityAt), -// authorityCount: createBn(db, authorityCount, 32), -// code: createU8a(db, code) -// }); +const consensus = (db: TrieDb, { public: { authorityAt, authorityCount, code } }: Section) => ({ + authorityAt: createAcc(db, authorityAt), + authorityCount: createBn(db, authorityCount, 32), + code: createU8a(db, code) +}); -// const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCount, desiredSeats, inactiveGracePeriod, presentationDuration, presentSlashPerVoter, termDuration, votingBond, votingPeriod } }: Section) => ({ -// activeCouncil: createArrU8a(db, activeCouncil), -// candidacyBond: createBn(db, candidacyBond, BALANCE_SIZE), -// carryCount: createBn(db, carryCount, 32), -// desiredSeats: createBn(db, desiredSeats, 32), -// inactiveGracePeriod: createBn(db, inactiveGracePeriod, 32), -// presentationDuration: createBn(db, presentationDuration, BLOCKNUM_SIZE), -// presentSlashPerVoter: createBn(db, presentSlashPerVoter, BALANCE_SIZE), -// termDuration: createBn(db, termDuration, BLOCKNUM_SIZE), -// votingBond: createBn(db, votingBond, BALANCE_SIZE), -// votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) -// }); +const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCount, desiredSeats, inactiveGracePeriod, presentationDuration, presentSlashPerVoter, termDuration, votingBond, votingPeriod } }: Section) => ({ + activeCouncil: createArrU8a(db, activeCouncil), + candidacyBond: createBn(db, candidacyBond, BALANCE_SIZE), + carryCount: createBn(db, carryCount, 32), + desiredSeats: createBn(db, desiredSeats, 32), + inactiveGracePeriod: createBn(db, inactiveGracePeriod, 32), + presentationDuration: createBn(db, presentationDuration, BLOCKNUM_SIZE), + presentSlashPerVoter: createBn(db, presentSlashPerVoter, BALANCE_SIZE), + termDuration: createBn(db, termDuration, BLOCKNUM_SIZE), + votingBond: createBn(db, votingBond, BALANCE_SIZE), + votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) +}); -// const councilVoting = (db: TrieDb, { public: { cooloffPeriod, votingPeriod } }: Section) => ({ -// cooloffPeriod: createBn(db, cooloffPeriod, BLOCKNUM_SIZE), -// votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) -// }); +const councilVoting = (db: TrieDb, { public: { cooloffPeriod, votingPeriod } }: Section) => ({ + cooloffPeriod: createBn(db, cooloffPeriod, BLOCKNUM_SIZE), + votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) +}); -// const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingPeriod } }: Section) => ({ -// launchPeriod: createBn(db, launchPeriod, BLOCKNUM_SIZE), -// minimumDeposit: createBn(db, minimumDeposit, BALANCE_SIZE), -// votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) -// }); +const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingPeriod } }: Section) => ({ + launchPeriod: createBn(db, launchPeriod, BLOCKNUM_SIZE), + minimumDeposit: createBn(db, minimumDeposit, BALANCE_SIZE), + votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) +}); -// const governance = (db: TrieDb, { public: { approvalsRatio } }: Section) => ({ -// approvalsRatio: createBn(db, approvalsRatio, BLOCKNUM_SIZE) -// }); +const governance = (db: TrieDb, { public: { approvalsRatio } }: Section) => ({ + approvalsRatio: createBn(db, approvalsRatio, BLOCKNUM_SIZE) +}); -// const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ -// didUpdate: createBool(db, didUpdate) -// }); +const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ + didUpdate: createBool(db, didUpdate) +}); -// const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ -// length: createBn(db, length, BLOCKNUM_SIZE), -// validators: createArrAcc(db, validators) -// }); +const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ + length: createBn(db, length, BLOCKNUM_SIZE), + validators: createArrAcc(db, validators) +}); -// const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionFee, validatorCount } }: Section) => ({ -// bondingDuration: createBn(db, bondingDuration, BLOCKNUM_SIZE), -// currentEra: createBn(db, currentEra, BLOCKNUM_SIZE), -// freeBalanceOf: createBn(db, freeBalanceOf, BALANCE_SIZE), -// intentions: createArrAcc(db, intentions), -// sessionsPerEra: createBn(db, sessionsPerEra, BLOCKNUM_SIZE), -// transactionFee: createBn(db, transactionFee, BALANCE_SIZE), -// validatorCount: createBn(db, validatorCount, 32) -// }); +const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionFee, validatorCount } }: Section) => ({ + bondingDuration: createBn(db, bondingDuration, BLOCKNUM_SIZE), + currentEra: createBn(db, currentEra, BLOCKNUM_SIZE), + freeBalanceOf: createBn(db, freeBalanceOf, BALANCE_SIZE), + intentions: createArrAcc(db, intentions), + sessionsPerEra: createBn(db, sessionsPerEra, BLOCKNUM_SIZE), + transactionFee: createBn(db, transactionFee, BALANCE_SIZE), + validatorCount: createBn(db, validatorCount, 32) +}); -// const system = (db: TrieDb, { public: { accountIndexOf, blockHashAt } }: Section) => ({ -// accountIndexOf: createBn(db, accountIndexOf, 32), -// blockHashAt: createU8a(db, blockHashAt) -// }); +const system = (db: TrieDb, { public: { accountIndexOf, blockHashAt } }: Section) => ({ + accountIndexOf: createBn(db, accountIndexOf, 32), + blockHashAt: createU8a(db, blockHashAt) +}); -// const timestamp = (db: TrieDb, { public: { didUpdate } }: Section) => ({ -// didUpdate: createBool(db, didUpdate) -// }); +const timestamp = (db: TrieDb, { public: { didUpdate } }: Section) => ({ + didUpdate: createBool(db, didUpdate) +}); export default function createState (db: TrieDb): StateDb { return { - db - // consensus: consensus(db, storage.consensus), - // council: council(db, storage.council), - // councilVoting: councilVoting(db, storage.councilVoting), - // democracy: democracy(db, storage.democracy), - // governance: governance(db, storage.governance), - // parachains: parachains(db, storage.parachains), - // session: session(db, storage.session), - // staking: staking(db, storage.staking), - // system: system(db, storage.system), - // timestamp: timestamp(db, storage.timestamp) + db, + consensus: consensus(db, storage.consensus), + council: council(db, storage.council), + councilVoting: councilVoting(db, storage.councilVoting), + democracy: democracy(db, storage.democracy), + governance: governance(db, storage.governance), + parachains: parachains(db, storage.parachains), + session: session(db, storage.session), + staking: staking(db, storage.staking), + system: system(db, storage.system), + timestamp: timestamp(db, storage.timestamp) }; } diff --git a/packages/client-db-chain/src/types.d.ts b/packages/client-db-chain/src/types.d.ts index d22a7d58..6c10aba6 100644 --- a/packages/client-db-chain/src/types.d.ts +++ b/packages/client-db-chain/src/types.d.ts @@ -3,13 +3,13 @@ // of the ISC license. See the LICENSE file for details. import BN from 'bn.js'; -import { AsyncBaseDb, BaseDb, TrieDb } from '@polkadot/client-db/types'; +import { BaseDb, TrieDb } from '@polkadot/client-db/types'; import { Storage$Key$Value } from '@polkadot/storage/types'; export type StorageMethod = { - del: (...params: Array) => Promise, - get: (...params: Array) => Promise, - set: (value: P, ...params: Array) => Promise, + del: (...params: Array) => void, + get: (...params: Array) => R, + set: (value: P, ...params: Array) => void, onUpdate: (callback: (value: P) => void) => void } @@ -28,7 +28,7 @@ export type StorageMethod$ArrayU8a = StorageMethod, Array { + const key = toU8a('hello'); + const value = toU8a('world'); + + let memory = new HashDb(); + + it('has the correct value after a single insertion', () => { + memory.put(key, value); + + expect( + memory.get(key) + ).toEqual( + value + ); + }); + + it('has no value after a deletion', () => { + memory.del(key); + + expect( + memory.get(key) + ).toEqual( + null + ); + }); + + it('has the correct value after a re-insertion', () => { + memory.put(key, value); + + expect( + memory.get(key) + ).toEqual( + value + ); + }); + + it('has the correct value after an override', () => { + const mars = toU8a('mars'); + memory.put(key, mars); + + expect( + memory.get(key) + ).toEqual( + mars + ); + }); + + it('terminates', () => { + return memory.terminate(); + }); +}); diff --git a/packages/client-db/src/Hash/Base.ts b/packages/client-db/src/Hash/Base.ts index 416f1b1d..d2b0bc33 100644 --- a/packages/client-db/src/Hash/Base.ts +++ b/packages/client-db/src/Hash/Base.ts @@ -2,32 +2,30 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import { AsyncBaseDb } from '../types'; +import { BaseDb, DbConfig$Type } from '../types'; -// @ts-ignore needs typings -import levelup from 'levelup'; -import encoder from '@polkadot/trie-db/encoder'; +import SyncDb from '../Sync'; -export default class HashBaseDb implements AsyncBaseDb { - private db: any; +export default class HashBaseDb implements BaseDb { + private wrapped: BaseDb; - constructor (backing: any) { - this.db = levelup( - encoder(backing) - ); + constructor (type: DbConfig$Type = 'memory', path: string = '.') { + this.wrapped = new SyncDb(type, path, false); } - async del (key: Uint8Array): Promise { - await this.db.del(key); + del (key: Uint8Array): void { + this.wrapped.del(key); } - async get (key: Uint8Array): Promise { - const value = await this.db.get(key); + get (key: Uint8Array): Uint8Array | null { + return this.wrapped.get(key); + } - return value; + put (key: Uint8Array, value: Uint8Array): void { + this.wrapped.put(key, value); } - async put (key: Uint8Array, value: Uint8Array): Promise { - await this.db.put(key); + terminate () { + return this.wrapped.terminate(); } } diff --git a/packages/client-db/src/Hash/Disk.ts b/packages/client-db/src/Hash/Disk.ts index dfda9351..214bef38 100644 --- a/packages/client-db/src/Hash/Disk.ts +++ b/packages/client-db/src/Hash/Disk.ts @@ -8,6 +8,6 @@ import HashBaseDb from './Base'; export default class HashDiskDb extends HashBaseDb { constructor (path: string) { - super(leveldown(path)); + super('disk', path); } } diff --git a/packages/client-db/src/Hash/Memory.ts b/packages/client-db/src/Hash/Memory.ts index c3eac029..4fd4c84e 100644 --- a/packages/client-db/src/Hash/Memory.ts +++ b/packages/client-db/src/Hash/Memory.ts @@ -8,6 +8,6 @@ import HashBaseDb from './Base'; export default class HashMemoryDb extends HashBaseDb { constructor () { - super(memdown()); + super('memory'); } } diff --git a/packages/client-db/src/Sync/index.ts b/packages/client-db/src/Sync/index.ts index f27b444e..67193e5e 100644 --- a/packages/client-db/src/Sync/index.ts +++ b/packages/client-db/src/Sync/index.ts @@ -16,13 +16,14 @@ const emptyBuffer = new Uint8Array(); export default class SyncDb implements TrieDb { private worker: WorkerThreads.Worker; - constructor (type: DbConfig$Type = 'memory', dbPath: string = '.') { + constructor (type: DbConfig$Type = 'memory', dbPath: string = '.', isTrie: boolean = true) { // NOTE Node 10.6 relative paths for Workers are broken - adding here tries to load // the worker from /client, not client-db. this.worker = new Worker( path.join(__dirname, './worker/index.js'), { workerData: { + isTrie, path: dbPath, type } @@ -64,8 +65,11 @@ export default class SyncDb implements TrieDb { async terminate () { this.worker.unref(); + // TODO We should cleanup the trie instance gracefully, so another message here // to cleanup and then the termination up next + + // TODO We should be terminating the worker when no references // return promisify(this.worker, this.worker.terminate); } @@ -90,7 +94,7 @@ export default class SyncDb implements TrieDb { // @ts-ignore Node is a bit ahead, still to be renamed Atomics.notify(state, 0, 1); - Atomics.wait(state, 0, commands.FILL); + Atomics.wait(state, 0, commands.FILL, 5000); } // Ok, this is not something that returns a value, just send the message and diff --git a/packages/client-db/src/Sync/types.d.ts b/packages/client-db/src/Sync/types.d.ts index c015cfd9..0cab59fd 100644 --- a/packages/client-db/src/Sync/types.d.ts +++ b/packages/client-db/src/Sync/types.d.ts @@ -22,6 +22,7 @@ export type Message = MessageData & { } export type WorkerData = { + isTrie: boolean, path: string, type: DbConfig$Type }; diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 16829c31..13880826 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -5,80 +5,81 @@ // import { Message } from '../types'; // import { FnMap } from './types; -console.error('1'); - -// const leveldown = require('leveldown'); +const leveldown = require('leveldown'); +const levelup = require('levelup'); const memdown = require('memdown'); -// import { parentPort, workerData } from 'worker_threads'; -const { parentPort, workerData } = require('worker_threads'); -// import Trie from '@polkadot/trie-db'; +const { parentPort, threadId, workerData } = require('worker_threads'); const Trie = require('@polkadot/trie-db').default; - -console.error('2'); +const encoder = require('@polkadot/trie-db/encoder').default; const { notifyOnDone, notifyOnValue } = require('./notify'); -console.error('3'); +const handlers = {}; -// @ts-ignore Oops, we need the params here -const trie = new Trie( - workerData.type === 'disk' +function initDb () { + const downdb = workerData.type === 'disk' ? leveldown(workerData.path) - : undefined // memdown() -); + : memdown(); -console.error('4'); + return workerData.isTrie + ? new Trie(downdb) + : levelup(encoder(downdb)); +} -// const functions: FnMap = { -const functions = { - // checkpoint: ({ state }: Message) => - checkpoint: ({ state }) => - notifyOnDone(state, () => - trie.checkpoint() - ), - // commit: ({ state }: Message) => - commit: ({ state }) => - notifyOnDone(state, () => - trie.commit() - ), - // commit: ({ state }: Message) => - del: ({ key, state }) => - notifyOnDone(state, () => - trie.del(key) - ), - // get: ({ buffer, key, state }: Message) => - get: ({ buffer, key, state }) => - notifyOnValue(state, buffer, () => - trie.get(key) - ), - // put: ({ key, state, value }: Message) => - put: ({ key, state, value }) => - notifyOnDone(state, () => - trie.put(key, value) - ), - // revert: ({ state }: Message) => - revert: ({ state }) => - notifyOnDone(state, () => - trie.revert() - ), - // getRoot ({ buffer, state }: Message) => - getRoot: ({ buffer, state }) => - notifyOnValue(state, buffer, async () => - trie.root - ), - // setRoot: ({ state, value }: Message) => - setRoot: ({ state, value }) => - notifyOnDone(state, async () => { - trie.root = value; - }) -}; +function initHandlers () { + const db = initDb(); -console.error('trie', trie); + return { + // checkpoint: ({ state }: Message) => + checkpoint: ({ state }) => + notifyOnDone(state, () => + db.checkpoint() + ), + // commit: ({ state }: Message) => + commit: ({ state }) => + notifyOnDone(state, () => + db.commit() + ), + // commit: ({ state }: Message) => + del: ({ key, state }) => + notifyOnDone(state, () => + db.del(key) + ), + // get: ({ buffer, key, state }: Message) => + get: ({ buffer, key, state }) => + notifyOnValue(state, buffer, () => + db.get(key) + ), + // put: ({ key, state, value }: Message) => + put: ({ key, state, value }) => + notifyOnDone(state, () => + db.put(key, value) + ), + // revert: ({ state }: Message) => + revert: ({ state }) => + notifyOnDone(state, () => + db.revert() + ), + // getRoot ({ buffer, state }: Message) => + getRoot: ({ buffer, state }) => + notifyOnValue(state, buffer, async () => + db.root + ), + // setRoot: ({ state, value }: Message) => + setRoot: ({ state, value }) => + notifyOnDone(state, async () => { + db.root = value; + }) + }; +} // parentPort.on('message', (message: Message): void => { parentPort.on('message', (message) => { - console.error('onMessage', message.type); - const fn = functions[message.type]; + if (!handlers[threadId]) { + handlers[threadId] = initHandlers(); + } + + const fn = handlers[threadId][message.type]; if (fn) { fn(message); diff --git a/packages/client-db/src/Sync/worker/notify.js b/packages/client-db/src/Sync/worker/notify.js index 8f9df5f7..54ce735b 100644 --- a/packages/client-db/src/Sync/worker/notify.js +++ b/packages/client-db/src/Sync/worker/notify.js @@ -18,7 +18,7 @@ function notify (state, command) { Atomics.notify(state, 0, 1); if (!exitCommands.includes(command)) { - Atomics.wait(state, 0, command); + Atomics.wait(state, 0, command, 5000); } } diff --git a/packages/client-db/src/Sync/index.spec.js b/packages/client-db/src/Trie.spec.js similarity index 95% rename from packages/client-db/src/Sync/index.spec.js rename to packages/client-db/src/Trie.spec.js index 9fe53716..e50d7317 100644 --- a/packages/client-db/src/Sync/index.spec.js +++ b/packages/client-db/src/Trie.spec.js @@ -4,14 +4,14 @@ import toU8a from '@polkadot/util/u8a/toU8a'; -import SyncDb from './index'; +import TrieDb from './Trie/Memory'; const EMPTY_ROOT = toU8a('0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'); const HELLO_ROOT = toU8a('0x0a915659b88f80bfa200570bd2767a6ab8cb0a4e44fd240cc5ed7a27728c4531'); const FOO_ROOT = toU8a('0xed4e32371288ee83be74f78fb492f01261b7c3dc9c422581bb705c4376492dc6'); -describe('SyncDb', () => { - let memory = new SyncDb(); +describe('TrieDb', () => { + let memory = new TrieDb(); it('starts with the default root', () => { expect( diff --git a/packages/client-db/src/Trie/Disk.ts b/packages/client-db/src/Trie/Disk.ts index 3b311f6e..b79ebdb0 100644 --- a/packages/client-db/src/Trie/Disk.ts +++ b/packages/client-db/src/Trie/Disk.ts @@ -18,7 +18,7 @@ export default class DiskDb extends OverlayDb { mkdirp.sync(path); } - super(new SyncDb('disk', path)); + super(new SyncDb('disk', path, true)); this.hasAtStart = hasAtStart; } diff --git a/packages/client-db/src/Trie/Memory.ts b/packages/client-db/src/Trie/Memory.ts index 3394a70e..0a29b8c2 100644 --- a/packages/client-db/src/Trie/Memory.ts +++ b/packages/client-db/src/Trie/Memory.ts @@ -7,6 +7,6 @@ import OverlayDb from './Overlay'; export default class MemoryDb extends OverlayDb { constructor () { - super(new SyncDb('memory')); + super(new SyncDb('memory', '.', true)); } } diff --git a/packages/client-db/src/types.d.ts b/packages/client-db/src/types.d.ts index e5cb85f7..d3a09ae0 100644 --- a/packages/client-db/src/types.d.ts +++ b/packages/client-db/src/types.d.ts @@ -15,13 +15,8 @@ export type DbConfig = { export interface BaseDb { del: (key: Uint8Array) => void, get: (key: Uint8Array) => Uint8Array | null, - put: (key: Uint8Array, value: Uint8Array) => void -} - -export interface AsyncBaseDb { - del: (key: Uint8Array) => Promise, - get: (key: Uint8Array) => Promise, - put: (key: Uint8Array, value: Uint8Array) => Promise + put: (key: Uint8Array, value: Uint8Array) => void, + terminate: () => Promise } export interface TrieDb extends BaseDb { @@ -29,6 +24,5 @@ export interface TrieDb extends BaseDb { commit: () => void, revert: () => void, getRoot: () => Uint8Array, - setRoot: (value: Uint8Array) => void, - terminate: () => Promise + setRoot: (value: Uint8Array) => void } From 765bb3d2855b860edfb4f37c5b3b97d6fa16aae4 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 31 Jul 2018 11:03:54 +0200 Subject: [PATCH 15/34] TS updates --- package.json | 2 +- packages/client-chains/src/index.ts | 8 +-- packages/client-db/src/Hash/Disk.ts | 2 - packages/client-db/src/Hash/Memory.ts | 2 - packages/client-p2p/src/index.ts | 2 +- packages/client-p2p/src/peer/index.ts | 6 +- packages/client-p2p/src/sync/index.ts | 60 ++++++++--------- packages/client-p2p/src/types.d.ts | 2 +- packages/client-telemetry/src/index.ts | 18 +++--- packages/client-wasm/src/index.ts | 16 ++--- packages/client-wasm/src/types.d.ts | 4 +- packages/client/src/index.ts | 6 +- yarn.lock | 89 ++++---------------------- 13 files changed, 71 insertions(+), 146 deletions(-) diff --git a/package.json b/package.json index 66b2f547..b83b605f 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "scripts": { "build": "polkadot-dev-build-ts && cp -r packages/client/scripts build", - "check": "tslint --project . && tsc --noEmit", + "check": "tslint --project . && tsc --version && tsc --noEmit", "clean": "polkadot-dev-clean-build", "postinstall": "polkadot-dev-yarn-only", "test": "NODE_OPTIONS=--experimental-worker jest --coverage", diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index bc62804f..969acbdb 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -80,11 +80,9 @@ export default class Chain implements ChainInterface { const genesis = this.initGenesisBlock(); - Promise.all([ - this.blocks.bestHash.set(genesis.headerHash), - this.blocks.bestNumber.set(0), - this.blocks.block.set(genesis.block, genesis.headerHash) - ]); + this.blocks.bestHash.set(genesis.headerHash); + this.blocks.bestNumber.set(0); + this.blocks.block.set(genesis.block, genesis.headerHash); return genesis; } diff --git a/packages/client-db/src/Hash/Disk.ts b/packages/client-db/src/Hash/Disk.ts index 214bef38..e32817a6 100644 --- a/packages/client-db/src/Hash/Disk.ts +++ b/packages/client-db/src/Hash/Disk.ts @@ -2,8 +2,6 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import leveldown from 'leveldown'; - import HashBaseDb from './Base'; export default class HashDiskDb extends HashBaseDb { diff --git a/packages/client-db/src/Hash/Memory.ts b/packages/client-db/src/Hash/Memory.ts index 4fd4c84e..33d82945 100644 --- a/packages/client-db/src/Hash/Memory.ts +++ b/packages/client-db/src/Hash/Memory.ts @@ -2,8 +2,6 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import memdown from 'memdown'; - import HashBaseDb from './Base'; export default class HashMemoryDb extends HashBaseDb { diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index dfc2c457..9fcdec91 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -148,7 +148,7 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { peers.log('protocol', peer); - await peer.addConnection(connection, false); + peer.addConnection(connection, false); if (!peer.isWritable()) { this._dialPeers(peer); diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index bf5b4165..95a887c6 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -49,7 +49,7 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { this.shortId = stringShorten(this.id); } - async addConnection (connection: LibP2pConnection, isWritable: boolean): Promise { + addConnection (connection: LibP2pConnection, isWritable: boolean): void { this._receive(connection); if (isWritable) { @@ -63,8 +63,8 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { this.send( new Status({ roles: this.config.roles, - bestNumber: await this.chain.blocks.bestNumber.get(), - bestHash: await this.chain.blocks.bestHash.get(), + bestNumber: this.chain.blocks.bestNumber.get(), + bestHash: this.chain.blocks.bestHash.get(), genesisHash: this.chain.genesis.headerHash, version: defaults.PROTOCOL_VERSION }) diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index 7eae6d43..73fb8aa0 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -36,9 +36,9 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { this.l = logger('sync'); } - async getBlockData (fields: Array, hash: Uint8Array): Promise { + getBlockData (fields: Array, hash: Uint8Array): BlockResponseMessageBlock { const { body, header } = decodeBlock( - await this.chain.blocks.block.get(hash) + this.chain.blocks.block.get(hash) ); const data: BlockResponseMessageBlock = { // hash @@ -63,9 +63,9 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { ); } - async processBlocks () { + processBlocks () { const start = Date.now(); - const bestNumber = await this.chain.blocks.bestNumber.get(); + const bestNumber = this.chain.blocks.bestNumber.get(); const startNumber = bestNumber.addn(1); let nextNumber = startNumber; let count = 0; @@ -95,36 +95,36 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { : 'Idle'; } - async provideBlocks (peer: PeerInterface, request: BlockRequest) { - // const current = (request.from as BN); - // const best = await this.chain.blocks.bestNumber.get(); - // const blocks = []; + provideBlocks (peer: PeerInterface, request: BlockRequest) { + const current = (request.from as BN); + const best = this.chain.blocks.bestNumber.get(); + const blocks = []; - // // FIXME: Also send blocks starting with hash - // const max = Math.min(request.max || defaults.MAX_SYNC_BLOCKS, defaults.MAX_SYNC_BLOCKS); - // let count = isU8a(request.from) ? max : 0; - // const increment = request.direction === 'Ascending' ? new BN(1) : new BN(-1); + // FIXME: Also send blocks starting with hash + const max = Math.min(request.max || defaults.MAX_SYNC_BLOCKS, defaults.MAX_SYNC_BLOCKS); + let count = isU8a(request.from) ? max : 0; + const increment = request.direction === 'Ascending' ? new BN(1) : new BN(-1); - // while (count < max && current.lte(best) && !current.isNeg()) { - // const hash = await this.chain.state.system.blockHashAt.get(current); + while (count < max && current.lte(best) && !current.isNeg()) { + const hash = this.chain.state.system.blockHashAt.get(current); - // blocks.push( - // this.getBlockData(request.fields, hash) - // ); + blocks.push( + this.getBlockData(request.fields, hash) + ); - // count++; - // current.iadd(increment); - // } + count++; + current.iadd(increment); + } - // peer.send( - // new BlockResponse({ - // blocks, - // id: request.id - // }) - // ); + peer.send( + new BlockResponse({ + blocks, + id: request.id + }) + ); } - async queueBlocks (peer: PeerInterface, { blocks, id }: BlockResponseMessage) { + queueBlocks (peer: PeerInterface, { blocks, id }: BlockResponseMessage) { const request = this.blockRequests[peer.id]; delete this.blockRequests[peer.id]; @@ -138,7 +138,7 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { for (let i = 0; i < blocks.length; i++) { const block = blocks[i]; - const data = await this.chain.blocks.block.get(block.hash); + const data = this.chain.blocks.block.get(block.hash); const hasImported = data.length !== 0; const blockNumber = block.header.number.toString(); const hasQueued = !!this.blockQueue[blockNumber]; @@ -157,8 +157,8 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { this.processBlocks(); } - async requestBlocks (peer: PeerInterface) { - const bestNumber = await this.chain.blocks.bestNumber.get(); + requestBlocks (peer: PeerInterface) { + const bestNumber = this.chain.blocks.bestNumber.get(); const from = bestNumber.addn(1); // TODO: This assumes no stale block downloading diff --git a/packages/client-p2p/src/types.d.ts b/packages/client-p2p/src/types.d.ts index 1053ef01..031f37c9 100644 --- a/packages/client-p2p/src/types.d.ts +++ b/packages/client-p2p/src/types.d.ts @@ -46,7 +46,7 @@ export interface PeerInterface { readonly peerInfo: PeerInfo, readonly shortId: string, - addConnection: (connection: LibP2pConnection, isWritable: boolean) => Promise, + addConnection: (connection: LibP2pConnection, isWritable: boolean) => void, isActive: () => boolean, isWritable: () => boolean, getNextId: () => number, diff --git a/packages/client-telemetry/src/index.ts b/packages/client-telemetry/src/index.ts index b3d444ea..102fbbb6 100644 --- a/packages/client-telemetry/src/index.ts +++ b/packages/client-telemetry/src/index.ts @@ -70,23 +70,23 @@ export default class Telemetry implements TelemetryInterface { }; } - async blockImported () { - const bestHash = await this.blocks.bestHash.get(); - const bestNumber = await this.blocks.bestNumber.get(); + blockImported () { + const bestHash = this.blocks.bestHash.get(); + const bestNumber = this.blocks.bestNumber.get(); this.send(new BlockImport(bestHash, bestNumber)); } - async intervalInfo (peers: number, status: SyncStatus) { - const bestHash = await this.blocks.bestHash.get(); - const bestNumber = await this.blocks.bestNumber.get(); + intervalInfo (peers: number, status: SyncStatus) { + const bestHash = this.blocks.bestHash.get(); + const bestNumber = this.blocks.bestNumber.get(); this.send(new Interval(bestHash, bestNumber, peers, status)); } - private async sendInitial () { - const bestHash = await this.blocks.bestHash.get(); - const bestNumber = await this.blocks.bestNumber.get(); + private sendInitial () { + const bestHash = this.blocks.bestHash.get(); + const bestNumber = this.blocks.bestNumber.get(); this.send(new Connected(this.chain, this.name)); this.send(new Started(bestHash, bestNumber)); diff --git a/packages/client-wasm/src/index.ts b/packages/client-wasm/src/index.ts index ce87b312..557b7a84 100644 --- a/packages/client-wasm/src/index.ts +++ b/packages/client-wasm/src/index.ts @@ -102,9 +102,9 @@ export default class Executor implements ExecutorInterface { return result; } - async generateBlock (utxs: Array, timestamp: number = Math.ceil(Date.now() / 1000)): Promise { + generateBlock (utxs: Array, timestamp: number = Math.ceil(Date.now() / 1000)): Uint8Array { const start = Date.now(); - const bestNumber = await this.blockDb.bestNumber.get(); + const bestNumber = this.blockDb.bestNumber.get(); const nextNumber = bestNumber.addn(1); this.l.debug(() => `Generating block #${nextNumber.toString()}`); @@ -113,7 +113,7 @@ export default class Executor implements ExecutorInterface { const extrinsics = this.withInherent(timestamp, utxs); const header = createHeader({ number: nextNumber, - parentHash: await this.blockDb.bestHash.get() + parentHash: this.blockDb.bestHash.get() }, extrinsics); const headerRaw = encodeHeader(header); @@ -137,7 +137,7 @@ export default class Executor implements ExecutorInterface { return block; } - async importBlock (block: Uint8Array): Promise { + importBlock (block: Uint8Array): Executor$BlockImportResult { const start = Date.now(); this.l.debug(() => 'Importing block'); @@ -152,11 +152,9 @@ export default class Executor implements ExecutorInterface { const { body, extrinsics, header, number } = decodeRaw(block); const headerHash = blake2Asu8a(header, 256); - await Promise.all([ - this.blockDb.bestHash.set(headerHash), - this.blockDb.bestNumber.set(number), - this.blockDb.block.set(block, headerHash) - ]); + this.blockDb.bestHash.set(headerHash); + this.blockDb.bestNumber.set(number); + this.blockDb.block.set(block, headerHash); this.l.debug(() => `Imported block #${number.toString()} (${Date.now() - start}ms)`); diff --git a/packages/client-wasm/src/types.d.ts b/packages/client-wasm/src/types.d.ts index 6f659a13..44f36992 100644 --- a/packages/client-wasm/src/types.d.ts +++ b/packages/client-wasm/src/types.d.ts @@ -40,7 +40,7 @@ export type ExecutorInterface = { applyExtrinsic (extrinsic: UncheckedRaw): boolean, executeBlock (block: Uint8Array): boolean, finaliseBlock (header: Uint8Array): Uint8Array, - generateBlock (extrinsics: Array, timestamp?: number): Promise, - importBlock (block: Uint8Array): Promise, + generateBlock (extrinsics: Array, timestamp?: number): Uint8Array, + importBlock (block: Uint8Array): Executor$BlockImportResult, initialiseBlock (header: Uint8Array): boolean }; diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index d1563459..3126d30e 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -82,7 +82,7 @@ class Client { this.informantId = undefined; } - private runInformant = async () => { + private runInformant = () => { if (isUndefined(this.chain) || isUndefined(this.p2p) || isUndefined(this.rpc)) { this.stopInformant(); @@ -90,8 +90,8 @@ class Client { } const numPeers = this.p2p.getNumPeers(); - const bestHash = await this.chain.blocks.bestHash.get(); - const bestNumber = await this.chain.blocks.bestNumber.get(); + const bestHash = this.chain.blocks.bestHash.get(); + const bestNumber = this.chain.blocks.bestNumber.get(); const status = this.p2p.sync.status; this.l.log(`${status} (${numPeers} peers), #${bestNumber.toNumber()}, ${u8aToHex(bestHash, 48)}`); diff --git a/yarn.lock b/yarn.lock index f0224cd3..9e543995 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1411,31 +1411,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-core@^7.0.0-bridge.0: +babel-core@^6.0.0, babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" @@ -1463,26 +1439,6 @@ babel-generator@^6.18.0: source-map "^0.5.6" trim-right "^1.0.1" -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-jest@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" @@ -1530,18 +1486,6 @@ babel-preset-jest@^23.0.1: babel-plugin-jest-hoist "^23.0.1" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1549,7 +1493,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -2333,7 +2277,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0, convert-source-map@^1.4.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2363,7 +2307,7 @@ core-js@^2.4.0: version "2.5.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.2.tgz#bc4648656e7dc9dc80d7d3c7bbc172d96e744e63" -core-js@^2.5.0, core-js@^2.5.7: +core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -2476,7 +2420,7 @@ debug@*, debug@^3.1.0: dependencies: ms "2.0.0" -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -3681,13 +3625,6 @@ hoek@5.x.x: version "5.0.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" @@ -6069,7 +6006,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -6165,7 +6102,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6353,7 +6290,7 @@ priorityqueue@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/priorityqueue/-/priorityqueue-0.2.1.tgz#f57e623f20237f30c142d4cb45fafed9e7d51403" -private@^0.1.6, private@^0.1.8: +private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -7205,7 +7142,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15, source-map-support@^0.4.2: +source-map-support@^0.4.2: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: @@ -7228,7 +7165,7 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.6: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7815,11 +7752,7 @@ typedoc@^0.11.1: typedoc-default-themes "^0.5.0" typescript "2.7.2" -typescript@2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" - -typescript@^2.9.2: +typescript@2.7.2, typescript@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" From f654a7fc4bb9b20abab703ac3ea521c1d7d2f401 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 31 Jul 2018 12:11:05 +0200 Subject: [PATCH 16/34] DBs uses pass-through --- packages/client-chains/package.json | 14 +- packages/client-chains/src/chains/dev.spec.js | 4 +- packages/client-chains/src/index.spec.js | 4 +- packages/client-db-chain/package.json | 10 +- packages/client-db/package.json | 7 +- packages/client-db/src/Sync/worker/index.js | 5 +- packages/client-p2p-messages/package.json | 6 +- packages/client-p2p/package.json | 4 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 2 +- packages/client-runtime/package.json | 4 +- .../src/storage/allocated.spec.js | 2 +- .../client-runtime/src/storage/root.spec.js | 2 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client-wasm/src/executeBlock.spec.js | 4 +- .../client-wasm/src/generateBlock.spec.js | 4 +- .../client-wasm/src/initialiseBlock.spec.js | 4 +- packages/client/package.json | 6 +- yarn.lock | 210 ++++++++++++++++-- 20 files changed, 236 insertions(+), 68 deletions(-) diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 0e7ae9d5..98787b3c 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.33", - "@polkadot/util": "^0.26.33", - "@polkadot/util-crypto": "^0.26.33", - "@polkadot/util-keyring": "^0.26.33" + "@polkadot/storage": "^0.26.35", + "@polkadot/util": "^0.26.35", + "@polkadot/util-crypto": "^0.26.35", + "@polkadot/util-keyring": "^0.26.35" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.33", - "@polkadot/primitives": "^0.26.33", - "@polkadot/storage": "^0.26.33" + "@polkadot/extrinsics": "^0.26.35", + "@polkadot/primitives": "^0.26.35", + "@polkadot/storage": "^0.26.35" } } diff --git a/packages/client-chains/src/chains/dev.spec.js b/packages/client-chains/src/chains/dev.spec.js index 1cac1df2..61ce7b95 100644 --- a/packages/client-chains/src/chains/dev.spec.js +++ b/packages/client-chains/src/chains/dev.spec.js @@ -3,8 +3,8 @@ // of the ISC license. See the LICENSE file for details. import toU8a from '@polkadot/util/u8a/toU8a'; -import HashDb from '@polkadot/client-db/Hash'; -import MemoryDb from '@polkadot/client-db/Memory'; +import HashDb from '@polkadot/client-db/Hash/Memory'; +import MemoryDb from '@polkadot/client-db/Trie/Memory'; import Chain from '../index'; diff --git a/packages/client-chains/src/index.spec.js b/packages/client-chains/src/index.spec.js index 310fb30f..794d262a 100644 --- a/packages/client-chains/src/index.spec.js +++ b/packages/client-chains/src/index.spec.js @@ -2,8 +2,8 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import HashDb from '@polkadot/client-db/Hash'; -import MemoryDb from '@polkadot/client-db/Memory'; +import HashDb from '@polkadot/client-db/Hash/Memory'; +import MemoryDb from '@polkadot/client-db/Trie/Memory'; import Chain from './index'; diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 4a7d9a60..a9846bcd 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.33", - "@polkadot/trie-hash": "^0.26.33", - "@polkadot/util": "^0.26.33", - "@polkadot/util-crypto": "^0.26.33" + "@polkadot/storage": "^0.26.35", + "@polkadot/trie-hash": "^0.26.35", + "@polkadot/util": "^0.26.35", + "@polkadot/util-crypto": "^0.26.35" }, "devDependencies": { - "@polkadot/storage": "^0.26.33" + "@polkadot/storage": "^0.26.35" } } diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 0b112198..7899c0d2 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,11 +35,12 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.33", - "@polkadot/util": "^0.26.33", + "@polkadot/trie-db": "^0.26.35", + "@polkadot/util": "^0.26.35", "@types/mkdirp": "^0.5.2", "leveldown": "^4.0.1", - "mkdirp": "^0.5.1" + "mkdirp": "^0.5.1", + "rocksdb": "^3.0.1" }, "devDependencies": { "@polkadot/client": "^0.13.8", diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 13880826..bf08c14b 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -5,9 +5,10 @@ // import { Message } from '../types'; // import { FnMap } from './types; -const leveldown = require('leveldown'); +// const leveldown = require('leveldown'); const levelup = require('levelup'); const memdown = require('memdown'); +// const rocksdb = require('rocksdb'); const { parentPort, threadId, workerData } = require('worker_threads'); const Trie = require('@polkadot/trie-db').default; const encoder = require('@polkadot/trie-db/encoder').default; @@ -18,7 +19,7 @@ const handlers = {}; function initDb () { const downdb = workerData.type === 'disk' - ? leveldown(workerData.path) + ? rocksdb(workerData.path) : memdown(); return workerData.isTrie diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index 2ff927d3..dce11798 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.33", - "@polkadot/primitives": "^0.26.33", - "@polkadot/util": "^0.26.33" + "@polkadot/jsonrpc": "^0.26.35", + "@polkadot/primitives": "^0.26.35", + "@polkadot/util": "^0.26.35" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index cf584abb..c18a2be2 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.33", - "@polkadot/util": "^0.26.33", + "@polkadot/primitives": "^0.26.35", + "@polkadot/util": "^0.26.35", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 2a825d0c..f46de8b1 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.33", - "@polkadot/primitives": "^0.26.33", - "@polkadot/util": "^0.26.33" + "@polkadot/jsonrpc": "^0.26.35", + "@polkadot/primitives": "^0.26.35", + "@polkadot/util": "^0.26.35" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index a927f1ba..48e823b5 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -40,7 +40,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.33", + "@polkadot/util": "^0.26.35", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 0101d11a..e1b41c0b 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.33", - "@polkadot/util-crypto": "^0.26.33" + "@polkadot/util": "^0.26.35", + "@polkadot/util-crypto": "^0.26.35" } } diff --git a/packages/client-runtime/src/storage/allocated.spec.js b/packages/client-runtime/src/storage/allocated.spec.js index d4c98cc4..6f2b1dfb 100644 --- a/packages/client-runtime/src/storage/allocated.spec.js +++ b/packages/client-runtime/src/storage/allocated.spec.js @@ -3,7 +3,7 @@ // of the ISC license. See the LICENSE file for details. /* eslint camelcase: 0 */ -import HashDb from '@polkadot/client-db/Hash'; +import HashDb from '@polkadot/client-db/Hash/Memory'; import logger from '@polkadot/util/logger'; import u8aFromString from '@polkadot/util/u8a/fromString'; diff --git a/packages/client-runtime/src/storage/root.spec.js b/packages/client-runtime/src/storage/root.spec.js index eef164db..7b54ee99 100644 --- a/packages/client-runtime/src/storage/root.spec.js +++ b/packages/client-runtime/src/storage/root.spec.js @@ -3,7 +3,7 @@ // of the ISC license. See the LICENSE file for details. /* eslint camelcase: 0 */ -import MemoryDb from '@polkadot/client-db/Memory'; +import MemoryDb from '@polkadot/client-db/Trie/Memory'; import logger from '@polkadot/util/logger'; import hexToU8a from '@polkadot/util/hex/toU8a'; import u8aFromString from '@polkadot/util/u8a/fromString'; diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 2580247f..dfa616b5 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.33", + "@polkadot/util": "^0.26.35", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index fc770b6f..e7420dca 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.33", - "@polkadot/util": "^0.26.33", + "@polkadot/primitives": "^0.26.35", + "@polkadot/util": "^0.26.35", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client-wasm/src/executeBlock.spec.js b/packages/client-wasm/src/executeBlock.spec.js index 449d9c07..d2bcffa9 100644 --- a/packages/client-wasm/src/executeBlock.spec.js +++ b/packages/client-wasm/src/executeBlock.spec.js @@ -2,8 +2,8 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import HashDb from '@polkadot/client-db/Hash'; -import MemoryDb from '@polkadot/client-db/Memory'; +import HashDb from '@polkadot/client-db/Hash/Memory'; +import MemoryDb from '@polkadot/client-db/Trie/Memory'; import Chain from '@polkadot/client-chains'; diff --git a/packages/client-wasm/src/generateBlock.spec.js b/packages/client-wasm/src/generateBlock.spec.js index 678d96b6..dd442b37 100644 --- a/packages/client-wasm/src/generateBlock.spec.js +++ b/packages/client-wasm/src/generateBlock.spec.js @@ -2,8 +2,8 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import HashDb from '@polkadot/client-db/Hash'; -import MemoryDb from '@polkadot/client-db/Memory'; +import HashDb from '@polkadot/client-db/Hash/Memory'; +import MemoryDb from '@polkadot/client-db/Trie/Memory'; import methods from '@polkadot/extrinsics'; import encodeUnchecked from '@polkadot/extrinsics/codec/encode/unchecked'; import u8aConcat from '@polkadot/util/u8a/concat'; diff --git a/packages/client-wasm/src/initialiseBlock.spec.js b/packages/client-wasm/src/initialiseBlock.spec.js index d043c5c8..000a3a01 100644 --- a/packages/client-wasm/src/initialiseBlock.spec.js +++ b/packages/client-wasm/src/initialiseBlock.spec.js @@ -4,8 +4,8 @@ import createHeader from '@polkadot/primitives/create/header'; import encodeHeader from '@polkadot/primitives/codec/header/encode'; -import HashDb from '@polkadot/client-db/Hash'; -import MemoryDb from '@polkadot/client-db/Memory'; +import HashDb from '@polkadot/client-db/Hash/Memory'; +import MemoryDb from '@polkadot/client-db/Trie/Memory'; import Chain from '@polkadot/client-chains'; diff --git a/packages/client/package.json b/packages/client/package.json index b67c5ffc..1a5b1117 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.33", - "@polkadot/primitives": "^0.26.33", - "@polkadot/util": "^0.26.33", + "@polkadot/jsonrpc": "^0.26.35", + "@polkadot/primitives": "^0.26.35", + "@polkadot/util": "^0.26.35", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 9e543995..aa0ec9a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -760,11 +760,20 @@ "@polkadot/primitives" "^0.26.33" "@polkadot/util" "^0.26.33" -"@polkadot/jsonrpc@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.33.tgz#ad1c7802328ccf45ddda3df7c8262bb71d70ac6b" +"@polkadot/extrinsics@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.35.tgz#cc9b14f1f421f00ea4fde251ff023dd225e7dad7" dependencies: - "@polkadot/params" "^0.26.33" + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/params" "^0.26.35" + "@polkadot/primitives" "^0.26.35" + "@polkadot/util" "^0.26.35" + +"@polkadot/jsonrpc@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.35.tgz#87db53388ea9ee6fc165c5730742cad06e692668" + dependencies: + "@polkadot/params" "^0.26.35" babel-runtime "^6.26.0" "@polkadot/params@^0.26.33": @@ -776,6 +785,15 @@ "@polkadot/primitives" "^0.26.33" "@polkadot/util" "^0.26.33" +"@polkadot/params@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.35.tgz#92df414f862f8bfd18b551a21eff5e996c3c1eca" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/extrinsics" "^0.26.35" + "@polkadot/primitives" "^0.26.35" + "@polkadot/util" "^0.26.35" + "@polkadot/primitives@^0.26.33": version "0.26.33" resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.33.tgz#32caec98d3a711f24014bd9ff3e38e1117de2c32" @@ -784,6 +802,14 @@ "@polkadot/trie-hash" "^0.26.33" "@polkadot/util" "^0.26.33" +"@polkadot/primitives@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.35.tgz#03cf35b8765081b3988153c45d27762db0900011" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/trie-hash" "^0.26.35" + "@polkadot/util" "^0.26.35" + "@polkadot/storage@^0.26.33": version "0.26.33" resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.33.tgz#adc05617d2c53a402ff8f5241de1b0c81cf1b5f7" @@ -795,15 +821,26 @@ "@polkadot/util-crypto" "^0.26.33" "@polkadot/util-keyring" "^0.26.33" -"@polkadot/trie-db@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.33.tgz#853e07cc904ec1686a6001cc79f6fb223792c53b" +"@polkadot/storage@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.35.tgz#2d4e3aac47612b0319c0c69f369974266d1c1d04" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.33" - "@polkadot/util" "^0.26.33" - "@polkadot/util-crypto" "^0.26.33" - "@polkadot/util-rlp" "^0.26.33" + "@polkadot/params" "^0.26.35" + "@polkadot/primitives" "^0.26.35" + "@polkadot/util" "^0.26.35" + "@polkadot/util-crypto" "^0.26.35" + "@polkadot/util-keyring" "^0.26.35" + +"@polkadot/trie-db@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.35.tgz#c8b36e6e9043d9b35d885e05dda20d244854b9ba" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/trie-hash" "^0.26.35" + "@polkadot/util" "^0.26.35" + "@polkadot/util-crypto" "^0.26.35" + "@polkadot/util-rlp" "^0.26.35" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -823,6 +860,15 @@ "@polkadot/util-crypto" "^0.26.33" "@polkadot/util-rlp" "^0.26.33" +"@polkadot/trie-hash@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.35.tgz#632ba48fca8c82a0c4f4af8887b275d7b46045cc" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.35" + "@polkadot/util-crypto" "^0.26.35" + "@polkadot/util-rlp" "^0.26.35" + "@polkadot/ts@^0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.9.tgz#86010c5a4d63c0fb6b3e85d29db40dcf43c5d7c1" @@ -838,6 +884,17 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" +"@polkadot/util-crypto@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.35.tgz#74948946cc266d228b4636953c16c96e99626090" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.35" + blakejs "^1.1.0" + js-sha3 "^0.7.0" + tweetnacl "^1.0.0" + xxhashjs "^0.2.2" + "@polkadot/util-keyring@^0.26.33": version "0.26.33" resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.33.tgz#e6407e75a821a0e5616ad9c7895c471f83e75e3f" @@ -848,6 +905,16 @@ "@types/bs58" "^3.0.30" bs58 "^4.0.1" +"@polkadot/util-keyring@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.35.tgz#266002c6591665cf8a7df6c5ad3ed840f8b400a5" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.35" + "@polkadot/util-crypto" "^0.26.35" + "@types/bs58" "^3.0.30" + bs58 "^4.0.1" + "@polkadot/util-rlp@^0.26.33": version "0.26.33" resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.33.tgz#9af719a3bbcc2d64b166850b8b2d0a361fcaba55" @@ -855,6 +922,13 @@ "@babel/runtime" "^7.0.0-beta.51" "@polkadot/util" "^0.26.33" +"@polkadot/util-rlp@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.35.tgz#f6e4d01a6f87a7882ba5b4d9bc819365d1d138b8" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@polkadot/util" "^0.26.35" + "@polkadot/util@^0.26.33": version "0.26.33" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.33.tgz#41497f90e1c8b6335b88bb06a58dc8dee82b2cef" @@ -870,6 +944,21 @@ ip-regex "^2.1.0" moment "^2.22.2" +"@polkadot/util@^0.26.35": + version "0.26.35" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.35.tgz#c63d8f14a5eadb668f00ca09ee40862c87b53e2e" + dependencies: + "@babel/runtime" "^7.0.0-beta.51" + "@types/bn.js" "^4.11.1" + "@types/deasync" "^0.1.0" + "@types/ip-regex" "^2.0.0" + "@types/xxhashjs" "^0.1.1" + bn.js "^4.11.8" + chalk "^2.4.1" + deasync "^0.1.13" + ip-regex "^2.1.0" + moment "^2.22.2" + "@polkadot/wasm-bin@paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324": version "20180601.165414.0" resolved "https://codeload.github.com/paritytech/polkadot-wasm-bin/tar.gz/5ab4fc6083501b26e5fd979b93c35e2f9010b324" @@ -1411,7 +1500,31 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.0.0, babel-core@^7.0.0-bridge.0: +babel-core@^6.0.0, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" @@ -1439,6 +1552,26 @@ babel-generator@^6.18.0: source-map "^0.5.6" trim-right "^1.0.1" +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-jest@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" @@ -1486,6 +1619,18 @@ babel-preset-jest@^23.0.1: babel-plugin-jest-hoist "^23.0.1" babel-plugin-syntax-object-rest-spread "^6.13.0" +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1493,7 +1638,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0: +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -2277,7 +2422,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.1.0, convert-source-map@^1.4.0: +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2307,7 +2452,7 @@ core-js@^2.4.0: version "2.5.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.2.tgz#bc4648656e7dc9dc80d7d3c7bbc172d96e744e63" -core-js@^2.5.7: +core-js@^2.5.0, core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -2420,7 +2565,7 @@ debug@*, debug@^3.1.0: dependencies: ms "2.0.0" -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -3625,6 +3770,13 @@ hoek@5.x.x: version "5.0.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" @@ -6006,7 +6158,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -6102,7 +6254,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6290,7 +6442,7 @@ priorityqueue@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/priorityqueue/-/priorityqueue-0.2.1.tgz#f57e623f20237f30c142d4cb45fafed9e7d51403" -private@^0.1.6: +private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -6898,6 +7050,16 @@ ripemd160@^2.0.0: hash-base "^2.0.0" inherits "^2.0.1" +rocksdb@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/rocksdb/-/rocksdb-3.0.1.tgz#87a774ab39b7589ab31b1d8fcf92cfecc0d8ca0f" + dependencies: + abstract-leveldown "~5.0.0" + bindings "~1.3.0" + fast-future "~1.0.2" + nan "~2.10.0" + prebuild-install "^4.0.0" + rsa-pem-to-jwk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz#245e76bdb7e7234cfee7ca032d31b54c38fab98e" @@ -7142,7 +7304,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.2: +source-map-support@^0.4.15, source-map-support@^0.4.2: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: @@ -7165,7 +7327,7 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.6: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7752,7 +7914,11 @@ typedoc@^0.11.1: typedoc-default-themes "^0.5.0" typescript "2.7.2" -typescript@2.7.2, typescript@^2.9.2: +typescript@2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" + +typescript@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" From 3695310a865d2397c3e64453ab31ccef7718a1ad Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 31 Jul 2018 17:27:40 +0200 Subject: [PATCH 17/34] Back to sync-ing again --- .../client-p2p-messages/src/Transactions.ts | 2 +- packages/client-p2p/src/create/modules.ts | 4 +- packages/client-p2p/src/defaults.ts | 2 +- packages/client-p2p/src/handler/status.ts | 2 +- packages/client-p2p/src/index.ts | 10 +- packages/client-p2p/src/peer/index.ts | 4 +- packages/client-p2p/src/sync/index.ts | 6 +- packages/client-rpc/package.json | 2 +- yarn.lock | 192 ++---------------- 9 files changed, 35 insertions(+), 189 deletions(-) diff --git a/packages/client-p2p-messages/src/Transactions.ts b/packages/client-p2p-messages/src/Transactions.ts index 27cbb7e4..81144753 100644 --- a/packages/client-p2p-messages/src/Transactions.ts +++ b/packages/client-p2p-messages/src/Transactions.ts @@ -34,7 +34,7 @@ export default class Transactions extends BaseMessage implements MessageInterfac toJSON (): any { return { transactions: this.transactions.map((transaction) => - u8aToHex(transaction) + u8aToHex(transaction, 128) ) }; } diff --git a/packages/client-p2p/src/create/modules.ts b/packages/client-p2p/src/create/modules.ts index 4982a8d8..e661e83a 100644 --- a/packages/client-p2p/src/create/modules.ts +++ b/packages/client-p2p/src/create/modules.ts @@ -8,7 +8,7 @@ import DHT from 'libp2p-kad-dht'; import mplex from 'libp2p-mplex'; // import Multicast from 'libp2p-mdns'; import Railing from 'libp2p-railing'; -// import secio from 'libp2p-secio'; +import secio from 'libp2p-secio'; import spdy from 'libp2p-spdy'; import TCP from 'libp2p-tcp'; import PeerInfo from 'peer-info'; @@ -19,7 +19,7 @@ export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes, return { connEncryption: [ - // secio + secio ], streamMuxer: [ mplex, diff --git a/packages/client-p2p/src/defaults.ts b/packages/client-p2p/src/defaults.ts index f6f8dbb7..d3c5db71 100644 --- a/packages/client-p2p/src/defaults.ts +++ b/packages/client-p2p/src/defaults.ts @@ -8,7 +8,7 @@ const ADDRESS = '127.0.0.1'; const CLIENT_ID = 'polkadot-js/0.0.0'; const MAX_PEERS = 25; const MAX_SYNC_BLOCKS = 64; -const PORT = 39933; +const PORT = 31333; const ROLE: Role = 'full'; const PROTOCOL_BASE = '/substrate'; const PROTOCOL_TYPE = '/dot'; diff --git a/packages/client-p2p/src/handler/status.ts b/packages/client-p2p/src/handler/status.ts index dc8afa4a..65c495ea 100644 --- a/packages/client-p2p/src/handler/status.ts +++ b/packages/client-p2p/src/handler/status.ts @@ -14,7 +14,7 @@ function handleStatus (self: P2pInterface, peer: PeerInterface, message: Status) const { bestHash, bestNumber } = message; peer.setBest(bestNumber, bestHash); - self.sync.requestBlocks(peer); + // self.sync.requestBlocks(peer); } (handleStatus as Handler).type = Status.type; diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 9fcdec91..5041d7db 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -157,11 +157,11 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { this.l.error('protocol handling error', error); } } - , (protocol: string, requested: string, callback: (error: null, accept: boolean) => void): void => { - this.l.debug(() => `matching protocol ${requested}`); + // , (protocol: string, requested: string, callback: (error: null, accept: boolean) => void): void => { + // this.l.debug(() => `matching protocol ${requested}`); - callback(null, requested.indexOf(defaults.PROTOCOL) === 0); - } + // callback(null, requested.indexOf(defaults.PROTOCOL) === 0); + // } ); } @@ -182,6 +182,8 @@ export default class P2p extends E3.EventEmitter implements P2pInterface { connection ); + // FIXME Once uni-directional pings are available network-wide, properly ping, + // don't just pong pull( connection, pull.drain( diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index 95a887c6..c635cd46 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -22,7 +22,7 @@ import logger from '@polkadot/util/logger'; import stringShorten from '@polkadot/util/string/shorten'; import u8aConcat from '@polkadot/util/u8a/concat'; import u8aToBuffer from '@polkadot/util/u8a/toBuffer'; -// import u8aToHex from '@polkadot/util/u8a/toHex'; +import u8aToHex from '@polkadot/util/u8a/toHex'; import defaults from '../defaults'; @@ -123,7 +123,7 @@ export default class Peer extends E3.EventEmitter implements PeerInterface { const encoded = message.encode(); const length = varint.encode(encoded.length + 1); - // this.l.debug(() => `sending ${u8aToHex(encoded)}`); + this.l.debug(() => `sending ${u8aToHex(encoded)}`); this.pushable.push( u8aToBuffer( diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index 73fb8aa0..44225615 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -73,7 +73,7 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { while (this.blockQueue[nextNumber.toString()]) { const { hash, encoded } = this.blockQueue[nextNumber.toString()]; - this.l.debug(() => `Importing block #${nextNumber.toString()}, ${u8aToHex(hash)}`); + // this.l.debug(() => `Importing block #${nextNumber.toString()}, ${u8aToHex(hash)}`); if (!this.chain.executor.importBlock(encoded)) { break; @@ -166,13 +166,13 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { return; } - this.l.debug(() => `Requesting blocks from ${peer.shortId}, #${from.toString()} -`); - const request = new BlockRequest({ from, id: peer.getNextId() }); + this.l.debug(() => `Requesting blocks from ${peer.shortId}, #${from.toString()} -`); + this.blockRequests[peer.id] = { peer, request diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 48e823b5..3f9e9488 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,7 +34,7 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.14.25", + "@polkadot/api-provider": "^0.14.26", "@polkadot/client": "^0.13.8" }, "dependencies": { diff --git a/yarn.lock b/yarn.lock index aa0ec9a7..2c892d2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -691,15 +691,15 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" -"@polkadot/api-provider@^0.14.25": - version "0.14.25" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.25.tgz#6dc787cd0c067c3d509526716c84c285ee9b9a6a" +"@polkadot/api-provider@^0.14.26": + version "0.14.26" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.26.tgz#d9869ba02df2b88b79e15c1c84ab60ac1fb4e417" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/storage" "^0.26.33" - "@polkadot/util" "^0.26.33" - "@polkadot/util-crypto" "^0.26.33" - "@polkadot/util-keyring" "^0.26.33" + "@polkadot/storage" "^0.26.35" + "@polkadot/util" "^0.26.35" + "@polkadot/util-crypto" "^0.26.35" + "@polkadot/util-keyring" "^0.26.35" "@types/nock" "^9.1.3" eventemitter3 "^2.0.3" isomorphic-fetch "^2.2.1" @@ -751,15 +751,6 @@ typedoc "^0.11.1" typescript "^2.9.2" -"@polkadot/extrinsics@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.33.tgz#afb5a3ed880d90d07a41d7ab1b770c4eee3771e4" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.33" - "@polkadot/primitives" "^0.26.33" - "@polkadot/util" "^0.26.33" - "@polkadot/extrinsics@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.35.tgz#cc9b14f1f421f00ea4fde251ff023dd225e7dad7" @@ -776,15 +767,6 @@ "@polkadot/params" "^0.26.35" babel-runtime "^6.26.0" -"@polkadot/params@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.33.tgz#f04e030e6431dd18344c564c62fa7eb3120d2855" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.33" - "@polkadot/primitives" "^0.26.33" - "@polkadot/util" "^0.26.33" - "@polkadot/params@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.35.tgz#92df414f862f8bfd18b551a21eff5e996c3c1eca" @@ -794,14 +776,6 @@ "@polkadot/primitives" "^0.26.35" "@polkadot/util" "^0.26.35" -"@polkadot/primitives@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.33.tgz#32caec98d3a711f24014bd9ff3e38e1117de2c32" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.33" - "@polkadot/util" "^0.26.33" - "@polkadot/primitives@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.35.tgz#03cf35b8765081b3988153c45d27762db0900011" @@ -810,17 +784,6 @@ "@polkadot/trie-hash" "^0.26.35" "@polkadot/util" "^0.26.35" -"@polkadot/storage@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.33.tgz#adc05617d2c53a402ff8f5241de1b0c81cf1b5f7" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.33" - "@polkadot/primitives" "^0.26.33" - "@polkadot/util" "^0.26.33" - "@polkadot/util-crypto" "^0.26.33" - "@polkadot/util-keyring" "^0.26.33" - "@polkadot/storage@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.35.tgz#2d4e3aac47612b0319c0c69f369974266d1c1d04" @@ -851,15 +814,6 @@ readable-stream "^2.2.8" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.33.tgz#5bc89557ea26d775583cb30b8be6e827dd65ea5e" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.33" - "@polkadot/util-crypto" "^0.26.33" - "@polkadot/util-rlp" "^0.26.33" - "@polkadot/trie-hash@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.35.tgz#632ba48fca8c82a0c4f4af8887b275d7b46045cc" @@ -873,17 +827,6 @@ version "0.1.9" resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.9.tgz#86010c5a4d63c0fb6b3e85d29db40dcf43c5d7c1" -"@polkadot/util-crypto@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.33.tgz#f447880d3793922d9ec8bf4a5d1b2a832a088093" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.33" - blakejs "^1.1.0" - js-sha3 "^0.7.0" - tweetnacl "^1.0.0" - xxhashjs "^0.2.2" - "@polkadot/util-crypto@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.35.tgz#74948946cc266d228b4636953c16c96e99626090" @@ -895,16 +838,6 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-keyring@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.33.tgz#e6407e75a821a0e5616ad9c7895c471f83e75e3f" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.33" - "@polkadot/util-crypto" "^0.26.33" - "@types/bs58" "^3.0.30" - bs58 "^4.0.1" - "@polkadot/util-keyring@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.35.tgz#266002c6591665cf8a7df6c5ad3ed840f8b400a5" @@ -915,13 +848,6 @@ "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.33.tgz#9af719a3bbcc2d64b166850b8b2d0a361fcaba55" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.33" - "@polkadot/util-rlp@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.35.tgz#f6e4d01a6f87a7882ba5b4d9bc819365d1d138b8" @@ -929,21 +855,6 @@ "@babel/runtime" "^7.0.0-beta.51" "@polkadot/util" "^0.26.35" -"@polkadot/util@^0.26.33": - version "0.26.33" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.33.tgz#41497f90e1c8b6335b88bb06a58dc8dee82b2cef" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@types/bn.js" "^4.11.1" - "@types/deasync" "^0.1.0" - "@types/ip-regex" "^2.0.0" - "@types/xxhashjs" "^0.1.1" - bn.js "^4.11.8" - chalk "^2.4.1" - deasync "^0.1.13" - ip-regex "^2.1.0" - moment "^2.22.2" - "@polkadot/util@^0.26.35": version "0.26.35" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.35.tgz#c63d8f14a5eadb668f00ca09ee40862c87b53e2e" @@ -1500,31 +1411,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-core@^7.0.0-bridge.0: +babel-core@^6.0.0, babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" @@ -1552,26 +1439,6 @@ babel-generator@^6.18.0: source-map "^0.5.6" trim-right "^1.0.1" -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-jest@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" @@ -1619,18 +1486,6 @@ babel-preset-jest@^23.0.1: babel-plugin-jest-hoist "^23.0.1" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1638,7 +1493,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -2422,7 +2277,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0, convert-source-map@^1.4.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2452,7 +2307,7 @@ core-js@^2.4.0: version "2.5.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.2.tgz#bc4648656e7dc9dc80d7d3c7bbc172d96e744e63" -core-js@^2.5.0, core-js@^2.5.7: +core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -2565,7 +2420,7 @@ debug@*, debug@^3.1.0: dependencies: ms "2.0.0" -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -3770,13 +3625,6 @@ hoek@5.x.x: version "5.0.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" @@ -6158,7 +6006,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -6254,7 +6102,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6442,7 +6290,7 @@ priorityqueue@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/priorityqueue/-/priorityqueue-0.2.1.tgz#f57e623f20237f30c142d4cb45fafed9e7d51403" -private@^0.1.6, private@^0.1.8: +private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -7304,7 +7152,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15, source-map-support@^0.4.2: +source-map-support@^0.4.2: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: @@ -7327,7 +7175,7 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.6: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7914,11 +7762,7 @@ typedoc@^0.11.1: typedoc-default-themes "^0.5.0" typescript "2.7.2" -typescript@2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" - -typescript@^2.9.2: +typescript@2.7.2, typescript@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" From b365f30bb7a1ac96376945942f01a536e2e01d9f Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 1 Aug 2018 11:15:11 +0200 Subject: [PATCH 18/34] Update checks --- packages/client-db/src/Sync/worker/index.js | 14 ++++++++++---- packages/client-p2p/src/create/modules.ts | 2 +- packages/client-p2p/src/create/node.spec.js | 2 +- packages/client-p2p/src/peers/add.spec.js | 4 ++-- packages/client-p2p/src/peers/index.ts | 6 ++++++ packages/client-p2p/src/sync/index.ts | 6 +++--- packages/client-rpc/src/stop.spec.js | 8 +++++++- 7 files changed, 30 insertions(+), 12 deletions(-) diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index bf08c14b..6099632a 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -5,21 +5,27 @@ // import { Message } from '../types'; // import { FnMap } from './types; -// const leveldown = require('leveldown'); +// FIXME Waiting on native lib support in workers - +// https://github.com/nodejs/node/issues/21481 +// https://github.com/nodejs/node/issues/21783 +// const leveldb = require('leveldown'); +// const leveldb = require('rocksdb'); +const leveldb = undefined; + const levelup = require('levelup'); const memdown = require('memdown'); -// const rocksdb = require('rocksdb'); const { parentPort, threadId, workerData } = require('worker_threads'); const Trie = require('@polkadot/trie-db').default; const encoder = require('@polkadot/trie-db/encoder').default; +const isFunction = require('@polkadot/util/is/function').default; const { notifyOnDone, notifyOnValue } = require('./notify'); const handlers = {}; function initDb () { - const downdb = workerData.type === 'disk' - ? rocksdb(workerData.path) + const downdb = isFunction(leveldb) && workerData.type === 'disk' + ? leveldb(workerData.path) : memdown(); return workerData.isTrie diff --git a/packages/client-p2p/src/create/modules.ts b/packages/client-p2p/src/create/modules.ts index e661e83a..89ccb524 100644 --- a/packages/client-p2p/src/create/modules.ts +++ b/packages/client-p2p/src/create/modules.ts @@ -15,7 +15,7 @@ import PeerInfo from 'peer-info'; // import WS from 'libp2p-websockets'; export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes, nodes: P2pNodes): LibP2p.OptionsModules { - const list = bootNodes.concat(nodes).map((node) => node.replace('/p2p/', '/ipfs/')); + const list = nodes/*.concat(bootNodes)*/.map((node) => node.replace('/p2p/', '/ipfs/')); return { connEncryption: [ diff --git a/packages/client-p2p/src/create/node.spec.js b/packages/client-p2p/src/create/node.spec.js index ff7eb0bd..74508bae 100644 --- a/packages/client-p2p/src/create/node.spec.js +++ b/packages/client-p2p/src/create/node.spec.js @@ -29,7 +29,7 @@ describe('createNode', () => { }); it('creates a valid LibP2p instance', async () => { - const libp2p = await createNode({ p2p: { address: '127.0.0.1', port: 36789 } }, l); + const libp2p = await createNode({ p2p: { address: '127.0.0.1', port: 36789 } }, { chain: { bootNodes: [] } }, l); expect( isInstanceOf(libp2p, LibP2P) diff --git a/packages/client-p2p/src/peers/add.spec.js b/packages/client-p2p/src/peers/add.spec.js index 6a885298..0afedef1 100644 --- a/packages/client-p2p/src/peers/add.spec.js +++ b/packages/client-p2p/src/peers/add.spec.js @@ -24,14 +24,14 @@ describe('add', () => { it('adds the peer', () => { peers.add(peerInfo); - expect(peers.count()).toEqual(1); + expect(peers.countAll()).toEqual(1); }); it('does not re-add a peer', () => { peers.add(peerInfo); peers.add(peerInfo); - expect(peers.count()).toEqual(1); + expect(peers.countAll()).toEqual(1); }); it('emits message when peer receives', (done) => { diff --git a/packages/client-p2p/src/peers/index.ts b/packages/client-p2p/src/peers/index.ts index 3e50013a..4f180d2a 100644 --- a/packages/client-p2p/src/peers/index.ts +++ b/packages/client-p2p/src/peers/index.ts @@ -54,6 +54,12 @@ export default class Peers extends E3.EventEmitter implements PeersInterface { return peer; } + countAll (): number { + return Object + .values(this.map) + .length; + } + count (): number { return Object .values(this.map) diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index 44225615..e04b0537 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -16,7 +16,7 @@ import BlockResponse from '@polkadot/client-p2p-messages/BlockResponse'; import decodeBlock from '@polkadot/primitives/codec/block/decodeRaw'; import isU8a from '@polkadot/util/is/u8a'; import logger from '@polkadot/util/logger'; -import u8aToHex from '@polkadot/util/u8a/toHex'; +// import u8aToHex from '@polkadot/util/u8a/toHex'; import defaults from '../defaults'; @@ -71,9 +71,9 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { let count = 0; while (this.blockQueue[nextNumber.toString()]) { - const { hash, encoded } = this.blockQueue[nextNumber.toString()]; + const { encoded } = this.blockQueue[nextNumber.toString()]; - // this.l.debug(() => `Importing block #${nextNumber.toString()}, ${u8aToHex(hash)}`); + // this.l.debug(() => `Importing block #${nextNumber.toString()}`); if (!this.chain.executor.importBlock(encoded)) { break; diff --git a/packages/client-rpc/src/stop.spec.js b/packages/client-rpc/src/stop.spec.js index 211953db..72f7bde8 100644 --- a/packages/client-rpc/src/stop.spec.js +++ b/packages/client-rpc/src/stop.spec.js @@ -17,8 +17,14 @@ describe('stop', () => { types: ['http'] } }; + const chain = { + chain: { + name: 'test' + }, + state: {} + }; - server = new Rpc(config, { state: {} }); + server = new Rpc(config, chain); server.servers = [{ close: () => true }]; From 1e32ab5d933c22f1e0472741f71c5d6c10f8f549 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 4 Aug 2018 14:20:20 +0200 Subject: [PATCH 19/34] On-disk DB to JS-only medea (stop-gap) --- package.json | 2 +- packages/client-chains/package.json | 14 +- packages/client-chains/src/chains/dev.spec.js | 10 +- packages/client-chains/src/index.spec.js | 10 +- packages/client-db-chain/package.json | 10 +- packages/client-db-chain/src/state/index.ts | 10 +- packages/client-db-chain/src/types.d.ts | 4 +- packages/client-db/package.json | 5 +- packages/client-db/src/Sync/worker/index.js | 3 +- packages/client-p2p-messages/package.json | 6 +- packages/client-p2p/package.json | 4 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 4 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client-wasm/src/executeBlock.spec.js | 10 +- .../client-wasm/src/generateBlock.spec.js | 9 +- .../client-wasm/src/initialiseBlock.spec.js | 2 +- packages/client/package.json | 6 +- yarn.lock | 273 +++++++++++++----- 21 files changed, 252 insertions(+), 146 deletions(-) diff --git a/package.json b/package.json index b83b605f..32a28801 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "@polkadot/dev": "^0.20.12", - "@polkadot/ts": "^0.1.9", + "@polkadot/ts": "^0.1.10", "lerna": "^2.11.0" } } diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 98787b3c..a0e07c39 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.35", - "@polkadot/util": "^0.26.35", - "@polkadot/util-crypto": "^0.26.35", - "@polkadot/util-keyring": "^0.26.35" + "@polkadot/storage": "^0.26.36", + "@polkadot/util": "^0.26.36", + "@polkadot/util-crypto": "^0.26.36", + "@polkadot/util-keyring": "^0.26.36" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.35", - "@polkadot/primitives": "^0.26.35", - "@polkadot/storage": "^0.26.35" + "@polkadot/extrinsics": "^0.26.36", + "@polkadot/primitives": "^0.26.36", + "@polkadot/storage": "^0.26.36" } } diff --git a/packages/client-chains/src/chains/dev.spec.js b/packages/client-chains/src/chains/dev.spec.js index 61ce7b95..6a484f92 100644 --- a/packages/client-chains/src/chains/dev.spec.js +++ b/packages/client-chains/src/chains/dev.spec.js @@ -3,15 +3,11 @@ // of the ISC license. See the LICENSE file for details. import toU8a from '@polkadot/util/u8a/toU8a'; -import HashDb from '@polkadot/client-db/Hash/Memory'; -import MemoryDb from '@polkadot/client-db/Trie/Memory'; import Chain from '../index'; describe('genesis', () => { - const blockDb = new HashDb(); - const stateDb = new MemoryDb(); - const genesis = new Chain({ chain: 'dev' }, stateDb, blockDb).genesis; + const genesis = new Chain({ chain: 'dev' }).genesis; it('creates a correct genesis block (stateRoot)', () => { expect( @@ -42,8 +38,4 @@ describe('genesis', () => { ]) ); }); - - it('terminates', () => { - return stateDb.terminate(); - }); }); diff --git a/packages/client-chains/src/index.spec.js b/packages/client-chains/src/index.spec.js index 794d262a..a81b9f8a 100644 --- a/packages/client-chains/src/index.spec.js +++ b/packages/client-chains/src/index.spec.js @@ -11,12 +11,10 @@ describe('client-chains', () => { const config = { chain: 'dev' }; - const blockDb = new HashDb(); - const stateDb = new MemoryDb(); it('instantiates a known chain', () => { expect( - new Chain(config, stateDb, blockDb).executor + new Chain(config).executor ).toBeDefined(); }); @@ -24,11 +22,7 @@ describe('client-chains', () => { config.chain = 'someUnknown'; expect( - () => new Chain(config, stateDb, blockDb) + () => new Chain(config) ).toThrow(/Unable to find builtin chain/); }); - - it('terminates', () => { - return stateDb.terminate(); - }); }); diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index a9846bcd..10d1d186 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.35", - "@polkadot/trie-hash": "^0.26.35", - "@polkadot/util": "^0.26.35", - "@polkadot/util-crypto": "^0.26.35" + "@polkadot/storage": "^0.26.36", + "@polkadot/trie-hash": "^0.26.36", + "@polkadot/util": "^0.26.36", + "@polkadot/util-crypto": "^0.26.36" }, "devDependencies": { - "@polkadot/storage": "^0.26.35" + "@polkadot/storage": "^0.26.36" } } diff --git a/packages/client-db-chain/src/state/index.ts b/packages/client-db-chain/src/state/index.ts index f064019e..6586f94a 100644 --- a/packages/client-db-chain/src/state/index.ts +++ b/packages/client-db-chain/src/state/index.ts @@ -49,10 +49,6 @@ const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingP votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) }); -const governance = (db: TrieDb, { public: { approvalsRatio } }: Section) => ({ - approvalsRatio: createBn(db, approvalsRatio, BLOCKNUM_SIZE) -}); - const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ didUpdate: createBool(db, didUpdate) }); @@ -62,13 +58,14 @@ const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ +const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionBaseFee, transactionByteFee, validatorCount } }: Section) => ({ bondingDuration: createBn(db, bondingDuration, BLOCKNUM_SIZE), currentEra: createBn(db, currentEra, BLOCKNUM_SIZE), freeBalanceOf: createBn(db, freeBalanceOf, BALANCE_SIZE), intentions: createArrAcc(db, intentions), sessionsPerEra: createBn(db, sessionsPerEra, BLOCKNUM_SIZE), - transactionFee: createBn(db, transactionFee, BALANCE_SIZE), + transactionBaseFee: createBn(db, transactionBaseFee, BALANCE_SIZE), + transactionByteFee: createBn(db, transactionByteFee, BALANCE_SIZE), validatorCount: createBn(db, validatorCount, 32) }); @@ -88,7 +85,6 @@ export default function createState (db: TrieDb): StateDb { council: council(db, storage.council), councilVoting: councilVoting(db, storage.councilVoting), democracy: democracy(db, storage.democracy), - governance: governance(db, storage.governance), parachains: parachains(db, storage.parachains), session: session(db, storage.session), staking: staking(db, storage.staking), diff --git a/packages/client-db-chain/src/types.d.ts b/packages/client-db-chain/src/types.d.ts index 6c10aba6..65e75675 100644 --- a/packages/client-db-chain/src/types.d.ts +++ b/packages/client-db-chain/src/types.d.ts @@ -84,7 +84,8 @@ export type StateDb$Staking = { freeBalanceOf: StorageMethod$Bn, intentions: StorageMethod$ArrayAccount, sessionsPerEra: StorageMethod$Bn, - transactionFee: StorageMethod$Bn, + transactionBaseFee: StorageMethod$Bn, + transactionByteFee: StorageMethod$Bn, validatorCount: StorageMethod$Bn }; @@ -103,7 +104,6 @@ export type StateDb = { council: StateDb$Council, councilVoting: StateDb$CouncilVoting, democracy: StateDb$Democracy, - governance: StateDb$Governance, parachains: StateDb$Parachains, session: StateDb$Session, staking: StateDb$Staking, diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 7899c0d2..2b6ea98d 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,10 +35,11 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.35", - "@polkadot/util": "^0.26.35", + "@polkadot/trie-db": "^0.26.36", + "@polkadot/util": "^0.26.36", "@types/mkdirp": "^0.5.2", "leveldown": "^4.0.1", + "medeadown": "^1.1.9", "mkdirp": "^0.5.1", "rocksdb": "^3.0.1" }, diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 6099632a..86dea5aa 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -10,7 +10,8 @@ // https://github.com/nodejs/node/issues/21783 // const leveldb = require('leveldown'); // const leveldb = require('rocksdb'); -const leveldb = undefined; +const leveldb = require('medeadown'); +// const leveldb = undefined; const levelup = require('levelup'); const memdown = require('memdown'); diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index dce11798..e3a19279 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.35", - "@polkadot/primitives": "^0.26.35", - "@polkadot/util": "^0.26.35" + "@polkadot/jsonrpc": "^0.26.36", + "@polkadot/primitives": "^0.26.36", + "@polkadot/util": "^0.26.36" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index c18a2be2..f919de5c 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.35", - "@polkadot/util": "^0.26.35", + "@polkadot/primitives": "^0.26.36", + "@polkadot/util": "^0.26.36", "eventemitter3": "^2.0.3", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index f46de8b1..10b94b4e 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.35", - "@polkadot/primitives": "^0.26.35", - "@polkadot/util": "^0.26.35" + "@polkadot/jsonrpc": "^0.26.36", + "@polkadot/primitives": "^0.26.36", + "@polkadot/util": "^0.26.36" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 3f9e9488..8d0f5fa4 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,13 +34,13 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.14.26", + "@polkadot/api-provider": "^0.14.27", "@polkadot/client": "^0.13.8" }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.35", + "@polkadot/util": "^0.26.36", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index e1b41c0b..aed5ee8b 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.35", - "@polkadot/util-crypto": "^0.26.35" + "@polkadot/util": "^0.26.36", + "@polkadot/util-crypto": "^0.26.36" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index dfa616b5..b3c99926 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.35", + "@polkadot/util": "^0.26.36", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index e7420dca..ad486dd7 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-beta.51", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.35", - "@polkadot/util": "^0.26.35", + "@polkadot/primitives": "^0.26.36", + "@polkadot/util": "^0.26.36", "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", "@types/webassembly-js-api": "^0.0.1", "yargs": "^11.0.0" diff --git a/packages/client-wasm/src/executeBlock.spec.js b/packages/client-wasm/src/executeBlock.spec.js index d2bcffa9..2734629c 100644 --- a/packages/client-wasm/src/executeBlock.spec.js +++ b/packages/client-wasm/src/executeBlock.spec.js @@ -2,9 +2,6 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import HashDb from '@polkadot/client-db/Hash/Memory'; -import MemoryDb from '@polkadot/client-db/Trie/Memory'; - import Chain from '@polkadot/client-chains'; describe('executeBlock', () => { @@ -16,16 +13,11 @@ describe('executeBlock', () => { wasm: {} }; - const memory = new MemoryDb(); - const chain = new Chain(config, memory, new HashDb()); + const chain = new Chain(config); it('executes an actual block', () => { expect( chain.executor.executeBlock(TEST) ).toEqual(true); }); - - it('terminates', () => { - return memory.terminate(); - }); }); diff --git a/packages/client-wasm/src/generateBlock.spec.js b/packages/client-wasm/src/generateBlock.spec.js index dd442b37..3333590a 100644 --- a/packages/client-wasm/src/generateBlock.spec.js +++ b/packages/client-wasm/src/generateBlock.spec.js @@ -2,8 +2,6 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import HashDb from '@polkadot/client-db/Hash/Memory'; -import MemoryDb from '@polkadot/client-db/Trie/Memory'; import methods from '@polkadot/extrinsics'; import encodeUnchecked from '@polkadot/extrinsics/codec/encode/unchecked'; import u8aConcat from '@polkadot/util/u8a/concat'; @@ -37,8 +35,7 @@ describe('generateBlock', () => { wasm: {} }; - const stateDb = new MemoryDb(); - const chain = new Chain(config, stateDb, new HashDb()); + const chain = new Chain(config); it('generates a basic block (empty)', async () => { expect( @@ -91,8 +88,4 @@ describe('generateBlock', () => { ) ).not.toBeNull(); }); - - it('terminates', () => { - return stateDb.terminate(); - }); }); diff --git a/packages/client-wasm/src/initialiseBlock.spec.js b/packages/client-wasm/src/initialiseBlock.spec.js index 000a3a01..5dea88a8 100644 --- a/packages/client-wasm/src/initialiseBlock.spec.js +++ b/packages/client-wasm/src/initialiseBlock.spec.js @@ -15,7 +15,7 @@ describe('initialiseBlock', () => { wasm: {} }; const stateDb = new MemoryDb(); - const chain = new Chain(config, stateDb, new HashDb()); + const chain = new Chain(config); it('initialises a block', () => { expect( diff --git a/packages/client/package.json b/packages/client/package.json index 1a5b1117..8d76967e 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.35", - "@polkadot/primitives": "^0.26.35", - "@polkadot/util": "^0.26.35", + "@polkadot/jsonrpc": "^0.26.36", + "@polkadot/primitives": "^0.26.36", + "@polkadot/util": "^0.26.36", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 2c892d2b..81794132 100644 --- a/yarn.lock +++ b/yarn.lock @@ -691,15 +691,15 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" -"@polkadot/api-provider@^0.14.26": - version "0.14.26" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.26.tgz#d9869ba02df2b88b79e15c1c84ab60ac1fb4e417" +"@polkadot/api-provider@^0.14.27": + version "0.14.27" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.27.tgz#81de1bd8013814b47e88979bd3edff7e682d8956" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/storage" "^0.26.35" - "@polkadot/util" "^0.26.35" - "@polkadot/util-crypto" "^0.26.35" - "@polkadot/util-keyring" "^0.26.35" + "@polkadot/storage" "^0.26.36" + "@polkadot/util" "^0.26.36" + "@polkadot/util-crypto" "^0.26.36" + "@polkadot/util-keyring" "^0.26.36" "@types/nock" "^9.1.3" eventemitter3 "^2.0.3" isomorphic-fetch "^2.2.1" @@ -751,59 +751,59 @@ typedoc "^0.11.1" typescript "^2.9.2" -"@polkadot/extrinsics@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.35.tgz#cc9b14f1f421f00ea4fde251ff023dd225e7dad7" +"@polkadot/extrinsics@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.36.tgz#c718d111266389e7f5d73c7c4ba7c500685152e7" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.35" - "@polkadot/primitives" "^0.26.35" - "@polkadot/util" "^0.26.35" + "@polkadot/params" "^0.26.36" + "@polkadot/primitives" "^0.26.36" + "@polkadot/util" "^0.26.36" -"@polkadot/jsonrpc@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.35.tgz#87db53388ea9ee6fc165c5730742cad06e692668" +"@polkadot/jsonrpc@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.36.tgz#55c132cdb51e9d2525de47ab7504b1286529a6af" dependencies: - "@polkadot/params" "^0.26.35" + "@polkadot/params" "^0.26.36" babel-runtime "^6.26.0" -"@polkadot/params@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.35.tgz#92df414f862f8bfd18b551a21eff5e996c3c1eca" +"@polkadot/params@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.36.tgz#ea6d4d02caa144d6752f7704a1f07512efb69fb7" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.35" - "@polkadot/primitives" "^0.26.35" - "@polkadot/util" "^0.26.35" + "@polkadot/extrinsics" "^0.26.36" + "@polkadot/primitives" "^0.26.36" + "@polkadot/util" "^0.26.36" -"@polkadot/primitives@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.35.tgz#03cf35b8765081b3988153c45d27762db0900011" +"@polkadot/primitives@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.36.tgz#96effffa76a70329d64f82c5f735e96632aa7cc9" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.35" - "@polkadot/util" "^0.26.35" + "@polkadot/trie-hash" "^0.26.36" + "@polkadot/util" "^0.26.36" -"@polkadot/storage@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.35.tgz#2d4e3aac47612b0319c0c69f369974266d1c1d04" +"@polkadot/storage@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.36.tgz#030a086037abaefa66185a5de8b3c70f232a83e4" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.35" - "@polkadot/primitives" "^0.26.35" - "@polkadot/util" "^0.26.35" - "@polkadot/util-crypto" "^0.26.35" - "@polkadot/util-keyring" "^0.26.35" + "@polkadot/params" "^0.26.36" + "@polkadot/primitives" "^0.26.36" + "@polkadot/util" "^0.26.36" + "@polkadot/util-crypto" "^0.26.36" + "@polkadot/util-keyring" "^0.26.36" -"@polkadot/trie-db@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.35.tgz#c8b36e6e9043d9b35d885e05dda20d244854b9ba" +"@polkadot/trie-db@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.36.tgz#84928e7158314571c989c6320c755f177a077046" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.35" - "@polkadot/util" "^0.26.35" - "@polkadot/util-crypto" "^0.26.35" - "@polkadot/util-rlp" "^0.26.35" + "@polkadot/trie-hash" "^0.26.36" + "@polkadot/util" "^0.26.36" + "@polkadot/util-crypto" "^0.26.36" + "@polkadot/util-rlp" "^0.26.36" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^1.4.2" @@ -814,50 +814,50 @@ readable-stream "^2.2.8" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.35.tgz#632ba48fca8c82a0c4f4af8887b275d7b46045cc" +"@polkadot/trie-hash@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.36.tgz#0e7e2a31e61cbceb4081df33bac87c1d25471e1a" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.35" - "@polkadot/util-crypto" "^0.26.35" - "@polkadot/util-rlp" "^0.26.35" + "@polkadot/util" "^0.26.36" + "@polkadot/util-crypto" "^0.26.36" + "@polkadot/util-rlp" "^0.26.36" -"@polkadot/ts@^0.1.9": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.9.tgz#86010c5a4d63c0fb6b3e85d29db40dcf43c5d7c1" +"@polkadot/ts@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.10.tgz#784d460cf4b2e9b38bb1c77f9366dd01425f220d" -"@polkadot/util-crypto@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.35.tgz#74948946cc266d228b4636953c16c96e99626090" +"@polkadot/util-crypto@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.36.tgz#1f6d7faa49df96a23109fa3e03faa4191d9ef281" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.35" + "@polkadot/util" "^0.26.36" blakejs "^1.1.0" js-sha3 "^0.7.0" tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-keyring@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.35.tgz#266002c6591665cf8a7df6c5ad3ed840f8b400a5" +"@polkadot/util-keyring@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.36.tgz#6e69c8310abfd9aac350039e649702ace2a21e39" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.35" - "@polkadot/util-crypto" "^0.26.35" + "@polkadot/util" "^0.26.36" + "@polkadot/util-crypto" "^0.26.36" "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.35.tgz#f6e4d01a6f87a7882ba5b4d9bc819365d1d138b8" +"@polkadot/util-rlp@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.36.tgz#d27004a10324f7cc97ff1c1103e3f578e3b3f249" dependencies: "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.35" + "@polkadot/util" "^0.26.36" -"@polkadot/util@^0.26.35": - version "0.26.35" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.35.tgz#c63d8f14a5eadb668f00ca09ee40862c87b53e2e" +"@polkadot/util@^0.26.36": + version "0.26.36" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.36.tgz#5b736588158157e0df9572b9243680cd324f4267" dependencies: "@babel/runtime" "^7.0.0-beta.51" "@types/bn.js" "^4.11.1" @@ -1126,6 +1126,12 @@ abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" +abstract-leveldown@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" + dependencies: + xtend "~4.0.0" + abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" @@ -1245,6 +1251,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +append-stream@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/append-stream/-/append-stream-1.2.2.tgz#36c6238133ffd4f92d4371782890a412da02df84" + append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -1367,6 +1377,10 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + async@^1.4.0, async@^1.4.2, async@^1.5.0, async@~1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -1737,6 +1751,14 @@ buffer-alloc@^1.1.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" +buffer-crc32@~0.2.1: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" @@ -2391,6 +2413,12 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -2718,6 +2746,50 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.45" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + +es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.1: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + escape-html@~1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2895,6 +2967,13 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + eventemitter3@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" @@ -4642,6 +4721,12 @@ kefir@^3.7.3: dependencies: symbol-observable "1.0.4" +keydir@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/keydir/-/keydir-2.1.1.tgz#a981f3e7f0c3c3751d435720e6ede3be6a25d3b7" + dependencies: + ltgt "^1.0.2" + keygrip@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91" @@ -4839,6 +4924,10 @@ level-ws@0.1.0: readable-stream "^2.2.8" xtend "^4.0.0" +leveldown-open@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/leveldown-open/-/leveldown-open-1.0.3.tgz#8094fbef5b1b8c5252f3239ec14517e9f8665a02" + leveldown@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-4.0.1.tgz#7bc3df93c9fa574feb39ce45a0c4073aa948cfef" @@ -5325,6 +5414,10 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +ltgt@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-1.2.0.tgz#617707dc39f38294415e66a02f3c2705ac407866" + ltgt@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.0.tgz#b65ba5fcb349a29924c8e333f7c6a5562f2e4842" @@ -5400,6 +5493,30 @@ mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" +medea@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/medea/-/medea-1.0.3.tgz#d16365b315ef64d6cc8ecc8ec16db6442ff52583" + dependencies: + append-stream "^1.1.0" + async "^0.9.0" + buffer-crc32 "~0.2.1" + buffer-equal "0.0.1" + es6-map "^0.1.1" + mkdirp "^0.5.0" + monotonic-timestamp "0.0.8" + pidlockfile "^1.1.1" + rimraf "~2.2.2" + run-parallel "^1.0.0" + +medeadown@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/medeadown/-/medeadown-1.1.9.tgz#d41c5672c10402ebf7c7f7e8005105cf8e27935c" + dependencies: + abstract-leveldown "3.0.x" + keydir "^2.1.1" + leveldown-open "^1.0.3" + medea "^1.0.3" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -5593,6 +5710,10 @@ moment@^2.6.0: version "2.19.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.4.tgz#17e5e2c6ead8819c8ecfad83a0acccb312e94682" +monotonic-timestamp@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/monotonic-timestamp/-/monotonic-timestamp-0.0.8.tgz#67987d02a41c15f568b6c0a05885989dd2402ba0" + moving-average@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/moving-average/-/moving-average-1.0.0.tgz#b1247ba8dd2d7927c619f1eac8036cf933d65adc" @@ -5751,6 +5872,10 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + node-abi@^2.2.0: version "2.4.3" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b" @@ -6193,6 +6318,10 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" +pidlockfile@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pidlockfile/-/pidlockfile-1.1.1.tgz#d67312fb326deeb45e5419a47c141877bd3cc98c" + pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6891,6 +7020,10 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2. dependencies: glob "^7.0.5" +rimraf@~2.2.2: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + ripemd160@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -6927,6 +7060,10 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-parallel@^1.0.0: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" From 822cc3bf30fcf7e527ea5218adf8e84f69405a52 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 16 Aug 2018 13:43:33 +0200 Subject: [PATCH 20/34] Bump dependencies (excl. libp2p) --- package.json | 7 +- packages/client-chains/package.json | 16 +- packages/client-db-chain/package.json | 12 +- packages/client-db-chain/src/block/keys.ts | 4 +- packages/client-db-chain/src/state/index.ts | 18 +- packages/client-db/package.json | 6 +- packages/client-p2p-messages/package.json | 8 +- packages/client-p2p/package.json | 8 +- packages/client-p2p/src/index.ts | 4 +- packages/client-p2p/src/peer/index.ts | 4 +- packages/client-p2p/src/peer/types.d.ts | 4 +- packages/client-p2p/src/peers/index.ts | 4 +- packages/client-p2p/src/sync/index.ts | 12 +- packages/client-p2p/src/types.d.ts | 4 +- packages/client-rpc-handlers/package.json | 8 +- packages/client-rpc/package.json | 16 +- packages/client-rpc/src/index.ts | 4 +- packages/client-rpc/src/types.d.ts | 4 +- packages/client-runtime/package.json | 6 +- packages/client-telemetry/package.json | 4 +- packages/client-wasm/package.json | 10 +- packages/client/package.json | 18 +- yarn.lock | 3529 ++++++++++++------- 23 files changed, 2406 insertions(+), 1304 deletions(-) diff --git a/package.json b/package.json index 32a28801..59f6acce 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ ], "resolutions": { "babel-core": "^7.0.0-bridge.0", - "typescript": "^2.9.2" + "typescript": "^3.0.1" }, "scripts": { "build": "polkadot-dev-build-ts && cp -r packages/client/scripts build", @@ -23,8 +23,7 @@ "start-rust": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js --db-path ./tmp/start-rust --p2p-nodes /ip4/127.0.0.1/tcp/30333/ipfs/QmXBQmmjNsBLobf5Xx8Kqz7rvUrGgiBLTYm2EmQvcZyrKR --p2p-port 39935 --rpc-port 9935" }, "devDependencies": { - "@polkadot/dev": "^0.20.12", - "@polkadot/ts": "^0.1.10", - "lerna": "^2.11.0" + "@polkadot/dev": "^0.20.16", + "@polkadot/ts": "^0.1.12" } } diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index a0e07c39..862b2c87 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -33,20 +33,20 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.26.36", - "@polkadot/util": "^0.26.36", - "@polkadot/util-crypto": "^0.26.36", - "@polkadot/util-keyring": "^0.26.36" + "@polkadot/storage": "^0.28.15", + "@polkadot/util": "^0.28.3", + "@polkadot/util-crypto": "^0.28.3", + "@polkadot/util-keyring": "^0.28.3" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.26.36", - "@polkadot/primitives": "^0.26.36", - "@polkadot/storage": "^0.26.36" + "@polkadot/extrinsics": "^0.28.15", + "@polkadot/primitives": "^0.28.15", + "@polkadot/storage": "^0.28.15" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 10d1d186..90561d1f 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -33,14 +33,14 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.26.36", - "@polkadot/trie-hash": "^0.26.36", - "@polkadot/util": "^0.26.36", - "@polkadot/util-crypto": "^0.26.36" + "@polkadot/storage": "^0.28.15", + "@polkadot/trie-hash": "^0.28.3", + "@polkadot/util": "^0.28.3", + "@polkadot/util-crypto": "^0.28.3" }, "devDependencies": { - "@polkadot/storage": "^0.26.36" + "@polkadot/storage": "^0.28.15" } } diff --git a/packages/client-db-chain/src/block/keys.ts b/packages/client-db-chain/src/block/keys.ts index 61b57ce5..133738f4 100644 --- a/packages/client-db-chain/src/block/keys.ts +++ b/packages/client-db-chain/src/block/keys.ts @@ -8,7 +8,7 @@ import param from '@polkadot/params/param'; import createSection from '@polkadot/params/section'; type Blocks = { - block: Section + block: Section }; const name: keyof Blocks = 'block'; @@ -47,4 +47,4 @@ export default (createSection(name)( }) } }) -) as Section); +) as Section); diff --git a/packages/client-db-chain/src/state/index.ts b/packages/client-db-chain/src/state/index.ts index 6586f94a..e4dbb5f1 100644 --- a/packages/client-db-chain/src/state/index.ts +++ b/packages/client-db-chain/src/state/index.ts @@ -19,13 +19,13 @@ import createU8a from '../db/u8a'; const BALANCE_SIZE = 128; const BLOCKNUM_SIZE = 64; -const consensus = (db: TrieDb, { public: { authorityAt, authorityCount, code } }: Section) => ({ +const consensus = (db: TrieDb, { public: { authorityAt, authorityCount, code } }: Section) => ({ authorityAt: createAcc(db, authorityAt), authorityCount: createBn(db, authorityCount, 32), code: createU8a(db, code) }); -const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCount, desiredSeats, inactiveGracePeriod, presentationDuration, presentSlashPerVoter, termDuration, votingBond, votingPeriod } }: Section) => ({ +const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCount, desiredSeats, inactiveGracePeriod, presentationDuration, presentSlashPerVoter, termDuration, votingBond, votingPeriod } }: Section) => ({ activeCouncil: createArrU8a(db, activeCouncil), candidacyBond: createBn(db, candidacyBond, BALANCE_SIZE), carryCount: createBn(db, carryCount, 32), @@ -38,27 +38,27 @@ const council = (db: TrieDb, { public: { activeCouncil, candidacyBond, carryCoun votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) }); -const councilVoting = (db: TrieDb, { public: { cooloffPeriod, votingPeriod } }: Section) => ({ +const councilVoting = (db: TrieDb, { public: { cooloffPeriod, votingPeriod } }: Section) => ({ cooloffPeriod: createBn(db, cooloffPeriod, BLOCKNUM_SIZE), votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) }); -const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingPeriod } }: Section) => ({ +const democracy = (db: TrieDb, { public: { launchPeriod, minimumDeposit, votingPeriod } }: Section) => ({ launchPeriod: createBn(db, launchPeriod, BLOCKNUM_SIZE), minimumDeposit: createBn(db, minimumDeposit, BALANCE_SIZE), votingPeriod: createBn(db, votingPeriod, BLOCKNUM_SIZE) }); -const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ +const parachains = (db: TrieDb, { public: { didUpdate } }: Section) => ({ didUpdate: createBool(db, didUpdate) }); -const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ +const session = (db: TrieDb, { public: { length, validators } }: Section) => ({ length: createBn(db, length, BLOCKNUM_SIZE), validators: createArrAcc(db, validators) }); -const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionBaseFee, transactionByteFee, validatorCount } }: Section) => ({ +const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanceOf, intentions, sessionsPerEra, transactionBaseFee, transactionByteFee, validatorCount } }: Section) => ({ bondingDuration: createBn(db, bondingDuration, BLOCKNUM_SIZE), currentEra: createBn(db, currentEra, BLOCKNUM_SIZE), freeBalanceOf: createBn(db, freeBalanceOf, BALANCE_SIZE), @@ -69,12 +69,12 @@ const staking = (db: TrieDb, { public: { bondingDuration, currentEra, freeBalanc validatorCount: createBn(db, validatorCount, 32) }); -const system = (db: TrieDb, { public: { accountIndexOf, blockHashAt } }: Section) => ({ +const system = (db: TrieDb, { public: { accountIndexOf, blockHashAt } }: Section) => ({ accountIndexOf: createBn(db, accountIndexOf, 32), blockHashAt: createU8a(db, blockHashAt) }); -const timestamp = (db: TrieDb, { public: { didUpdate } }: Section) => ({ +const timestamp = (db: TrieDb, { public: { didUpdate } }: Section) => ({ didUpdate: createBool(db, didUpdate) }); diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 2b6ea98d..1b96b710 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -34,9 +34,9 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/trie-db": "^0.26.36", - "@polkadot/util": "^0.26.36", + "@babel/runtime": "^7.0.0-rc.1", + "@polkadot/trie-db": "^0.28.3", + "@polkadot/util": "^0.28.3", "@types/mkdirp": "^0.5.2", "leveldown": "^4.0.1", "medeadown": "^1.1.9", diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index e3a19279..e80d118b 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -34,9 +34,9 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.36", - "@polkadot/primitives": "^0.26.36", - "@polkadot/util": "^0.26.36" + "@babel/runtime": "^7.0.0-rc.1", + "@polkadot/jsonrpc": "^0.28.15", + "@polkadot/primitives": "^0.28.15", + "@polkadot/util": "^0.28.3" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index f919de5c..d1221def 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -34,11 +34,11 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.26.36", - "@polkadot/util": "^0.26.36", - "eventemitter3": "^2.0.3", + "@polkadot/primitives": "^0.28.15", + "@polkadot/util": "^0.28.3", + "eventemitter3": "^3.1.0", "libp2p": "^0.22.0", "libp2p-kad-dht": "^0.10.0", "libp2p-mdns": "^0.11.0", diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index 5041d7db..a7ad699c 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -10,7 +10,7 @@ import { P2pInterface, PeerInterface, PeersInterface } from './types'; import handlers from './handler'; -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; // import handshake from 'pull-handshake'; import PullPushable from 'pull-pushable'; import pull from 'pull-stream'; @@ -32,7 +32,7 @@ type QueuedPeer = { isDialled: boolean }; -export default class P2p extends E3.EventEmitter implements P2pInterface { +export default class P2p extends EventEmitter implements P2pInterface { readonly chain: ChainInterface; readonly config: Config; private dialQueue: Array = []; diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index c635cd46..329e6e4f 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -10,7 +10,7 @@ import { Logger } from '@polkadot/util/types'; import { PeerInterface } from '../types'; import BN from 'bn.js'; -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import PullPushable, { Pushable } from 'pull-pushable'; import pull from 'pull-stream'; import varint from 'varint'; @@ -26,7 +26,7 @@ import u8aToHex from '@polkadot/util/u8a/toHex'; import defaults from '../defaults'; -export default class Peer extends E3.EventEmitter implements PeerInterface { +export default class Peer extends EventEmitter implements PeerInterface { bestHash: Uint8Array = new Uint8Array([]); bestNumber: BN = new BN(0); readonly chain: ChainInterface; diff --git a/packages/client-p2p/src/peer/types.d.ts b/packages/client-p2p/src/peer/types.d.ts index 50223180..8670fe79 100644 --- a/packages/client-p2p/src/peer/types.d.ts +++ b/packages/client-p2p/src/peer/types.d.ts @@ -3,7 +3,7 @@ // of the ISC license. See the LICENSE file for details. import BN from 'bn.js'; -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import { Pushable } from 'pull-pushable'; import { Config } from '@polkadot/client/types'; import { ChainInterface } from '@polkadot/client-chains/types'; @@ -12,7 +12,7 @@ import { Logger } from '@polkadot/util/types'; export type PeerState = { chain: ChainInterface, config: Config, - emitter: E3.EventEmitter, + emitter: EventEmitter, l: Logger, nextId: number, pushable?: Pushable diff --git a/packages/client-p2p/src/peers/index.ts b/packages/client-p2p/src/peers/index.ts index 4f180d2a..705f9b63 100644 --- a/packages/client-p2p/src/peers/index.ts +++ b/packages/client-p2p/src/peers/index.ts @@ -9,13 +9,13 @@ import { MessageInterface } from '@polkadot/client-p2p-messages/types'; import { Logger } from '@polkadot/util/types'; import { PeerInterface, PeersInterface, PeersInterface$Events } from '../types'; -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import PeerInfo from 'peer-info'; import logger from '@polkadot/util/logger'; import Peer from '../peer'; -export default class Peers extends E3.EventEmitter implements PeersInterface { +export default class Peers extends EventEmitter implements PeersInterface { readonly chain: ChainInterface; readonly config: Config; readonly l: Logger; diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index e04b0537..d9f6f1cc 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -10,10 +10,10 @@ import { PeerInterface, SyncStatus } from '../types'; import { SyncInterface, SyncState$Request, SyncState$BlockRequests, SyncState$BlockQueue } from './types'; import BN from 'bn.js'; -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import BlockRequest from '@polkadot/client-p2p-messages/BlockRequest'; import BlockResponse from '@polkadot/client-p2p-messages/BlockResponse'; -import decodeBlock from '@polkadot/primitives/codec/block/decodeRaw'; +// import decodeBlock from '@polkadot/primitives/codec/block/decodeRaw'; import isU8a from '@polkadot/util/is/u8a'; import logger from '@polkadot/util/logger'; // import u8aToHex from '@polkadot/util/u8a/toHex'; @@ -22,7 +22,7 @@ import defaults from '../defaults'; type Requests = Array; -export default class Sync extends E3.EventEmitter implements SyncInterface { +export default class Sync extends EventEmitter implements SyncInterface { private chain: ChainInterface; private l: Logger; private blockRequests: SyncState$BlockRequests = {}; @@ -37,9 +37,9 @@ export default class Sync extends E3.EventEmitter implements SyncInterface { } getBlockData (fields: Array, hash: Uint8Array): BlockResponseMessageBlock { - const { body, header } = decodeBlock( - this.chain.blocks.block.get(hash) - ); + // const { body, header } = decodeBlock( + // this.chain.blocks.block.get(hash) + // ); const data: BlockResponseMessageBlock = { // hash } as BlockResponseMessageBlock; diff --git a/packages/client-p2p/src/types.d.ts b/packages/client-p2p/src/types.d.ts index 031f37c9..a427da0c 100644 --- a/packages/client-p2p/src/types.d.ts +++ b/packages/client-p2p/src/types.d.ts @@ -5,7 +5,7 @@ import BN from 'bn.js'; // import { LibP2pConnection } from 'interface-connection'; import LibP2p from 'libp2p'; -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import { Logger } from '@polkadot/util/types'; import { Config } from '@polkadot/client/types'; import { ChainInterface } from '@polkadot/client-chains/types'; @@ -83,7 +83,7 @@ export type P2pInterface = { export type P2pState = { chain: ChainInterface, config: Config, - emitter: E3.EventEmitter, + emitter: EventEmitter, l: Logger, node: LibP2p, peers: PeersInterface, diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 10b94b4e..6e5d79c0 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -30,9 +30,9 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/jsonrpc": "^0.26.36", - "@polkadot/primitives": "^0.26.36", - "@polkadot/util": "^0.26.36" + "@babel/runtime": "^7.0.0-rc.1", + "@polkadot/jsonrpc": "^0.28.15", + "@polkadot/primitives": "^0.28.15", + "@polkadot/util": "^0.28.3" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 8d0f5fa4..74ff189a 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,21 +34,21 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.14.27", + "@polkadot/api-provider": "^0.28.15", "@polkadot/client": "^0.13.8" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.26.36", + "@polkadot/util": "^0.28.3", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", - "@types/koa-websocket": "^5.0.0", - "co-body": "^5.1.1", - "eventemitter3": "^2.0.3", - "koa": "^2.4.1", + "@types/koa-websocket": "^5.0.2", + "co-body": "^6.0.0", + "eventemitter3": "^3.1.0", + "koa": "^2.5.2", "koa-route": "^3.2.0", - "koa-websocket": "^4.1.0" + "koa-websocket": "^5.0.1" } } diff --git a/packages/client-rpc/src/index.ts b/packages/client-rpc/src/index.ts index 4eb19a1c..0a65c727 100644 --- a/packages/client-rpc/src/index.ts +++ b/packages/client-rpc/src/index.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import * as Koa from 'koa'; import * as net from 'net'; import { Config } from '@polkadot/client/types'; @@ -28,7 +28,7 @@ import { createError, createResponse } from './create'; const SUBSCRIBE_REGEX = /^subscribe_/; -export default class Rpc extends E3.EventEmitter implements RpcInterface { +export default class Rpc extends EventEmitter implements RpcInterface { private l: Logger; private config: Config; private handlers: Handlers; diff --git a/packages/client-rpc/src/types.d.ts b/packages/client-rpc/src/types.d.ts index 322dc1c7..62a5b55c 100644 --- a/packages/client-rpc/src/types.d.ts +++ b/packages/client-rpc/src/types.d.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import E3 from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import * as http from 'http'; import * as net from 'net'; import * as Koa from 'koa'; @@ -71,7 +71,7 @@ export type SubInterface = (socket: WsContext$Socket | undefined, handler: Handl export type RpcState = { chain: ChainInterface, config: Config, - emitter: E3.EventEmitter, + emitter: EventEmitter, handlers: Handlers, l: Logger, servers: Array, diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index aed5ee8b..e9a135f1 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -34,9 +34,9 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.26.36", - "@polkadot/util-crypto": "^0.26.36" + "@polkadot/util": "^0.28.3", + "@polkadot/util-crypto": "^0.28.3" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index b3c99926..25ff187c 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -34,8 +34,8 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", - "@polkadot/util": "^0.26.36", + "@babel/runtime": "^7.0.0-rc.1", + "@polkadot/util": "^0.28.3", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index ad486dd7..f6b08614 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -34,12 +34,10 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.26.36", - "@polkadot/util": "^0.26.36", - "@polkadot/wasm-bin": "paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324", - "@types/webassembly-js-api": "^0.0.1", - "yargs": "^11.0.0" + "@polkadot/primitives": "^0.28.15", + "@polkadot/util": "^0.28.3", + "@types/webassembly-js-api": "^0.0.1" } } diff --git a/packages/client/package.json b/packages/client/package.json index 8d76967e..38d2d79d 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -37,26 +37,26 @@ "test": "echo \"Tests only available from root wrapper\"" }, "dependencies": { - "@babel/runtime": "^7.0.0-beta.51", + "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-chains": "^0.13.8", "@polkadot/client-db": "^0.13.8", "@polkadot/client-p2p": "^0.13.8", "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.26.36", - "@polkadot/primitives": "^0.26.36", - "@polkadot/util": "^0.26.36", + "@polkadot/jsonrpc": "^0.28.15", + "@polkadot/primitives": "^0.28.15", + "@polkadot/util": "^0.28.3", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", - "@types/yargs": "^11.0.0", - "package-json": "^4.0.1", + "@types/yargs": "^11.1.1", + "package-json": "^5.0.0", "semver-compare": "^1.0.0", - "yargs": "^11.0.0" + "yargs": "^12.0.1" }, "devDependencies": { - "@babel/core": "^7.0.0-beta.51", - "@babel/register": "^7.0.0-beta.51", + "@babel/core": "^7.0.0-rc.1", + "@babel/register": "^7.0.0-rc.1", "babel-plugin-module-resolver": "^3.1.1" } } diff --git a/yarn.lock b/yarn.lock index 81794132..91b21c30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,16 @@ # yarn lockfile v1 -"@babel/cli@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.0.0-beta.51.tgz#d186cdd59f9236bc9156aaa8eda61638f566b7fc" +"@babel/cli@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.0.0-rc.1.tgz#7bc3edfd9ea91e17850d71f07dd3726794b000b0" dependencies: commander "^2.8.1" convert-source-map "^1.1.0" - fs-readdir-recursive "^1.0.0" + fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.5" + lodash "^4.17.10" + mkdirp "^0.5.1" output-file-sync "^2.0.0" slash "^1.0.0" source-map "^0.5.0" @@ -23,11 +24,11 @@ dependencies: "@babel/highlight" "7.0.0-beta.44" -"@babel/code-frame@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" +"@babel/code-frame@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-rc.1.tgz#5c2154415d6c09959a71845ef519d11157e95d10" dependencies: - "@babel/highlight" "7.0.0-beta.51" + "@babel/highlight" "7.0.0-rc.1" "@babel/code-frame@^7.0.0-beta.35": version "7.0.0-beta.36" @@ -37,22 +38,21 @@ esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/core@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.51.tgz#0e54bd6b638736b2ae593c31a47f0969e2b2b96d" - dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/generator" "7.0.0-beta.51" - "@babel/helpers" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" +"@babel/core@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-rc.1.tgz#53c84fd562e13325f123d5951184eec97b958204" + dependencies: + "@babel/code-frame" "7.0.0-rc.1" + "@babel/generator" "7.0.0-rc.1" + "@babel/helpers" "7.0.0-rc.1" + "@babel/parser" "7.0.0-rc.1" + "@babel/template" "7.0.0-rc.1" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" convert-source-map "^1.1.0" debug "^3.1.0" json5 "^0.5.0" - lodash "^4.17.5" - micromatch "^3.1.10" + lodash "^4.17.10" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" @@ -67,51 +67,51 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6" +"@babel/generator@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-rc.1.tgz#739c87d70b31aeed802bd6bc9fd51480065c45e8" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" jsesc "^2.5.1" - lodash "^4.17.5" + lodash "^4.17.10" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/helper-annotate-as-pure@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.51.tgz#38cf7920bf5f338a227f754e286b6fbadee04b58" +"@babel/helper-annotate-as-pure@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-rc.1.tgz#4a9042a4a35f835d45c649f68f364cc7ed7dcb05" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.51.tgz#2133fffe3e2f71591e42147b947291ca2ad39237" +"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-rc.1.tgz#df64de2375585e23a0aaa5708ea137fb21157374" dependencies: - "@babel/helper-explode-assignable-expression" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-explode-assignable-expression" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-call-delegate@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.51.tgz#04ed727c97cf05bcb2fd644837331ab15d63c819" +"@babel/helper-call-delegate@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-rc.1.tgz#7516f71b13c81560bb91fb6b1fae3a1e0345d37d" dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-hoist-variables" "7.0.0-rc.1" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-define-map@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.51.tgz#d88c64737e948c713f9f1153338e8415fee40b11" +"@babel/helper-define-map@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-rc.1.tgz#a7f920b33651bc540253313b336864754926e75b" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/helper-function-name" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" + lodash "^4.17.10" -"@babel/helper-explode-assignable-expression@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.51.tgz#9875332ad8b5d5c982fa481cb82b731703f2cd2d" +"@babel/helper-explode-assignable-expression@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-rc.1.tgz#114359f835a2d97161a895444e45b80317c6d765" dependencies: - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" "@babel/helper-function-name@7.0.0-beta.44": version "7.0.0-beta.44" @@ -121,13 +121,13 @@ "@babel/template" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" -"@babel/helper-function-name@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz#21b4874a227cf99ecafcc30a90302da5a2640561" +"@babel/helper-function-name@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-rc.1.tgz#20b2cc836a53c669f297c8d309fc553385c5cdde" dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-get-function-arity" "7.0.0-rc.1" + "@babel/template" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" @@ -135,84 +135,84 @@ dependencies: "@babel/types" "7.0.0-beta.44" -"@babel/helper-get-function-arity@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz#3281b2d045af95c172ce91b20825d85ea4676411" +"@babel/helper-get-function-arity@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-rc.1.tgz#60185957f72ed73766ce74c836ac574921743c46" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-hoist-variables@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.51.tgz#5d7ebc8596567b644fc989912c3a3ef98be058fc" +"@babel/helper-hoist-variables@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-rc.1.tgz#6d0ff35d599fc7dd9dadaac444e99b7976238aec" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-member-expression-to-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.51.tgz#2a42536574176588806e602eb17a52d323f82870" +"@babel/helper-member-expression-to-functions@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-rc.1.tgz#03a3b200fc00f8100dbcef9a351b69cfc0234b4f" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-module-imports@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.51.tgz#ce00428045fbb7d5ebc0ea7bf835789f15366ab2" +"@babel/helper-module-imports@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-rc.1.tgz#c6269fa9dc451152895f185f0339d45f32c52e75" dependencies: - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/types" "7.0.0-rc.1" + lodash "^4.17.10" -"@babel/helper-module-transforms@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.51.tgz#13af0c8ee41f277743c8fc43d444315db2326f73" +"@babel/helper-module-transforms@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-rc.1.tgz#15aa371352a37d527b233bd22d25f709ae5feaba" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-simple-access" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/helper-module-imports" "7.0.0-rc.1" + "@babel/helper-simple-access" "7.0.0-rc.1" + "@babel/helper-split-export-declaration" "7.0.0-rc.1" + "@babel/template" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" + lodash "^4.17.10" -"@babel/helper-optimise-call-expression@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.51.tgz#21f2158ef083a123ce1e04665b5bb84f370080d7" +"@babel/helper-optimise-call-expression@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-rc.1.tgz#482d8251870f61d88c9800fd3e58128e14ff8c98" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-plugin-utils@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.51.tgz#0f6a5f2b6d1c6444413f8fab60940d79b63c2031" +"@babel/helper-plugin-utils@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-rc.1.tgz#3e277eae59818e7d4caf4174f58a7a00d441336e" -"@babel/helper-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.51.tgz#99722a3c0c704596afb123284b0a888a1a003d82" +"@babel/helper-regex@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-rc.1.tgz#591bf828846d91fea8c93d1bf3030bd99dbd94ce" dependencies: - lodash "^4.17.5" + lodash "^4.17.10" -"@babel/helper-remap-async-to-generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.51.tgz#0edc57e05dcb5dde2a0b6ee6f8d0261982def25f" +"@babel/helper-remap-async-to-generator@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-rc.1.tgz#cc32d270ca868245d0ac0a32d70dc83a6ce77db9" dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.51" - "@babel/helper-wrap-function" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-annotate-as-pure" "7.0.0-rc.1" + "@babel/helper-wrap-function" "7.0.0-rc.1" + "@babel/template" "7.0.0-rc.1" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-replace-supers@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.51.tgz#279a61afb849476c6cc70d5519f83df4a74ffa6f" +"@babel/helper-replace-supers@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-rc.1.tgz#cab8d7a6c758e4561fb285f4725c850d68c1c3db" dependencies: - "@babel/helper-member-expression-to-functions" "7.0.0-beta.51" - "@babel/helper-optimise-call-expression" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-member-expression-to-functions" "7.0.0-rc.1" + "@babel/helper-optimise-call-expression" "7.0.0-rc.1" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-simple-access@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.51.tgz#c9d7fecd84a181d50a3afcc422fc94a968be3050" +"@babel/helper-simple-access@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-rc.1.tgz#ab3b179b5f009a1e17207b227c37410ad8d73949" dependencies: - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/template" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" + lodash "^4.17.10" "@babel/helper-split-export-declaration@7.0.0-beta.44": version "7.0.0-beta.44" @@ -220,28 +220,28 @@ dependencies: "@babel/types" "7.0.0-beta.44" -"@babel/helper-split-export-declaration@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz#8a6c3f66c4d265352fc077484f9f6e80a51ab978" +"@babel/helper-split-export-declaration@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-rc.1.tgz#b00323834343fd0210f1f46c7a53521ad53efa5e" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-rc.1" -"@babel/helper-wrap-function@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.51.tgz#6c516fb044109964ee031c22500a830313862fb1" +"@babel/helper-wrap-function@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-rc.1.tgz#168454fe350e9ead8d91cdc581597ea506e951ff" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-rc.1" + "@babel/template" "7.0.0-rc.1" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" -"@babel/helpers@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.51.tgz#95272be2ab4634d6820425f8925031a928918397" +"@babel/helpers@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-rc.1.tgz#e59092cdf4b28026b3fc9d272e27e0ef152b4bee" dependencies: - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/template" "7.0.0-rc.1" + "@babel/traverse" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" @@ -251,381 +251,393 @@ esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/highlight@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" +"@babel/highlight@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-rc.1.tgz#e0ca4731fa4786f7b9500421d6ff5e5a7753e81e" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/parser@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" +"@babel/parser@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-rc.1.tgz#d009a9bba8175d7b971e30cd03535b278c44082d" + +"@babel/plugin-proposal-async-generator-functions@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-rc.1.tgz#70d4ca787485487370a82e380c39c8c233bca639" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-remap-async-to-generator" "7.0.0-rc.1" + "@babel/plugin-syntax-async-generators" "7.0.0-rc.1" -"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.51.tgz#f7d692f946a4a7fca78e4336407a00beaf8a4dea" +"@babel/plugin-proposal-class-properties@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-rc.1.tgz#88b3d3b257b9ed53fae50b13103e4c3c725e704e" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-remap-async-to-generator" "7.0.0-beta.51" - "@babel/plugin-syntax-async-generators" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-rc.1" + "@babel/helper-member-expression-to-functions" "7.0.0-rc.1" + "@babel/helper-optimise-call-expression" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-replace-supers" "7.0.0-rc.1" + "@babel/plugin-syntax-class-properties" "7.0.0-rc.1" -"@babel/plugin-proposal-class-properties@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.51.tgz#b5c662f862a30ace94fc48477837b1d255fa38df" +"@babel/plugin-proposal-decorators@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-rc.1.tgz#2cb2a8f8707280b41865fcebd48792cc24f83b9e" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-member-expression-to-functions" "7.0.0-beta.51" - "@babel/helper-optimise-call-expression" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-replace-supers" "7.0.0-beta.51" - "@babel/plugin-syntax-class-properties" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-syntax-decorators" "7.0.0-rc.1" -"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.51", "@babel/plugin-proposal-object-rest-spread@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.51.tgz#5bc469e5e6d1b84a5d6046b59e90ca016c2086d6" +"@babel/plugin-proposal-object-rest-spread@7.0.0-rc.1", "@babel/plugin-proposal-object-rest-spread@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-rc.1.tgz#bc7ce898a48831fd733b251fd5ae46f986c905d8" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-syntax-object-rest-spread" "7.0.0-rc.1" -"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.51.tgz#3ecc6d2919d52c94cbfae8625da33582102fb3d6" +"@babel/plugin-proposal-optional-catch-binding@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-rc.1.tgz#4ee80c9e4b6feb4c0c737bd996da3ee3fb9837d2" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-syntax-optional-catch-binding" "7.0.0-rc.1" -"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.51.tgz#d296c3ea74ca37fd7fa55bbf8c0cd85aa7d99f7b" +"@babel/plugin-proposal-unicode-property-regex@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-rc.1.tgz#02d0c33839eb52c93164907fb43b36c5a4afbc6c" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-regex" "7.0.0-rc.1" regexpu-core "^4.2.0" -"@babel/plugin-syntax-async-generators@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.51.tgz#6921af1dc3da0fcedde0a61073eec797b8caa707" +"@babel/plugin-syntax-async-generators@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-rc.1.tgz#71d016f1a241d5e735b120f6cb94b8c57d53d255" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-syntax-class-properties@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.51.tgz#f0cbf6f22a879c593a07e8e141c908e087701e91" +"@babel/plugin-syntax-class-properties@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-rc.1.tgz#155343e256c84d127496e46675a3049636d311ff" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-syntax-flow@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-beta.51.tgz#de0883134406f90f958b64073e9749880229de56" +"@babel/plugin-syntax-decorators@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-rc.1.tgz#f5b2c04547c1e780ffd5ed943757f810858870e2" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.51.tgz#6d57a119c1f064c458e45bad45bef0a83ed10c00" +"@babel/plugin-syntax-flow@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-rc.1.tgz#1c0165eb2fa7c5769eaf27f2bfb46e7df5d3f034" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.51.tgz#ce2675720cb41248c26433515c90c94b9d01a6fd" +"@babel/plugin-syntax-object-rest-spread@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-rc.1.tgz#42032fd87fb3b18f5686a0ab957d7f6f0db26618" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-syntax-typescript@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0-beta.51.tgz#a2f2701ff65d006268cbc84ad1bb8eeab638b0c4" +"@babel/plugin-syntax-optional-catch-binding@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-rc.1.tgz#c125fedf2fe59e4b510c202b1a912634d896fbb8" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-arrow-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.51.tgz#29b9db6e38688a06ec5c25639996d89a5ebfdbe3" +"@babel/plugin-syntax-typescript@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0-rc.1.tgz#f1e0afa67b62aa9659cf9995a8a46f0638faa05f" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-async-to-generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.51.tgz#945385055a2e6d3566bf55af127c8d725cd3a173" +"@babel/plugin-transform-arrow-functions@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-rc.1.tgz#95b369e6ded8425a00464609d29e1fd017b331b0" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-remap-async-to-generator" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.51.tgz#23129baf814471f39ea94eec84ab1ffe76c9fe96" +"@babel/plugin-transform-async-to-generator@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-rc.1.tgz#9e22abec137ded152e83c3aebb4d4fb1ad7cba59" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-imports" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-remap-async-to-generator" "7.0.0-rc.1" -"@babel/plugin-transform-block-scoping@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.51.tgz#be555c79f0da4eb168a7fe16d787a9a7173701e0" +"@babel/plugin-transform-block-scoped-functions@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-rc.1.tgz#1b23adf0fb3a7395f6f0596a80039cfba6516750" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + +"@babel/plugin-transform-block-scoping@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-rc.1.tgz#1a61565131ffd1022c04f9d3bcc4bdececf17859" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-rc.1" + lodash "^4.17.10" -"@babel/plugin-transform-classes@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.51.tgz#043f31fb6327664a32d8ba65de15799efdc65da0" - dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.51" - "@babel/helper-define-map" "7.0.0-beta.51" - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-optimise-call-expression" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-replace-supers" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" +"@babel/plugin-transform-classes@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-rc.1.tgz#1d73cbceb4b4adca4cdad5f8f84a5c517fc0e06d" + dependencies: + "@babel/helper-annotate-as-pure" "7.0.0-rc.1" + "@babel/helper-define-map" "7.0.0-rc.1" + "@babel/helper-function-name" "7.0.0-rc.1" + "@babel/helper-optimise-call-expression" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-replace-supers" "7.0.0-rc.1" + "@babel/helper-split-export-declaration" "7.0.0-rc.1" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.51.tgz#8c72a1ab3e0767034ff9e6732d2581c23c032efe" +"@babel/plugin-transform-computed-properties@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-rc.1.tgz#767c6e54e6928de6f1f4de341cee1ec58edce1cf" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-destructuring@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.51.tgz#d5d454e574c7ef33ee49e918b048afb29be935f6" +"@babel/plugin-transform-destructuring@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-rc.1.tgz#d72932088542ae1c11188cb36d58cd18ddd55aa8" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-dotall-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.51.tgz#980558a1e5f7e28850f5ffde20404291e2aa33fb" +"@babel/plugin-transform-dotall-regex@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-rc.1.tgz#3209d77c7905883482ff9d527c2f96d0db83df0a" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-regex" "7.0.0-rc.1" regexpu-core "^4.1.3" -"@babel/plugin-transform-duplicate-keys@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.51.tgz#541eaf8a97d14a9809b359d8f548001f085b9b7f" +"@babel/plugin-transform-duplicate-keys@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-rc.1.tgz#59d0c76877720446f83f1fbbad7c33670c5b19b9" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.51.tgz#04b4e3e40b3701112dd6eda39625132757881fd4" +"@babel/plugin-transform-exponentiation-operator@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-rc.1.tgz#b8a7b7862a1e3b14510ad60e496ce5b54c2220d1" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-flow-strip-types@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-beta.51.tgz#67d434459f7a7b26a9f2a6855bc12e67894e47a6" +"@babel/plugin-transform-flow-strip-types@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-rc.1.tgz#dd69161fd75bc0c68803c0c6051730d559cc2d85" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-syntax-flow" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-syntax-flow" "7.0.0-rc.1" -"@babel/plugin-transform-for-of@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.51.tgz#44f476b06c4035517a8403a2624fb164c4371455" +"@babel/plugin-transform-for-of@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-rc.1.tgz#1ad4f8986003f38db9251fb694c4f86657e9ec18" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-function-name@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.51.tgz#70653c360b53254246f4659ec450b0c0a56d86aa" +"@babel/plugin-transform-function-name@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-rc.1.tgz#e61149309db0d74df4ea3a566aac7b8794520e2d" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-literals@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.51.tgz#45b07a94223cfa226701a79460b42b32df1dec05" +"@babel/plugin-transform-literals@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-rc.1.tgz#314e118e99574ab5292aea92136c26e3dc8c4abb" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-modules-amd@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.51.tgz#f68a8be7f65177d246506a3914dae4d66e675a1f" +"@babel/plugin-transform-modules-amd@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-rc.1.tgz#3f7d83c9ecf0bf5733748e119696cc50ae05987f" dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-transforms" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-modules-commonjs@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.51.tgz#4038f9e15244e10900cb89f5b796d050f1eb195b" +"@babel/plugin-transform-modules-commonjs@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-rc.1.tgz#475bd3e6c3b86bb38307f715e0cbdb6cb2f431c2" dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-simple-access" "7.0.0-beta.51" + "@babel/helper-module-transforms" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-simple-access" "7.0.0-rc.1" -"@babel/plugin-transform-modules-systemjs@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.51.tgz#6e7fc4ad9421b725cddf37cc924eaf777f228c27" +"@babel/plugin-transform-modules-systemjs@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-rc.1.tgz#6aca100a57c49e2622f29f177a3e088cc50ecd2e" dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-hoist-variables" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-modules-umd@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.51.tgz#ee2ef575579d96e40613fca6e6c8edb5cadb6c6f" +"@babel/plugin-transform-modules-umd@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-rc.1.tgz#1a584cb37d252de63c90030f76c3d7d3d0ea1241" dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-transforms" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-new-target@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.51.tgz#7075a106595cbfdd425ed6b830b79f8a7aff5283" +"@babel/plugin-transform-new-target@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-rc.1.tgz#e5839320686b3c97b82bd24157282565503ae569" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-object-super@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.51.tgz#ac18e88bc1d79b718bdaf48a756833cdf5bdcebf" +"@babel/plugin-transform-object-super@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-rc.1.tgz#03ffbcce806af7546fead73cecb43c0892b809f3" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-replace-supers" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-replace-supers" "7.0.0-rc.1" -"@babel/plugin-transform-parameters@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.51.tgz#990195b1dfdb1bcc94906f3034951089ed1edd4e" +"@babel/plugin-transform-parameters@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-rc.1.tgz#c3f2f1fe179b58c968b3253cb412c8d83a3d5abc" dependencies: - "@babel/helper-call-delegate" "7.0.0-beta.51" - "@babel/helper-get-function-arity" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-call-delegate" "7.0.0-rc.1" + "@babel/helper-get-function-arity" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-regenerator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.51.tgz#536f0d599d2753dca0a2be8a65e2c244a7b5612b" +"@babel/plugin-transform-regenerator@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-rc.1.tgz#8c5488ab75b7c9004d8bcf3f48a5814f946b5bb0" dependencies: - regenerator-transform "^0.12.4" + regenerator-transform "^0.13.3" -"@babel/plugin-transform-runtime@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.51.tgz#0c9cab174f4e3e131659fd65c5ce8e3d73376820" +"@babel/plugin-transform-runtime@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-rc.1.tgz#dce6d4e59ab9fef0060e9cb81f1b4aeb6e49bdc5" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-imports" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-shorthand-properties@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.51.tgz#ddbc0b1ae1ddb3bcfe6969f2c968103f11e32bd9" +"@babel/plugin-transform-shorthand-properties@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-rc.1.tgz#21724d2199d988ffad690de8dbdce8b834a7f313" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-spread@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.51.tgz#100129bc8d7dcf4bc79adcd6129a4214259d8a50" +"@babel/plugin-transform-spread@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-rc.1.tgz#3ad6d96f42175ecf7c03d92313fa1f5c24a69637" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-sticky-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.51.tgz#48cbeacd31bd05ee800b5facbcb09c5781bd9619" +"@babel/plugin-transform-sticky-regex@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-rc.1.tgz#88079689a70d80c8e9b159572979a9c2b80f7c38" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-regex" "7.0.0-rc.1" -"@babel/plugin-transform-template-literals@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.51.tgz#2d0595f56461d4345ba35c38d73033f87ecbbbc8" +"@babel/plugin-transform-template-literals@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-rc.1.tgz#c22533ce23554a0d596b208158b34b9975feb9e6" dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-annotate-as-pure" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-typeof-symbol@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.51.tgz#4950c0c8e3c9e1e141e45cebab5e6148263204c3" +"@babel/plugin-transform-typeof-symbol@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-rc.1.tgz#51c628dfcd2a5b6c1792b90e4f2f24b7eb993389" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" -"@babel/plugin-transform-typescript@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.0.0-beta.51.tgz#1d9e5ba7bf93fe37483cc321dbc9a7ebba5ff35b" +"@babel/plugin-transform-typescript@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.0.0-rc.1.tgz#5b9726c6f9ab1f8f0abd1971577da5accd232dbc" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-syntax-typescript" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-syntax-typescript" "7.0.0-rc.1" -"@babel/plugin-transform-unicode-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.51.tgz#9019f91508f40b50a64435043228c4142c2cd864" +"@babel/plugin-transform-unicode-regex@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-rc.1.tgz#b6c77bdb9a2823108210a174318ddd3c1ab6f3ce" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/helper-regex" "7.0.0-rc.1" regexpu-core "^4.1.3" -"@babel/preset-env@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.51.tgz#5b580e6e9e8304166c1317017e863c06dcfc04a2" - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.51" - "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.51" - "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.51" - "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.51" - "@babel/plugin-syntax-async-generators" "7.0.0-beta.51" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.51" - "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.51" - "@babel/plugin-transform-arrow-functions" "7.0.0-beta.51" - "@babel/plugin-transform-async-to-generator" "7.0.0-beta.51" - "@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.51" - "@babel/plugin-transform-block-scoping" "7.0.0-beta.51" - "@babel/plugin-transform-classes" "7.0.0-beta.51" - "@babel/plugin-transform-computed-properties" "7.0.0-beta.51" - "@babel/plugin-transform-destructuring" "7.0.0-beta.51" - "@babel/plugin-transform-dotall-regex" "7.0.0-beta.51" - "@babel/plugin-transform-duplicate-keys" "7.0.0-beta.51" - "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.51" - "@babel/plugin-transform-for-of" "7.0.0-beta.51" - "@babel/plugin-transform-function-name" "7.0.0-beta.51" - "@babel/plugin-transform-literals" "7.0.0-beta.51" - "@babel/plugin-transform-modules-amd" "7.0.0-beta.51" - "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.51" - "@babel/plugin-transform-modules-systemjs" "7.0.0-beta.51" - "@babel/plugin-transform-modules-umd" "7.0.0-beta.51" - "@babel/plugin-transform-new-target" "7.0.0-beta.51" - "@babel/plugin-transform-object-super" "7.0.0-beta.51" - "@babel/plugin-transform-parameters" "7.0.0-beta.51" - "@babel/plugin-transform-regenerator" "7.0.0-beta.51" - "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.51" - "@babel/plugin-transform-spread" "7.0.0-beta.51" - "@babel/plugin-transform-sticky-regex" "7.0.0-beta.51" - "@babel/plugin-transform-template-literals" "7.0.0-beta.51" - "@babel/plugin-transform-typeof-symbol" "7.0.0-beta.51" - "@babel/plugin-transform-unicode-regex" "7.0.0-beta.51" +"@babel/preset-env@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-rc.1.tgz#cb87a82fd3e44005219cd9f1cb3e9fdba907aae5" + dependencies: + "@babel/helper-module-imports" "7.0.0-rc.1" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-proposal-async-generator-functions" "7.0.0-rc.1" + "@babel/plugin-proposal-object-rest-spread" "7.0.0-rc.1" + "@babel/plugin-proposal-optional-catch-binding" "7.0.0-rc.1" + "@babel/plugin-proposal-unicode-property-regex" "7.0.0-rc.1" + "@babel/plugin-syntax-async-generators" "7.0.0-rc.1" + "@babel/plugin-syntax-object-rest-spread" "7.0.0-rc.1" + "@babel/plugin-syntax-optional-catch-binding" "7.0.0-rc.1" + "@babel/plugin-transform-arrow-functions" "7.0.0-rc.1" + "@babel/plugin-transform-async-to-generator" "7.0.0-rc.1" + "@babel/plugin-transform-block-scoped-functions" "7.0.0-rc.1" + "@babel/plugin-transform-block-scoping" "7.0.0-rc.1" + "@babel/plugin-transform-classes" "7.0.0-rc.1" + "@babel/plugin-transform-computed-properties" "7.0.0-rc.1" + "@babel/plugin-transform-destructuring" "7.0.0-rc.1" + "@babel/plugin-transform-dotall-regex" "7.0.0-rc.1" + "@babel/plugin-transform-duplicate-keys" "7.0.0-rc.1" + "@babel/plugin-transform-exponentiation-operator" "7.0.0-rc.1" + "@babel/plugin-transform-for-of" "7.0.0-rc.1" + "@babel/plugin-transform-function-name" "7.0.0-rc.1" + "@babel/plugin-transform-literals" "7.0.0-rc.1" + "@babel/plugin-transform-modules-amd" "7.0.0-rc.1" + "@babel/plugin-transform-modules-commonjs" "7.0.0-rc.1" + "@babel/plugin-transform-modules-systemjs" "7.0.0-rc.1" + "@babel/plugin-transform-modules-umd" "7.0.0-rc.1" + "@babel/plugin-transform-new-target" "7.0.0-rc.1" + "@babel/plugin-transform-object-super" "7.0.0-rc.1" + "@babel/plugin-transform-parameters" "7.0.0-rc.1" + "@babel/plugin-transform-regenerator" "7.0.0-rc.1" + "@babel/plugin-transform-shorthand-properties" "7.0.0-rc.1" + "@babel/plugin-transform-spread" "7.0.0-rc.1" + "@babel/plugin-transform-sticky-regex" "7.0.0-rc.1" + "@babel/plugin-transform-template-literals" "7.0.0-rc.1" + "@babel/plugin-transform-typeof-symbol" "7.0.0-rc.1" + "@babel/plugin-transform-unicode-regex" "7.0.0-rc.1" browserslist "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.3.0" -"@babel/preset-flow@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0-beta.51.tgz#5f92cb981afad0f221a1b7a403ce082d378012db" +"@babel/preset-flow@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0-rc.1.tgz#d7a9e4a39bdd5355dc708a70fbbf7ce49a4b429b" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-transform-flow-strip-types" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-transform-flow-strip-types" "7.0.0-rc.1" -"@babel/preset-typescript@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.0.0-beta.51.tgz#95510b2b1493c6b210a499b73e80cd8a9e2f8ad1" +"@babel/preset-typescript@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.0.0-rc.1.tgz#bd22fc7158fde7c1dd5bb7853246b5cf5a801c9c" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-transform-typescript" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-rc.1" + "@babel/plugin-transform-typescript" "7.0.0-rc.1" -"@babel/register@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0-beta.51.tgz#31a6d27f124cc7a2a0a603b65d23d5644b979aa0" +"@babel/register@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0-rc.1.tgz#a120415f5e3613115277c0857cdedf27ead78657" dependencies: core-js "^2.5.7" find-cache-dir "^1.0.0" home-or-tmp "^3.0.0" - lodash "^4.17.5" + lodash "^4.17.10" mkdirp "^0.5.1" - pirates "^3.0.1" + pirates "^4.0.0" source-map-support "^0.4.2" -"@babel/runtime@^7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.51.tgz#48b8ed18307034c6620f643514650ca2ccc0165a" +"@babel/runtime@^7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-rc.1.tgz#42f36fc5817911c89ea75da2b874054922967616" dependencies: - core-js "^2.5.7" - regenerator-runtime "^0.11.1" + regenerator-runtime "^0.12.0" "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" @@ -636,14 +648,14 @@ babylon "7.0.0-beta.44" lodash "^4.2.0" -"@babel/template@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.51.tgz#9602a40aebcf357ae9677e2532ef5fc810f5fbff" +"@babel/template@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-rc.1.tgz#5f9c0a481c9f22ecdb84697b3c3a34eadeeca23c" dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/code-frame" "7.0.0-rc.1" + "@babel/parser" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" + lodash "^4.17.10" "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" @@ -660,20 +672,19 @@ invariant "^2.2.0" lodash "^4.2.0" -"@babel/traverse@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.51.tgz#981daf2cec347a6231d3aa1d9e1803b03aaaa4a8" +"@babel/traverse@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-rc.1.tgz#867b4b45ada2d51ae2d0076f1c1d5880f8557158" dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/generator" "7.0.0-beta.51" - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/code-frame" "7.0.0-rc.1" + "@babel/generator" "7.0.0-rc.1" + "@babel/helper-function-name" "7.0.0-rc.1" + "@babel/helper-split-export-declaration" "7.0.0-rc.1" + "@babel/parser" "7.0.0-rc.1" + "@babel/types" "7.0.0-rc.1" debug "^3.1.0" globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.17.5" + lodash "^4.17.10" "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" @@ -683,183 +694,694 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" +"@babel/types@7.0.0-rc.1": + version "7.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-rc.1.tgz#6abf6d14ddd9fc022617e5b62e6b32f4fa6526ad" dependencies: esutils "^2.0.2" - lodash "^4.17.5" + lodash "^4.17.10" to-fast-properties "^2.0.0" -"@polkadot/api-provider@^0.14.27": - version "0.14.27" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.14.27.tgz#81de1bd8013814b47e88979bd3edff7e682d8956" +"@lerna/add@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.0.6.tgz#b2e79c9a493379c1e676360504736cd51accd6c8" + dependencies: + "@lerna/bootstrap" "^3.0.6" + "@lerna/command" "^3.0.6" + "@lerna/filter-options" "^3.0.5" + "@lerna/validation-error" "^3.0.0" + dedent "^0.7.0" + npm-package-arg "^6.0.0" + p-map "^1.2.0" + package-json "^4.0.1" + semver "^5.5.0" + +"@lerna/batch-packages@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.0.0.tgz#960a3dbb5fbc17283e2850448c76c023f6a35200" + dependencies: + "@lerna/package-graph" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + npmlog "^4.1.2" + +"@lerna/bootstrap@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.0.6.tgz#d93e863126f926a52f4c002647cb8010e06270b2" + dependencies: + "@lerna/batch-packages" "^3.0.0" + "@lerna/command" "^3.0.6" + "@lerna/filter-options" "^3.0.5" + "@lerna/has-npm-version" "^3.0.4" + "@lerna/npm-conf" "^3.0.0" + "@lerna/npm-install" "^3.0.0" + "@lerna/rimraf-dir" "^3.0.0" + "@lerna/run-lifecycle" "^3.0.0" + "@lerna/run-parallel-batches" "^3.0.0" + "@lerna/symlink-binary" "^3.0.0" + "@lerna/symlink-dependencies" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + dedent "^0.7.0" + get-port "^3.2.0" + multimatch "^2.1.0" + npm-package-arg "^6.0.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^1.2.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + read-package-tree "^5.1.6" + semver "^5.5.0" + +"@lerna/changed@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.0.6.tgz#a60e4b9dda9beb41be44c5e04fc4c6762a8c9c79" + dependencies: + "@lerna/collect-updates" "^3.0.5" + "@lerna/command" "^3.0.6" + "@lerna/listable" "^3.0.0" + "@lerna/output" "^3.0.0" + "@lerna/version" "^3.0.6" + +"@lerna/child-process@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.0.0.tgz#5b93ac65347eb5e317e9ce2524ab2bdd59f37cb7" + dependencies: + chalk "^2.3.1" + execa "^0.10.0" + strong-log-transformer "^1.0.6" + +"@lerna/clean@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.0.6.tgz#5e8ed5519eb2d8c1f81c23004474968aab29323c" + dependencies: + "@lerna/command" "^3.0.6" + "@lerna/filter-options" "^3.0.5" + "@lerna/prompt" "^3.0.0" + "@lerna/rimraf-dir" "^3.0.0" + p-map "^1.2.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + +"@lerna/cli@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-3.0.6.tgz#2277ad52f7d82267db6a429bafb5bb3ab4720434" + dependencies: + "@lerna/add" "^3.0.6" + "@lerna/bootstrap" "^3.0.6" + "@lerna/changed" "^3.0.6" + "@lerna/clean" "^3.0.6" + "@lerna/create" "^3.0.6" + "@lerna/diff" "^3.0.6" + "@lerna/exec" "^3.0.6" + "@lerna/global-options" "^3.0.5" + "@lerna/import" "^3.0.6" + "@lerna/init" "^3.0.6" + "@lerna/link" "^3.0.6" + "@lerna/list" "^3.0.6" + "@lerna/publish" "^3.0.6" + "@lerna/run" "^3.0.6" + "@lerna/version" "^3.0.6" + dedent "^0.7.0" + is-ci "^1.0.10" + npmlog "^4.1.2" + yargs "^12.0.1" + +"@lerna/collect-updates@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.0.5.tgz#6754ca34c4d8a90cd081f0f2e84a166dcf5c9965" + dependencies: + "@lerna/child-process" "^3.0.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + slash "^1.0.0" + +"@lerna/command@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.0.6.tgz#355e3a64158344e466697aa4bf3fb4f7001767b1" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/collect-updates" "^3.0.5" + "@lerna/filter-packages" "^3.0.0" + "@lerna/package-graph" "^3.0.0" + "@lerna/project" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + "@lerna/write-log-file" "^3.0.0" + dedent "^0.7.0" + execa "^0.10.0" + lodash "^4.17.5" + npmlog "^4.1.2" + +"@lerna/conventional-commits@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.0.2.tgz#1089d06c4022bbea1d56e7e0b3801c9be9a62d71" + dependencies: + "@lerna/validation-error" "^3.0.0" + conventional-changelog-angular "^1.6.6" + conventional-changelog-core "^2.0.5" + conventional-recommended-bump "^2.0.6" + dedent "^0.7.0" + fs-extra "^6.0.1" + get-stream "^3.0.0" + npm-package-arg "^6.0.0" + npmlog "^4.1.2" + semver "^5.5.0" + +"@lerna/create-symlink@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.0.0.tgz#f7281028c011d0524f362531a36211724793f77f" + dependencies: + cmd-shim "^2.0.2" + fs-extra "^6.0.1" + npmlog "^4.1.2" + +"@lerna/create@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.0.6.tgz#e57d2ce7b5251a5a86e6fd7c574bedf114c3fdbd" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/command" "^3.0.6" + "@lerna/npm-conf" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + camelcase "^4.1.0" + dedent "^0.7.0" + fs-extra "^6.0.1" + globby "^8.0.1" + init-package-json "^1.10.3" + npm-package-arg "^6.0.0" + pify "^3.0.0" + semver "^5.5.0" + slash "^1.0.0" + validate-npm-package-license "^3.0.3" + validate-npm-package-name "^3.0.0" + whatwg-url "^6.5.0" + +"@lerna/diff@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.0.6.tgz#d0a60be29c3ed54ccabae5acc4cdeb5e3f724d27" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/command" "^3.0.6" + "@lerna/validation-error" "^3.0.0" + npmlog "^4.1.2" + +"@lerna/exec@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.0.6.tgz#7bac34edae73fc63123b1c88fdc9ef782009fcf6" + dependencies: + "@lerna/batch-packages" "^3.0.0" + "@lerna/child-process" "^3.0.0" + "@lerna/command" "^3.0.6" + "@lerna/filter-options" "^3.0.5" + "@lerna/run-parallel-batches" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + +"@lerna/filter-options@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.0.5.tgz#d35935866d28d398674d5b53565633971779469a" + dependencies: + dedent "^0.7.0" + +"@lerna/filter-packages@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.0.0.tgz#5eb25ad1610f3e2ab845133d1f8d7d40314e838f" + dependencies: + "@lerna/validation-error" "^3.0.0" + multimatch "^2.1.0" + npmlog "^4.1.2" + +"@lerna/get-npm-exec-opts@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.0.0.tgz#8fc7866e8d8e9a2f2dc385287ba32eb44de8bdeb" + dependencies: + npmlog "^4.1.2" + +"@lerna/global-options@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.0.5.tgz#c011f7d1f208c702a5ad1070463cbd725a342811" + +"@lerna/has-npm-version@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.0.4.tgz#d8c639a9a07a3fe0e9539585da074661adf69353" + dependencies: + "@lerna/child-process" "^3.0.0" + semver "^5.5.0" + +"@lerna/import@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.0.6.tgz#84b415be3db25420455ae4f74cb48ff48d842c77" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/command" "^3.0.6" + "@lerna/prompt" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + dedent "^0.7.0" + fs-extra "^6.0.1" + p-map-series "^1.0.0" + +"@lerna/init@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.0.6.tgz#58b8836458f88e76748d403ead4984b9b6322d7f" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/command" "^3.0.6" + fs-extra "^6.0.1" + p-map "^1.2.0" + write-json-file "^2.3.0" + +"@lerna/link@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.0.6.tgz#579d0745300316725ef55e8a7668c035ca53ba9f" + dependencies: + "@lerna/command" "^3.0.6" + "@lerna/package-graph" "^3.0.0" + "@lerna/symlink-dependencies" "^3.0.0" + p-map "^1.2.0" + slash "^1.0.0" + +"@lerna/list@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.0.6.tgz#a241b7d304fc002db31a756bf3a58bfe95c7afd3" + dependencies: + "@lerna/command" "^3.0.6" + "@lerna/filter-options" "^3.0.5" + "@lerna/listable" "^3.0.0" + "@lerna/output" "^3.0.0" + +"@lerna/listable@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.0.0.tgz#27209b1382c87abdbc964220e75c247d803d4199" + dependencies: + chalk "^2.3.1" + columnify "^1.5.4" + +"@lerna/log-packed@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.0.4.tgz#6d1f6ce5ca68b9971f2a27f0ecf3c50684be174a" + dependencies: + byte-size "^4.0.3" + columnify "^1.5.4" + has-unicode "^2.0.1" + npmlog "^4.1.2" + +"@lerna/npm-conf@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.0.0.tgz#7a4b8304a0ecd1e366208f656bd3d7f4dcb3b5e7" + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +"@lerna/npm-dist-tag@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.0.0.tgz#73d9c37e4032c981bdfcea2fefef5eedd63966ec" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/get-npm-exec-opts" "^3.0.0" + npmlog "^4.1.2" + +"@lerna/npm-install@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.0.0.tgz#189c0481721e0c36c622b3c415915cb43cb41eb4" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/get-npm-exec-opts" "^3.0.0" + fs-extra "^6.0.1" + npm-package-arg "^6.0.0" + npmlog "^4.1.2" + signal-exit "^3.0.2" + write-pkg "^3.1.0" + +"@lerna/npm-publish@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.0.6.tgz#704e8e15ed84efd8677b5824766bb7bd2348e882" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/get-npm-exec-opts" "^3.0.0" + "@lerna/has-npm-version" "^3.0.4" + "@lerna/log-packed" "^3.0.4" + fs-extra "^6.0.1" + npmlog "^4.1.2" + p-map "^1.2.0" + +"@lerna/npm-run-script@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.0.0.tgz#771be1f9bd96f1ab35870334d2011dff0b0e7997" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/get-npm-exec-opts" "^3.0.0" + npmlog "^4.1.2" + +"@lerna/output@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-3.0.0.tgz#4ed4a30ed2f311046b714b3840a090990ba3ce35" + dependencies: + npmlog "^4.1.2" + +"@lerna/package-graph@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.0.0.tgz#f2e9131856c4f43ea91f2cab1bfe5c9264079f53" + dependencies: + npm-package-arg "^6.0.0" + semver "^5.5.0" + +"@lerna/package@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.0.0.tgz#14afc9a6cb1f7f7b23c1d7c7aa81bdac7d44c0e5" + dependencies: + npm-package-arg "^6.0.0" + write-pkg "^3.1.0" + +"@lerna/project@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.0.0.tgz#4320d2a2b4080cabcf95161d9c48475217d8a545" + dependencies: + "@lerna/package" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + cosmiconfig "^5.0.2" + dedent "^0.7.0" + dot-prop "^4.2.0" + glob-parent "^3.1.0" + globby "^8.0.1" + load-json-file "^4.0.0" + npmlog "^4.1.2" + p-map "^1.2.0" + resolve-from "^4.0.0" + write-json-file "^2.3.0" + +"@lerna/prompt@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-3.0.0.tgz#8e506de608d16d78d39f5dde59e81b4f8ecf720e" + dependencies: + inquirer "^5.1.0" + npmlog "^4.1.2" + +"@lerna/publish@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.0.6.tgz#780e8a46f4fd9f45c4b1a7db30f5fedb72b40f56" + dependencies: + "@lerna/batch-packages" "^3.0.0" + "@lerna/child-process" "^3.0.0" + "@lerna/collect-updates" "^3.0.5" + "@lerna/command" "^3.0.6" + "@lerna/get-npm-exec-opts" "^3.0.0" + "@lerna/npm-dist-tag" "^3.0.0" + "@lerna/npm-publish" "^3.0.6" + "@lerna/output" "^3.0.0" + "@lerna/prompt" "^3.0.0" + "@lerna/run-lifecycle" "^3.0.0" + "@lerna/run-parallel-batches" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + "@lerna/version" "^3.0.6" + fs-extra "^6.0.1" + npm-package-arg "^6.0.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^1.2.0" + p-reduce "^1.0.0" + semver "^5.5.0" + +"@lerna/resolve-symlink@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.0.0.tgz#40e2c59faa9298cd2003eeb8433b6a3b28f57c84" + dependencies: + fs-extra "^6.0.1" + npmlog "^4.1.2" + read-cmd-shim "^1.0.1" + +"@lerna/rimraf-dir@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.0.0.tgz#6d3a4872e79f86c152630454ecd27f211125bad0" + dependencies: + "@lerna/child-process" "^3.0.0" + npmlog "^4.1.2" + path-exists "^3.0.0" + rimraf "^2.6.2" + +"@lerna/run-lifecycle@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.0.0.tgz#3d9a09b390f53dd321ae4be8c7b779714d4037fe" + dependencies: + "@lerna/npm-conf" "^3.0.0" + npm-lifecycle "^2.0.0" + npmlog "^4.1.2" + +"@lerna/run-parallel-batches@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.0.0.tgz#468704934084c74991d3124d80607857d4dfa840" + dependencies: + p-map "^1.2.0" + p-map-series "^1.0.0" + +"@lerna/run@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.0.6.tgz#587e47d76cdd92e82989f7bb19b69bba1694f5ab" + dependencies: + "@lerna/batch-packages" "^3.0.0" + "@lerna/command" "^3.0.6" + "@lerna/filter-options" "^3.0.5" + "@lerna/npm-run-script" "^3.0.0" + "@lerna/output" "^3.0.0" + "@lerna/run-parallel-batches" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + p-map "^1.2.0" + +"@lerna/symlink-binary@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.0.0.tgz#f4ea3817c0a38316eddc8a7a75311e8b85731240" + dependencies: + "@lerna/create-symlink" "^3.0.0" + "@lerna/package" "^3.0.0" + fs-extra "^6.0.1" + p-map "^1.2.0" + read-pkg "^3.0.0" + +"@lerna/symlink-dependencies@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.0.0.tgz#649f4dc9225dfb047bd49fa4204b4859a7008db2" + dependencies: + "@lerna/create-symlink" "^3.0.0" + "@lerna/resolve-symlink" "^3.0.0" + "@lerna/symlink-binary" "^3.0.0" + fs-extra "^6.0.1" + p-finally "^1.0.0" + p-map "^1.2.0" + p-map-series "^1.0.0" + +"@lerna/validation-error@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-3.0.0.tgz#a27e90051c3ba71995e2a800a43d94ad04b3e3f4" + dependencies: + npmlog "^4.1.2" + +"@lerna/version@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.0.6.tgz#83de63d96ec1a4415bda4fb3978bc19280510e99" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/collect-updates" "^3.0.5" + "@lerna/command" "^3.0.6" + "@lerna/conventional-commits" "^3.0.2" + "@lerna/output" "^3.0.0" + "@lerna/prompt" "^3.0.0" + "@lerna/run-lifecycle" "^3.0.0" + "@lerna/validation-error" "^3.0.0" + chalk "^2.3.1" + dedent "^0.7.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-map "^1.2.0" + p-reduce "^1.0.0" + p-waterfall "^1.0.0" + semver "^5.5.0" + slash "^1.0.0" + temp-write "^3.4.0" + +"@lerna/write-log-file@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-3.0.0.tgz#2f95fee80c6821fe1ee6ccf8173d2b4079debbd2" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/storage" "^0.26.36" - "@polkadot/util" "^0.26.36" - "@polkadot/util-crypto" "^0.26.36" - "@polkadot/util-keyring" "^0.26.36" + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a" + +"@polkadot/api-provider@^0.28.15": + version "0.28.15" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.15.tgz#d96ae577d3a4a4cfcc4b17f2fa2e400f2d046c63" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/storage" "^0.28.15" + "@polkadot/util" "^0.28.3" + "@polkadot/util-crypto" "^0.28.3" + "@polkadot/util-keyring" "^0.28.3" "@types/nock" "^9.1.3" - eventemitter3 "^2.0.3" + eventemitter3 "^3.1.0" isomorphic-fetch "^2.2.1" websocket "^1.0.25" -"@polkadot/dev@^0.20.12": - version "0.20.12" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.12.tgz#d73f31f66f4b956cb1d49a423e7211f546d077fb" - dependencies: - "@babel/cli" "^7.0.0-beta.51" - "@babel/core" "^7.0.0-beta.51" - "@babel/plugin-proposal-class-properties" "^7.0.0-beta.51" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0-beta.51" - "@babel/plugin-transform-runtime" "^7.0.0-beta.51" - "@babel/preset-env" "^7.0.0-beta.51" - "@babel/preset-flow" "^7.0.0-beta.51" - "@babel/preset-typescript" "7.0.0-beta.51" - "@babel/register" "^7.0.0-beta.51" - "@babel/runtime" "^7.0.0-beta.51" - "@types/jest" "^23.1.1" - "@types/node" "^10.3.3" +"@polkadot/dev@^0.20.16": + version "0.20.16" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.16.tgz#abf216be962a38937a6f38b1ca253f2cf8d3e302" + dependencies: + "@babel/cli" "^7.0.0-rc.1" + "@babel/core" "^7.0.0-rc.1" + "@babel/plugin-proposal-class-properties" "^7.0.0-rc.1" + "@babel/plugin-proposal-decorators" "^7.0.0-rc.1" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0-rc.1" + "@babel/plugin-transform-runtime" "^7.0.0-rc.1" + "@babel/preset-env" "^7.0.0-rc.1" + "@babel/preset-flow" "^7.0.0-rc.1" + "@babel/preset-typescript" "7.0.0-rc.1" + "@babel/register" "^7.0.0-rc.1" + "@babel/runtime" "^7.0.0-rc.1" + "@types/jest" "^23.3.1" + "@types/node" "^10.7.1" babel-core "^7.0.0-bridge.0" - babel-eslint "^8.2.3" - babel-jest "^23.0.1" + babel-eslint "^8.2.6" + babel-jest "^23.4.2" chalk "^2.4.1" codeclimate-test-reporter "^0.5.0" copyfiles "^2.0.0" coveralls "^3.0.1" dox "^0.9.0" - eslint "^4.19.1" + eslint "^5.3.0" eslint-config-semistandard "^12.0.1" eslint-config-standard "^11.0.0" eslint-plugin-flowtype "^2.46.3" - eslint-plugin-import "^2.11.0" - eslint-plugin-jest "^21.15.1" - eslint-plugin-node "^6.0.1" + eslint-plugin-import "^2.14.0" + eslint-plugin-jest "^21.21.0" + eslint-plugin-node "^7.0.1" eslint-plugin-promise "^3.7.0" eslint-plugin-standard "^3.0.1" - flow-bin "^0.73.0" - flow-copy-source "^1.3.0" - jest "^23.0.0" - lerna "^2.11.0" + jest "^23.5.0" + lerna "^3.0.6" makeshift "^1.1.0" mkdirp "^0.5.1" ncp "^2.0.0" rimraf "^2.6.2" - tslint "^5.10.0" + tslint "^5.11.0" tslint-config-semistandard "^7.0.0" typedoc "^0.11.1" - typescript "^2.9.2" + typescript "^3.0.1" -"@polkadot/extrinsics@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.26.36.tgz#c718d111266389e7f5d73c7c4ba7c500685152e7" +"@polkadot/extrinsics@^0.28.15": + version "0.28.15" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.15.tgz#514331541b06198174db36a9a6d6bb888c4db13e" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.36" - "@polkadot/primitives" "^0.26.36" - "@polkadot/util" "^0.26.36" + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/params" "^0.28.15" + "@polkadot/primitives" "^0.28.15" + "@polkadot/util" "^0.28.3" -"@polkadot/jsonrpc@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.26.36.tgz#55c132cdb51e9d2525de47ab7504b1286529a6af" +"@polkadot/jsonrpc@^0.28.15": + version "0.28.15" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.15.tgz#a29a707cc8c6fa1c9443c533aea70a32f9128824" dependencies: - "@polkadot/params" "^0.26.36" + "@polkadot/params" "^0.28.15" babel-runtime "^6.26.0" -"@polkadot/params@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.26.36.tgz#ea6d4d02caa144d6752f7704a1f07512efb69fb7" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/extrinsics" "^0.26.36" - "@polkadot/primitives" "^0.26.36" - "@polkadot/util" "^0.26.36" - -"@polkadot/primitives@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.26.36.tgz#96effffa76a70329d64f82c5f735e96632aa7cc9" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.36" - "@polkadot/util" "^0.26.36" - -"@polkadot/storage@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.26.36.tgz#030a086037abaefa66185a5de8b3c70f232a83e4" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/params" "^0.26.36" - "@polkadot/primitives" "^0.26.36" - "@polkadot/util" "^0.26.36" - "@polkadot/util-crypto" "^0.26.36" - "@polkadot/util-keyring" "^0.26.36" - -"@polkadot/trie-db@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.26.36.tgz#84928e7158314571c989c6320c755f177a077046" - dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/trie-hash" "^0.26.36" - "@polkadot/util" "^0.26.36" - "@polkadot/util-crypto" "^0.26.36" - "@polkadot/util-rlp" "^0.26.36" +"@polkadot/params@^0.28.15": + version "0.28.15" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.15.tgz#f75622235541ab6dd70733d124a7c25ce46ccb63" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/extrinsics" "^0.28.15" + "@polkadot/params" "^0.28.15" + "@polkadot/primitives" "^0.28.15" + "@polkadot/util" "^0.28.3" + "@polkadot/util-keyring" "^0.28.3" + +"@polkadot/primitives@^0.28.15": + version "0.28.15" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.15.tgz#cba54b01b440a938ae8d153aabb6098307cf3beb" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/trie-hash" "^0.28.3" + "@polkadot/util" "^0.28.3" + +"@polkadot/storage@^0.28.15": + version "0.28.15" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.15.tgz#5778f7c16651d6eca7d2d4129edc4031e798fd8e" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/params" "^0.28.15" + "@polkadot/primitives" "^0.28.15" + "@polkadot/util" "^0.28.3" + "@polkadot/util-crypto" "^0.28.3" + "@polkadot/util-keyring" "^0.28.3" + +"@polkadot/trie-db@^0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.3.tgz#c3046d6543858998d1449902c4f1bafc6f248dc2" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/trie-hash" "^0.28.3" + "@polkadot/util" "^0.28.3" + "@polkadot/util-crypto" "^0.28.3" + "@polkadot/util-rlp" "^0.28.3" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" - async "^1.4.2" + async "^2.6.1" encoding-down "^5.0.3" level-ws "0.1.0" - levelup "^3.0.1" + levelup "^3.1.1" memdown "^3.0.0" - readable-stream "^2.2.8" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.26.36.tgz#0e7e2a31e61cbceb4081df33bac87c1d25471e1a" +"@polkadot/trie-hash@^0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.3.tgz#52341a114a775260156b069ed94291552c0c550d" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.36" - "@polkadot/util-crypto" "^0.26.36" - "@polkadot/util-rlp" "^0.26.36" + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.3" + "@polkadot/util-crypto" "^0.28.3" + "@polkadot/util-rlp" "^0.28.3" -"@polkadot/ts@^0.1.10": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.10.tgz#784d460cf4b2e9b38bb1c77f9366dd01425f220d" +"@polkadot/ts@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.12.tgz#06e1a117b408ea934eba53aca7746dd53092a08c" -"@polkadot/util-crypto@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.26.36.tgz#1f6d7faa49df96a23109fa3e03faa4191d9ef281" +"@polkadot/util-crypto@^0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.3.tgz#499d190bbf5405779180efbbd6d925b840a73d86" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.36" + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.3" blakejs "^1.1.0" - js-sha3 "^0.7.0" + js-sha3 "^0.8.0" tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-keyring@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.26.36.tgz#6e69c8310abfd9aac350039e649702ace2a21e39" +"@polkadot/util-keyring@^0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.3.tgz#75fcd67871073bd3757d74db9badcfe1ecea9980" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.36" - "@polkadot/util-crypto" "^0.26.36" + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.3" + "@polkadot/util-crypto" "^0.28.3" "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.26.36.tgz#d27004a10324f7cc97ff1c1103e3f578e3b3f249" +"@polkadot/util-rlp@^0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.3.tgz#1085e93238640f50671b030118d4d752312cb51e" dependencies: - "@babel/runtime" "^7.0.0-beta.51" - "@polkadot/util" "^0.26.36" + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.3" -"@polkadot/util@^0.26.36": - version "0.26.36" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.26.36.tgz#5b736588158157e0df9572b9243680cd324f4267" +"@polkadot/util@^0.28.3": + version "0.28.3" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.3.tgz#bc4cea7544094b7fcaf8d21c2048ae02adcaf442" dependencies: - "@babel/runtime" "^7.0.0-beta.51" + "@babel/runtime" "^7.0.0-rc.1" "@types/bn.js" "^4.11.1" "@types/deasync" "^0.1.0" "@types/ip-regex" "^2.0.0" @@ -867,12 +1389,12 @@ bn.js "^4.11.8" chalk "^2.4.1" deasync "^0.1.13" - ip-regex "^2.1.0" + ip-regex "^3.0.0" moment "^2.22.2" -"@polkadot/wasm-bin@paritytech/polkadot-wasm-bin#5ab4fc6083501b26e5fd979b93c35e2f9010b324": - version "20180601.165414.0" - resolved "https://codeload.github.com/paritytech/polkadot-wasm-bin/tar.gz/5ab4fc6083501b26e5fd979b93c35e2f9010b324" +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" "@types/accepts@*": version "1.3.5" @@ -984,9 +1506,9 @@ version "2.0.0" resolved "https://registry.yarnpkg.com/@types/ip-regex/-/ip-regex-2.0.0.tgz#4b7abb4c2cc1a50f00bb4f26983eefd0cd88f005" -"@types/jest@^23.1.1": - version "23.1.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.1.1.tgz#c54ab1a5f41aa693c0957222dd10414416d0c87b" +"@types/jest@^23.3.1": + version "23.3.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.1.tgz#a4319aedb071d478e6f407d1c4578ec8156829cf" "@types/keygrip@*": version "1.0.1" @@ -1003,9 +1525,9 @@ "@types/koa" "*" path-to-regexp "^1.7.0" -"@types/koa-websocket@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/koa-websocket/-/koa-websocket-5.0.0.tgz#ec5c43682e8354373bf551d5a77d9cffff7181f4" +"@types/koa-websocket@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/koa-websocket/-/koa-websocket-5.0.2.tgz#12de499e2191af3456aa2bccf35155b50ffb93ea" dependencies: "@types/koa" "*" "@types/ws" "*" @@ -1054,9 +1576,9 @@ version "8.5.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5" -"@types/node@^10.3.3": - version "10.3.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.4.tgz#c74e8aec19e555df44609b8057311052a2c84d9e" +"@types/node@^10.7.1": + version "10.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.7.1.tgz#b704d7c259aa40ee052eec678758a68d07132a2e" "@types/package-json@^4.0.1": version "4.0.1" @@ -1107,9 +1629,9 @@ version "0.1.1" resolved "https://registry.yarnpkg.com/@types/xxhashjs/-/xxhashjs-0.1.1.tgz#980709096c7138713b7777f49dccd4b8f93908e5" -"@types/yargs@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-11.0.0.tgz#124b9ed9c65b7091cc36da59ae12cbd47d8745ea" +"@types/yargs@^11.1.1": + version "11.1.1" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-11.1.1.tgz#2e724257167fd6b615dbe4e54301e65fe597433f" JSONStream@^1.0.4: version "1.3.1" @@ -1138,11 +1660,11 @@ abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: dependencies: xtend "~4.0.0" -accepts@^1.2.2: - version "1.3.4" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" +accepts@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: - mime-types "~2.1.16" + mime-types "~2.1.18" negotiator "0.6.1" acorn-globals@^4.0.0: @@ -1151,31 +1673,23 @@ acorn-globals@^4.0.0: dependencies: acorn "^5.0.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" +acorn-jsx@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + acorn "^5.0.3" acorn@^5.0.0, acorn@^5.1.2: version "5.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" -acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" +acorn@^5.0.3, acorn@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" +ajv-keywords@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" ajv@^4.9.1: version "4.11.8" @@ -1184,7 +1698,7 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.1.0, ajv@^5.3.0: version "5.5.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.1.tgz#b38bb8876d9e86bee994956a04e721e88b248eb2" dependencies: @@ -1193,6 +1707,15 @@ ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" +ajv@^6.0.1, ajv@^6.5.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.1" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -1296,6 +1819,10 @@ arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -1330,6 +1857,10 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + asn1.js@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-1.0.3.tgz#281ba3ec1f2448fe765f92a4eecf883fe1364b54" @@ -1377,11 +1908,15 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + async@^0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@^1.4.0, async@^1.4.2, async@^1.5.0, async@~1.5.2: +async@^1.4.0, async@~1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -1417,6 +1952,10 @@ aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -1429,15 +1968,15 @@ babel-core@^6.0.0, babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" -babel-eslint@^8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf" +babel-eslint@^8.2.6: + version "8.2.6" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" dependencies: "@babel/code-frame" "7.0.0-beta.44" "@babel/traverse" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" babylon "7.0.0-beta.44" - eslint-scope "~3.7.1" + eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" babel-generator@^6.18.0: @@ -1453,12 +1992,12 @@ babel-generator@^6.18.0: source-map "^0.5.6" trim-right "^1.0.1" -babel-jest@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" +babel-jest@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.4.2.tgz#f276de67798a5d68f2d6e87ff518c2f6e1609877" dependencies: babel-plugin-istanbul "^4.1.6" - babel-preset-jest "^23.0.1" + babel-preset-jest "^23.2.0" babel-messages@^6.23.0: version "6.23.0" @@ -1475,9 +2014,9 @@ babel-plugin-istanbul@^4.1.6: istanbul-lib-instrument "^1.10.1" test-exclude "^4.2.1" -babel-plugin-jest-hoist@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.0.1.tgz#eaa11c964563aea9c21becef2bdf7853f7f3c148" +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" babel-plugin-module-resolver@^3.1.1: version "3.1.1" @@ -1493,11 +2032,11 @@ babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-preset-jest@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.0.1.tgz#631cc545c6cf021943013bcaf22f45d87fe62198" +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" dependencies: - babel-plugin-jest-hoist "^23.0.1" + babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" babel-runtime@^6.22.0, babel-runtime@^6.26.0: @@ -1517,7 +2056,7 @@ babel-template@^6.16.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.18.0, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -1531,7 +2070,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.18.0, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1693,9 +2232,9 @@ browser-process-hrtime@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" -browser-resolve@^1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" dependencies: resolve "1.1.7" @@ -1785,10 +2324,18 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" +byte-size@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.3.tgz#b7c095efc68eadf82985fccd9a2df43a74fa2ccd" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -1807,6 +2354,29 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1889,7 +2459,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chalk@^2.3.0, chalk@^2.4.1: +chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: @@ -1901,7 +2471,7 @@ chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" -chokidar@^2.0.0, chokidar@^2.0.3: +chokidar@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" dependencies: @@ -1981,14 +2551,6 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" @@ -1997,6 +2559,12 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + dependencies: + mimic-response "^1.0.0" + clone@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" @@ -2008,14 +2576,14 @@ cmd-shim@^2.0.2: graceful-fs "^4.1.2" mkdirp "~0.5.0" -co-body@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.1.1.tgz#d97781d1e3344ba4a820fd1806bddf8341505236" +co-body@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" dependencies: inflation "^2.0.0" - qs "^6.4.0" - raw-body "^2.2.0" - type-is "^1.6.14" + qs "^6.5.2" + raw-body "^2.3.3" + type-is "^1.6.16" co@^4.4.0, co@^4.6.0: version "4.6.0" @@ -2058,16 +2626,18 @@ columnify@^1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" +combined-stream@1.0.6, combined-stream@~1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" dependencies: delayed-stream "~1.0.0" -command-join@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" - commander@2.9.0, commander@~2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" @@ -2105,7 +2675,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.10, concat-stream@^1.6.0: +concat-stream@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -2122,6 +2692,13 @@ concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" +config-chain@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -2130,7 +2707,7 @@ contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" -content-disposition@~0.5.0: +content-disposition@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" @@ -2138,7 +2715,7 @@ content-type-parser@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" -content-type@^1.0.0: +content-type@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" @@ -2149,29 +2726,7 @@ conventional-changelog-angular@^1.6.6: compare-func "^1.3.1" q "^1.5.1" -conventional-changelog-atom@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14" - dependencies: - q "^1.5.1" - -conventional-changelog-cli@^1.3.13: - version "1.3.22" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz#13570fe1728f56f013ff7a88878ff49d5162a405" - dependencies: - add-stream "^1.0.0" - conventional-changelog "^1.1.24" - lodash "^4.2.1" - meow "^4.0.0" - tempfile "^1.1.1" - -conventional-changelog-codemirror@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47" - dependencies: - q "^1.5.1" - -conventional-changelog-core@^2.0.11: +conventional-changelog-core@^2.0.5: version "2.0.11" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287" dependencies: @@ -2189,43 +2744,6 @@ conventional-changelog-core@^2.0.11: read-pkg-up "^1.0.1" through2 "^2.0.0" -conventional-changelog-ember@^0.3.12: - version "0.3.12" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400" - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3" - dependencies: - q "^1.5.1" - -conventional-changelog-express@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" - dependencies: - q "^1.4.1" - -conventional-changelog-jscs@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" - dependencies: - q "^1.4.1" - -conventional-changelog-jshint@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8" - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - conventional-changelog-preset-loader@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" @@ -2245,29 +2763,6 @@ conventional-changelog-writer@^3.0.9: split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^1.1.24: - version "1.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0" - dependencies: - conventional-changelog-angular "^1.6.6" - conventional-changelog-atom "^0.2.8" - conventional-changelog-codemirror "^0.3.8" - conventional-changelog-core "^2.0.11" - conventional-changelog-ember "^0.3.12" - conventional-changelog-eslint "^1.0.9" - conventional-changelog-express "^0.3.6" - conventional-changelog-jquery "^0.1.0" - conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.3.8" - conventional-changelog-preset-loader "^1.1.8" - -conventional-commits-filter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.1.tgz#72172319c0c88328a015b30686b55527b3a5e54a" - dependencies: - is-subset "^0.1.1" - modify-values "^1.0.0" - conventional-commits-filter@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" @@ -2275,7 +2770,7 @@ conventional-commits-filter@^1.1.6: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7: +conventional-commits-parser@^2.1.7: version "2.1.7" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" dependencies: @@ -2287,23 +2782,24 @@ conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7: through2 "^2.0.0" trim-off-newlines "^1.0.0" -conventional-recommended-bump@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375" +conventional-recommended-bump@^2.0.6: + version "2.0.9" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-2.0.9.tgz#7392421e7d0e3515f3df2040572a23cc73a68a93" dependencies: - concat-stream "^1.4.10" - conventional-commits-filter "^1.1.1" - conventional-commits-parser "^2.1.1" - git-raw-commits "^1.3.0" - git-semver-tags "^1.3.0" - meow "^3.3.0" - object-assign "^4.0.1" + concat-stream "^1.6.0" + conventional-changelog-preset-loader "^1.1.8" + conventional-commits-filter "^1.1.6" + conventional-commits-parser "^2.1.7" + git-raw-commits "^1.3.6" + git-semver-tags "^1.3.6" + meow "^4.0.0" + q "^1.5.1" convert-source-map@^1.1.0, convert-source-map@^1.4.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" -cookies@~0.7.0: +cookies@~0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b" dependencies: @@ -2337,6 +2833,14 @@ core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +cosmiconfig@^5.0.2: + version "5.0.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" + coveralls@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.1.tgz#12e15914eaa29204e56869a5ece7b9e1492d2ae2" @@ -2373,7 +2877,7 @@ create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -2381,6 +2885,16 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -2454,6 +2968,10 @@ debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: dependencies: ms "2.0.0" +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -2465,6 +2983,12 @@ decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + dependencies: + xregexp "4.0.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -2556,11 +3080,15 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1, depd@^1.1.0, depd@~1.1.1: +depd@1.1.1, depd@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" -destroy@^1.0.3: +depd@^1.1.2, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +destroy@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -2586,10 +3114,24 @@ detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + diff@^3.2.0: version "3.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + dns-packet@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-4.2.0.tgz#3fd6f5ff5a4ec3194ed0b15312693ffe8776b343" @@ -2627,6 +3169,12 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" +dot-prop@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + dox@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/dox/-/dox-0.9.0.tgz#be97b085cb9f4a0b7e80835d547e77b8687d0a0c" @@ -2724,10 +3272,20 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error-inject@~1.0.0: +error-inject@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" +es-abstract@^1.10.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + es-abstract@^1.5.1: version "1.10.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" @@ -2790,7 +3348,7 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: d "1" es5-ext "~0.10.14" -escape-html@~1.0.1: +escape-html@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2831,15 +3389,22 @@ eslint-module-utils@^2.2.0: debug "^2.6.8" pkg-dir "^1.0.0" +eslint-plugin-es@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz#5acb2565db4434803d1d46a9b4cbc94b345bd028" + dependencies: + eslint-utils "^1.3.0" + regexpp "^2.0.0" + eslint-plugin-flowtype@^2.46.3: version "2.46.3" resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.46.3.tgz#7e84131d87ef18b496b1810448593374860b4e8e" dependencies: lodash "^4.15.0" -eslint-plugin-import@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.11.0.tgz#15aeea37a67499d848e8e981806d4627b5503816" +eslint-plugin-import@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" dependencies: contains-path "^0.1.0" debug "^2.6.8" @@ -2852,18 +3417,20 @@ eslint-plugin-import@^2.11.0: read-pkg-up "^2.0.0" resolve "^1.6.0" -eslint-plugin-jest@^21.15.1: - version "21.15.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.15.1.tgz#662a3f0888002878f0f388efd09c190a95c33d82" +eslint-plugin-jest@^21.21.0: + version "21.21.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.21.0.tgz#f0afd138c4acb5f0cd7698318fb49c7d49f3bf45" -eslint-plugin-node@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" +eslint-plugin-node@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" dependencies: - ignore "^3.3.6" + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^4.0.2" minimatch "^3.0.4" - resolve "^1.3.3" - semver "^5.4.1" + resolve "^1.8.1" + semver "^5.5.0" eslint-plugin-promise@^3.7.0: version "3.7.0" @@ -2873,66 +3440,78 @@ eslint-plugin-standard@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" -eslint-scope@^3.7.1, eslint-scope@~3.7.1: +eslint-scope@3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.0, eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" +eslint@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.3.0.tgz#53695aca5213968aacdf970ccb231e42a2b285f8" dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" + ajv "^6.5.0" + babel-code-frame "^6.26.0" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" + cross-spawn "^6.0.5" debug "^3.1.0" doctrine "^2.1.0" - eslint-scope "^3.7.1" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" + espree "^4.0.0" + esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.2" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" + inquirer "^5.2.0" + is-resolvable "^1.1.0" + js-yaml "^3.11.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + lodash "^4.17.5" + minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" - regexpp "^1.0.1" + regexpp "^2.0.0" require-uncached "^1.0.3" - semver "^5.3.0" + semver "^5.5.0" + string.prototype.matchall "^2.0.0" strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" + strip-json-comments "^2.0.1" + table "^4.0.3" + text-table "^0.2.0" -espree@^3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" +espree@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" + acorn "^5.6.0" + acorn-jsx "^4.1.1" esprima@^3.1.3: version "3.1.3" @@ -2942,9 +3521,9 @@ esprima@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" dependencies: estraverse "^4.0.0" @@ -2974,9 +3553,9 @@ event-emitter@~0.3.5: d "1" es5-ext "~0.10.14" -eventemitter3@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" +eventemitter3@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" evp_bytestokey@^1.0.3: version "1.0.3" @@ -2991,11 +3570,11 @@ exec-sh@^0.2.0: dependencies: merge "^1.1.3" -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" dependencies: - cross-spawn "^5.0.1" + cross-spawn "^6.0.0" get-stream "^3.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" @@ -3003,9 +3582,9 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -3047,16 +3626,16 @@ expand-template@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd" -expect@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-23.1.0.tgz#bfdfd57a2a20170d875999ee9787cc71f01c205f" +expect@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.5.0.tgz#18999a0eef8f8acf99023fde766d9c323c2562ed" dependencies: ansi-styles "^3.2.0" - jest-diff "^23.0.1" + jest-diff "^23.5.0" jest-get-type "^22.1.0" - jest-matcher-utils "^23.0.1" - jest-message-util "^23.1.0" - jest-regex-util "^23.0.0" + jest-matcher-utils "^23.5.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" extend-shallow@^2.0.1: version "2.0.1" @@ -3075,9 +3654,13 @@ extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" -external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + +external-editor@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" @@ -3114,10 +3697,25 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + fast-future@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" +fast-glob@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.0.1" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.1" + micromatch "^3.1.10" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -3203,6 +3801,12 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" @@ -3212,20 +3816,6 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.73.0: - version "0.73.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.73.0.tgz#da1b90a02b0ef9c439f068c2fc14968db83be425" - -flow-copy-source@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flow-copy-source/-/flow-copy-source-1.3.0.tgz#591b153f5c01e8fc566c64a97290ea9103b7f1ea" - dependencies: - chokidar "^2.0.0" - fs-extra "^5.0.0" - glob "^7.0.0" - kefir "^3.7.3" - yargs "^11.0.0" - for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3260,31 +3850,46 @@ form-data@~2.3.1: combined-stream "^1.0.5" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" dependencies: map-cache "^0.2.2" -fresh@^0.5.2: +fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" +from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" -fs-extra@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" +fs-extra@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" +fs-extra@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -3296,7 +3901,7 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" -fs-readdir-recursive@^1.0.0: +fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -3388,7 +3993,7 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" -get-stream@^3.0.0: +get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -3402,16 +4007,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-raw-commits@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.0.tgz#0bc8596e90d5ffe736f7f5546bd2d12f73abaac6" - dependencies: - dargs "^4.0.1" - lodash.template "^4.0.2" - meow "^3.3.0" - split2 "^2.0.0" - through2 "^2.0.0" - git-raw-commits@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" @@ -3429,7 +4024,7 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.3.0, git-semver-tags@^1.3.6: +git-semver-tags@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" dependencies: @@ -3466,6 +4061,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -3477,14 +4076,14 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^11.0.1: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4" - globals@^11.1.0: version "11.3.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" +globals@^11.7.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" + globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -3500,15 +4099,17 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" +globby@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" dependencies: array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + dir-glob "^2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" got@^6.7.1: version "6.7.1" @@ -3526,6 +4127,28 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" +got@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3579,6 +4202,13 @@ har-validator@~5.0.3: ajv "^5.1.0" har-schema "^2.0.0" +har-validator@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" + dependencies: + ajv "^5.3.0" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -3597,7 +4227,21 @@ has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" -has-unicode@^2.0.0: +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + dependencies: + has-symbol-support-x "^1.4.1" + +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3708,10 +4352,14 @@ home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" -hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: +hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" +hosted-git-info@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -3727,14 +4375,37 @@ html-encoding-sniffer@^1.0.1: dependencies: whatwg-encoding "^1.0.1" -http-assert@^1.1.0: +http-assert@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a" dependencies: deep-equal "~1.0.1" http-errors "~1.6.1" -http-errors@1.6.2, http-errors@^1.2.8, http-errors@~1.6.1: +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + +http-errors@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@^1.6.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.0.tgz#b6d36492a201c7888bdcb5dd0471140423c4ad2a" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.1: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: @@ -3763,6 +4434,12 @@ iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + iconv-lite@^0.4.4: version "0.4.21" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" @@ -3775,9 +4452,13 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.3, ignore@^3.3.6: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + +ignore@^4.0.2: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" immediate@~3.2.3: version "3.2.3" @@ -3823,25 +4504,37 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@^1.3.2, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inquirer@^3.0.6, inquirer@^3.2.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inquirer@^5.1.0, inquirer@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.0.4" + external-editor "^2.1.0" figures "^2.0.0" lodash "^4.3.0" mute-stream "0.0.7" run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" + rxjs "^5.5.2" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" @@ -3866,12 +4559,25 @@ interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + invariant@^2.2.0, invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -3888,9 +4594,9 @@ ip-address@^5.8.9: lodash.repeat "^4.1.0" sprintf-js "1.1.0" -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" +ip-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-3.0.0.tgz#0a934694b4066558c46294244a23cc33116bf732" ip@^1.1.5: version "1.1.5" @@ -3970,6 +4676,10 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -4018,9 +4728,9 @@ is-generator-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" -is-generator-function@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.6.tgz#9e71653cd15fff341c79c4151460a131d31e9fc4" +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" @@ -4074,6 +4784,10 @@ is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + is-odd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" @@ -4136,13 +4850,11 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" -is-retry-allowed@^1.0.0: +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -4279,15 +4991,22 @@ istanbul-reports@^1.3.0: dependencies: handlebars "^4.0.3" -jest-changed-files@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.0.1.tgz#f79572d0720844ea5df84c2a448e862c2254f60c" +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" dependencies: throat "^4.0.0" -jest-cli@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.1.0.tgz#eb8bdd4ce0d15250892e31ad9b69bc99d2a8f6bf" +jest-cli@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.5.0.tgz#d316b8e34a38a610a1efc4f0403d8ef8a55e4492" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -4300,23 +5019,24 @@ jest-cli@^23.1.0: istanbul-lib-coverage "^1.2.0" istanbul-lib-instrument "^1.10.1" istanbul-lib-source-maps "^1.2.4" - jest-changed-files "^23.0.1" - jest-config "^23.1.0" - jest-environment-jsdom "^23.1.0" + jest-changed-files "^23.4.2" + jest-config "^23.5.0" + jest-environment-jsdom "^23.4.0" jest-get-type "^22.1.0" - jest-haste-map "^23.1.0" - jest-message-util "^23.1.0" - jest-regex-util "^23.0.0" - jest-resolve-dependencies "^23.0.1" - jest-runner "^23.1.0" - jest-runtime "^23.1.0" - jest-snapshot "^23.0.1" - jest-util "^23.1.0" - jest-validate "^23.0.1" - jest-watcher "^23.1.0" - jest-worker "^23.0.1" + jest-haste-map "^23.5.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.5.0" + jest-runner "^23.5.0" + jest-runtime "^23.5.0" + jest-snapshot "^23.5.0" + jest-util "^23.4.0" + jest-validate "^23.5.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" micromatch "^2.3.11" node-notifier "^5.2.1" + prompts "^0.1.9" realpath-native "^1.0.0" rimraf "^2.5.4" slash "^1.0.0" @@ -4325,110 +5045,113 @@ jest-cli@^23.1.0: which "^1.2.12" yargs "^11.0.0" -jest-config@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.1.0.tgz#708ca0f431d356ee424fb4895d3308006bdd8241" +jest-config@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.5.0.tgz#3770fba03f7507ee15f3b8867c742e48f31a9773" dependencies: babel-core "^6.0.0" - babel-jest "^23.0.1" + babel-jest "^23.4.2" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^23.1.0" - jest-environment-node "^23.1.0" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" jest-get-type "^22.1.0" - jest-jasmine2 "^23.1.0" - jest-regex-util "^23.0.0" - jest-resolve "^23.1.0" - jest-util "^23.1.0" - jest-validate "^23.0.1" - pretty-format "^23.0.1" - -jest-diff@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.0.1.tgz#3d49137cee12c320a4b4d2b4a6fa6e82d491a16a" + jest-jasmine2 "^23.5.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.5.0" + jest-util "^23.4.0" + jest-validate "^23.5.0" + micromatch "^2.3.11" + pretty-format "^23.5.0" + +jest-diff@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.5.0.tgz#250651a433dd0050290a07642946cc9baaf06fba" dependencies: chalk "^2.0.1" diff "^3.2.0" jest-get-type "^22.1.0" - pretty-format "^23.0.1" + pretty-format "^23.5.0" -jest-docblock@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.0.1.tgz#deddd18333be5dc2415260a04ef3fce9276b5725" +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" dependencies: detect-newline "^2.1.0" -jest-each@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.1.0.tgz#16146b592c354867a5ae5e13cdf15c6c65b696c6" +jest-each@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.5.0.tgz#77f7e2afe6132a80954b920006e78239862b10ba" dependencies: chalk "^2.0.1" - pretty-format "^23.0.1" + pretty-format "^23.5.0" -jest-environment-jsdom@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.1.0.tgz#85929914e23bed3577dac9755f4106d0697c479c" +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" dependencies: - jest-mock "^23.1.0" - jest-util "^23.1.0" + jest-mock "^23.2.0" + jest-util "^23.4.0" jsdom "^11.5.1" -jest-environment-node@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.1.0.tgz#452c0bf949cfcbbacda1e1762eeed70bc784c7d5" +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" dependencies: - jest-mock "^23.1.0" - jest-util "^23.1.0" + jest-mock "^23.2.0" + jest-util "^23.4.0" jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" -jest-haste-map@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.1.0.tgz#18e6c7d5a8d27136f91b7d9852f85de0c7074c49" +jest-haste-map@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.5.0.tgz#d4ca618188bd38caa6cb20349ce6610e194a8065" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^23.0.1" + invariant "^2.2.4" + jest-docblock "^23.2.0" jest-serializer "^23.0.1" - jest-worker "^23.0.1" + jest-worker "^23.2.0" micromatch "^2.3.11" sane "^2.0.0" -jest-jasmine2@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.1.0.tgz#4afab31729b654ddcd2b074add849396f13b30b8" +jest-jasmine2@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.5.0.tgz#05fe7f1788e650eeb5a03929e6461ea2e9f3db53" dependencies: + babel-traverse "^6.0.0" chalk "^2.0.1" co "^4.6.0" - expect "^23.1.0" + expect "^23.5.0" is-generator-fn "^1.0.0" - jest-diff "^23.0.1" - jest-each "^23.1.0" - jest-matcher-utils "^23.0.1" - jest-message-util "^23.1.0" - jest-snapshot "^23.0.1" - jest-util "^23.1.0" - pretty-format "^23.0.1" - -jest-leak-detector@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.0.1.tgz#9dba07505ac3495c39d3ec09ac1e564599e861a0" + jest-diff "^23.5.0" + jest-each "^23.5.0" + jest-matcher-utils "^23.5.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.5.0" + jest-util "^23.4.0" + pretty-format "^23.5.0" + +jest-leak-detector@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.5.0.tgz#14ac2a785bd625160a2ea968fd5d98b7dcea3e64" dependencies: - pretty-format "^23.0.1" + pretty-format "^23.5.0" -jest-matcher-utils@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.0.1.tgz#0c6c0daedf9833c2a7f36236069efecb4c3f6e5f" +jest-matcher-utils@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.5.0.tgz#0e2ea67744cab78c9ab15011c4d888bdd3e49e2a" dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" - pretty-format "^23.0.1" + pretty-format "^23.5.0" -jest-message-util@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.1.0.tgz#9a809ba487ecac5ce511d4e698ee3b5ee2461ea9" +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" dependencies: "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" @@ -4436,50 +5159,50 @@ jest-message-util@^23.1.0: slash "^1.0.0" stack-utils "^1.0.1" -jest-mock@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.1.0.tgz#a381c31b121ab1f60c462a2dadb7b86dcccac487" +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" -jest-regex-util@^23.0.0: - version "23.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.0.0.tgz#dd5c1fde0c46f4371314cf10f7a751a23f4e8f76" +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" -jest-resolve-dependencies@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.0.1.tgz#d01a10ddad9152c4cecdf5eac2b88571c4b6a64d" +jest-resolve-dependencies@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.5.0.tgz#10c4d135beb9d2256de1fedc7094916c3ad74af7" dependencies: - jest-regex-util "^23.0.0" - jest-snapshot "^23.0.1" + jest-regex-util "^23.3.0" + jest-snapshot "^23.5.0" -jest-resolve@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.1.0.tgz#b9e316eecebd6f00bc50a3960d1527bae65792d2" +jest-resolve@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.5.0.tgz#3b8e7f67e84598f0caf63d1530bd8534a189d0e6" dependencies: - browser-resolve "^1.11.2" + browser-resolve "^1.11.3" chalk "^2.0.1" realpath-native "^1.0.0" -jest-runner@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.1.0.tgz#fa20a933fff731a5432b3561e7f6426594fa29b5" +jest-runner@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.5.0.tgz#570f7a044da91648b5bb9b6baacdd511076c71d7" dependencies: exit "^0.1.2" graceful-fs "^4.1.11" - jest-config "^23.1.0" - jest-docblock "^23.0.1" - jest-haste-map "^23.1.0" - jest-jasmine2 "^23.1.0" - jest-leak-detector "^23.0.1" - jest-message-util "^23.1.0" - jest-runtime "^23.1.0" - jest-util "^23.1.0" - jest-worker "^23.0.1" + jest-config "^23.5.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.5.0" + jest-jasmine2 "^23.5.0" + jest-leak-detector "^23.5.0" + jest-message-util "^23.4.0" + jest-runtime "^23.5.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.1.0.tgz#b4ae0e87259ecacfd4a884b639db07cf4dd620af" +jest-runtime@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.5.0.tgz#eb503525a196dc32f2f9974e3482d26bdf7b63ce" dependencies: babel-core "^6.0.0" babel-plugin-istanbul "^4.1.6" @@ -4488,14 +5211,14 @@ jest-runtime@^23.1.0: exit "^0.1.2" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.11" - jest-config "^23.1.0" - jest-haste-map "^23.1.0" - jest-message-util "^23.1.0" - jest-regex-util "^23.0.0" - jest-resolve "^23.1.0" - jest-snapshot "^23.0.1" - jest-util "^23.1.0" - jest-validate "^23.0.1" + jest-config "^23.5.0" + jest-haste-map "^23.5.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.5.0" + jest-snapshot "^23.5.0" + jest-util "^23.4.0" + jest-validate "^23.5.0" micromatch "^2.3.11" realpath-native "^1.0.0" slash "^1.0.0" @@ -4507,59 +5230,63 @@ jest-serializer@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" -jest-snapshot@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.0.1.tgz#6674fa19b9eb69a99cabecd415bddc42d6af3e7e" +jest-snapshot@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.5.0.tgz#cc368ebd8513e1175e2a7277f37a801b7358ae79" dependencies: + babel-types "^6.0.0" chalk "^2.0.1" - jest-diff "^23.0.1" - jest-matcher-utils "^23.0.1" + jest-diff "^23.5.0" + jest-matcher-utils "^23.5.0" + jest-message-util "^23.4.0" + jest-resolve "^23.5.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^23.0.1" + pretty-format "^23.5.0" + semver "^5.5.0" -jest-util@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.1.0.tgz#c0251baf34644c6dd2fea78a962f4263ac55772d" +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" is-ci "^1.0.10" - jest-message-util "^23.1.0" + jest-message-util "^23.4.0" mkdirp "^0.5.1" slash "^1.0.0" source-map "^0.6.0" -jest-validate@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.0.1.tgz#cd9f01a89d26bb885f12a8667715e9c865a5754f" +jest-validate@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.5.0.tgz#f5df8f761cf43155e1b2e21d6e9de8a2852d0231" dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" leven "^2.1.0" - pretty-format "^23.0.1" + pretty-format "^23.5.0" -jest-watcher@^23.1.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.1.0.tgz#a8d5842e38d9fb4afff823df6abb42a58ae6cdbd" +jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" string-length "^2.0.0" -jest-worker@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.0.1.tgz#9e649dd963ff4046026f91c4017f039a6aa4a7bc" +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" dependencies: merge-stream "^1.0.1" -jest@^23.0.0: - version "23.1.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-23.1.0.tgz#bbb7f893100a11a742dd8bd0d047a54b0968ad1a" +jest@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.5.0.tgz#80de353d156ea5ea4a7332f7962ac79135fbc62e" dependencies: import-local "^1.0.0" - jest-cli "^23.1.0" + jest-cli "^23.5.0" joi-browser@^13.4.0: version "13.4.0" @@ -4585,11 +5312,22 @@ js-sha3@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.7.0.tgz#0a5c57b36f79882573b2d84051f8bb85dd1bd63a" +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.1: +js-yaml@^3.11.0, js-yaml@^3.9.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^3.6.1, js-yaml@^3.7.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: @@ -4651,6 +5389,10 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + json-parse-better-errors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" @@ -4659,6 +5401,10 @@ json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -4715,12 +5461,6 @@ k-bucket@^4.0.0: inherits "^2.0.1" randombytes "^2.0.3" -kefir@^3.7.3: - version "3.8.0" - resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.0.tgz#63b5dce575f1a7ab3286788e771eb104b181b676" - dependencies: - symbol-observable "1.0.4" - keydir@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/keydir/-/keydir-2.1.1.tgz#a981f3e7f0c3c3751d435720e6ede3be6a25d3b7" @@ -4735,6 +5475,12 @@ keypair@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/keypair/-/keypair-1.0.1.tgz#7603719270afb6564ed38a22087a06fc9aa4ea1b" +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + dependencies: + json-buffer "3.0.0" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -4755,6 +5501,10 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" +kleur@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.1.tgz#7cc64b0d188d0dcbc98bdcdfdda2cc10619ddce8" + koa-compose@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" @@ -4765,6 +5515,10 @@ koa-compose@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.0.0.tgz#2800a513d9c361ef0d63852b038e4f6f2d5a773c" +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + koa-convert@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" @@ -4784,43 +5538,43 @@ koa-route@^3.2.0: methods "~1.1.0" path-to-regexp "^1.2.0" -koa-websocket@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/koa-websocket/-/koa-websocket-4.1.0.tgz#3558d047db3ad70e4ea5181cae88c62c1e12224d" +koa-websocket@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/koa-websocket/-/koa-websocket-5.0.1.tgz#41413361a0730b886ec3b070e43d78449c8da12b" dependencies: co "^4.4.0" - debug "^2.1.2" + debug "^3.1.0" koa-compose "^4.0.0" - ws "^2.3.1" + ws "^5.2.0" -koa@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.4.1.tgz#d449cfb970a7e9da571f699eda40bb9e32eb1484" +koa@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.5.2.tgz#f2bda7f3e70be54924e7e5e9789a249f77256fe3" dependencies: - accepts "^1.2.2" - content-disposition "~0.5.0" - content-type "^1.0.0" - cookies "~0.7.0" - debug "*" + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.7.1" + debug "^3.1.0" delegates "^1.0.0" - depd "^1.1.0" - destroy "^1.0.3" - error-inject "~1.0.0" - escape-html "~1.0.1" - fresh "^0.5.2" - http-assert "^1.1.0" - http-errors "^1.2.8" - is-generator-function "^1.0.3" - koa-compose "^4.0.0" + depd "^1.1.2" + destroy "^1.0.4" + error-inject "^1.0.0" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" koa-convert "^1.2.0" koa-is-json "^1.0.0" - mime-types "^2.0.7" - on-finished "^2.1.0" - only "0.0.2" - parseurl "^1.3.0" - statuses "^1.2.0" - type-is "^1.5.5" - vary "^1.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" latency-monitor@^0.2.1: version "0.2.1" @@ -4850,54 +5604,18 @@ left-pad@^1.1.3, left-pad@^1.2.0: length-prefixed-stream@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/length-prefixed-stream/-/length-prefixed-stream-1.5.2.tgz#269b29ff76324361727447f1bfacb762e6965a8f" - dependencies: - buffer-alloc-unsafe "^1.0.0" - readable-stream "^2.0.0" - varint "^5.0.0" - -lerna@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.11.0.tgz#89b5681e286d388dda5bbbdbbf6b84c8094eff65" - dependencies: - async "^1.5.0" - chalk "^2.1.0" - cmd-shim "^2.0.2" - columnify "^1.5.4" - command-join "^2.0.0" - conventional-changelog-cli "^1.3.13" - conventional-recommended-bump "^1.2.1" - dedent "^0.7.0" - execa "^0.8.0" - find-up "^2.1.0" - fs-extra "^4.0.1" - get-port "^3.2.0" - glob "^7.1.2" - glob-parent "^3.1.0" - globby "^6.1.0" - graceful-fs "^4.1.11" - hosted-git-info "^2.5.0" - inquirer "^3.2.2" - is-ci "^1.0.10" - load-json-file "^4.0.0" - lodash "^4.17.4" - minimatch "^3.0.4" - npmlog "^4.1.2" - p-finally "^1.0.0" - package-json "^4.0.1" - path-exists "^3.0.0" - read-cmd-shim "^1.0.1" - read-pkg "^3.0.0" - rimraf "^2.6.1" - safe-buffer "^5.1.1" - semver "^5.4.1" - signal-exit "^3.0.2" - slash "^1.0.0" - strong-log-transformer "^1.0.6" - temp-write "^3.3.0" - write-file-atomic "^2.3.0" - write-json-file "^2.2.0" - write-pkg "^3.1.0" - yargs "^8.0.2" + dependencies: + buffer-alloc-unsafe "^1.0.0" + readable-stream "^2.0.0" + varint "^5.0.0" + +lerna@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.0.6.tgz#908ffc4597a05b5949a4d3d33a8e175904a44f07" + dependencies: + "@lerna/cli" "^3.0.6" + import-local "^1.0.0" + npmlog "^4.1.2" level-codec@^9.0.0: version "9.0.0" @@ -4909,9 +5627,9 @@ level-errors@^2.0.0, level-errors@~2.0.0: dependencies: errno "~0.1.1" -level-iterator-stream@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-2.0.0.tgz#e0fe4273a0322177c81bb87684016bb5b90a98b4" +level-iterator-stream@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-3.0.0.tgz#2f780b524b8e7fa479c195e5b1180cd409f85219" dependencies: inherits "^2.0.1" readable-stream "^2.0.5" @@ -4938,13 +5656,13 @@ leveldown@^4.0.1: nan "~2.10.0" prebuild-install "^4.0.0" -levelup@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.0.1.tgz#07794639fd0af185089130aaea09d03023637b8d" +levelup@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.1.1.tgz#c2c0b3be2b4dc316647c53b42e2f559e232d2189" dependencies: deferred-leveldown "~4.0.0" level-errors "~2.0.0" - level-iterator-stream "~2.0.0" + level-iterator-stream "~3.0.0" xtend "~4.0.0" leven@^2.1.0: @@ -5289,6 +6007,13 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -5403,7 +6128,7 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lowercase-keys@^1.0.0: +lowercase-keys@1.0.0, lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" @@ -5573,6 +6298,10 @@ merge-stream@^1.0.1: dependencies: readable-stream "^2.0.1" +merge2@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" + merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" @@ -5621,12 +6350,22 @@ mime-db@~1.30.0: version "1.30.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" -mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: +mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: version "2.1.17" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: mime-db "~1.30.0" +mime-types@^2.1.18, mime-types@~2.1.18, mime-types@~2.1.19: + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" + dependencies: + mime-db "~1.35.0" + mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -5803,6 +6542,15 @@ multihashing-async@~0.4.8: murmurhash3js "^3.0.1" nodeify "^1.0.1" +multimatch@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + multistream-select@^0.14.1, multistream-select@~0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/multistream-select/-/multistream-select-0.14.2.tgz#f31e0993d6109e3fbfb7902806acb0de1a16f3e5" @@ -5823,7 +6571,7 @@ murmurhash3js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" -mute-stream@0.0.7: +mute-stream@0.0.7, mute-stream@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -5876,6 +6624,10 @@ next-tick@1: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" +nice-try@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" + node-abi@^2.2.0: version "2.4.3" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b" @@ -5893,6 +6645,23 @@ node-forge@^0.7.1, node-forge@^0.7.5: version "0.7.5" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -5959,6 +6728,12 @@ noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -5966,7 +6741,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -5981,10 +6756,40 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + npm-bundled@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" +npm-lifecycle@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz#1eda2eedb82db929e3a0c50341ab0aad140ed569" + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.11" + node-gyp "^3.8.0" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + dependencies: + hosted-git-info "^2.6.0" + osenv "^0.1.5" + semver "^5.5.0" + validate-npm-package-name "^3.0.0" + npm-packlist@^1.1.6: version "1.1.10" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" @@ -5998,7 +6803,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -6019,6 +6824,10 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + object-assign@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" @@ -6069,7 +6878,7 @@ obuf@^1.0.0, obuf@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" -on-finished@^2.1.0: +on-finished@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: @@ -6087,7 +6896,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -only@0.0.2: +only@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" @@ -6135,6 +6944,13 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +osenv@0, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + osenv@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" @@ -6150,20 +6966,70 @@ output-file-sync@^2.0.0: is-plain-obj "^1.1.0" mkdirp "^0.5.1" +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + p-limit@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + dependencies: + p-reduce "^1.0.0" + +p-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + +p-waterfall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" + dependencies: + p-reduce "^1.0.0" + package-json@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" @@ -6173,6 +7039,15 @@ package-json@^4.0.1: registry-url "^3.0.3" semver "^5.1.0" +package-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-5.0.0.tgz#a7dbe2725edcc7dc9bcee627672275e323882433" + dependencies: + got "^8.3.1" + registry-auth-token "^3.3.2" + registry-url "^3.1.0" + semver "^5.5.0" + parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -6205,7 +7080,7 @@ parse5@^3.0.2: dependencies: "@types/node" "*" -parseurl@^1.3.0: +parseurl@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" @@ -6235,7 +7110,7 @@ path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -6322,7 +7197,7 @@ pidlockfile@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pidlockfile/-/pidlockfile-1.1.1.tgz#d67312fb326deeb45e5419a47c141877bd3cc98c" -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6340,9 +7215,9 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pirates@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-3.0.2.tgz#7e6f85413fd9161ab4e12b539b06010d85954bb9" +pirates@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.0.tgz#850b18781b4ac6ec58a43c9ed9ec5fe6796addbd" dependencies: node-modules-regexp "^1.0.0" @@ -6404,13 +7279,17 @@ prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -pretty-format@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.1.tgz#d61d065268e4c759083bccbca27a01ad7c7601f4" +pretty-format@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.5.0.tgz#0f9601ad9da70fe690a269cd3efca732c210687c" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -6441,6 +7320,23 @@ promise@~1.3.0: dependencies: is-promise "~1" +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + dependencies: + kleur "^2.0.1" + sisteransi "^0.1.1" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + dependencies: + read "1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + protocol-buffers-schema@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz#00434f608b4e8df54c59e070efeefc37fb4bb859" @@ -6462,6 +7358,10 @@ pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +psl@^1.1.24: + version "1.1.29" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" + pull-abortable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/pull-abortable/-/pull-abortable-4.1.1.tgz#b3ad5aefb4116b25916d26db89393ac98d0dcea1" @@ -6565,13 +7465,13 @@ punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" -q@^1.4.1, q@^1.5.1: +q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qs@^6.4.0, qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@^6.5.2, qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" qs@~6.3.0: version "6.3.2" @@ -6581,6 +7481,18 @@ qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -6598,13 +7510,13 @@ randombytes@^2.0.3: dependencies: safe-buffer "^5.1.0" -raw-body@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" +raw-body@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" dependencies: bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" + http-errors "1.6.3" + iconv-lite "0.4.23" unpipe "1.0.0" rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: @@ -6622,6 +7534,27 @@ read-cmd-shim@^1.0.1: dependencies: graceful-fs "^4.1.2" +"read-package-json@1 || 2", read-package-json@^2.0.0: + version "2.0.13" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + slash "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-tree@^5.1.6: + version "5.2.1" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.1.tgz#6218b187d6fac82289ce4387bbbaf8eef536ad63" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + once "^1.3.0" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -6667,6 +7600,12 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +read@1, read@~1.0.1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" @@ -6700,6 +7639,15 @@ readable-stream@~1.0.31: isarray "0.0.1" string_decoder "~0.10.x" +readdir-scoped-modules@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -6751,13 +7699,17 @@ regenerate@^1.3.3, regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" -regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1: +regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" -regenerator-transform@^0.12.4: - version "0.12.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.12.4.tgz#aa9b6c59f4b97be080e972506c560b3bccbfcff0" +regenerator-runtime@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" dependencies: private "^0.1.6" @@ -6774,9 +7726,15 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + dependencies: + define-properties "^1.1.2" + +regexpp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" regexpu-core@^4.1.3: version "4.1.5" @@ -6807,7 +7765,14 @@ registry-auth-token@^3.0.1: rc "^1.1.6" safe-buffer "^5.0.1" -registry-url@^3.0.3: +registry-auth-token@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3, registry-url@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" dependencies: @@ -6913,6 +7878,31 @@ request@^2.79.0, request@^2.83.0: tunnel-agent "^0.6.0" uuid "^3.1.0" +request@^2.87.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + request@~2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" @@ -6971,6 +7961,10 @@ resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -6979,13 +7973,13 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.6: +resolve@^1.1.6, resolve@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: path-parse "^1.0.5" -resolve@^1.2.0, resolve@^1.3.3, resolve@^1.4.0: +resolve@^1.2.0, resolve@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" dependencies: @@ -6997,6 +7991,12 @@ resolve@^1.3.2, resolve@^1.6.0: dependencies: path-parse "^1.0.5" +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -7064,23 +8064,19 @@ run-parallel@^1.0.0: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" +rxjs@^5.5.2: + version "5.5.11" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + symbol-observable "1.0.1" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -safe-buffer@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" +safe-buffer@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" safe-regex@^1.1.0: version "1.1.0" @@ -7088,7 +8084,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -7135,10 +8131,14 @@ semver-compare@^1.0.0: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" -semver@^5.5.0: +"semver@2.x || 3.x || 4 || 5", semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -7173,6 +8173,10 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.9" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" @@ -7224,6 +8228,10 @@ simple-get@^2.7.0: once "^1.3.1" simple-concat "^1.0.0" +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -7234,6 +8242,10 @@ slice-ansi@1.0.0: dependencies: is-fullwidth-code-point "^2.0.0" +slide@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -7320,12 +8332,30 @@ source-map@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" dependencies: spdx-license-ids "^1.0.2" +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + spdx-expression-parse@~1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" @@ -7334,6 +8364,10 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + spdy-transport@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" @@ -7397,10 +8431,14 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", statuses@^1.2.0: +"statuses@>= 1.3.1 < 2": version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -7416,6 +8454,10 @@ stream-to-pull-stream@^1.7.2: looper "^3.0.0" pull-stream "^3.2.3" +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -7438,6 +8480,16 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string.prototype.matchall@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.10.0" + function-bind "^1.1.1" + has-symbols "^1.0.0" + regexp.prototype.flags "^1.2.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -7494,7 +8546,7 @@ strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -7530,9 +8582,9 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -symbol-observable@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" +symbol-observable@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" symbol-tree@^3.2.1: version "3.2.2" @@ -7542,12 +8594,12 @@ sywac@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/sywac/-/sywac-1.2.0.tgz#b0a05c4e0f459918e8e42e0f55e1c1039a0e975c" -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" +table@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" + ajv "^6.0.1" + ajv-keywords "^3.0.0" chalk "^2.1.0" lodash "^4.17.4" slice-ansi "1.0.0" @@ -7587,7 +8639,7 @@ tar-stream@^1.1.2: to-buffer "^1.1.0" xtend "^4.0.0" -tar@^2.2.1: +tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -7611,24 +8663,17 @@ temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" -temp-write@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.3.0.tgz#c1a96de2b36061342eae81f44ff001aec8f615a9" +temp-write@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" dependencies: graceful-fs "^4.1.2" is-stream "^1.1.0" make-dir "^1.0.0" - pify "^2.2.0" + pify "^3.0.0" temp-dir "^1.0.0" uuid "^3.0.1" -tempfile@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" - dependencies: - os-tmpdir "^1.0.0" - uuid "^2.0.1" - test-exclude@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" @@ -7643,7 +8688,7 @@ text-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" -text-table@~0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -7672,7 +8717,7 @@ time-cache@~0.3.0: dependencies: lodash.throttle "^4.1.1" -timed-out@^4.0.0: +timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -7724,6 +8769,10 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + topo@3.x.x: version "3.0.0" resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a" @@ -7736,7 +8785,14 @@ tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.0, tough-cookie@~2. dependencies: punycode "^1.4.1" -tr46@^1.0.0: +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.0, tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" dependencies: @@ -7758,10 +8814,6 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - tslib@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" @@ -7799,9 +8851,9 @@ tslint-eslint-rules@^5.3.1: tslib "1.9.0" tsutils "2.8.0" -tslint@^5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.10.0.tgz#11e26bccb88afa02dd0d9956cae3d4540b5f54c3" +tslint@^5.11.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" dependencies: babel-code-frame "^6.22.0" builtin-modules "^1.1.1" @@ -7814,7 +8866,7 @@ tslint@^5.10.0: resolve "^1.3.2" semver "^5.3.0" tslib "^1.8.0" - tsutils "^2.12.1" + tsutils "^2.27.2" tsutils@2.8.0: version "2.8.0" @@ -7826,9 +8878,9 @@ tsutils@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" -tsutils@^2.12.1: - version "2.27.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.1.tgz#ab0276ac23664f36ce8fd4414daec4aebf4373ee" +tsutils@^2.27.2: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" dependencies: tslib "^1.8.1" @@ -7856,12 +8908,12 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@^1.5.5, type-is@^1.6.14: - version "1.6.15" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" +type-is@^1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: media-typer "0.3.0" - mime-types "~2.1.15" + mime-types "~2.1.18" typedarray-to-buffer@^3.1.2: version "3.1.2" @@ -7899,9 +8951,9 @@ typedoc@^0.11.1: typedoc-default-themes "^0.5.0" typescript "2.7.2" -typescript@2.7.2, typescript@^2.9.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" +typescript@2.7.2, typescript@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" uc.micro@^1.0.1: version "1.0.3" @@ -7920,7 +8972,7 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uid-number@^0.0.6: +uid-number@0.0.6, uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -7928,9 +8980,9 @@ ultron@1.0.x: version "1.0.2" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" +umask@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" unicode-canonical-property-names-ecmascript@^1.0.2: version "1.0.3" @@ -8002,6 +9054,12 @@ upath@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" +uri-js@^4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + dependencies: + punycode "^2.1.0" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" @@ -8016,6 +9074,16 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + use@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" @@ -8039,14 +9107,14 @@ util@0.10.3: dependencies: inherits "2.0.1" -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" @@ -8054,11 +9122,24 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" +validate-npm-package-license@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + varint@^5.0.0, varint@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.0.tgz#d826b89f7490732fabc0c0ed693ed475dcb29ebf" -vary@^1.0.0: +vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -8139,6 +9220,14 @@ whatwg-url@^6.3.0: tr46 "^1.0.0" webidl-conversions "^4.0.1" +whatwg-url@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -8147,6 +9236,12 @@ which-pm-runs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" +which@1, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + which@^1.2.12, which@^1.2.9, which@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" @@ -8194,7 +9289,7 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-json-file@^2.2.0: +write-json-file@^2.2.0, write-json-file@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" dependencies: @@ -8225,12 +9320,11 @@ ws@^1.1.0: options ">=0.0.5" ultron "1.0.x" -ws@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80" +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" dependencies: - safe-buffer "~5.0.1" - ultron "~1.1.0" + async-limiter "~1.0.0" xml-name-validator@^2.0.1: version "2.0.1" @@ -8240,6 +9334,10 @@ xor-distance@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xor-distance/-/xor-distance-1.0.0.tgz#da735d9b24fcca8dbcd9b374d16d2a01ee9541c6" +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -8254,6 +9352,10 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +"y18n@^3.2.1 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yaeti@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" @@ -8266,9 +9368,9 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" +yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" dependencies: camelcase "^4.1.0" @@ -8295,23 +9397,22 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" +yargs@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2" dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" get-caller-file "^1.0.1" os-locale "^2.0.0" - read-pkg-up "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" yargs@~3.10.0: version "3.10.0" @@ -8321,3 +9422,7 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" From c01e9d52766b9be9958a3852f37021f98102960a Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 21 Aug 2018 15:56:43 +0200 Subject: [PATCH 21/34] Update dependencies --- package.json | 4 +- packages/client-chains/package.json | 14 +- packages/client-db-chain/package.json | 10 +- packages/client-db/package.json | 4 +- packages/client-p2p-messages/package.json | 6 +- packages/client-p2p/package.json | 16 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 4 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- yarn.lock | 1272 ++++++++++++++------- 13 files changed, 892 insertions(+), 460 deletions(-) diff --git a/package.json b/package.json index 59f6acce..5004bd14 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "start-rust": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js --db-path ./tmp/start-rust --p2p-nodes /ip4/127.0.0.1/tcp/30333/ipfs/QmXBQmmjNsBLobf5Xx8Kqz7rvUrGgiBLTYm2EmQvcZyrKR --p2p-port 39935 --rpc-port 9935" }, "devDependencies": { - "@polkadot/dev": "^0.20.16", - "@polkadot/ts": "^0.1.12" + "@polkadot/dev": "^0.20.17", + "@polkadot/ts": "^0.1.13" } } diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 862b2c87..0f9f005e 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,16 +37,16 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.28.15", - "@polkadot/util": "^0.28.3", - "@polkadot/util-crypto": "^0.28.3", - "@polkadot/util-keyring": "^0.28.3" + "@polkadot/storage": "^0.28.19", + "@polkadot/util": "^0.28.4", + "@polkadot/util-crypto": "^0.28.4", + "@polkadot/util-keyring": "^0.28.4" }, "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.28.15", - "@polkadot/primitives": "^0.28.15", - "@polkadot/storage": "^0.28.15" + "@polkadot/extrinsics": "^0.28.19", + "@polkadot/primitives": "^0.28.19", + "@polkadot/storage": "^0.28.19" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 90561d1f..1435c6ff 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.28.15", - "@polkadot/trie-hash": "^0.28.3", - "@polkadot/util": "^0.28.3", - "@polkadot/util-crypto": "^0.28.3" + "@polkadot/storage": "^0.28.19", + "@polkadot/trie-hash": "^0.28.4", + "@polkadot/util": "^0.28.4", + "@polkadot/util-crypto": "^0.28.4" }, "devDependencies": { - "@polkadot/storage": "^0.28.15" + "@polkadot/storage": "^0.28.19" } } diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 1b96b710..e6cab334 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/trie-db": "^0.28.3", - "@polkadot/util": "^0.28.3", + "@polkadot/trie-db": "^0.28.4", + "@polkadot/util": "^0.28.4", "@types/mkdirp": "^0.5.2", "leveldown": "^4.0.1", "medeadown": "^1.1.9", diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index e80d118b..34a3750a 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/jsonrpc": "^0.28.15", - "@polkadot/primitives": "^0.28.15", - "@polkadot/util": "^0.28.3" + "@polkadot/jsonrpc": "^0.28.19", + "@polkadot/primitives": "^0.28.19", + "@polkadot/util": "^0.28.4" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index d1221def..37b987ec 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,17 +36,17 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.28.15", - "@polkadot/util": "^0.28.3", + "@polkadot/primitives": "^0.28.19", + "@polkadot/util": "^0.28.4", "eventemitter3": "^3.1.0", - "libp2p": "^0.22.0", - "libp2p-kad-dht": "^0.10.0", - "libp2p-mdns": "^0.11.0", - "libp2p-mplex": "^0.7.0", - "libp2p-railing": "^0.9.1", + "libp2p": "^0.23.1", + "libp2p-kad-dht": "^0.10.1", + "libp2p-mdns": "^0.12.0", + "libp2p-mplex": "^0.8.0", + "libp2p-railing": "^0.9.2", "libp2p-secio": "^0.10.0", "libp2p-spdy": "^0.12.1", - "libp2p-tcp": "^0.12.0", + "libp2p-tcp": "^0.12.1", "libp2p-websockets": "^0.12.0", "pull-pushable": "^2.2.0", "pull-stream": "^3.6.8", diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 6e5d79c0..423cbcec 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/jsonrpc": "^0.28.15", - "@polkadot/primitives": "^0.28.15", - "@polkadot/util": "^0.28.3" + "@polkadot/jsonrpc": "^0.28.19", + "@polkadot/primitives": "^0.28.19", + "@polkadot/util": "^0.28.4" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 74ff189a..cd6ac6a0 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,13 +34,13 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.28.15", + "@polkadot/api-provider": "^0.28.19", "@polkadot/client": "^0.13.8" }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-rpc-handlers": "^0.13.8", - "@polkadot/util": "^0.28.3", + "@polkadot/util": "^0.28.4", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index e9a135f1..5ddee3c7 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.13.8", - "@polkadot/util": "^0.28.3", - "@polkadot/util-crypto": "^0.28.3" + "@polkadot/util": "^0.28.4", + "@polkadot/util-crypto": "^0.28.4" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 25ff187c..0b35198b 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/util": "^0.28.3", + "@polkadot/util": "^0.28.4", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index f6b08614..314d1d53 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,8 +36,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.28.15", - "@polkadot/util": "^0.28.3", + "@polkadot/primitives": "^0.28.19", + "@polkadot/util": "^0.28.4", "@types/webassembly-js-api": "^0.0.1" } } diff --git a/packages/client/package.json b/packages/client/package.json index 38d2d79d..852d4657 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,9 +44,9 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.28.15", - "@polkadot/primitives": "^0.28.15", - "@polkadot/util": "^0.28.3", + "@polkadot/jsonrpc": "^0.28.19", + "@polkadot/primitives": "^0.28.19", + "@polkadot/util": "^0.28.4", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.1.1", diff --git a/yarn.lock b/yarn.lock index 91b21c30..2a82f6d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -702,35 +702,42 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" -"@lerna/add@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.0.6.tgz#b2e79c9a493379c1e676360504736cd51accd6c8" +"@forked/turndown@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@forked/turndown/-/turndown-4.0.4.tgz#26d0a26ad6bcdfd467b33aa83e8c81c8d39d5a43" + dependencies: + jsdom "^11.10.0" + +"@lerna/add@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.1.2.tgz#26cccee7e9a853a3ebae22a99660672319443496" dependencies: - "@lerna/bootstrap" "^3.0.6" - "@lerna/command" "^3.0.6" - "@lerna/filter-options" "^3.0.5" + "@lerna/bootstrap" "^3.1.2" + "@lerna/command" "^3.1.2" + "@lerna/filter-options" "^3.1.2" + "@lerna/npm-conf" "^3.0.0" "@lerna/validation-error" "^3.0.0" dedent "^0.7.0" npm-package-arg "^6.0.0" p-map "^1.2.0" - package-json "^4.0.1" + pacote "^9.1.0" semver "^5.5.0" -"@lerna/batch-packages@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.0.0.tgz#960a3dbb5fbc17283e2850448c76c023f6a35200" +"@lerna/batch-packages@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.1.2.tgz#74b5312a01a8916204cbc71237ffbe93144b99df" dependencies: - "@lerna/package-graph" "^3.0.0" + "@lerna/package-graph" "^3.1.2" "@lerna/validation-error" "^3.0.0" npmlog "^4.1.2" -"@lerna/bootstrap@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.0.6.tgz#d93e863126f926a52f4c002647cb8010e06270b2" +"@lerna/bootstrap@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.1.2.tgz#a99a01d64901e1798441e2fc99aa87fbc26af75c" dependencies: - "@lerna/batch-packages" "^3.0.0" - "@lerna/command" "^3.0.6" - "@lerna/filter-options" "^3.0.5" + "@lerna/batch-packages" "^3.1.2" + "@lerna/command" "^3.1.2" + "@lerna/filter-options" "^3.1.2" "@lerna/has-npm-version" "^3.0.4" "@lerna/npm-conf" "^3.0.0" "@lerna/npm-install" "^3.0.0" @@ -752,15 +759,22 @@ read-package-tree "^5.1.6" semver "^5.5.0" -"@lerna/changed@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.0.6.tgz#a60e4b9dda9beb41be44c5e04fc4c6762a8c9c79" +"@lerna/changed@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.1.2.tgz#a3e5bd8fcb5f931138f75b272505f1c2f01505bf" dependencies: - "@lerna/collect-updates" "^3.0.5" - "@lerna/command" "^3.0.6" + "@lerna/collect-updates" "^3.1.0" + "@lerna/command" "^3.1.2" "@lerna/listable" "^3.0.0" "@lerna/output" "^3.0.0" - "@lerna/version" "^3.0.6" + "@lerna/version" "^3.1.2" + +"@lerna/check-working-tree@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.1.0.tgz#5304c58190bf6ad97b4985698ab9b5eb9a38a14e" + dependencies: + "@lerna/describe-ref" "^3.1.0" + "@lerna/validation-error" "^3.0.0" "@lerna/child-process@^3.0.0": version "3.0.0" @@ -770,59 +784,58 @@ execa "^0.10.0" strong-log-transformer "^1.0.6" -"@lerna/clean@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.0.6.tgz#5e8ed5519eb2d8c1f81c23004474968aab29323c" +"@lerna/clean@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.1.2.tgz#80cad783c7be06ef4988450ab70f8d15b34a7374" dependencies: - "@lerna/command" "^3.0.6" - "@lerna/filter-options" "^3.0.5" + "@lerna/command" "^3.1.2" + "@lerna/filter-options" "^3.1.2" "@lerna/prompt" "^3.0.0" "@lerna/rimraf-dir" "^3.0.0" p-map "^1.2.0" p-map-series "^1.0.0" p-waterfall "^1.0.0" -"@lerna/cli@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-3.0.6.tgz#2277ad52f7d82267db6a429bafb5bb3ab4720434" - dependencies: - "@lerna/add" "^3.0.6" - "@lerna/bootstrap" "^3.0.6" - "@lerna/changed" "^3.0.6" - "@lerna/clean" "^3.0.6" - "@lerna/create" "^3.0.6" - "@lerna/diff" "^3.0.6" - "@lerna/exec" "^3.0.6" +"@lerna/cli@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-3.1.2.tgz#fea13455a3769a282471512f1adac2095c8a1d55" + dependencies: + "@lerna/add" "^3.1.2" + "@lerna/bootstrap" "^3.1.2" + "@lerna/changed" "^3.1.2" + "@lerna/clean" "^3.1.2" + "@lerna/create" "^3.1.2" + "@lerna/diff" "^3.1.2" + "@lerna/exec" "^3.1.2" "@lerna/global-options" "^3.0.5" - "@lerna/import" "^3.0.6" - "@lerna/init" "^3.0.6" - "@lerna/link" "^3.0.6" - "@lerna/list" "^3.0.6" - "@lerna/publish" "^3.0.6" - "@lerna/run" "^3.0.6" - "@lerna/version" "^3.0.6" + "@lerna/import" "^3.1.2" + "@lerna/init" "^3.1.2" + "@lerna/link" "^3.1.2" + "@lerna/list" "^3.1.2" + "@lerna/publish" "^3.1.2" + "@lerna/run" "^3.1.2" + "@lerna/version" "^3.1.2" dedent "^0.7.0" is-ci "^1.0.10" npmlog "^4.1.2" yargs "^12.0.1" -"@lerna/collect-updates@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.0.5.tgz#6754ca34c4d8a90cd081f0f2e84a166dcf5c9965" +"@lerna/collect-updates@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.1.0.tgz#66a7e337416d26900dee3e8264fa875c99a56c4a" dependencies: "@lerna/child-process" "^3.0.0" + "@lerna/describe-ref" "^3.1.0" minimatch "^3.0.4" npmlog "^4.1.2" slash "^1.0.0" -"@lerna/command@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.0.6.tgz#355e3a64158344e466697aa4bf3fb4f7001767b1" +"@lerna/command@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.1.2.tgz#7f459401195d37159a9dfb3b6624a928cbf4f279" dependencies: "@lerna/child-process" "^3.0.0" - "@lerna/collect-updates" "^3.0.5" - "@lerna/filter-packages" "^3.0.0" - "@lerna/package-graph" "^3.0.0" + "@lerna/package-graph" "^3.1.2" "@lerna/project" "^3.0.0" "@lerna/validation-error" "^3.0.0" "@lerna/write-log-file" "^3.0.0" @@ -854,12 +867,12 @@ fs-extra "^6.0.1" npmlog "^4.1.2" -"@lerna/create@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.0.6.tgz#e57d2ce7b5251a5a86e6fd7c574bedf114c3fdbd" +"@lerna/create@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.1.2.tgz#6bc284b5737132064cf722546e31006e4ec9dad1" dependencies: "@lerna/child-process" "^3.0.0" - "@lerna/command" "^3.0.6" + "@lerna/command" "^3.1.2" "@lerna/npm-conf" "^3.0.0" "@lerna/validation-error" "^3.0.0" camelcase "^4.1.0" @@ -875,30 +888,39 @@ validate-npm-package-name "^3.0.0" whatwg-url "^6.5.0" -"@lerna/diff@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.0.6.tgz#d0a60be29c3ed54ccabae5acc4cdeb5e3f724d27" +"@lerna/describe-ref@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.1.0.tgz#11cabd76484f7e69e739aaa2d584105d03ed392e" dependencies: "@lerna/child-process" "^3.0.0" - "@lerna/command" "^3.0.6" + npmlog "^4.1.2" + +"@lerna/diff@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.1.2.tgz#e1c26b59bbac2a25c2b84be54db4ce3e25a4c322" + dependencies: + "@lerna/child-process" "^3.0.0" + "@lerna/command" "^3.1.2" "@lerna/validation-error" "^3.0.0" npmlog "^4.1.2" -"@lerna/exec@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.0.6.tgz#7bac34edae73fc63123b1c88fdc9ef782009fcf6" +"@lerna/exec@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.1.2.tgz#2eb73662d915fb88c8ba0ac8acf817d3d1aa6529" dependencies: - "@lerna/batch-packages" "^3.0.0" + "@lerna/batch-packages" "^3.1.2" "@lerna/child-process" "^3.0.0" - "@lerna/command" "^3.0.6" - "@lerna/filter-options" "^3.0.5" + "@lerna/command" "^3.1.2" + "@lerna/filter-options" "^3.1.2" "@lerna/run-parallel-batches" "^3.0.0" "@lerna/validation-error" "^3.0.0" -"@lerna/filter-options@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.0.5.tgz#d35935866d28d398674d5b53565633971779469a" +"@lerna/filter-options@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.1.2.tgz#83f58ee3de886381b9092200f8c981741533ac15" dependencies: + "@lerna/collect-updates" "^3.1.0" + "@lerna/filter-packages" "^3.0.0" dedent "^0.7.0" "@lerna/filter-packages@^3.0.0": @@ -926,44 +948,44 @@ "@lerna/child-process" "^3.0.0" semver "^5.5.0" -"@lerna/import@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.0.6.tgz#84b415be3db25420455ae4f74cb48ff48d842c77" +"@lerna/import@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.1.2.tgz#7a3db2c30657c8f5d7842c50c36716387835d8d8" dependencies: "@lerna/child-process" "^3.0.0" - "@lerna/command" "^3.0.6" + "@lerna/command" "^3.1.2" "@lerna/prompt" "^3.0.0" "@lerna/validation-error" "^3.0.0" dedent "^0.7.0" fs-extra "^6.0.1" p-map-series "^1.0.0" -"@lerna/init@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.0.6.tgz#58b8836458f88e76748d403ead4984b9b6322d7f" +"@lerna/init@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.1.2.tgz#1d0575daec6bb0467262c53fef261b096cd16117" dependencies: "@lerna/child-process" "^3.0.0" - "@lerna/command" "^3.0.6" + "@lerna/command" "^3.1.2" fs-extra "^6.0.1" p-map "^1.2.0" write-json-file "^2.3.0" -"@lerna/link@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.0.6.tgz#579d0745300316725ef55e8a7668c035ca53ba9f" +"@lerna/link@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.1.2.tgz#d0f3cffebe6ee2b91c2df9e8bacbc4d48ab9be7d" dependencies: - "@lerna/command" "^3.0.6" - "@lerna/package-graph" "^3.0.0" + "@lerna/command" "^3.1.2" + "@lerna/package-graph" "^3.1.2" "@lerna/symlink-dependencies" "^3.0.0" p-map "^1.2.0" slash "^1.0.0" -"@lerna/list@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.0.6.tgz#a241b7d304fc002db31a756bf3a58bfe95c7afd3" +"@lerna/list@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.1.2.tgz#eb20a4f541ea905e4c1508f1d4816646136c2d62" dependencies: - "@lerna/command" "^3.0.6" - "@lerna/filter-options" "^3.0.5" + "@lerna/command" "^3.1.2" + "@lerna/filter-options" "^3.1.2" "@lerna/listable" "^3.0.0" "@lerna/output" "^3.0.0" @@ -1036,10 +1058,11 @@ dependencies: npmlog "^4.1.2" -"@lerna/package-graph@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.0.0.tgz#f2e9131856c4f43ea91f2cab1bfe5c9264079f53" +"@lerna/package-graph@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.1.2.tgz#b70298a3a8c82e12090da33233bf242223a38f20" dependencies: + "@lerna/validation-error" "^3.0.0" npm-package-arg "^6.0.0" semver "^5.5.0" @@ -1074,14 +1097,16 @@ inquirer "^5.1.0" npmlog "^4.1.2" -"@lerna/publish@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.0.6.tgz#780e8a46f4fd9f45c4b1a7db30f5fedb72b40f56" +"@lerna/publish@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.1.2.tgz#32ad8767aac422848b92c835c6fa37652c6ff03f" dependencies: - "@lerna/batch-packages" "^3.0.0" + "@lerna/batch-packages" "^3.1.2" + "@lerna/check-working-tree" "^3.1.0" "@lerna/child-process" "^3.0.0" - "@lerna/collect-updates" "^3.0.5" - "@lerna/command" "^3.0.6" + "@lerna/collect-updates" "^3.1.0" + "@lerna/command" "^3.1.2" + "@lerna/describe-ref" "^3.1.0" "@lerna/get-npm-exec-opts" "^3.0.0" "@lerna/npm-dist-tag" "^3.0.0" "@lerna/npm-publish" "^3.0.6" @@ -1090,7 +1115,7 @@ "@lerna/run-lifecycle" "^3.0.0" "@lerna/run-parallel-batches" "^3.0.0" "@lerna/validation-error" "^3.0.0" - "@lerna/version" "^3.0.6" + "@lerna/version" "^3.1.2" fs-extra "^6.0.1" npm-package-arg "^6.0.0" npmlog "^4.1.2" @@ -1131,13 +1156,13 @@ p-map "^1.2.0" p-map-series "^1.0.0" -"@lerna/run@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.0.6.tgz#587e47d76cdd92e82989f7bb19b69bba1694f5ab" +"@lerna/run@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.1.2.tgz#7c493cf2b91f91d08df7c0f519dc071293a0d410" dependencies: - "@lerna/batch-packages" "^3.0.0" - "@lerna/command" "^3.0.6" - "@lerna/filter-options" "^3.0.5" + "@lerna/batch-packages" "^3.1.2" + "@lerna/command" "^3.1.2" + "@lerna/filter-options" "^3.1.2" "@lerna/npm-run-script" "^3.0.0" "@lerna/output" "^3.0.0" "@lerna/run-parallel-batches" "^3.0.0" @@ -1172,13 +1197,14 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.0.6.tgz#83de63d96ec1a4415bda4fb3978bc19280510e99" +"@lerna/version@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.1.2.tgz#b246e2146529958fa313499529e880eb73882ec7" dependencies: + "@lerna/check-working-tree" "^3.1.0" "@lerna/child-process" "^3.0.0" - "@lerna/collect-updates" "^3.0.5" - "@lerna/command" "^3.0.6" + "@lerna/collect-updates" "^3.1.0" + "@lerna/command" "^3.1.2" "@lerna/conventional-commits" "^3.0.2" "@lerna/output" "^3.0.0" "@lerna/prompt" "^3.0.0" @@ -1213,23 +1239,23 @@ version "1.1.0" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a" -"@polkadot/api-provider@^0.28.15": - version "0.28.15" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.15.tgz#d96ae577d3a4a4cfcc4b17f2fa2e400f2d046c63" +"@polkadot/api-provider@^0.28.19": + version "0.28.19" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.19.tgz#e2576f3c23fe329e8c7c5299ec7c3c61724ab89e" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/storage" "^0.28.15" - "@polkadot/util" "^0.28.3" - "@polkadot/util-crypto" "^0.28.3" - "@polkadot/util-keyring" "^0.28.3" + "@polkadot/storage" "^0.28.19" + "@polkadot/util" "^0.28.4" + "@polkadot/util-crypto" "^0.28.4" + "@polkadot/util-keyring" "^0.28.4" "@types/nock" "^9.1.3" eventemitter3 "^3.1.0" isomorphic-fetch "^2.2.1" websocket "^1.0.25" -"@polkadot/dev@^0.20.16": - version "0.20.16" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.16.tgz#abf216be962a38937a6f38b1ca253f2cf8d3e302" +"@polkadot/dev@^0.20.17": + version "0.20.17" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.17.tgz#30c89e0c2c03402eca3a4da8bb02e3d499849c96" dependencies: "@babel/cli" "^7.0.0-rc.1" "@babel/core" "^7.0.0-rc.1" @@ -1252,81 +1278,82 @@ copyfiles "^2.0.0" coveralls "^3.0.1" dox "^0.9.0" - eslint "^5.3.0" + eslint "^5.4.0" eslint-config-semistandard "^12.0.1" eslint-config-standard "^11.0.0" eslint-plugin-flowtype "^2.46.3" eslint-plugin-import "^2.14.0" eslint-plugin-jest "^21.21.0" eslint-plugin-node "^7.0.1" - eslint-plugin-promise "^3.7.0" + eslint-plugin-promise "^4.0.0" eslint-plugin-standard "^3.0.1" jest "^23.5.0" - lerna "^3.0.6" + lerna "^3.1.2" makeshift "^1.1.0" mkdirp "^0.5.1" ncp "^2.0.0" rimraf "^2.6.2" tslint "^5.11.0" tslint-config-semistandard "^7.0.0" - typedoc "^0.11.1" + typedoc "^0.12.0" + typedoc-plugin-markdown "^1.1.13" typescript "^3.0.1" -"@polkadot/extrinsics@^0.28.15": - version "0.28.15" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.15.tgz#514331541b06198174db36a9a6d6bb888c4db13e" +"@polkadot/extrinsics@^0.28.19": + version "0.28.19" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.19.tgz#8b7f2f2d852ef285ac535e82d332e16c6d3cd037" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/params" "^0.28.15" - "@polkadot/primitives" "^0.28.15" - "@polkadot/util" "^0.28.3" + "@polkadot/params" "^0.28.19" + "@polkadot/primitives" "^0.28.19" + "@polkadot/util" "^0.28.4" -"@polkadot/jsonrpc@^0.28.15": - version "0.28.15" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.15.tgz#a29a707cc8c6fa1c9443c533aea70a32f9128824" +"@polkadot/jsonrpc@^0.28.19": + version "0.28.19" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.19.tgz#9c5bdbef6700c4e1ceb3bddeaaa0c8ae87438560" dependencies: - "@polkadot/params" "^0.28.15" + "@polkadot/params" "^0.28.19" babel-runtime "^6.26.0" -"@polkadot/params@^0.28.15": - version "0.28.15" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.15.tgz#f75622235541ab6dd70733d124a7c25ce46ccb63" +"@polkadot/params@^0.28.19": + version "0.28.19" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.19.tgz#568bea36cc5423a3ee08ebfa2197118e624c72d7" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/extrinsics" "^0.28.15" - "@polkadot/params" "^0.28.15" - "@polkadot/primitives" "^0.28.15" - "@polkadot/util" "^0.28.3" - "@polkadot/util-keyring" "^0.28.3" + "@polkadot/extrinsics" "^0.28.19" + "@polkadot/params" "^0.28.19" + "@polkadot/primitives" "^0.28.19" + "@polkadot/util" "^0.28.4" + "@polkadot/util-keyring" "^0.28.4" -"@polkadot/primitives@^0.28.15": - version "0.28.15" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.15.tgz#cba54b01b440a938ae8d153aabb6098307cf3beb" +"@polkadot/primitives@^0.28.19": + version "0.28.19" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.19.tgz#b4c068fdbb590a9da4cd0b3332f56686e61bbc29" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/trie-hash" "^0.28.3" - "@polkadot/util" "^0.28.3" + "@polkadot/trie-hash" "^0.28.4" + "@polkadot/util" "^0.28.4" -"@polkadot/storage@^0.28.15": - version "0.28.15" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.15.tgz#5778f7c16651d6eca7d2d4129edc4031e798fd8e" +"@polkadot/storage@^0.28.19": + version "0.28.19" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.19.tgz#7a601ec546bc86cc512962ed09762c1705428564" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/params" "^0.28.15" - "@polkadot/primitives" "^0.28.15" - "@polkadot/util" "^0.28.3" - "@polkadot/util-crypto" "^0.28.3" - "@polkadot/util-keyring" "^0.28.3" + "@polkadot/params" "^0.28.19" + "@polkadot/primitives" "^0.28.19" + "@polkadot/util" "^0.28.4" + "@polkadot/util-crypto" "^0.28.4" + "@polkadot/util-keyring" "^0.28.4" -"@polkadot/trie-db@^0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.3.tgz#c3046d6543858998d1449902c4f1bafc6f248dc2" +"@polkadot/trie-db@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.4.tgz#bfd44f6ad6d316597107fdcee69f329f3b64836e" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/trie-hash" "^0.28.3" - "@polkadot/util" "^0.28.3" - "@polkadot/util-crypto" "^0.28.3" - "@polkadot/util-rlp" "^0.28.3" + "@polkadot/trie-hash" "^0.28.4" + "@polkadot/util" "^0.28.4" + "@polkadot/util-crypto" "^0.28.4" + "@polkadot/util-rlp" "^0.28.4" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^2.6.1" @@ -1336,50 +1363,50 @@ memdown "^3.0.0" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.3.tgz#52341a114a775260156b069ed94291552c0c550d" +"@polkadot/trie-hash@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.4.tgz#484182b15660a5301b7b58656fdcac81b349345d" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.3" - "@polkadot/util-crypto" "^0.28.3" - "@polkadot/util-rlp" "^0.28.3" + "@polkadot/util" "^0.28.4" + "@polkadot/util-crypto" "^0.28.4" + "@polkadot/util-rlp" "^0.28.4" -"@polkadot/ts@^0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.12.tgz#06e1a117b408ea934eba53aca7746dd53092a08c" +"@polkadot/ts@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.13.tgz#31540153a5381f1442e3f24f615eefd7442dbeac" -"@polkadot/util-crypto@^0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.3.tgz#499d190bbf5405779180efbbd6d925b840a73d86" +"@polkadot/util-crypto@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.4.tgz#9c0dd9de1d25d209b6bfe07564c51d486d910e89" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.3" + "@polkadot/util" "^0.28.4" blakejs "^1.1.0" js-sha3 "^0.8.0" tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-keyring@^0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.3.tgz#75fcd67871073bd3757d74db9badcfe1ecea9980" +"@polkadot/util-keyring@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.4.tgz#893e0b4cfd7e8e44a3a21f1aee24394c9a13043c" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.3" - "@polkadot/util-crypto" "^0.28.3" + "@polkadot/util" "^0.28.4" + "@polkadot/util-crypto" "^0.28.4" "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.3.tgz#1085e93238640f50671b030118d4d752312cb51e" +"@polkadot/util-rlp@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.4.tgz#11280a2f1b2ac242c4770c8b1988e88a1110e9ce" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.3" + "@polkadot/util" "^0.28.4" -"@polkadot/util@^0.28.3": - version "0.28.3" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.3.tgz#bc4cea7544094b7fcaf8d21c2048ae02adcaf442" +"@polkadot/util@^0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.4.tgz#986e061b305db8cce896649d393d3b799622d178" dependencies: "@babel/runtime" "^7.0.0-rc.1" "@types/bn.js" "^4.11.1" @@ -1476,9 +1503,9 @@ "@types/express-serve-static-core" "*" "@types/serve-static" "*" -"@types/fs-extra@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.1.tgz#cd856fbbdd6af2c11f26f8928fd8644c9e9616c9" +"@types/fs-extra@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz#b971134d162cc0497d221adde3dbb67502225599" dependencies: "@types/node" "*" @@ -1490,13 +1517,13 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/handlebars@4.0.36": - version "4.0.36" - resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.0.36.tgz#ff57c77fa1ab6713bb446534ddc4d979707a3a79" +"@types/handlebars@^4.0.38": + version "4.0.39" + resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.0.39.tgz#961fb54db68030890942e6aeffe9f93a957807bd" -"@types/highlight.js@9.12.2": - version "9.12.2" - resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.2.tgz#6ee7cd395effe5ec80b515d3ff1699068cd0cd1d" +"@types/highlight.js@^9.12.3": + version "9.12.3" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.3.tgz#b672cfaac25cbbc634a0fd92c515f66faa18dbca" "@types/http-assert@*": version "1.3.0" @@ -1544,13 +1571,13 @@ "@types/koa-compose" "*" "@types/node" "*" -"@types/lodash@4.14.104": - version "4.14.104" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" +"@types/lodash@^4.14.110": + version "4.14.116" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz#5ccf215653e3e8c786a58390751033a9adca0eb9" -"@types/marked@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.3.0.tgz#583c223dd33385a1dda01aaf77b0cd0411c4b524" +"@types/marked@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.4.0.tgz#057a6165703e7419217f8ffc6887747f980b6315" "@types/mime@*": version "2.0.0" @@ -1607,9 +1634,9 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" -"@types/shelljs@0.7.8": - version "0.7.8" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.8.tgz#4b4d6ee7926e58d7bca448a50ba442fd9f6715bd" +"@types/shelljs@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.0.tgz#0caa56b68baae4f68f44e0dd666ab30b098e3632" dependencies: "@types/glob" "*" "@types/node" "*" @@ -1644,6 +1671,10 @@ abab@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1667,7 +1698,7 @@ accepts@^1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn-globals@^4.0.0: +acorn-globals@^4.0.0, acorn-globals@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" dependencies: @@ -1683,10 +1714,22 @@ acorn@^5.0.0, acorn@^5.1.2: version "5.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" -acorn@^5.0.3, acorn@^5.6.0: +acorn@^5.0.3, acorn@^5.5.3, acorn@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" +agent-base@4, agent-base@^4.1.0, agent-base@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.1.tgz#4eba75cf2ad258fc09efd506cdb8d8c2971d35a4" + dependencies: + humanize-ms "^1.2.1" + ajv-keywords@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" @@ -1784,7 +1827,7 @@ append-transform@^1.0.0: dependencies: default-require-extensions "^2.0.0" -aproba@^1.0.3: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -2103,7 +2146,7 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base32.js@^0.1.0: +base32.js@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202" @@ -2125,7 +2168,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big.js@^5.0.3: +big.js@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.1.2.tgz#946c634f3efd9c8dcd98f953e96a5f389dac3fec" @@ -2164,7 +2207,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.4.1: +bluebird@^3.4.1, bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -2340,6 +2383,25 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +cacache@^11.0.1, cacache@^11.0.2: + version "11.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.2.0.tgz#617bdc0b02844af56310e411c0878941d5739965" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + figgy-pudding "^3.1.0" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.3" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.0" + unique-filename "^1.1.0" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -2422,10 +2484,6 @@ caniuse-lite@^1.0.30000835: version "1.0.30000840" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000840.tgz#344513f8f843536cf99694964c09811277eee395" -capture-stack-trace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" - caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" @@ -2675,19 +2733,19 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" +concat-stream@^1.5.0, concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: + buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" +concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: - buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" @@ -2806,6 +2864,17 @@ cookies@~0.7.1: depd "~1.1.1" keygrip "~1.0.2" +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -2851,12 +2920,6 @@ coveralls@^3.0.1: minimist "^1.2.0" request "^2.79.0" -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - create-hash@^1.1.0, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" @@ -2917,6 +2980,12 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": dependencies: cssom "0.3.x" +cssstyle@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" + dependencies: + cssom "0.3.x" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -2927,6 +2996,10 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -2945,6 +3018,14 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.1.tgz#d416ac3896918f29ca84d81085bc3705834da579" + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.1.0" + whatwg-url "^7.0.0" + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -2956,7 +3037,7 @@ deasync@^0.1.13: bindings "~1.2.1" nan "^2.0.7" -debug@*, debug@^3.1.0: +debug@*, debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -3163,6 +3244,12 @@ domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.0.tgz#81fe5df81b3f057052cde3a9fa9bf536a85b9ab0" +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + dependencies: + webidl-conversions "^4.0.2" + dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" @@ -3199,7 +3286,7 @@ duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.5.4: +duplexify@^3.4.2, duplexify@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" dependencies: @@ -3260,6 +3347,10 @@ entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + errno@~0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" @@ -3276,16 +3367,6 @@ error-inject@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" -es-abstract@^1.10.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - es-abstract@^1.5.1: version "1.10.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" @@ -3331,6 +3412,16 @@ es6-map@^0.1.1: es6-symbol "~3.1.1" event-emitter "~0.3.5" +es6-promise@^4.0.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" + es6-set@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" @@ -3367,6 +3458,17 @@ escodegen@^1.9.0: optionalDependencies: source-map "~0.5.6" +escodegen@^1.9.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-config-semistandard@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-12.0.1.tgz#e35d66959dfe6f0d8e8445d7a4de37d8fd8875f4" @@ -3432,9 +3534,9 @@ eslint-plugin-node@^7.0.1: resolve "^1.8.1" semver "^5.5.0" -eslint-plugin-promise@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" +eslint-plugin-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.0.tgz#bc15a4aa04fa6116113b6c47488c421821b758fc" eslint-plugin-standard@^3.0.1: version "3.0.1" @@ -3462,9 +3564,9 @@ eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.3.0.tgz#53695aca5213968aacdf970ccb231e42a2b285f8" +eslint@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.4.0.tgz#d068ec03006bb9e06b429dc85f7e46c1b69fac62" dependencies: ajv "^6.5.0" babel-code-frame "^6.26.0" @@ -3500,7 +3602,6 @@ eslint@^5.3.0: regexpp "^2.0.0" require-uncached "^1.0.3" semver "^5.5.0" - string.prototype.matchall "^2.0.0" strip-ansi "^4.0.0" strip-json-comments "^2.0.1" table "^4.0.3" @@ -3730,6 +3831,10 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +figgy-pudding@^3.1.0, figgy-pudding@^3.2.0, figgy-pudding@^3.2.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.4.1.tgz#af66da1991fa2f94ff7f33b545a38ea4b3869696" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3816,6 +3921,13 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3868,7 +3980,7 @@ fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" -from2@^2.1.1: +from2@^2.1.0, from2@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" dependencies: @@ -3879,17 +3991,17 @@ fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" -fs-extra@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" +fs-extra@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" +fs-extra@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -3905,6 +4017,15 @@ fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3971,6 +4092,10 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" +genfun@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" + get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -4111,22 +4236,6 @@ globby@^8.0.1: pify "^3.0.0" slash "^1.0.0" -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - got@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" @@ -4231,10 +4340,6 @@ has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -4320,7 +4425,7 @@ hawk@~6.0.2: hoek "4.x.x" sntp "2.x.x" -heap@^0.2.6: +heap@~0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" @@ -4369,7 +4474,7 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-encoding-sniffer@^1.0.1: +html-encoding-sniffer@^1.0.1, html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: @@ -4382,7 +4487,7 @@ http-assert@^1.3.0: deep-equal "~1.0.1" http-errors "~1.6.1" -http-cache-semantics@3.8.1: +http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -4414,6 +4519,13 @@ http-errors@~1.6.1: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + dependencies: + agent-base "4" + debug "3.1.0" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -4430,6 +4542,19 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-proxy-agent@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + dependencies: + ms "^2.0.0" + iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" @@ -4446,6 +4571,10 @@ iconv-lite@^0.4.4: dependencies: safer-buffer "^2.1.0" +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" @@ -4840,10 +4969,6 @@ is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -4854,11 +4979,11 @@ is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: +is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -5348,6 +5473,37 @@ jsdoctypeparser@^1.2.0: dependencies: lodash "^3.7.0" +jsdom@^11.10.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + jsdom@^11.5.1: version "11.5.1" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.5.1.tgz#5df753b8d0bca20142ce21f4f6c039f99a992929" @@ -5393,6 +5549,10 @@ json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" +json-parse-better-errors@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + json-parse-better-errors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" @@ -5454,7 +5614,7 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -k-bucket@^4.0.0: +k-bucket@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-4.0.1.tgz#3fc2e5693f0b7bff90d7b6b476edd6087955d542" dependencies: @@ -5601,6 +5761,10 @@ left-pad@^1.1.3, left-pad@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + length-prefixed-stream@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/length-prefixed-stream/-/length-prefixed-stream-1.5.2.tgz#269b29ff76324361727447f1bfacb762e6965a8f" @@ -5609,11 +5773,11 @@ length-prefixed-stream@^1.5.2: readable-stream "^2.0.0" varint "^5.0.0" -lerna@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.0.6.tgz#908ffc4597a05b5949a4d3d33a8e175904a44f07" +lerna@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.1.2.tgz#cd741528787783494cd66c970b658f888d14510b" dependencies: - "@lerna/cli" "^3.0.6" + "@lerna/cli" "^3.1.2" import-local "^1.0.0" npmlog "^4.1.2" @@ -5780,9 +5944,9 @@ libp2p-floodsub@~0.15.0: pull-pushable "^2.2.0" time-cache "~0.3.0" -libp2p-identify@~0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/libp2p-identify/-/libp2p-identify-0.7.1.tgz#f521659906d3e9c3720270c6688e87d68ad60cc1" +libp2p-identify@~0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/libp2p-identify/-/libp2p-identify-0.7.2.tgz#796d1e293fcb8af267726d6ab1c3b8be319b1977" dependencies: multiaddr "^5.0.0" peer-id "~0.10.7" @@ -5791,51 +5955,52 @@ libp2p-identify@~0.7.1: pull-length-prefixed "^1.3.0" pull-stream "^3.6.7" -libp2p-kad-dht@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/libp2p-kad-dht/-/libp2p-kad-dht-0.10.0.tgz#d4de2a25a7d0bb1d66e95519571a54f7c75617c4" +libp2p-kad-dht@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/libp2p-kad-dht/-/libp2p-kad-dht-0.10.1.tgz#cca4bb57436bb7c028d2a4368285ae8ef3d3d086" dependencies: - async "^2.6.0" - base32.js "^0.1.0" + async "^2.6.1" + base32.js "~0.1.0" cids "~0.5.3" debug "^3.1.0" hashlru "^2.2.1" - heap "^0.2.6" + heap "~0.2.6" interface-datastore "~0.4.2" - k-bucket "^4.0.0" + k-bucket "^4.0.1" libp2p-crypto "~0.13.0" libp2p-record "~0.5.1" - multihashing-async "~0.4.8" - peer-id "~0.10.7" - peer-info "~0.14.0" - priorityqueue "^0.2.1" + multihashing-async "~0.5.1" + peer-id "~0.11.0" + peer-info "~0.14.1" + priorityqueue "~0.2.1" protons "^1.0.1" - pull-length-prefixed "^1.3.0" - pull-stream "^3.6.7" + pull-length-prefixed "^1.3.1" + pull-stream "^3.6.8" varint "^5.0.0" xor-distance "^1.0.0" -libp2p-mdns@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/libp2p-mdns/-/libp2p-mdns-0.11.0.tgz#f1d0062d290ff3657d9447a20bbaa5a942449172" +libp2p-mdns@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/libp2p-mdns/-/libp2p-mdns-0.12.0.tgz#0e67d7b24f3829d7f2f0d8f60f43d009a4995ba3" dependencies: libp2p-tcp "~0.12.0" - multiaddr "^4.0.0" + multiaddr "^5.0.0" multicast-dns "^7.0.0" peer-id "~0.10.7" - peer-info "~0.14.0" + peer-info "~0.14.1" -libp2p-mplex@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/libp2p-mplex/-/libp2p-mplex-0.7.0.tgz#0f915e1ba3cec69e66297b7973110f1bfa9ba5e4" +libp2p-mplex@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/libp2p-mplex/-/libp2p-mplex-0.8.0.tgz#2f647b247659e0189c0ca2b0528e4db7a6d79528" dependencies: - async "^2.6.0" + async "^2.6.1" chunky "0.0.0" concat-stream "^1.6.2" debug "^3.1.0" - duplexify "^3.5.4" + duplexify "^3.6.0" + interface-connection "~0.3.2" pull-catch "^1.0.0" - pull-stream "^3.6.7" + pull-stream "^3.6.8" pull-stream-to-stream "^1.3.4" pump "^3.0.0" readable-stream "^2.3.6" @@ -5851,13 +6016,12 @@ libp2p-ping@~0.8.0: pull-handshake "^1.1.4" pull-stream "^3.6.7" -libp2p-railing@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/libp2p-railing/-/libp2p-railing-0.9.1.tgz#b7ef7f266cdb02e6a1f987f9fe5344bb3f5ead73" +libp2p-railing@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/libp2p-railing/-/libp2p-railing-0.9.2.tgz#a7c794da30fe6a1c76c468d89a0c461229b22fec" dependencies: async "^2.6.1" debug "^3.1.0" - lodash "^4.17.10" mafmt "^6.0.0" multiaddr "^5.0.0" peer-id "~0.10.7" @@ -5902,18 +6066,18 @@ libp2p-spdy@^0.12.1: spdy-transport "^2.1.0" stream-to-pull-stream "^1.7.2" -libp2p-switch@~0.40.4: - version "0.40.4" - resolved "https://registry.yarnpkg.com/libp2p-switch/-/libp2p-switch-0.40.4.tgz#ef40674862a4854dec0d0bfd23a0cc19082a56dc" +libp2p-switch@~0.40.7: + version "0.40.7" + resolved "https://registry.yarnpkg.com/libp2p-switch/-/libp2p-switch-0.40.7.tgz#415d486718c1d3fa2c3fa6e7157cfa644d494ca2" dependencies: async "^2.6.0" - big.js "^5.0.3" + big.js "^5.1.2" debug "^3.1.0" hashlru "^2.2.1" interface-connection "~0.3.2" ip-address "^5.8.9" libp2p-circuit "~0.2.0" - libp2p-identify "~0.7.1" + libp2p-identify "~0.7.2" lodash.includes "^4.3.0" moving-average "^1.0.0" multiaddr "^5.0.0" @@ -5923,7 +6087,22 @@ libp2p-switch@~0.40.4: peer-info "~0.14.1" pull-stream "^3.6.7" -libp2p-tcp@^0.12.0, libp2p-tcp@~0.12.0: +libp2p-tcp@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/libp2p-tcp/-/libp2p-tcp-0.12.1.tgz#fcb7ade07d95dd3552e9c71402edf34f00c37102" + dependencies: + class-is "^1.1.0" + debug "^3.1.0" + interface-connection "~0.3.2" + ip-address "^5.8.9" + lodash.includes "^4.3.0" + lodash.isfunction "^3.0.9" + mafmt "^6.0.0" + multiaddr "^4.0.0" + once "^1.4.0" + stream-to-pull-stream "^1.7.2" + +libp2p-tcp@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/libp2p-tcp/-/libp2p-tcp-0.12.0.tgz#a41737cb999485299df9fff3f692750f0428adea" dependencies: @@ -5948,9 +6127,9 @@ libp2p-websockets@^0.12.0, libp2p-websockets@~0.12.0: mafmt "^6.0.0" pull-ws "^3.3.1" -libp2p@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.22.0.tgz#a67ac6748b05d760c3b87d3d9c6920e8704c78ce" +libp2p@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.23.1.tgz#f0d90646da0afb0043552469530da69c1b11300d" dependencies: async "^2.6.1" joi "^13.4.0" @@ -5958,12 +6137,12 @@ libp2p@^0.22.0: libp2p-connection-manager "~0.0.2" libp2p-floodsub "~0.15.0" libp2p-ping "~0.8.0" - libp2p-switch "~0.40.4" + libp2p-switch "~0.40.7" libp2p-websockets "~0.12.0" mafmt "^6.0.0" multiaddr "^5.0.0" peer-book "~0.8.0" - peer-id "~0.10.7" + peer-id "~0.11.0" peer-info "~0.14.1" linkify-it@^2.0.0: @@ -6139,6 +6318,13 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^4.1.2, lru-cache@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + ltgt@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-1.2.0.tgz#617707dc39f38294415e66a02f3c2705ac407866" @@ -6159,6 +6345,22 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +make-fetch-happen@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" + dependencies: + agentkeepalive "^3.4.1" + cacache "^11.0.1" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^4.1.2" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -6203,9 +6405,9 @@ markdown-it@~7.0.0: mdurl "^1.0.1" uc.micro "^1.0.1" -marked@^0.3.17: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" +marked@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.4.0.tgz#9ad2c2a7a1791f10a852e0112f77b571dce10c66" md5.js@^1.3.4: version "1.3.4" @@ -6418,12 +6620,34 @@ minipass@^2.2.1, minipass@^2.2.4: safe-buffer "^5.1.1" yallist "^3.0.0" +minipass@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + minizlib@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" dependencies: minipass "^2.2.1" +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -6453,6 +6677,17 @@ monotonic-timestamp@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/monotonic-timestamp/-/monotonic-timestamp-0.0.8.tgz#67987d02a41c15f568b6c0a05885989dd2402ba0" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + moving-average@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/moving-average/-/moving-average-1.0.0.tgz#b1247ba8dd2d7927c619f1eac8036cf933d65adc" @@ -6461,6 +6696,10 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" +ms@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + multiaddr@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-4.0.0.tgz#70a8857c4f737350bc2c56914a70f1263889db33" @@ -6542,6 +6781,17 @@ multihashing-async@~0.4.8: murmurhash3js "^3.0.1" nodeify "^1.0.1" +multihashing-async@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.5.1.tgz#1fc563798f3777b43df0f77a0bf6474192687c0c" + dependencies: + async "^2.6.1" + blakejs "^1.1.0" + js-sha3 "^0.7.0" + multihashes "~0.4.13" + murmurhash3js "^3.0.1" + nodeify "^1.0.1" + multimatch@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" @@ -6634,6 +6884,14 @@ node-abi@^2.2.0: dependencies: semver "^5.4.1" +node-fetch-npm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + node-fetch@^1.0.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" @@ -6741,7 +6999,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -6781,7 +7039,7 @@ npm-lifecycle@^2.0.0: umask "^1.1.0" which "^1.3.1" -"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0: +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" dependencies: @@ -6790,6 +7048,13 @@ npm-lifecycle@^2.0.0: semver "^5.5.0" validate-npm-package-name "^3.0.0" +npm-packlist@^1.1.10: + version "1.1.11" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-packlist@^1.1.6: version "1.1.10" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" @@ -6797,6 +7062,23 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" +npm-pick-manifest@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz#dc381bdd670c35d81655e1d5a94aa3dd4d87fce5" + dependencies: + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-registry-fetch@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.2.1.tgz#e25f306dbe7f0a1e388f04a51086f09f3dec57af" + dependencies: + bluebird "^3.5.1" + figgy-pudding "^3.2.0" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" + npm-package-arg "^6.1.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -6820,6 +7102,10 @@ nwmatcher@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" +nwsapi@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.8.tgz#e3603579b7e162b3dbedae4fb24e46f771d8fa24" + oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" @@ -7030,15 +7316,6 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" -package-json@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - package-json@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-5.0.0.tgz#a7dbe2725edcc7dc9bcee627672275e323882433" @@ -7048,6 +7325,46 @@ package-json@^5.0.0: registry-url "^3.1.0" semver "^5.5.0" +pacote@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.1.0.tgz#59810859bbd72984dcb267269259375d32f391e5" + dependencies: + bluebird "^3.5.1" + cacache "^11.0.2" + figgy-pudding "^3.2.1" + get-stream "^3.0.0" + glob "^7.1.2" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" + minimatch "^3.0.4" + minipass "^2.3.3" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.10" + npm-pick-manifest "^2.1.0" + npm-registry-fetch "^3.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.5.0" + ssri "^6.0.0" + tar "^4.4.3" + unique-filename "^1.1.0" + which "^1.3.0" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -7074,6 +7391,10 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + parse5@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -7170,7 +7491,16 @@ peer-id@~0.10.0: lodash "^4.17.4" multihashes "~0.4.12" -peer-info@^0.14.0, peer-info@^0.14.1, peer-info@~0.14.0, peer-info@~0.14.1: +peer-id@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/peer-id/-/peer-id-0.11.0.tgz#71bd3fad8fed00e1e0868e5861c79de46ceb3788" + dependencies: + async "^2.6.1" + libp2p-crypto "~0.13.0" + lodash "^4.17.10" + multihashes "~0.4.13" + +peer-info@^0.14.0, peer-info@^0.14.1, peer-info@~0.14.1: version "0.14.1" resolved "https://registry.yarnpkg.com/peer-info/-/peer-info-0.14.1.tgz#ac5aec421e9965f7b0e7576d717941bb25676134" dependencies: @@ -7247,6 +7577,10 @@ pn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -7275,10 +7609,6 @@ prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -7294,7 +7624,7 @@ pretty-format@^23.5.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -priorityqueue@^0.2.1: +priorityqueue@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/priorityqueue/-/priorityqueue-0.2.1.tgz#f57e623f20237f30c142d4cb45fafed9e7d51403" @@ -7314,6 +7644,17 @@ progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" @@ -7341,6 +7682,12 @@ protocol-buffers-schema@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz#00434f608b4e8df54c59e070efeefc37fb4bb859" +protoduck@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.0.tgz#752145e6be0ad834cb25716f670a713c860dce70" + dependencies: + genfun "^4.0.1" + protons@^1.0.0, protons@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/protons/-/protons-1.0.1.tgz#1c107144c07fc2d1cb8b6cb76451e6a938237676" @@ -7396,6 +7743,15 @@ pull-length-prefixed@^1.3.0: safe-buffer "^5.0.1" varint "^5.0.0" +pull-length-prefixed@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/pull-length-prefixed/-/pull-length-prefixed-1.3.1.tgz#32292d44a87f5b2397cb281cf63a64d2da68ea0c" + dependencies: + pull-pushable "^2.0.1" + pull-reader "^1.3.0" + safe-buffer "^5.0.1" + varint "^5.0.0" + pull-pair@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pull-pair/-/pull-pair-1.1.0.tgz#7ee427263fdf4da825397ac0a05e1ab4b74bd76d" @@ -7412,6 +7768,10 @@ pull-reader@^1.2.3, pull-reader@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/pull-reader/-/pull-reader-1.2.9.tgz#d2e9ad00bcfb54e62aa66d42c2dbbcb5eb6843b0" +pull-reader@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/pull-reader/-/pull-reader-1.3.1.tgz#03a253e37efce111223ea2dc1dec847be1940be6" + pull-stream-to-stream@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/pull-stream-to-stream/-/pull-stream-to-stream-1.3.4.tgz#3f81d8216bd18d2bfd1a198190471180e2738399" @@ -7439,7 +7799,7 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pump@^2.0.1: +pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: @@ -7453,6 +7813,14 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + punycode@2.x.x: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -7606,28 +7974,28 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" +"readable-stream@1 || 2", readable-stream@^2.0.4, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~1.0.6" + process-nextick-args "~2.0.0" safe-buffer "~5.1.1" - string_decoder "~1.0.3" + string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~2.0.0" + process-nextick-args "~1.0.6" safe-buffer "~5.1.1" - string_decoder "~1.1.1" + string_decoder "~1.0.3" util-deprecate "~1.0.1" readable-stream@~1.0.31: @@ -7726,12 +8094,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" - dependencies: - define-properties "^1.1.2" - regexpp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" @@ -7758,13 +8120,6 @@ regexpu-core@^4.2.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.0.2" -registry-auth-token@^3.0.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - registry-auth-token@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" @@ -7772,7 +8127,7 @@ registry-auth-token@^3.3.2: rc "^1.1.6" safe-buffer "^5.0.1" -registry-url@^3.0.3, registry-url@^3.1.0: +registry-url@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" dependencies: @@ -7816,7 +8171,7 @@ request-promise-core@1.1.1: dependencies: lodash "^4.13.1" -request-promise-native@^1.0.3: +request-promise-native@^1.0.3, request-promise-native@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" dependencies: @@ -8008,6 +8363,10 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -8064,6 +8423,12 @@ run-parallel@^1.0.0: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + rxjs@^5.5.2: version "5.5.11" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" @@ -8127,7 +8492,7 @@ semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" @@ -8194,7 +8559,7 @@ shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" -shelljs@^0.8.1: +shelljs@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" dependencies: @@ -8246,6 +8611,10 @@ slide@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" +smart-buffer@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -8285,6 +8654,20 @@ sntp@2.x.x: dependencies: hoek "4.x.x" +socks-proxy-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473" + dependencies: + agent-base "~4.2.0" + socks "~2.2.0" + +socks@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.2.1.tgz#68ad678b3642fbc5d99c64c165bc561eab0215f9" + dependencies: + ip "^1.1.5" + smart-buffer "^4.0.1" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -8328,7 +8711,7 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, sour version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.0: +source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -8420,6 +8803,10 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +ssri@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.0.tgz#fc21bfc90e03275ac3e23d5a42e38b8a1cbc130d" + stack-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" @@ -8443,6 +8830,13 @@ stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -8480,16 +8874,6 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string.prototype.matchall@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" - has-symbols "^1.0.0" - regexp.prototype.flags "^1.2.0" - string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -8586,7 +8970,7 @@ symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" -symbol-tree@^3.2.1: +symbol-tree@^3.2.1, symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" @@ -8659,6 +9043,18 @@ tar@^4: safe-buffer "^5.1.1" yallist "^3.0.2" +tar@^4.4.3: + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -8717,7 +9113,7 @@ time-cache@~0.3.0: dependencies: lodash.throttle "^4.1.1" -timed-out@^4.0.0, timed-out@^4.0.1: +timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -8785,7 +9181,7 @@ tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.0, tough-cookie@~2. dependencies: punycode "^1.4.1" -tough-cookie@~2.4.3: +tough-cookie@^2.3.4, tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" dependencies: @@ -8929,29 +9325,35 @@ typedoc-default-themes@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.5.0.tgz#6dc2433e78ed8bea8e887a3acde2f31785bd6227" -typedoc@^0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.11.1.tgz#9f033887fd2218c769e1045feb88a1efed9f12c9" +typedoc-plugin-markdown@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-1.1.13.tgz#434ae963156cefaba9dfe3330ce6abf1406ee08d" + dependencies: + "@forked/turndown" "^4.0.4" + +typedoc@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.12.0.tgz#c5d606f52af29d841658e18d9faa1a72acf0e270" dependencies: - "@types/fs-extra" "5.0.1" - "@types/handlebars" "4.0.36" - "@types/highlight.js" "9.12.2" - "@types/lodash" "4.14.104" - "@types/marked" "0.3.0" + "@types/fs-extra" "^5.0.3" + "@types/handlebars" "^4.0.38" + "@types/highlight.js" "^9.12.3" + "@types/lodash" "^4.14.110" + "@types/marked" "^0.4.0" "@types/minimatch" "3.0.3" - "@types/shelljs" "0.7.8" - fs-extra "^5.0.0" + "@types/shelljs" "^0.8.0" + fs-extra "^7.0.0" handlebars "^4.0.6" highlight.js "^9.0.0" - lodash "^4.17.5" - marked "^0.3.17" + lodash "^4.17.10" + marked "^0.4.0" minimatch "^3.0.0" progress "^2.0.0" - shelljs "^0.8.1" + shelljs "^0.8.2" typedoc-default-themes "^0.5.0" - typescript "2.7.2" + typescript "3.0.x" -typescript@2.7.2, typescript@^3.0.1: +typescript@3.0.x, typescript@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" @@ -9031,6 +9433,18 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" +unique-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" @@ -9046,10 +9460,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - upath@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" @@ -9068,12 +9478,6 @@ url-parse-as-address@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-as-address/-/url-parse-as-address-1.0.0.tgz#fb80901883f338b3cbed3538f5faa26adaf7f2e7" -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" @@ -9151,6 +9555,12 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + dependencies: + browser-process-hrtime "^0.1.2" + walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -9208,10 +9618,20 @@ whatwg-encoding@^1.0.1: dependencies: iconv-lite "0.4.19" +whatwg-encoding@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz#63fb016b7435b795d9025632c086a5209dbd2621" + dependencies: + iconv-lite "0.4.23" + whatwg-fetch@>=0.10.0: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" +whatwg-mimetype@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" + whatwg-url@^6.3.0: version "6.4.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08" @@ -9220,7 +9640,7 @@ whatwg-url@^6.3.0: tr46 "^1.0.0" webidl-conversions "^4.0.1" -whatwg-url@^6.5.0: +whatwg-url@^6.4.1, whatwg-url@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" dependencies: @@ -9228,6 +9648,14 @@ whatwg-url@^6.5.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -9330,6 +9758,10 @@ xml-name-validator@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + xor-distance@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xor-distance/-/xor-distance-1.0.0.tgz#da735d9b24fcca8dbcd9b374d16d2a01ee9541c6" @@ -9352,7 +9784,7 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" -"y18n@^3.2.1 || ^4.0.0": +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" From 407ecc490fa4557a741c304372d73b665fc92c78 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 23 Aug 2018 13:34:37 +0200 Subject: [PATCH 22/34] Update deps --- packages/client-chains/package.json | 8 ++-- packages/client-db-chain/package.json | 4 +- packages/client-p2p-messages/package.json | 4 +- packages/client-p2p/package.json | 2 +- packages/client-rpc-handlers/package.json | 4 +- packages/client-rpc/package.json | 2 +- packages/client-wasm/package.json | 2 +- packages/client/package.json | 4 +- yarn.lock | 54 +++++++++++------------ 9 files changed, 42 insertions(+), 42 deletions(-) diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 0f9f005e..e803671e 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -37,7 +37,7 @@ "@polkadot/client-db-chain": "^0.13.8", "@polkadot/client-runtime": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/storage": "^0.28.19", + "@polkadot/storage": "^0.28.20", "@polkadot/util": "^0.28.4", "@polkadot/util-crypto": "^0.28.4", "@polkadot/util-keyring": "^0.28.4" @@ -45,8 +45,8 @@ "devDependencies": { "@polkadot/client": "^0.13.8", "@polkadot/client-db": "^0.13.8", - "@polkadot/extrinsics": "^0.28.19", - "@polkadot/primitives": "^0.28.19", - "@polkadot/storage": "^0.28.19" + "@polkadot/extrinsics": "^0.28.20", + "@polkadot/primitives": "^0.28.20", + "@polkadot/storage": "^0.28.20" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 1435c6ff..2d1a2d22 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -35,12 +35,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.13.8", - "@polkadot/storage": "^0.28.19", + "@polkadot/storage": "^0.28.20", "@polkadot/trie-hash": "^0.28.4", "@polkadot/util": "^0.28.4", "@polkadot/util-crypto": "^0.28.4" }, "devDependencies": { - "@polkadot/storage": "^0.28.19" + "@polkadot/storage": "^0.28.20" } } diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index 34a3750a..f31a0900 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -35,8 +35,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/jsonrpc": "^0.28.19", - "@polkadot/primitives": "^0.28.19", + "@polkadot/jsonrpc": "^0.28.20", + "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index 37b987ec..254b6f8c 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-p2p-messages": "^0.13.8", - "@polkadot/primitives": "^0.28.19", + "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4", "eventemitter3": "^3.1.0", "libp2p": "^0.23.1", diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 423cbcec..7ef6da10 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/jsonrpc": "^0.28.19", - "@polkadot/primitives": "^0.28.19", + "@polkadot/jsonrpc": "^0.28.20", + "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index cd6ac6a0..26ad3135 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -34,7 +34,7 @@ "test": "echo \"Tests only available from root wrapper\"" }, "devDependencies": { - "@polkadot/api-provider": "^0.28.19", + "@polkadot/api-provider": "^0.28.20", "@polkadot/client": "^0.13.8" }, "dependencies": { diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index 314d1d53..07ada711 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -36,7 +36,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-runtime": "^0.13.8", - "@polkadot/primitives": "^0.28.19", + "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4", "@types/webassembly-js-api": "^0.0.1" } diff --git a/packages/client/package.json b/packages/client/package.json index 852d4657..8c59dabb 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -44,8 +44,8 @@ "@polkadot/client-rpc": "^0.13.8", "@polkadot/client-telemetry": "^0.13.8", "@polkadot/client-wasm": "^0.13.8", - "@polkadot/jsonrpc": "^0.28.19", - "@polkadot/primitives": "^0.28.19", + "@polkadot/jsonrpc": "^0.28.20", + "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", diff --git a/yarn.lock b/yarn.lock index 2a82f6d7..1f294ed5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1239,12 +1239,12 @@ version "1.1.0" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a" -"@polkadot/api-provider@^0.28.19": - version "0.28.19" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.19.tgz#e2576f3c23fe329e8c7c5299ec7c3c61724ab89e" +"@polkadot/api-provider@^0.28.20": + version "0.28.20" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.20.tgz#a9107c378babf0da2afc7a30983c51c2bcf60f3a" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/storage" "^0.28.19" + "@polkadot/storage" "^0.28.20" "@polkadot/util" "^0.28.4" "@polkadot/util-crypto" "^0.28.4" "@polkadot/util-keyring" "^0.28.4" @@ -1299,48 +1299,48 @@ typedoc-plugin-markdown "^1.1.13" typescript "^3.0.1" -"@polkadot/extrinsics@^0.28.19": - version "0.28.19" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.19.tgz#8b7f2f2d852ef285ac535e82d332e16c6d3cd037" +"@polkadot/extrinsics@^0.28.20": + version "0.28.20" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.20.tgz#2da946077f803a5a9f4b16dc08804ba05ecf2277" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/params" "^0.28.19" - "@polkadot/primitives" "^0.28.19" + "@polkadot/params" "^0.28.20" + "@polkadot/primitives" "^0.28.20" "@polkadot/util" "^0.28.4" -"@polkadot/jsonrpc@^0.28.19": - version "0.28.19" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.19.tgz#9c5bdbef6700c4e1ceb3bddeaaa0c8ae87438560" +"@polkadot/jsonrpc@^0.28.20": + version "0.28.20" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.20.tgz#08dcf9067a224e30989215da8739dfafc1ed0426" dependencies: - "@polkadot/params" "^0.28.19" + "@polkadot/params" "^0.28.20" babel-runtime "^6.26.0" -"@polkadot/params@^0.28.19": - version "0.28.19" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.19.tgz#568bea36cc5423a3ee08ebfa2197118e624c72d7" +"@polkadot/params@^0.28.20": + version "0.28.20" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.20.tgz#6d4dcbc39422a9bb7472bf796de7352180204196" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/extrinsics" "^0.28.19" - "@polkadot/params" "^0.28.19" - "@polkadot/primitives" "^0.28.19" + "@polkadot/extrinsics" "^0.28.20" + "@polkadot/params" "^0.28.20" + "@polkadot/primitives" "^0.28.20" "@polkadot/util" "^0.28.4" "@polkadot/util-keyring" "^0.28.4" -"@polkadot/primitives@^0.28.19": - version "0.28.19" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.19.tgz#b4c068fdbb590a9da4cd0b3332f56686e61bbc29" +"@polkadot/primitives@^0.28.20": + version "0.28.20" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.20.tgz#f6c84e2632b206e274d7a524f5a32c1a9fe4e19b" dependencies: "@babel/runtime" "^7.0.0-rc.1" "@polkadot/trie-hash" "^0.28.4" "@polkadot/util" "^0.28.4" -"@polkadot/storage@^0.28.19": - version "0.28.19" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.19.tgz#7a601ec546bc86cc512962ed09762c1705428564" +"@polkadot/storage@^0.28.20": + version "0.28.20" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.20.tgz#09cfdde02c09d5fba137f476cd15361342201064" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/params" "^0.28.19" - "@polkadot/primitives" "^0.28.19" + "@polkadot/params" "^0.28.20" + "@polkadot/primitives" "^0.28.20" "@polkadot/util" "^0.28.4" "@polkadot/util-crypto" "^0.28.4" "@polkadot/util-keyring" "^0.28.4" From 7f2d0a4e01d1bc2347f3df88e894a334c9f74907 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 23 Aug 2018 14:28:22 +0200 Subject: [PATCH 23/34] Import latest krummelanke.json spec --- .../client-chains/src/chains/krummelanke.json | 99 ++++++++++--------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/packages/client-chains/src/chains/krummelanke.json b/packages/client-chains/src/chains/krummelanke.json index 7b04357e..66f7329e 100644 --- a/packages/client-chains/src/chains/krummelanke.json +++ b/packages/client-chains/src/chains/krummelanke.json @@ -1,50 +1,51 @@ { -"name": "Krumme Lanke", -"id": "krummelanke", -"genesis": {"raw": { - "0x9768f3cbdd14c1a63474dfbdbe052f42": "0x80f4030000000000", - "0x3b700687fecdff5ec1c4a5b714521eb6": "0x0000000000000000", - "0xa059ae3b3ef725721e97452642803b61": "0x0c00000000000000", - "0x81c1e7165a6371a30eda241a30ea26dd": "0x6400000000000000", - "0x45e71d57a2e3a4eace16dbc9286652e3": "0x00000000", - "0x1d72be21946c0b245c026b7be8256cc5": "0x00000000", - "0xd68ee884e4baac617d9823d543ab9295": "0x0000000000000010", - "0x1d007e138cb61e2524a67b15ec01d8cb": "0x0000000000000010", - "0xbfde7c86a8efd60ee5db2de6446703d5": "0xc04e000000000000", - "0x3a617574683a6c656e": "0x04000000", - "0xb54b186fe8782c2a03f2fd15f95c26bf": "0x00000000", - "0x9dd24013e492bdbb3544fba06734baf7": "0xd002000000000000", - "0xd52c584b1e542130e5b277f1af7b7714": "0x00000000", - "0x3a617574683a03000000": "0x8101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", - "0x916dbd78366f27a9597bd4c831e7914d": "0x00e9070000000000", - "0xf37d2c26c6953b18878dbc1dc65edbc0": "0x1800000000000000", - "0x8d62e0fbc08e8694f8991f88d763c5fb": "0x5a00000000000000", - "0xa659ecb253960cfd890e08809104b815": "0x809d000000000000", - "0x3a617574683a00000000": "0x82c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf5", - "0x3a617574683a02000000": "0x063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca5", - "0xe885ffcc2245c8b7d128685cac6b1a0b": "0x0100000000000000", - "0x94b01408fc662bcf2e97df23ce6d67e2": "0x0100000000000000", - "0x6cac40e934558080fbf29c55c113b461": "0x0000000000000000", - "0x8379e35e0cd953085e0404b9223c0cb0": "0xc04e000000000000", - "0x5a3dcf1edb28ea65a038d1eef6767380": "0x003b010000000000", - "0x7a5bafa684003bc748abe89bfbd20f76": "0xe803000000000000", - "0x3d5680071e92ff27a2914bba661e5d83": "0x400b000000000000", - "0x274351e20682cb2ed212b6eab04ef89f": "0x00000000", - "0x3a617574683a01000000": "0x4de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7", - "0x482b5d7b62ccccac45d55bd43c767266": "0x6400000000000000", - "0x35b8ced31f34a951bc3b56db2f425c51": "0x00000000", - "0x98b9e95963cac608a3d0d537fbeaf5c2": "0x0400000082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca58101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", - "0xce83497694648564e47482d0dc444564": "0x18000000", - "0xa0c2154e69bce912f28e890561fcb95c": "0x0400000082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca58101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", - "0x9b7ecc8eb0fade7c91d94b8715fc9ee1": "0xe803000000000000", - "0x3a636f6465": "0x0061736d010000000197011760027f7f0060057f7f7f7f7f017f60017f017f60037f7f7f017f60017f0060000060037f7f7f0060047f7f7f7f006000017e60027f7f017f60027f7e0060037e7f7f0060017f017e600a7f7f7f7f7f7f7f7f7f7f0060017e0060067f7f7f7f7f7f0060047f7f7f7f017f60047f7f7f7f017e60067f7f7f7f7f7f017f60057f7f7f7f7f0060027f7f017e60027f7e017f60037f7f7e0002f1031603656e76146578745f6765745f73746f726167655f696e746f000103656e760a6578745f6d616c6c6f63000203656e76086578745f66726565000403656e760c6578745f74776f785f313238000603656e760f6578745f7365745f73746f72616765000703656e76116578745f636c6561725f73746f72616765000003656e760a6578745f6d656d636d70000303656e76186578745f656e756d6572617465645f747269655f726f6f74000703656e760e6578745f7072696e745f75746638000003656e760d6578745f7072696e745f6e756d000e03656e760a6578745f6d656d637079000303656e760b6578745f6d656d6d6f7665000303656e760a6578745f6d656d736574000303656e76166578745f73616e64626f785f6d656d6f72795f6e6577000903656e76176578745f73616e64626f785f696e7374616e7469617465001203656e76126578745f73616e64626f785f696e766f6b65001003656e76166578745f73616e64626f785f6d656d6f72795f676574001003656e76166578745f73616e64626f785f6d656d6f72795f736574001003656e760e6578745f626c616b65325f323536000603656e760d6578745f7072696e745f686578000003656e76106578745f73746f726167655f726f6f74000403656e76126578745f656432353531395f766572696679001003d001ce010003040505050500030000020404050400060000060505000804040900000505040004030004060a040b0005000c0c00040405060404060d0504050002040400050505050505050505050505050505050505040504050405050405040505040504050405040504050405040506060000060007070f070f0710070707071107130906000409060000040500140014061404140a06041414140002060a15000000000400000004040000040c000405070a1400000000000413060706160704140616060000060000000000000000090405017001161605030100110609017f0141d0c3c0000b07a8010b066d656d6f7279020011727573745f626567696e5f756e77696e64004d066d616c6c6f630052046672656500530b617574686f72697469657300a10110696e697469616c6973655f626c6f636b00a3010f6170706c795f65787472696e73696300a5010d657865637574655f626c6f636b00a7010e66696e616c6973655f626c6f636b00ab010f76616c696461746f725f636f756e7400ac010a76616c696461746f727300ad010930010041010b158f019001910192019301cc01cd01ce01c601cf01d001d101c701d30195019b01d4019401d501d6019c010abbe40cce01ea0403067f017e057f230041106b220224002002410036020020012001280208220341002001280200220420012802042205200241042003100022032003417f461b2203410420034104491b6a22063602080240024002400240200341034d0d0020022802002207ad420c7e2208422088a70d022008a72203417f4c0d01024002402003450d002003100122090d010c050b410421090b20022007360204200220093602002002410036020802402007450d00200141086a210a4100210b4100210c03402002410036020c200a4100200420052002410c6a41042006100022012001417f461b2201410420014104491b20066a2206360200024002400240200141034d0d00200228020c2201417f4c0d01024002402001450d00200110012203450d0a20034100200110171a0c010b410121030b200a20014100200420052003200120061000220d200d417f461b220d200d20014b1b20066a220636020002402001200d4b0d002003450d01200c41016a210c2001ad22084220862008842108200b2002280204470d0320021018200241086a280200210b200228020021090c030b200310020b200228020021060240200b450d00200b410c6c21032006210103400240200141046a280200450d00200128020010020b2001410c6a2101200341746a22030d000b0b2002280204450d04200610020c040b1019000b2009200b410c6c6a2201200837020420012003360200200241086a200b41016a220b360200200c2007490d000b200228020021090b2009450d002000200229020437020420002009360200200241106a24000f0b20004100360200200241106a24000f0b101a000b101b000b101c000b0a00200020012002100c0b810101057f410421010240024002400240200041046a2802002202450d00200241186c2201417f4c0d0320002802002103200110012204450d022004200320012002410c6c2205200520014b1b101e1a20031002200241017421010c010b413010012204450d010b20002004360200200041046a20013602000f0b101c000b1073000b05001041000b05001041000b05001041000b0500104e000bc11105097f037e017f017e027f230041a0026b220224002001280200210320024180026a20012802042204412020044120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20032005101e1a2001200420056b22063602042001200320056a22053602000240024002400240024002400240024002402004411f4d0d00200241e0016a41186a220420024180026a41186a2203290300370300200241e0016a41106a220720024180026a41106a2208290300370300200241e0016a41086a220920024180026a41086a220a29030037030020022002290380023703e00120032004290300220b37030020082007290300220c370300200a2009290300220d370300200241c0006a41086a2204200d370300200241c0006a41106a2203200c370300200241c0006a41186a2207200b370300200220022903e001220b3703402002200b37038002200241206a41186a2007290300370300200241206a41106a2003290300370300200241206a41086a200429030037030020022002290340370320200242003703800220024180026a20052006410820064108491b2204101e1a200141046a2207200620046b22033602002001200520046a2204360200200641074d0d01200229038002210c20024180026a2003412020034120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20042005101e1a2007200320056b22063602002001200420056a22043602002003411f4d0d02200241e0016a41186a220320024180026a41186a2207290300370300200241e0016a41106a220820024180026a41106a2209290300370300200241e0016a41086a220a20024180026a41086a220e29030037030020022002290380023703e00120072003290300220b37030020092008290300220d370300200e200a290300220f37030020024180016a41086a2205200f37030020024180016a41106a2210200d37030020024180016a41186a2211200b370300200220022903e001220b370380012002200b37038002200241e0006a41186a2011290300370300200241e0006a41106a2010290300370300200241e0006a41086a2005290300370300200220022903800137036020024180026a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20042005101e1a200141046a2211200620056b22103602002001200420056a22053602002006411f4d0d032003200729030037030020082009290300370300200a200e29030037030020022002290380023703e00120072003290300220b37030020092008290300220d370300200e200a290300220f370300200241c0016a41086a2204200f370300200241c0016a41106a2203200d370300200241c0016a41186a2206200b370300200220022903e001220b3703c0012002200b37038002200241a0016a41186a2006290300370300200241a0016a41106a2003290300370300200241a0016a41086a2004290300370300200220022903c0013703a001200241003602800220024180026a20052010410420104104491b2204101e1a2011201020046b3602002001200520046a360200201041034d0d062002280280022208ad420c7e220b422088a70d08200ba72205417f4c0d072005450d042005100122070d05101c000b20024180026a41186a200241e0016a41186a29000037030020024180026a41106a200241e0016a41106a29000037030020024180026a41086a200241e0016a41086a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b20004100360208200241a0026a24000f0b20024180026a41186a200241e0016a41186a29000037030020024180026a41106a200241e0016a41106a29000037030020024180026a41086a200241e0016a41086a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b2007200329000037030020092008290000370300200e200a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b410421070b200220083602e401200220073602e00141002105200241003602e80102402008450d00200241e8016a210941002104034020024180026a2001101f024002402002280280022203450d00200441016a2104200229028402210b200520022802e401470d01200241e0016a10182009280200210520022802e00121070c010b20022802e001210402402005450d002005410c6c21052004210103400240200141046a280200450d00200128020010020b2001410c6a2101200541746a22050d000b0b20022802e401450d03200410020c030b20072005410c6c6a2206200b370204200620033602002009200541016a220536020020042008490d000b20022802e00121070b2007450d0020022902e401210b20024180026a41186a2201200241206a41186a29030037030020024180026a41106a2205200241206a41106a29030037030020024180026a41086a2204200241206a41086a290300370300200241e0016a41086a2203200241e0006a41086a290300370300200241e0016a41106a2206200241e0006a41106a290300370300200241e0016a41186a2208200241e0006a41186a290300370300200241086a2209200241a0016a41086a290300370300200241106a220a200241a0016a41106a290300370300200241186a220e200241a0016a41186a2903003703002002200229032037038002200220022903603703e001200220022903a001370300200020073602082000200c3703002000200b37020c200041146a2002290380023702002000411c6a2004290300370200200041246a20052903003702002000412c6a2001290300370200200041346a20022903e0013702002000413c6a2003290300370200200041c4006a2006290300370200200041cc006a2008290300370200200041ec006a200e290300370200200041e4006a200a290300370200200041dc006a2009290300370200200041d4006a2002290300370200200241a0026a24000f0b20004100360208200241a0026a24000f0b101a000b101b000b0a00200020012002100a0b880201067f230041106b220224002002410036020c2002410c6a2001280200220320012802042204410420044104491b2205101e1a2001200420056b22063602042001200320056a220536020002400240024002400240200441034d0d00200228020c2204417f4c0d032004450d01200410012207450d0420074100200410171a0c020b20004100360200200241106a24000f0b410121070b200720052006200420062004491b2203101e2107200141046a200620036b3602002001200520036a3602000240200620044f0d002000410036020020071002200241106a24000f0b2000200436020420002007360200200041086a2004360200200241106a24000f0b1019000b101c000ba6c80107097f047e047f027e257f057e077f230041f0126b2202240020012001280200200128020422034104200341044922041b22056a22063602002001200320056b2203360204024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020040d00200241d8096a2003412020034120491b22046a41004100412020046b2004411f4b1b10171a200241d8096a20062004101e1a200141046a200320046b22053602002001200620046a22043602002003411f4d0d01200241086a41186a2203200241d8096a41186a2206290300370300200241086a41106a2207200241d8096a41106a2208290300370300200241086a41086a2209200241d8096a41086a220a290300370300200220022903d80937030820062003290300220b37030020082007290300220c370300200a2009290300220d370300200241e0076a41086a2203200d370300200241e0076a41106a2206200c370300200241e0076a41186a2207200b37030020022002290308220b3703e0072002200b3703d809200241c0076a41186a2007290300370300200241c0076a41106a2006290300370300200241c0076a41086a2003290300370300200220022903e0073703c00720024200370308200241086a200420054108200541084922061b2203101e1a200141046a2207200520036b22053602002001200420036a220336020020060d022002290308210e200241003a0008200241086a200320054100472204101e1a2007200520046b220f3602002001200320046a22043602002005450d184107210320022d0008221041074b0d37024020100e08000507083b090406000b200241003a0008200241086a2004200f4100472205101e1a200141046a2208200f20056b22063602002001200420056a2207360200410321094200210d20022d00084108744100200f1b2005724181fe03714101470d35200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20072004101e1a2008200620046b22053602002001200720046a22043602002006411f4d0d0c200241086a41186a2206200241f8096a41186a2207290300370300200241086a41106a2208200241f8096a41106a220a290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f80937030820072006290300220b370300200a2008290300220c370300201220112903002213370300200241d8116a41086a22062013370300200241d8116a41106a2207200c370300200241d8116a41186a2208200b37030020022002290308220b3703d8112002200b3703f80920024198106a41186a200829030037030020024198106a41106a200729030037030020024198106a41086a2006290300370300200220022903d8113703981020024200370308200241086a200420054108200541084922071b2206101e1a200141046a2208200520066b22053602002001200420066a220636020020070d332002290308210b200241f8096a2005412020054120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a2008200520046b22073602002001200620046a22043602002005411f4d0d20200241086a41186a2205200241f8096a41186a2206290300370300200241086a41106a2208200241f8096a41106a220a290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f80937030820062005290300220c370300200a20082903002213370300201220112903002214370300200241d8116a41086a22052014370300200241d8116a41106a22062013370300200241d8116a41186a2208200c37030020022002290308220c3703d8112002200c3703f809200241b8106a41186a2008290300370300200241b8106a41106a2006290300370300200241b8106a41086a2005290300370300200220022903d8113703b810200241003a0008200241086a200420074100472205101e1a200141046a200720056b22063602002001200420056a22043602002007450d3341014102410320022d000822054112461b20054111461b22054101460d2b20054103460d3320024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d3320022802082115200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a2008200720046b22063602002001200520046a22083602002007411f4d0d2a200241086a41186a2216200241f8096a41186a2207290300370300200241086a41106a2217200241f8096a41106a2218290300370300200241086a41086a2219200241f8096a41086a221a290300370300200220022903f80937030820182017290300370300201a20192903003703002007201629030037030020024198126a41086a2204200241870a6a221b280000360200200220022903083703f809200220022900ff093703981220072d0000210520022800fb09211c20022d008b0a211d20022d008c0a211e20022f008d0a210a20022d008f0a211120022f00910a210f20022d00930a211220022d00940a211f20022f00950a212020022d00970a211020022f01f809212120022d00fa092122200241d8096a41086a200428020036020020022002290398123703d809200241f8096a200641c000200641c000491b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a20082004101e1a200141046a2223200620046b22243602002001200820046a22253602002006413f4d0d29200241086a41386a2204200241f8096a41386a2206290300370300200241086a41306a2208200241f8096a41306a2226290300370300200241086a41286a2227200241f8096a41286a2228290300370300200241086a41206a2229200241f8096a41206a222a29030037030020162007290300370300201720182903003703002019201a290300370300200220022903f80937030820182017290300370300201a201929030037030020072016290300370300202a202929030037030020282027290300370300202620082903003703002006200429030037030020024198116a41086a2204201b29000037030020024198116a41106a22062002418f0a6a29000037030020024198116a41186a2207200241f8096a411f6a29000037030020024198116a41206a22082002419f0a6a29000037030020024198116a41286a2216200241a70a6a29000037030020024198116a41306a2217200241af0a6a29000037030020024198116a41386a2218200241f8096a413f6a2d00003a0000200220022903083703f809200220022900ff093703981120023502f809210c20023201fc09211320023100fe092114200241d8106a41086a2004290300370300200241d8106a41106a2006290300370300200241d8106a41186a2007290300370300200241d8106a41206a2008290300370300200241d8106a41286a2016290300370300200241d8106a41306a2017290300370300200241d8106a41386a20182d00003a000020022002290398113703d81020022f01e209211620022d00e109210820022d00e009211920022f01de09211720022d00dd09210720022d00dc09211820022802d809212b200241f8096a2024412020244120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20252004101e1a2023202420046b22063602002001202520046a222c3602002024411f4d0d28200241086a41186a222d200241f8096a41186a222e290300370300200241086a41106a222f200241f8096a41106a2230290300370300200241086a41086a2231200241f8096a41086a2232290300370300200220022903f8093703082030202f29030037030020322031290300370300202e202d290300370300200241b8126a41086a2204200241870a6a280000360200200220022903083703f809200220022900ff093703b812202e2d0000212620022800fb09211a20022d008b0a212420022d008c0a212520022f008d0a211b20022d008f0a212320022f00910a212720022d00930a212820022d00940a212920022f00950a212a20022d00970a213320022f01f809213420022d00fa092135200241d8096a41086a22362004280200360200200220022903b8123703d809200241f8096a200641c000200641c000491b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a202c2004101e1a200141046a200620046b3602002001202c20046a3602002006413f4d0d2720212022411074722137200c201320144210868442208684210c20342035411074722106200241086a41386a2204200241f8096a41386a2221290300370300200241086a41306a2222200241f8096a41306a222c290300370300200241086a41286a2234200241f8096a41286a2235290300370300200241086a41206a2238200241f8096a41206a2239290300370300202d202e290300370300202f203029030037030020312032290300370300200220022903f809370308202120042903002213370300202c2022290300221437030020352034290300223a37030020392038290300223b370300202e202d290300223c3703002030202f290300223d37030020322031290300223e370300200241d8116a41086a223f203e370300200241d8116a41106a2240203d370300200241d8116a41186a2241203c370300200241d8116a41206a2242203b370300200241d8116a41286a2243203a370300200241d8116a41306a22442014370300200241d8116a41386a224520133703002002200229030822133703d811200220133703f809200241e0126a41086a20362802003602002031203f290300370300202f2040290300370300202d204129030037030020382042290300370300203420432903003703002022204429030037030020042045290300370300200220022903d8093703e012200220022903d8113703082021200241d8106a41386a2d00003a0000202c200241d8106a41306a2903003703002035200241d8106a41286a2903003703002039200241d8106a41206a290300370300202e200241d8106a41186a2903003703002030200241d8106a41106a2903003703002032200241d8106a41086a290300370300200220022903d8103703f809410121040c2c0b200041073a0008200241f0126a24000f0b200241d8096a41186a200241086a41186a290000370300200241d8096a41106a200241086a41106a290000370300200241d8096a41086a200241086a41086a290000370300200220022900083703d8090b410721040c380b200241003a0008200241086a2004200f4100472206101e1a200141046a200f20066b22053602002001200420066a2206360200200f450d3320022d0008220441044b0d33024020040e050019161714000b20024100360208200241086a20062005410420054104491b2207101e1a200141046a200520076b22043602002001200620076a2206360200200541034d0d332002280208220a417f4c0d22200a450d20200a100122110d21101c000b200241003a0008200241086a2004200f4100472205101e1a200141046a2208200f20056b22063602002001200420056a220736020020022d00084108744100200f1b2005724181fe03714101470d05200241f8096a20064120200641204922051b22046a41004100412020046b2004411f4b1b10171a200241f8096a20072004101e1a2008200620046b3602002001200720046a36020020050d04200241086a41186a2205200241f8096a41186a2204290300370300200241086a41106a2206200241f8096a41106a2207290300370300200241086a41086a2208200241f8096a41086a2209290300370300200220022903f809370308200720062903003703002009200829030037030020042005290300370300200241d8116a41086a2209200241870a6a280000360200200220022903083703f809200220022900ff093703d81120042d0000211120022800fb09210520022d008b0a211220022d008c0a211d20022f008d0a211620022d008f0a211720022f00910a210620022d00930a210720022d00940a211820022f00950a210a20022d00970a210820022f01f809210420022d00fa092119200241d8096a41086a22152009280200360200200220022903d8113703d809200241b00e6a41086a2015280200360200200220022903d8093703b00e20042019411074722104410121090c060b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2204360200200f450d3120022d00082205450d0a20054101460d0720054102470d31200241f8096a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a200241f8096a20042005101e1a200141046a200620056b3602002001200420056a3602002006411f4d0d18200241086a41186a2204200241f8096a41186a2203290300370300200241086a41106a2205200241f8096a41106a2206290300370300200241086a41086a2207200241f8096a41086a2208290300370300200220022903f809370308200620052903003703002008200729030037030020032004290300370300200241d8116a41086a2205200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210720022800fb09210420022d008b0a212b20022d008c0a212020022f008d0a211f20022d008f0a211820022f00910a211720022d00930a211920022d00940a210820022f00950a211620022d00970a211d20022f01f809210320022d00fa092106200241d8096a41086a2005280200360200200220022903d8113703d8092003200641107472210520022902dc09210d20022802d809210f4103211c0c0b0b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2205360200200f450d3020022d00082204450d0b20044101460d0720044102470d33410321060c080b200241003a0008200241086a2004200f4100472205101e1a200141046a2207200f20056b22063602002001200420056a220436020020022d00084108744100200f1b2005724181fe03714101470d2f20024200370308200241086a20042006410820064108491b2203101e1a2007200620036b3602002001200420036a36020041072103200641074d0d2f2002290308210d20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008410321034201210b0c0e0b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2204360200200f450d2e20022d00082205450d0b20054101460d0a20054102470d2e20024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d2e20022802082104200241003a0008200241086a200520074100472206101e1a2008200720066b3602002001200520066a3602002007450d2e2002310008420183210b410321030c0c0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090b410221090b200241870a6a200241b00e6a41086a280200360000200220053600fb09200220123a008b0a2002201d3a008c0a200220163b008d0a200220173a008f0a200220113a00900a200220063b00910a200220073a00930a200220183a00940a2002200a3b00950a200220083a00970a200220022903b00e3700ff09200220043b01f809200220044110763a00fa0920094102460d2b200220022f01f8093b01d609200241940a6a2f0100211720022901fe09210b20022901860a210d200228018e0a212b20024198096a41386a200241d8116a41386a2d00003a000020024198096a41306a200241d8116a41306a29010037030020024198096a41286a200241d8116a41286a29010037030020024198096a41206a200241d8116a41206a29010037030020024198096a41186a200241d8116a41186a29010037030020024198096a41106a200241d8116a41106a29010037030020024198096a41086a200241d8116a41086a29010037030020024188096a41086a200241800b6a41086a280100360200200220022901d81137039809200220022901800b37038809200241c8086a41386a200241086a41386a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41086a200241086a41086a290000370300200241c4086a41026a200241f8096a41026a2d00003a0000200220022900083703c808200220022f00f8093b01c408200241a0086a41186a200241b00e6a41186a290100370300200241a0086a41106a200241b00e6a41106a290100370300200241a0086a41086a200241b00e6a41086a29010037030020024180086a41186a200241d80c6a41186a29010037030020024180086a41106a200241d80c6a41106a29010037030020024180086a41086a200241d80c6a41086a290100370300200220022901b00e3703a008200220022901d80c37038008202b411076211f202b41087621202004418080fc0771411076211c20064180fe03714108762118200a4180fe03714108762119410121030c2e0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c260b200241f8096a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a200241f8096a20042005101e1a200141046a220a200620056b22093602002001200420056a22053602002006411f4d0d0f200241086a41186a2206200241f8096a41186a2204290300370300200241086a41106a2207200241f8096a41106a2208290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f809370308200820072903003703002012201129030037030020042006290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120042d0000210720022800fb09210420022d008b0a212b20022d008c0a212020022f008d0a211f20022d008f0a211820022f00910a211720022d00930a211920022d00940a210820022f00950a211620022d00970a211d20022f01f809211120022d00fa092112200241d8096a41086a2006280200360200200220022903d8113703d809200241003a0008200241086a200520094100472206101e1a200a200920066b3602002001200520066a3602002009450d292011201241107472210520022d0008410171211e20022902dc09210d20022802d809210f4102211c0c030b410221060b0c220b4101211c200110212204450d290b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008200fad4220862004ad84210b410621030c270b200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a200141046a2212200620046b22093602002001200520046a22113602002006411f4d0d0c200241086a41186a2204200241f8096a41186a2203290300370300200241086a41106a2205200241f8096a41106a2206290300370300200241086a41086a2207200241f8096a41086a2208290300370300200220022903f809370308200620052903003703002008200729030037030020032004290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a210420022f01f809211520022d00fa09211a200241d8096a41086a2006280200360200200220022903d8113703d80920024200370308200241086a20112009410820094108491b2203101e1a2012200920036b3602002001201120036a36020041072103200941074d0d242015201a4110747221092002290308210c20022802e009212b20022903d809210d410121060c1f0b20024100360208200241086a20042006410420064104491b2205101e1a200141046a200620056b3602002001200420056a360200200641034d0d2320022802082104410221034200210b0c010b200110212204450d22200220043602d8104200210b20024200370308200241086a20012802002206200141046a22072802002205410820054108491b2203101e1a2007200520036b3602002001200620036a36020041072103200541074d0d0d2002290308210d410121030b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008200b2004ad42188684420886200341ff0171ad84210b410421030b4100211f410021200c210b200241f8096a2005412020054120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a200141046a2212200520046b22093602002001200620046a22043602002005411f4d0d09200241086a41186a2205200241f8096a41186a2203290300370300200241086a41106a2206200241f8096a41106a2207290300370300200241086a41086a2208200241f8096a41086a220a290300370300200220022903f80937030820072006290300370300200a200829030037030020032005290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a211120022f01f809211520022d00fa09211a200241d8096a41086a2006280200360200200220022903d8113703d80920024200370308200241086a20042009410820094108491b2203101e1a2012200920036b22063602002001200420036a2203360200200941074d0d002002290308210c20024100360208200241086a20032006410420064104491b2204101e1a200141046a200620046b3602002001200320046a360200200641034d0d002015201a4110747221032002280208211220022802e009212b20022903d809210d410521040c190b410721030c1e0b20024100360208200241086a20062005410420054104491b2204101e1a200141046a200520046b3602002001200620046a36020041032104200541034d0d1d0c010b2002410036020841042104200241086a20062005410420054104491b2207101e1a200141046a200520076b3602002001200620076a360200200541034d0d1c0b200228020821050c150b20024100360208200241086a20062005410420054104491b2204101e1a200141046a2208200520046b22073602002001200620046a2206360200200541034d0d1a20022802082112200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a2008200720046b22093602002001200620046a22043602002007411f4d0d06200241086a41186a2206200241f8096a41186a2205290300370300200241086a41106a2207200241f8096a41106a2208290300370300200241086a41086a220a200241f8096a41086a2211290300370300200220022903f809370308200820072903003703002011200a29030037030020052006290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120052d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a211120022f01f809212420022d00fa092125200241d8096a41086a2006280200360200200220022903d8113703d80920024100360208200241086a20042009410420094104491b2206101e1a200141046a221a200920066b22153602002001200420066a2204360200200941034d0d1a2002350208210b20024100360208200241086a20042015410420154104491b2206101e1a201a201520066b3602002001200420066a360200201541034d0d1a202420254110747221032002350208422086200b84210c20022802e009212b20022903d809210d410221040c140b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c190b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c180b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c170b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c120b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c150b200241d8106a10220c140b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c130b410121110b2002200a36020c20022011360208200241003602100240200a450d00200141046a211d200241106a211241002105410021080340200241003a00d811200241d8116a200620044100472207101e1a201d200420076b22093602002001200620076a2206360200024002402004450d00200841016a210820022d00d81141017121042005200228020c470d01200241086a102320122802002105200228020821110c010b200228020c450d14201110020c140b201120056a20043a00002012200541016a2205360200200921042008200a490d000b200228020821110b2011450d112011410020111b2105200229020c210d20024100360208200241086a20012802002207200141046a22082802002204410420044104491b2206101e1a2008200420066b3602002001200720066a3602000240200441034d0d002002280208212b410121040c0c0b200da7450d11200510020c110b1024000b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300202e202d2900003703002030202f29000037030020322031290000370300200220022900083703f8090c0b0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c0a0b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a2900003703002007201629000037030020182017290000370300201a2019290000370300200220022900083703f8090c090b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c080b20024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d0720022802082115200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a2008200720046b22063602002001200520046a22253602002007411f4d0d01200241086a41186a221b200241f8096a41186a221a290300370300200241086a41106a2223200241f8096a41106a2224290300370300200241086a41086a2226200241f8096a41086a2227290300370300200220022903f80937030820242023290300370300201a201b29030037030020272026290300370300200220022903083703f80920242d00002108201a2d0000210520022800fb09211c20022800ff09212b20022d00830a211820022d00840a210720022f00850a211720022d00870a211920022f00890a211620022d008b0a211d20022d008c0a211e20022f008d0a210a20022d008f0a211120022f00910a210f20022d00930a211220022d00940a211f20022f00950a212020022d00970a211020022f01f809212a20022d00fa092133200241f8096a200641c000200641c0004922281b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a20252004101e1a200141046a2229200620046b22063602002001202520046a222536020020280d02200241086a41386a2204200241f8096a41386a2228290300370300200241086a41306a222e200241f8096a41306a2221290300370300200241086a41286a2222200241f8096a41286a222c290300370300200241086a41206a222d200241f8096a41206a222f290300370300201b201a2903003703002023202429030037030020262027290300370300200220022903f8093703082024202329030037030020272026290300370300201a201b290300370300202f202d290300370300202c20222903003703002021202e2903003703002028200429030037030020024198116a41086a2204200241870a6a29000037030020024198116a41106a221a2002418f0a6a29000037030020024198116a41186a2224200241f8096a411f6a29000037030020024198116a41206a221b2002419f0a6a29000037030020024198116a41286a2223200241a70a6a29000037030020024198116a41306a2226200241af0a6a29000037030020024198116a41386a2227200241f8096a413f6a2d00003a0000200220022903083703f809200220022900ff093703981120023502f809210c20023201fc09211320023100fe092114200241d8106a41386a20272d00003a0000200241d8106a41306a2026290300370300200241d8106a41286a2023290300370300200241d8106a41206a201b290300370300200241d8106a41186a2024290300370300200241d8106a41106a201a290300370300200241d8106a41086a200429030037030020022002290398113703d810200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20252004101e1a2029200620046b221a3602002001202520046a22243602002006411f4d0d03200241086a41186a2225200241f8096a41186a222e290300370300200241086a41106a221b200241f8096a41106a2221290300370300200241086a41086a2223200241f8096a41086a2222290300370300200220022903f809370308202e2025290300223a3703002021201b290300223b37030020222023290300223c370300200241b8126a41086a2204203c370300200241b8126a41106a2206203b370300200241b8126a41186a2226203a37030020022002290308223a3703b8122002203a3703f809200241d8096a41186a2026290300370300200241d8096a41106a2006290300370300200241d8096a41086a2004290300370300200220022903b8123703d80941002104200241f8096a201a41c000201a41c000491b22066a4100410041c00020066b2006413f4b1b10171a200241f8096a20242006101e1a200141046a201a20066b3602002001202420066a360200201a413f4d0d04202a2033411074722137200c201320144210868442208684210c200241086a41386a2206200241f8096a41386a222c290300370300200241086a41306a221a200241f8096a41306a222d290300370300200241086a41286a2224200241f8096a41286a222f290300370300200241086a41206a2226200241f8096a41206a22302903003703002025202e290300370300201b202129030037030020232022290300370300200220022903f809370308202c20062903002213370300202d201a2903002214370300202f2024290300223a37030020302026290300223b370300202e2025290300223c3703002021201b290300223d37030020222023290300223e370300200241d8116a41086a2227203e370300200241d8116a41106a2228203d370300200241d8116a41186a2229203c370300200241d8116a41206a222a203b370300200241d8116a41286a2233203a370300200241d8116a41306a22312014370300200241d8116a41386a223220133703002002200229030822133703d811200220133703f809200241e0126a41086a200241e7096a28000036020020232027290300370300201b2028290300370300202520292903003703002026202a29030037030020242033290300370300201a203129030037030020062032290300370300200220022900df093703e012200220022903d81137030820022800db09211a20022d00eb09212420022d00ec09212520022f00ed09211b20022d00ef09212320022d00f009212620022f00f109212720022d00f309212820022d00f409212920022f00f509212a20022d00f709213320022f01d809210620022d00da092131202c200241d8106a41386a2d00003a0000202d200241d8106a41306a290300370300202f200241d8106a41286a2903003703002030200241d8106a41206a290300370300202e200241d8106a41186a2903003703002021200241d8106a41106a2903003703002022200241d8106a41086a290300370300200220022903d8103703f809200620314110747221060b20024198116a41386a200241f8096a41386a2d00003a000020024198116a41306a200241f8096a41306a29030037030020024198116a41286a200241f8096a41286a29030037030020024198116a41206a200241f8096a41206a29030037030020024198116a41186a200241f8096a41186a29030037030020024198116a41106a200241f8096a41106a29030037030020024198116a41086a200241f8096a41086a29030037030020024188106a41086a200241e0126a41086a280200360200200220022903f80937039811200220022903e01237038810200241d8116a41386a200241086a41386a290300370300200241d8116a41306a200241086a41306a290300370300200241d8116a41286a200241086a41286a290300370300200241d8116a41206a200241086a41206a290300370300200241d8116a41186a200241086a41186a290300370300200241d8116a41106a200241086a41106a290300370300200241d8116a41086a200241086a41086a29030037030020024184106a41026a200241d8106a41026a2d00003a0000200220022903083703d811200220022f00d8103b018410200241e00f6a41186a20024198106a41186a290300370300200241e00f6a41106a20024198106a41106a290300370300200241e00f6a41086a20024198106a41086a29030037030020022002290398103703e00f200241c00f6a41186a200241b8106a41186a290300370300200241c00f6a41106a200241b8106a41106a290300370300200241c00f6a41086a200241b8106a41086a290300370300200220022903b8103703c00f0c070b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c050b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300201a201b2900003703002024202329000037030020272026290000370300200220022900083703f8090c040b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c030b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300202e20252900003703002021201b29000037030020222023290000370300200220022900083703f8090c020b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c370380082005ad421886200341ffffff0771ad84420886200441ff0171ad84210b202b411076211f202b4108762120410521030c060b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c80841022103200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c370380082005ad421886200941ffffff0771ad84420886200641ff0171ad84210b202b411076211f202b4108762120200441ff017121110c050b410221040b200241f8096a41386a222e20024198116a41386a2d00003a0000200241f8096a41306a222120024198116a41306a290300370300200241f8096a41286a222220024198116a41286a290300370300200241f8096a41206a222c20024198116a41206a290300370300200241f8096a41186a222d20024198116a41186a290300370300200241f8096a41106a222f20024198116a41106a290300370300200241f8096a41086a223020024198116a41086a290300370300200241e0126a41086a223120024188106a41086a28020036020020022002290398113703f80920022002290388103703e012200241086a41386a2232200241d8116a41386a290300370300200241086a41306a2234200241d8116a41306a290300370300200241086a41286a2235200241d8116a41286a290300370300200241086a41206a2236200241d8116a41206a290300370300200241086a41186a2238200241d8116a41186a290300370300200241086a41106a2239200241d8116a41106a290300370300200241086a41086a223f200241d8116a41086a290300370300200241dc126a41026a20024184106a41026a2d00003a0000200220022903d811370308200220022f0184103b01dc12200241b8126a41186a2240200241e00f6a41186a290300370300200241b8126a41106a2241200241e00f6a41106a290300370300200241b8126a41086a2242200241e00f6a41086a29030037030020024198126a41186a2243200241c00f6a41186a29030037030020024198126a41106a2244200241c00f6a41106a29030037030020024198126a41086a2245200241c00f6a41086a290300370300200220022903e00f3703b812200220022903c00f370398120240024020044102470d004102210441024102470d010c020b200241800f6a41386a202e2d00003a0000200241800f6a41306a2021290300370300200241800f6a41286a2022290300370300200241800f6a41206a202c290300370300200241800f6a41186a202d290300370300200241800f6a41106a202f290300370300200241800f6a41086a2030290300370300200241f00e6a41086a2031280200360200200220022903f8093703800f200220022903e0123703f00e200241b00e6a41386a2032290300370300200241b00e6a41306a2034290300370300200241b00e6a41286a2035290300370300200241b00e6a41206a2036290300370300200241b00e6a41186a2038290300370300200241b00e6a41106a2039290300370300200241b00e6a41086a203f290300370300200241ac0e6a41026a200241dc126a41026a2d00003a0000200220022903083703b00e200220022f01dc123b01ac0e200241880e6a41186a2040290300370300200241880e6a41106a2041290300370300200241880e6a41086a2042290300370300200220022903b8123703880e200241e80d6a41186a2043290300370300200241e80d6a41106a2044290300370300200241e80d6a41086a204529030037030020022002290398123703e80d200c420886201041ff0171ad84210c2020411074201f41ff017141087472201241ff0171722112200f411074200541ff017141087472201141ff017172211120044102460d010b20024198116a41386a200241800f6a41386a2d00003a000020024198116a41306a200241800f6a41306a29030037030020024198116a41286a200241800f6a41286a29030037030020024198116a41206a200241800f6a41206a29030037030020024198116a41186a200241800f6a41186a29030037030020024198116a41106a200241800f6a41106a29030037030020024198116a41086a200241800f6a41086a29030037030020024188106a41086a200241f00e6a41086a280200360200200220022903800f37039811200220022903f00e37038810200241d8116a41386a200241b00e6a41386a290300370300200241d8116a41306a200241b00e6a41306a290300370300200241d8116a41286a200241b00e6a41286a290300370300200241d8116a41206a200241b00e6a41206a290300370300200241d8116a41186a200241b00e6a41186a290300370300200241d8116a41106a200241b00e6a41106a290300370300200241d8116a41086a200241b00e6a41086a29030037030020024184106a41026a200241ac0e6a41026a2d00003a0000200220022903b00e3703d811200220022f01ac0e3b018410200241e00f6a41186a200241880e6a41186a290300370300200241e00f6a41106a200241880e6a41106a290300370300200241e00f6a41086a200241880e6a41086a290300370300200220022903880e3703e00f200241c00f6a41186a200241e80d6a41186a290300370300200241c00f6a41106a200241e80d6a41106a290300370300200241c00f6a41086a200241e80d6a41086a290300370300200220022903e80d3703c00f201cad421886203741ffffff0771ad84420886210d0c010b410321040b200241f8096a41386a220520024198116a41386a2d00003a0000200241f8096a41306a221c20024198116a41306a290300370300200241f8096a41286a220f20024198116a41286a290300370300200241f8096a41206a221f20024198116a41206a290300370300200241f8096a41186a222020024198116a41186a290300370300200241f8096a41106a221020024198116a41106a290300370300200241f8096a41086a20024198116a41086a290300370300200241e0126a41086a20024188106a41086a28020036020020022002290398113703f80920022002290388103703e012200241086a41386a222e200241d8116a41386a290300370300200241086a41306a2221200241d8116a41306a290300370300200241086a41286a2222200241d8116a41286a290300370300200241086a41206a222c200241d8116a41206a290300370300200241086a41186a222d200241d8116a41186a290300370300200241086a41106a222f200241d8116a41106a290300370300200241086a41086a200241d8116a41086a290300370300200241dc126a41026a223020024184106a41026a2d00003a0000200220022903d811370308200220022f0184103b01dc12200241b8126a41186a2231200241e00f6a41186a290300370300200241b8126a41106a2232200241e00f6a41106a290300370300200241b8126a41086a200241e00f6a41086a29030037030020024198126a41186a2234200241c00f6a41186a29030037030020024198126a41106a2235200241c00f6a41106a29030037030020024198126a41086a200241c00f6a41086a290300370300200220022903e00f3703b812200220022903c00f37039812024020044103460d00200241a80d6a41386a20052d00003a0000200241a80d6a41306a201c290300370300200241a80d6a41286a200f290300370300200241a80d6a41206a201f290300370300200241a80d6a41186a2020290300370300200241a80d6a41106a2010290300370300200241a80d6a41086a200241f8096a41086a290300370300200241980d6a41086a200241e0126a41086a280200360200200220022903f8093703a80d200220022903e0123703980d200241d80c6a41386a202e290300370300200241d80c6a41306a2021290300370300200241d80c6a41286a2022290300370300200241d80c6a41206a202c290300370300200241d80c6a41186a202d290300370300200241d80c6a41106a202f290300370300200241d80c6a41086a200241086a41086a290300370300200241d40c6a41026a20302d00003a0000200220022903083703d80c200220022f01dc123b01d40c200241b00c6a41186a2031290300370300200241b00c6a41106a2032290300370300200241b00c6a41086a200241b8126a41086a290300370300200220022903b8123703b00c200241900c6a41186a2034290300370300200241900c6a41106a2035290300370300200241900c6a41086a20024198126a41086a29030037030020022002290398123703900c200421090b20094103460d0020024198096a41086a200241a80d6a41086a29030037030020024198096a41106a200241a80d6a41106a29030037030020024198096a41186a200241a80d6a41186a29030037030020024198096a41206a200241a80d6a41206a29030037030020024198096a41286a200241a80d6a41286a29030037030020024198096a41306a200241a80d6a41306a29030037030020024198096a41386a200241a80d6a41386a2d00003a0000200220022f018e0c3b01d609200220022903a80d3703980920024188096a41086a200241980d6a41086a280200360200200241c8086a41086a200241d80c6a41086a290300370300200241c8086a41106a200241d80c6a41106a290300370300200241c8086a41186a200241d80c6a41186a290300370300200241c8086a41206a200241d80c6a41206a290300370300200241c8086a41286a200241d80c6a41286a290300370300200241c8086a41306a200241d80c6a41306a290300370300200241c8086a41386a200241d80c6a41386a290300370300200220022903980d37038809200220022903d80c3703c808200241c4086a41026a200241d40c6a41026a2d00003a0000200241a0086a41186a200241b00c6a41186a290300370300200241a0086a41106a200241b00c6a41106a290300370300200241a0086a41086a200241b00c6a41086a29030037030020024180086a41186a200241900c6a41186a29030037030020024180086a41106a200241900c6a41106a29030037030020024180086a41086a200241900c6a41086a290300370300200220022f01d40c3b01c408200220022903b00c3703a008200220022903900c37038008202b411076211f202b4108762120200d200941ff0171ad84210d410021030c010b0c020b0b0b200241d00b6a41086a220f20024198096a41086a290300370300200241d00b6a41106a221020024198096a41106a290300370300200241d00b6a41186a222e20024198096a41186a290300370300200241d00b6a41206a222120024198096a41206a290300370300200241d00b6a41286a222220024198096a41286a290300370300200241d00b6a41306a222c20024198096a41306a290300370300200241d00b6a41386a222d20024198096a41386a2d00003a0000200220022f01d6093b018e0c20022002290398093703d00b200241c00b6a41086a222f20024188096a41086a280200360200200241800b6a41086a2230200241c8086a41086a290300370300200241800b6a41106a2231200241c8086a41106a290300370300200241800b6a41186a2232200241c8086a41186a290300370300200241800b6a41206a2234200241c8086a41206a290300370300200241800b6a41286a2235200241c8086a41286a290300370300200241800b6a41306a2236200241c8086a41306a290300370300200241800b6a41386a2238200241c8086a41386a29030037030020022002290388093703c00b200220022903c8083703800b200241fc0a6a41026a2239200241c4086a41026a2d00003a0000200241d80a6a41186a223f200241a0086a41186a290300370300200241d80a6a41106a2240200241a0086a41106a290300370300200241d80a6a41086a2241200241a0086a41086a290300370300200241b80a6a41186a224220024180086a41186a290300370300200241b80a6a41106a224320024180086a41106a290300370300200241b80a6a41086a224420024180086a41086a290300370300200220022f01c4083b01fc0a200220022903a0083703d80a20022002290380083703b80a4107210420034107460d00200241d80c6a41086a200f290300370300200241d80c6a41106a2010290300370300200241d80c6a41186a202e290300370300200241d80c6a41206a2021290300370300200241d80c6a41286a2022290300370300200241d80c6a41306a202c290300370300200241d80c6a41386a202d2d00003a0000200220022f018e0c3b01c00f200220022903d00b3703d80c200241b8126a41086a202f280200360200200241d8116a41086a2030290300370300200241d8116a41106a2031290300370300200241d8116a41186a2032290300370300200241d8116a41206a2034290300370300200241d8116a41286a2035290300370300200241d8116a41306a2036290300370300200241d8116a41386a2038290300370300200220022903c00b3703b812200220022903800b3703d81120024198126a41026a20392d00003a000020024198116a41186a203f29030037030020024198116a41106a204029030037030020024198116a41086a2041290300370300200241800f6a41186a2042290300370300200241800f6a41106a2043290300370300200241800f6a41086a2044290300370300200220022f01fc0a3b019812200220022903d80a37039811200220022903b80a3703800f200241a80d6a41186a200241c0076a41186a290300370300200241a80d6a41106a200241c0076a41106a290300370300200241a80d6a41086a200241c0076a41086a290300370300200220022903c0073703a80d201f411074202041ff017141087472202b41ff017172210f200321040c010b0b200241b00e6a41086a222b200241d80c6a41086a290300370300200241b00e6a41106a221f200241d80c6a41106a290300370300200241b00e6a41186a2220200241d80c6a41186a290300370300200241b00e6a41206a2210200241d80c6a41206a290300370300200241b00e6a41286a222e200241d80c6a41286a290300370300200241b00e6a41306a2221200241d80c6a41306a290300370300200241b00e6a41386a2222200241d80c6a41386a2d00003a0000200220022f01c00f3b01e00f200220022903d80c3703b00e200241d00b6a41086a222c200241b8126a41086a280200360200200241086a41086a222d200241d8116a41086a290300370300200241086a41106a222f200241d8116a41106a290300370300200241086a41186a2230200241d8116a41186a290300370300200241086a41206a2231200241d8116a41206a290300370300200241086a41286a2232200241d8116a41286a290300370300200241086a41306a2234200241d8116a41306a290300370300200241086a41386a2235200241d8116a41386a290300370300200220022903b8123703d00b200220022903d81137030820024198096a41026a223620024198126a41026a2d00003a0000200241800b6a41186a223820024198116a41186a290300370300200241800b6a41106a223920024198116a41106a290300370300200241800b6a41086a223f20024198116a41086a290300370300200241f8096a41186a2240200241800f6a41186a290300370300200241f8096a41106a2241200241800f6a41106a290300370300200241f8096a41086a2242200241800f6a41086a290300370300200220022f0198123b01980920022002290398113703800b200220022903800f3703f809200241c8086a41186a2243200241a80d6a41186a290300370300200241c8086a41106a2244200241a80d6a41106a290300370300200241c8086a41086a2245200241a80d6a41086a290300370300200220022903a80d3703c80841072103024020044107460d0020024180076a41086a202b29030037030020024180076a41106a201f29030037030020024180076a41186a202029030037030020024180076a41206a201029030037030020024180076a41286a202e29030037030020024180076a41306a202129030037030020024180076a41386a20222d00003a0000200220022f01e00f3b01be07200220022903b00e37038007200241f0066a41086a202c280200360200200241b0066a41086a202d290300370300200241b0066a41106a202f290300370300200241b0066a41186a2030290300370300200241b0066a41206a2031290300370300200241b0066a41286a2032290300370300200241b0066a41306a2034290300370300200241b0066a41386a2035290300370300200220022903d00b3703f006200220022903083703b006200241ac066a41026a20362d00003a000020024188066a41186a203829030037030020024188066a41106a203929030037030020024188066a41086a203f290300370300200241e8056a41186a2040290300370300200241e8056a41106a2041290300370300200241e8056a41086a2042290300370300200220022f0198093b01ac06200220022903800b37038806200220022903f8093703e805200241c8056a41186a2043290300370300200241c8056a41106a2044290300370300200241c8056a41086a2045290300370300200220022903c8083703c805200421030b024020034107470d00200041073a0008200241f0126a24000f0b20024197036a20054110763a000020024195036a20053b000020024191036a20093a000020024192036a20022f01be073b010020024194036a201c3a000020024188036a41106a2209200b37030020024188036a41186a200d37030020024188036a41206a200f360200200241ac036a20183a0000200241ad036a20073a0000200241ae036a20173b010020024188036a41286a20193a0000200241b1036a20083a0000200241b2036a20163b0100200241b4036a201d3a0000200241b5036a201e3a0000200241b6036a200a3b0100200220033a0090032002200e37038803200241bc036a201236020020024188036a41306a201136020020024188036a41386a200c37030020024188036a41c0006a200229038007370300200241d0036a20024180076a41086a290300370300200241d8036a20024180076a41106a290300370300200241e0036a20024180076a41186a290300370300200241e8036a20024180076a41206a290300370300200241f0036a20024180076a41286a290300370300200241f8036a20024180076a41306a29030037030020024180046a20024180076a41386a2d00003a000020024183046a20064110763a000020024181046a20063b000020024184046a201a36020020024194046a20243a000020024195046a20253a000020024196046a201b3b010020024198046a20233a000020024199046a20263a00002002419a046a20273b01002002419c046a20283a00002002419d046a20293a00002002419e046a202a3b0100200241a0046a20333a000020024190046a200241f0066a41086a28020036020020024188046a20022903f006370300200241d9046a200241b0066a41386a290300370000200241d1046a200241b0066a41306a290300370000200241c9046a200241b0066a41286a290300370000200241c1046a200241b0066a41206a290300370000200241b9046a200241b0066a41186a290300370000200241b1046a200241b0066a41106a290300370000200241a9046a200241b0066a41086a290300370000200241a1046a20022903b006370000200241e3046a200241ae066a2d00003a0000200241e1046a20022f01ac063b0000200241e4046a201536020020024180056a20024188066a41186a290300370300200241f8046a20024188066a41106a290300370300200241f0046a20024188066a41086a290300370300200241e8046a200229038806370300200241a0056a200241e8056a41186a29030037030020024198056a200241e8056a41106a29030037030020024190056a200241e8056a41086a29030037030020024188056a20022903e805370300200241c0056a200241c8056a41186a290300370300200241b8056a200241c8056a41106a290300370300200241b0056a200241c8056a41086a290300370300200220022903c8053703a80520012802002105200241f8096a200141046a2206280200220441c000200441c000491b22036a4100410041c00020036b2003413f4b1b10171a200241f8096a20052003101e1a2006200420036b3602002001200520036a36020002402004413f4d0d00200241086a41386a2209200241f8096a41386a2201290300370300200241086a41306a220a200241f8096a41306a2203290300370300200241086a41286a2211200241f8096a41286a2204290300370300200241086a41206a2212200241f8096a41206a2205290300370300200241086a41186a221d200241f8096a41186a2206290300370300200241086a41106a2216200241f8096a41106a2207290300370300200241086a41086a2217200241f8096a41086a2208290300370300200220022903f80937030820012009290300220b3703002003200a290300220c37030020042011290300220d37030020052012290300220e3703002006201d290300221337030020072016290300221437030020082017290300223a370300200241d8116a41086a2209203a370300200241d8116a41106a220a2014370300200241d8116a41186a22112013370300200241d8116a41206a2212200e370300200241d8116a41286a221d200d370300200241d8116a41306a2216200c370300200241d8116a41386a2217200b37030020022002290308220b3703d8112002200b3703f809200241b00e6a41386a22182017290300370300200241b00e6a41306a22172016290300370300200241b00e6a41286a2216201d290300370300200241b00e6a41206a221d2012290300370300200241b00e6a41186a22122011290300370300200241b00e6a41106a2211200a290300370300200241b00e6a41086a220a2009290300370300200220022903d8113703b00e20012018290300220b37030020032017290300220c37030020042016290300220d3703002005201d290300220e3703002006201229030022133703002007201129030022143703002008200a290300223a370300200241d80c6a41086a2201203a370300200241d80c6a41106a22032014370300200241d80c6a41186a22042013370300200241d80c6a41206a2205200e370300200241d80c6a41286a2206200d370300200241d80c6a41306a2207200c370300200241d80c6a41386a2208200b370300200220022903b00e220b3703d80c2002200b3703f809200241086a20024188036a41c002101e1a20024180036a2008290300370300200241f8026a2007290300370300200241f0026a2006290300370300200241e8026a2005290300370300200241e0026a2004290300370300200241d8026a2003290300370300200241d0026a2001290300370300200220022903d80c3703c8022000200241086a418003101e1a200241f0126a24000f0b200241f8096a41386a2201200241086a41386a290000370300200241f8096a41306a2203200241086a41306a290000370300200241f8096a41286a2204200241086a41286a290000370300200241f8096a41206a2205200241086a41206a290000370300200241f8096a41186a2206200241086a41186a290000370300200241f8096a41106a2207200241086a41106a290000370300200241f8096a41086a2208200241086a41086a290000370300200220022900083703f8092001200241b00e6a41386a2900003703002003200241b00e6a41306a2900003703002004200241b00e6a41286a2900003703002005200241b00e6a41206a2900003703002006200241b00e6a41186a2900003703002007200241b00e6a41106a2900003703002008200241b00e6a41086a290000370300200220022900b00e3703f809200041073a0008024020024188036a41086a2d00002201411d74411d75417f4a0d000240024020014104460d0020014105470d0120024198036a2d00004101470d02200241a0036a280200450d022002419c036a2802001002200241f0126a24000f0b20024198036a2d00004101470d012002419c036a1025200241f0126a24000f0b20024194036a2d00004101470d0020091025200241f0126a24000f0b200241f0126a24000bd81a05077f017e027f017e017f230041c0016b22012400200141003a00a001200141a0016a20002802002202200028020422034100472204101e1a2000200320046b22053602042000200220046a220236020002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402003450d004106210420012d00a001220341074b0d19024020030e080004021b1b050603000b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1920012d00a0012205450d0820054101470d19200141003602a001200141a0016a20032006410420064104491b2205101e1a200041046a200620056b3602002000200320056a360200200641034d0d1920012802a0012207ad42187e2208422088a70d152008a72203417f4c0d142003450d112003100122090d120c1b0b410621040c180b200141003a00a001200141a0016a200220054100472203101e1a41042109200041046a200520036b22063602002000200220036a22033602002005450d1720012d00a001220541034b0d17024020050e04000a0b0c000b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1720012903a0012108410121090c0b0b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1620012d00a0012205450d0320054101470d16200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1620012903a00121084202210b0c040b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1520012d00a0012205450d054202210b20054101460d060c160b200141a0016a200010a00120012903a001220ba741ff01714103460d1520014180016a41086a200141a0016a41086a29020037030020014180016a41106a200141a0016a41106a290200370300200120012902a001370380012001200b370348410321040c150b200141003a00a001200141a0016a200220054100472206101e1a200041046a200520066b22033602002000200220066a220236020002402005450d004105210520012d00a001220641034b0d11024020060e04000c0a0b000b200141003602a001200141a0016a20022003410420034104491b2206101e1a200041046a200320066b3602002000200220066a360200200341034d0d1120012802a0012100410121050c130b410521050c100b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1220012903a00121084201210b0b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120012903a001370380012001200b37024c410521040c120b200141a0016a2000101f20012802a0012209450d1020012902a4012108410121000c0a0b200142003703a001200141a0016a200320064108200641084922021b2205101e1a200041046a200620056b3602002000200320056a36020020020d0f20012903a00121084201210b0b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120012903a001370380012001200b37024c410121040c0f0b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d0d20012903a0012108410221090c010b200141003602a001200141a0016a20032006410420064104491b2205101e1a200041046a200620056b3602002000200320056a36020041032109200641034d0d0c20012802a00121020b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120023602502001200936024c200120012903a00137038001410221040c0c0b200142003703a001200141a0016a20022003410820034108491b2206101e1a200041046a200320066b3602002000200220066a360200200341074d0d0720012903a0012108410321050c080b200142003703a001200141a0016a20022003410820034108491b2206101e1a200041046a200320066b3602002000200220066a360200200341074d0d0620012903a0012108410421050c080b200141a0016a2003412020034120491b22066a41004100412020066b2006411f4b1b10171a200141a0016a20022006101e1a200041046a200320066b3602002000200220066a36020002402003411f4d0d0020014180016a41186a2200200141a0016a41186a220329030037030020014180016a41106a2205200141a0016a41106a220229030037030020014180016a41086a2206200141a0016a41086a2209290300370300200120012903a0013703800120032000290300370300200220052903003703002009200629030037030020012001290380013703a00141022105200141fc006a41026a220320012d00a2013a0000200141e8006a41086a2202200141b7016a290000370300200141e8006a41106a2206200141a0016a411f6a2d00003a0000200120012f01a0013b017c200120012900af0137036820012800a301210020012900a7012108200141e4006a41026a20032d00003a0000200141c8006a41086a2002290300370300200141c8006a41106a20062d00003a0000200120012f017c3b0164200120012903683703480c080b200141a0016a41186a20014180016a41186a290000370300200141a0016a41106a20014180016a41106a290000370300200141a0016a41086a20014180016a41086a29000037030020012001290080013703a0010c050b410421090b2001200736024c20012009360248410021032001410036025002402007450d00200141d0006a210c41002102034020014180016a2000101f024002402001280280012206450d002001290284012108200141a0016a2000101f024020012802a001220a450d00200241016a210220012902a401210b2003200128024c470d02200141c8006a1076200c2802002103200128024821090c020b2008a7450d00200610020b2001280248210502402003450d00200341186c21032005210003400240200041046a280200450d00200028020010020b0240200041106a280200450d002000410c6a28020010020b200041186a2100200341686a22030d000b0b200128024c450d09200510020c090b2009200341186c6a22052008370204200520063602002005410c6a200a360200200541106a200b370200200c200341016a220336020020022007490d000b200128024821090b2009450d06200129024c2108410221000b20014180016a41086a200141a0016a41086a29020037030020014180016a41106a200141a0016a41106a29020037030020012000360248200120012902a00137038001200120084220862009ad8437024c20084220882108410021040c060b1061000b1060000b0b0b20014180016a41026a2203200141e4006a41026a2d00003a0000200141a0016a41086a2202200141c8006a41086a290300370300200141a0016a41106a2206200141c8006a41106a290300370300200120012f01643b018001200120012903483703a00120054105460d00200141c4006a41026a220420032d00003a0000200141286a41086a22032002290300370300200141286a41106a22022006290300370300200120012f0180013b0144200120012903a00137032820014180016a41086a200329030037030020014180016a41106a2002290300370300200120053a004c20012000360250200120012f01443b004d200120042d00003a004f2001200129032837038001410421040c010b0b200141c4006a41026a220020012d004f3a0000200141286a41086a220520014180016a41086a290300370300200141286a41106a220220014180016a41106a290300370300200120012f004d3b014420012001290380013703282001280250210620012d004c21092001280248210a41062103024020044106460d00200141246a41026a20002d00003a0000200141086a41086a2005290300370300200141086a41106a2002290300370300200120012f01443b012420012001290328370308200421030b024020034106470d00200141c0016a240041000f0b20014180016a41026a2204200141246a41026a2d00003a0000200141a0016a41086a2205200141086a41086a290300370300200141a0016a41106a2202200141086a41106a290300370300200120012f01243b018001200120012903083703a001413010012200450d002000200a36020420002003360200200020093a0008200020012f0180013b00092000200636000c20002008370210200020012903a0013702182000410b6a20042d00003a0000200041206a2005290300370200200041286a2002290300370200200141c0016a240020000f0b101c000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a1022200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b106e000b05001041000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a1025200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020b890403037f017e027f230041206b22022400200241003602082002420137030020024100410410272002280200200228020822036a41003600002002200341046a220336020820022003412010272002280200200228020822046a220320012900a002370000200341186a200141b8026a290000370000200341106a200141b0026a290000370000200341086a200141a8026a2900003700002002200441206a22033602082001290300210520022003410810272002280200200228020822036a20053700002002200341086a2206360208200241106a200141086a1028200228021021042002200620022802182203102720022003200228020822066a2207360208200620022802006a20042003101e1a02402002280214450d00200410020b2002200741c0001027200241086a22032003280200220441c0006a22063602002004200228020022076a220320012900c002370000200341086a200141c8026a290000370000200341106a200141d0026a290000370000200341186a200141d8026a290000370000200341206a200141e0026a290000370000200341286a200141e8026a290000370000200341306a200141f0026a290000370000200341386a200141f8026a2900003700000240200641034d0d002000200229030037020020072004413c6a360000200041086a200241086a280200360200200241206a24000f0b410420061029000ba10101027f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d0141000d01200341017422044100200220011b2201200420014b1b22014100480d01024002402003450d0020002802002104200110012202450d042002200420012003200320014b1b101e1a200410020c010b200110012202450d030b20002002360200200041046a20013602000b0f0b1041000b101c000bfb2602077f017e230041306b22022400200241003602082002420137030002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a220341054b0d0002400240024002400240024020030e06000402030105000b2002107e2002280200200241086a22032802006a41013a00002003200328020041016a2204360200200241003602282002420137032020012d0001450d16200241206a107e2002280220200241206a41086a220528020022066a41003a00002005200641016a2206360200200241206a20064120102720052005280200220741206a22063602002007200228022022086a2205200141026a290000370000200541086a2001410a6a290000370000200541106a200141126a290000370000200541186a2001411a6a29000037000020022802242101200220042006102720032003280200220520066a360200200520022802006a20082006101e1a2001450d14200810020c140b2002107e2002280200200241086a22032802006a41063a00002003200328020041016a3602002002410036021820024201370310200141086a2d0000417f6a220341044b0d16024020030e05001210110f000b200241106a107e2002280210200241186a22032802006a41003a00002003200328020041016a2208360200200241206a2001410c6a10b80120022802202106200241106a200820022802282205102720032005200328020022086a360200200820022802106a20062005101e1a02402002280224450d00200610020b200141186a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000c120b2002107e2002280200200241086a22032802006a41033a00002003200328020041016a3602002002410036022820024201370320200141086a2903004200510d16200241206a107e2002280220200241206a41086a220528020022066a41003a00002005200641016a2206360200200141106a2903002109200241206a20064108102720052005280200220641086a22013602002006200228022022056a200937000020022802242106200220032802002001102720032003280200220820016a360200200820022802006a20052001101e1a2006450d12200510020c120b2002107e2002280200200241086a22032802006a41053a00002003200328020041016a3602002002410036021820024201370310200141086a2d000022034103714101460d0520034102460d0320034103470d16200241106a107e2002280210200241186a220528020022036a41023a00002005200341016a22033602002001410c6a2802002106200241106a20034104102720052005280200220341046a2208360200200320022802106a2006360000200241106a20084101102720052005280200220641016a22033602002006200228021022056a200141096a2d00003a00000c060b2002107e2002280200200241086a22032802006a41023a00002003200328020041016a22063602002002410036022820024201370320200141086a2d000022054103714101460d0620054103460d0320054102470d16200241206a107e20022802202205200241286a220328020022016a41013a00002003200141016a22013602000c070b2002107e2002280200200241086a22032802006a41073a00002003200328020041016a22063602002002410036021820024201370310200141046a2d000022034103714101460d0820034102460d0720034103470d16200241106a107e2002280210200241106a41086a220528020022036a41023a00002005200341016a2203360200200241106a20034120102720052005280200220841206a22033602002008200228021022056a2208200141056a290000370000200841086a2001410d6a290000370000200841106a200141156a290000370000200841186a2001411d6a2900003700000c090b2002107e2002280200200241086a22032802006a41003a00002003200328020041016a3602002002410036022820024201370320200141106a2d00004102460d16200241206a107e2002280220200241206a41086a220328020022056a41003a00002003200541016a2207360200412010012203450d0f200341186a2206200141f0016a290000370000200341106a2208200141e8016a290000370000200341086a2204200141e0016a2900003700002003200141d8016a290000370000200141086a290300210941c00010012205450d0f20052003290000370000200541186a2006290000370000200541106a2008290000370000200541086a2004290000370000200310022005200937002041800110012203450d0f20032005290000370000200341386a2206200541386a290000370000200341306a2208200541306a290000370000200341286a2204200541286a290000370000200341206a200541206a290000370000200341186a200541186a290000370000200341106a200541106a290000370000200341086a200541086a29000037000020051002200341c0006a20014190026a290000370000200620014188026a290000370000200820014180026a2900003700002004200141f8016a29000037000020014191016a2105200141f1006a2108200141316a2106200141116a210402400240200141106a2d0000450d00200341c8006a41123a00002003200141d4016a2802003600492003200429000037004d200341d5006a200441086a290000370000200341dd006a200441106a290000370000200341e5006a200441186a29000037000041800210012201450d1120012003418001101e210120031002200141a5016a200641386a2900003700002001419d016a200641306a29000037000020014195016a200641286a2900003700002001418d016a200641206a29000037000020014185016a200641186a290000370000200141fd006a200641106a290000370000200141f5006a200641086a2900003700002001200629000037006d200120082900003700ad01200141b5016a200841086a290000370000200141bd016a200841106a290000370000200141c5016a200841186a29000037000041800410012206450d1120062001418002101e21032001100220034185026a200541386a290000370000200341fd016a200541306a290000370000200341f5016a200541286a290000370000200341ed016a200541206a290000370000200341e5016a200541186a290000370000200341dd016a200541106a290000370000200341d5016a200541086a290000370000200320052900003700cd010c010b200341c8006a41113a00002003200141d4016a2802003600492003200429000037004d200341d5006a200441086a290000370000200341dd006a200441106a290000370000200341e5006a200441186a29000037000041800210012201450d1020012003418001101e210120031002200141a5016a200641386a2900003700002001419d016a200641306a29000037000020014195016a200641286a2900003700002001418d016a200641206a29000037000020014185016a200641186a290000370000200141fd006a200641106a290000370000200141f5006a200641086a2900003700002001200629000037006d200120082900003700ad01200141b5016a200841086a290000370000200141bd016a200841106a290000370000200141c5016a200841186a29000037000041800410012206450d1020062001418002101e21032001100220034185026a200541386a290000370000200341fd016a200541306a290000370000200341f5016a200541286a290000370000200341ed016a200541206a290000370000200341e5016a200541186a290000370000200341dd016a200541106a290000370000200341d5016a200541086a290000370000200320052900003700cd010b200241206a2007418d021027200241206a41086a220120012802002203418d026a22013602002003200228022022056a2006418d02101e1a20061002200228022421062002200241086a22032802002001102720032003280200220820016a360200200820022802006a20052001101e1a2006450d0e200510020c0e0b200241106a107e2002280210200241186a220528020022036a41013a00002005200341016a22033602002001410c6a2802002101200241106a20034104102720052005280200220641046a22033602002006200228021022056a20013600000c020b200241206a107e20022802202205200241286a220328020022016a41023a00002003200141016a22013602000c030b200241106a107e2002280210200241106a41086a220328020022056a41003a00002003200541016a2208360200200241206a2001410c6a28020010d80120022802202106200241106a200820022802282205102720032005200328020022086a2204360200200820022802106a20062005101e1a02402002280224450d00200610020b200141106a2903002109200241106a200441081027200241106a41086a22012001280200220141086a22033602002001200228021022056a20093700000b200228021421062002200241086a22012802002003102720012001280200220820036a360200200820022802006a20052003101e1a2006450d0a200510020c0a0b200241206a107e2002280220200241206a41086a220628020022056a41003a00002006200541016a2205360200200241206a2005412010272002280220200628020022086a2205200141096a290000370000200541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002006200841206a2205360200200141306a2903002109200241206a20054108102720022802202205200628020022016a20093700002006200141086a2201360200200328020021060b200228022421032002200620011027200241086a22062006280200220620016a360200200620022802006a20052001101e1a2003450d08200510020c080b200241106a107e2002280210200241106a41086a220628020022036a41013a00002006200341016a2203360200200241106a20034120102720062006280200220341206a2205360200200320022802106a2203200141056a290000370000200341086a2001410d6a290000370000200341106a200141156a290000370000200341186a2001411d6a290000370000200241106a20054101102720022802102205200628020022036a200141256a2d00003a00002006200341016a2203360200200241086a28020021060c010b200241106a107e2002280210200241106a41086a220528020022036a41003a00002005200341016a2203360200200241206a200141086a28020010d80120022802202108200241106a200320022802282201102720052001200528020022046a22033602002004200228021022056a20082001101e1a2002280224450d00200810020b200228021421012002200620031027200241086a22062006280200220620036a360200200620022802006a20052003101e1a2001450d05200510020c050b200241106a107e2002280210200241106a41086a22032802006a41043a00002003200328020041016a2205360200200241106a20054120102720032003280200220541206a2206360200200520022802106a220541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002005200141096a290000370000200141306a2903002109200241106a20064108102720032003280200220541086a360200200520022802106a20093700002001412c6a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000c030b200241106a107e2002280210200241186a22032802006a41023a00002003200328020041016a22053602002001410c6a2802002101200241106a20054104102720032003280200220541046a360200200520022802106a20013600000c020b200241106a107e2002280210200241186a22032802006a41033a00002003200328020041016a22053602002001410c6a2802002101200241106a20054104102720032003280200220541046a360200200520022802106a20013600000c010b200241106a107e2002280210200241106a41086a22032802006a41013a00002003200328020041016a22053602002001412c6a2802002106200241106a20054104102720032003280200220541046a360200200520022802106a2006360000200241106a20032802004120102720032003280200220541206a2206360200200520022802106a220541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002005200141096a290000370000200141306a2802002105200241106a20064104102720032003280200220641046a360200200620022802106a2005360000200141346a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000b20022802142106200228021021052002200241086a2201280200200241106a41086a2802002203102720012003200128020022086a360200200820022802006a20052003101e1a2006450d00200510020b20002002290300370200200041086a200241086a280200360200200241306a24000f0b101c000b41ec30103b000b419435103b000b41ec34103b000b41ac3f103b000b41943b103b000b41843e103b000b41ecc100103b000b08004194321054000b4b01017f02402002417f4c0d00024002402002450d002002100122030d01101c000b410121030b200320012002101e21012000200236020420002001360200200020023602080f0b102b000b05001041000ba10c03037f027e0c7f23004180016b22002400200041e0006a41086a220142003703002000420037036041c8084107200041e0006a1003200041306a41086a200129030037030020002000290360370330024002400240200041306a411041d02d410041001000417f460d002000420037036002400240200041306a4110200041e0006a41084100100041016a41084d0d002000200029036042017c370340200041e0006a41086a220242003703002000420037036041c8084107200041e0006a1003200041306a41086a2201200229030037030020002000290360370330200041306a4110200041c0006a41081004200142003703002000420037033041dd084107200041306a1003200041106a41086a2001290300370300200020002903303703100240200041106a411041d02d410041001000417f460d0020004200370360200041106a4110200041e0006a41084100100041016a41084d0d0220002903602103200041306a41086a220142003703002000420037033041dd084107200041306a1003200041e0006a41086a200129030037030020002000290330370360200041e0006a411010054201a74101470d050c040b4200a74101460d030c040b41c1214133102d000b41c1214133102d000b41f4214122102d000b102e210420002003370340200041e0006a41086a220142003703002000420037036041cf084107200041e0006a1003200041306a41086a2202200129030037030020002000290360370330200041306a4110200041c0006a4108100420002004370340200142003703002000420037036041d6084107200041e0006a10032002200129030037030020002000290360370330200041306a4110200041c0006a410810040b2000102f2000280200210502400240024020002802082201450d002001410574210620052107410021080340410810012201450d022000200136026020004208370264200041e0006a410041081027200041e0006a41086a22012001280200220241086a360200200220002802606a42f3cacdd3e38d9eba3a370000200041c0006a41086a2202200128020036020020002000290360370340412010012209450d022000200936026020004220370264200041e0006a41004120102720012001280200220a41206a2209360200200a2000280260220b6a220a2007290000370000200a41086a200741086a290000370000200a41106a200741106a290000370000200a41186a200741186a2900003700002000280264210c200041c0006a2002280200200910272000280240220a2002280200220d6a200b2009101e1a2002200d20096a220d3602000240200c450d00200b10020b2000280244210c200041306a41086a2209420037030020004200370330200a200d200041306a1003200041106a41086a220b20092903003703002000200029033037031002400240200041106a411041d02d410041001000417f460d00200041e0006a41186a220e4200370300200041e0006a41106a220f42003703002001420037030020004200370360200041106a4110200041e0006a4120410010002210417f460d052010411f4d0d05200041c0006a41186a200e290300370300200041c0006a41106a200f29030037030020022001290300370300200020002903603703402009420037030020004200370330200a200d200041306a10032001200929030037030020002000290330370360200041e0006a41101005410121090c010b410021090b200041106a41186a220d200041c0006a41186a290300370300200041106a41106a220e200041c0006a41106a290300370300200b2002290300370300200020002903403703100240200c450d00200a10020b02402009450d00200041e0006a41186a200d290300370300200041e0006a41106a200e2903003703002001200b29030037030020002000290310370360200041c0006a10302000280240220920022802001031210102402000280244450d00200910020b200120084d0d00200041c0006a20081032200028024022012002280200200041e0006a412010042000280244450d00200110020b200741206a2107200841016a2108200641606a22060d000b0b02402000280204450d00200510020b20004180016a24000f0b101c000b41c1214133102d000b080041b4321054000b9f0102027f017e230041206b22002400200041106a41086a220142003703002000420037031041d12d4107200041106a1003200041086a20012903003703002000200029031037030002402000411041d02d410041001000417f460d0020004200370310024020004110200041106a41084100100041016a41084d0d0020002903102102200041206a240020020f0b41c1214133102d000b41f4214122102d000bab0101027f230041306b22012400200141206a41086a220242003703002001420037032041e4084107200141206a1003200141086a200229030037030020012001290320370300024002402001411041d02d410041001000417f460d002001421037021420012001360210200141206a200141106a103a20012802202202450d012000200129022437020420002002360200200141306a24000f0b41f4214122102d000b41c1214133102d000bd60101047f230041206b220124000240410610012202450d002001200236021020014206370214200141106a4100410610272001280210200128021822036a220441002800c12d360000200141086a2202200341066a2203360200200441046a41002f00c52d3b0000200120012903103703002001200336021820012002280200410310272000200129030037020020022002280200220341036a2204360200200320012802006a220241002f00ee2e3b0000200041086a2004360200200241026a41002d00f02e3a0000200141206a24000f0b101c000b6001027f230041106b2202240041002103024002402000200141d02d410041001000417f460d002002410036020c200020012002410c6a41044100100041016a41044d0d01200228020c21030b200241106a240020030f0b41eb1a4133102d000bc30101047f230041206b220224000240410610012203450d002002200336021020024206370214200241106a4100410610272002280210200228021822046a220541002800c12d360000200241086a2203200441066a2204360200200541046a41002f00c52d3b00002002200229031037030020022004360218200220032802004104102720032003280200220441046a36020020002002290300370200200420022802006a2001360000200041086a2003280200360200200241206a24000f0b101c000b810301047f230041306b220224000240024002400240024002400240200128020022032001280204460d002001200341186a36020020032802082201417f4c0d06200328020021042001450d012001100122050d020c030b20004100360200200241306a24000f0b410121050b200220013602242002200536022020024100360228200241206a41002001102720022002280228220520016a360228200520022802206a20042001101e1a200241106a20022802283602002002200229032037030820032802142201417f4c0d03200328020c21032001450d012001100122040d020b101c000b410121040b200220013602242002200436022020024100360228200241206a41002001102720022002280228220420016a360228200420022802206a20032001101e1a200241146a220141086a200228022836020020012002290320370200200041106a200241086a41106a290300370200200041086a200241086a41086a29030037020020002002290308370200200241306a24000f0b1019000bd55a09017f017e017f017e067f017e177f047e027f230041f0026b220024001035102e2101200041c8026a41086a22024200370300200042003703c802418a264107200041c8026a100320004198026a41086a2002290300370300200020002903c802370398020240024002400240024002400240024002400240024002400240024020004198026a411041d02d410041001000417f460d00200042003703680240024020004198026a4110200041e8006a41084100100041016a41084d0d00200029036822034200510d0320012003824200520d0a200041f8016a103620002802f80121080240024002402000280280022209450d00200041e8006a2008280230103720002802702207450d072008200941d8006c6a2104200841d8006a2102200041f8006a35020021032000290368210a02402000280274450d00200710020b20022004460d01200a20037e2103200941d8006c41a87f6a210b41002105200041f0006a210c200041f8006a210d200041f4006a210e41012104200821060340200041e8006a200241306a2802001037200c2802002207450d052000290368200d3502007e210a0240200e280200450d00200710020b2003200a2003200a5622071b21032005200420071b21052006200220071b2106200441016a2104200241d8006a2102200b41a87f6a220b0d000b20060d022009450d00200941d8006c210420082102034020021038200241d8006a2102200441a87f6a22040d000b0b20002802fc01450d0c200810020c0c0b410021050b200920054d0d06200041e8006a2008200541d8006c6a220241d800101e1a200220082009417f6a220441d8006c6a220741d80010391a2007200041e8006a41d800101e2102200041f8016a41086a2004360200200041e8006a41086a22042002410c6a290200370300200041e8006a41106a2207200241146a290200370300200041e8006a41186a22052002411c6a290200370300200041e8006a41206a2206200241246a290200370300200041e8006a41286a220b2002412c6a280200360200200020022902043703682002280200220c4106460d07200041c0016a41086a220d2004290300370300200041c0016a41106a22042007290300370300200041c0016a41186a22072005290300370300200041c0016a41206a22052006290300370300200041c0016a41286a2206200b280200360200200020002903683703c001200241046a28022c2102200041386a41286a2006280200360200200041386a41206a2005290300370300200041386a41186a2007290300370300200041386a41106a2004290300370300200041386a41086a200d290300370300200020002903c001370338410810012204450d0b200020043602682000420837026c200041e8006a4100410810272000280268200028027022046a42e4cab5d3c3ac99b83a3700002000200441086a360270200041c0016a41086a2000280270360200200020002903683703c001410410012204450d0b200020043602682000420437026c200041e8006a41004104102720002802682207200028027022046a20023600002000200441046a2202360270200028026c2105200041c0016a20002802c8012002102720002802c001220420002802c80122066a20072002101e1a2000200620026a22023602c80102402005450d00200710020b20002802c401210620004198026a41086a2207420037030020004200370398022004200220004198026a1003200041e8006a41086a20072903003703002000200029039802370368410021070240200041e8006a411041d02d410041001000417f460d002000200041e8006a3602082000411036020c200042003703c00120004100200041e8006a4110200041c0016a41084100100022072007417f461b2207410820074108491b360210200741074d0d0620002903c0012103200041c0016a200041086a103a20002802c0012207450d06200041c0016a41086a280200210520002802c401210b20004198026a41086a220d420037030020004200370398022004200220004198026a1003200041c8026a41086a200d29030037030020002000290398023703c802200041c8026a411010052006450d0a0c090b20060d080c090b41c1214133102d000b4198264132102d000b41f4214122102d000b41c43f103b000b4198264132102d000b41c1214133102d000b41dc3f20052009103c000b41ec3f103b000b200410020b024002402007450d0002402005450d002005410574210420072102034020022003103d200241206a2102200441606a22040d000b0b200041e8006a41086a2202200041f8016a41086a280200360200200020002903f801370368200041e8006a103e20002802682105024020022802002202450d00200241d8006c210420052102034020021038200241d8006a2102200441a87f6a22040d000b0b0240200028026c450d00200510020b200041c8026a41086a22024200370300200042003703c80241f7264107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d0120004200370368024020004198026a4110200041e8006a41084100100041016a41084d0d0020002903682103200041f4006a200041c0006a290300370200200041fc006a200041c8006a29030037020020004184016a200041d0006a2903003702002000418c016a200041d8006a29030037020020004194016a200041e0006a2802003602002000200c3602682000200029033837026c200320017c200041e8006a4100103f200b450d03200710020c030b41c1214133102d000b41ca26412d102d000b41f4214122102d000b200020013703f801200041c8026a41086a22024200370300200042003703c80241fe264107200041c8026a100320004198026a41086a2002290300370300200020002903c80237039802024002400240024020004198026a411041d02d410041001000417f460d00200041003602680240024020004198026a4110200041e8006a41044100100041016a41044d0d0020002802682104200041c8026a41086a22024200370300200042003703c8024185274107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d032000410036026820004198026a4110200041e8006a41044100100041016a41044d0d012000200028026822053602cc02200041003a00d402200020043602c8022000200041f8016a3602d0020240200420054f0d002000200441016a22023602c802200041f0006a210602400340200041e8006a20041040200628020022074106470d01200220054f0d022000200241016a22073602c80220022104200721020c000b0b200041386a41086a2205200041fc006a2206290200370300200041386a41106a220b20004184016a220c290200370300200041386a41186a220d2000418c016a220e290200370300200041386a41206a220820004194016a2209290200370300200041386a41286a220f2000419c016a221028020036020020002000290274370338200041a0016a2d0000211120002903682103200041b8026a41026a221220004198026a41026a2d00003a0000200020002f0098023b01b802200041e8006a410c6a2202200029033837020020062005290300370200200c200b290300370200200e200d290300370200200920082903003702002010200f280200360200200041a7016a20122d00003a00002000200736027020002003370368200020043602a001200020113a00a401200020002f01b8023b00a5010240200320002903f801520d00200041c0016a41306a200241306a280200360200200041c0016a41286a200241286a290200370300200041c0016a41206a200241206a290200370300200041c0016a41186a200241186a290200370300200041c0016a41106a200241106a290200370300200041c0016a41086a200241086a290200370300200020022902003703c00120074106460d010c060b200041c8026a410c6a41013a0000200041e8006a41086a10384106210741064106470d050b4108211341002102410021140c050b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b200041e8006a41306a2202200041c0016a41306a280200360200200041e8006a41286a2204200041c0016a41286a290300370300200041e8006a41206a2205200041c0016a41206a290300370300200041e8006a41186a2206200041c0016a41186a290300370300200041e8006a41106a220b200041c0016a41106a290300370300200041e8006a41086a220c200041c0016a41086a290300370300200020002903c00137036841c00010012213450d0120132007360208201320033703002013200029036837020c201341146a200c2903003702002013411c6a200b290300370200201341246a20062903003702002013412c6a2005290300370200201341346a20042903003702002013413c6a2002280200360200200041086a41086a200041c8026a41086a290300370300200020002903c802370308024020002d00140d0020002802082202200028020c4f0d002000200241016a360208200041f0006a210402400340200041e8006a20021040200428020022074106470d0120002802082202200028020c4f0d022000200241016a3602080c000b0b200041386a41086a2205200041fc006a2206290200370300200041386a41106a220b20004184016a220c290200370300200041386a41186a220d2000418c016a220e290200370300200041386a41206a220820004194016a2209290200370300200041386a41286a220f2000419c016a221028020036020020002000290274370338200041a0016a2d0000211120002903682103200041b8026a41026a221220004198026a41026a2d00003a0000200020002f0098023b01b802200041e8006a410c6a2204200029033837020020062005290300370200200c200b290300370200200e200d290300370200200920082903003702002010200f280200360200200041a7016a20122d00003a00002000200736027020002003370368200020023602a001200020113a00a401200020002f01b8023b00a5010240024020032000280210290300520d00200041c0016a41306a200441306a280200360200200041c0016a41286a200441286a290200370300200041c0016a41206a200441206a290200370300200041c0016a41186a200441186a290200370300200041c0016a41106a200441106a290200370300200041c0016a41086a200441086a290200370300200020042902003703c0014106210b20074106470d010c020b200041086a410c6a41013a0000200041e8006a41086a1038410621074106210b41064106460d010b200041e8006a41086a2106200041a5016a2111200041e8006a410c6a210d410121144101210202400340200041e8006a41306a2205200041c0016a41306a2212280200360200200041e8006a41286a220c200041c0016a41286a221c290300370300200041e8006a41206a2209200041c0016a41206a221e290300370300200041e8006a41186a220f200041c0016a41186a221d290300370300200041e8006a41106a2210200041c0016a41106a22202903003703002006200041c0016a41086a2215290300370300200020002903c001370368024020022014470d00201441016a2204201449221b0d02200e2014410174221f20082004201b1b22082008201f491b2204ad420686220aa7200a422088a7221b1b220e4100480d02201b4100470d02024002402014450d00200e1001221b450d07201b2013200e2014200b74221f201f200e4b1b101e211b20131002201b21130c010b200e10012213450d060b200421140b20132002200b746a22042007360208200420033703002004413c6a2005280200360200200441346a200c2903003702002004412c6a2009290300370200200441246a200f2903003702002004411c6a2010290300370200200441146a20062903003702002004410c6a2000290368370200200241016a2102200041086a410c6a22092d00000d0320002802082205200028020c220c4f0d032000200541016a220436020802400340200041e8006a2005104020062802002207200b470d012004200c4f0d052000200441016a220736020820042105200721040c000b0b200041386a41086a221f200d41086a2204290200370300200041386a41106a2221200d41106a220c290200370300200041386a41186a2219200d41186a220f290200370300200041386a41206a2216200d41206a2210290200370300200041386a41286a221a200d41286a221b2802003602002000200d290200370338200041a0016a22172d000021182000290368210a200041b8026a41026a222720004198026a41026a2d00003a0000200020002f0098023b01b8022006200736020020172005360200200041e8006a413c6a20183a0000200d20002903383702002004201f290300370200200c2021290300370200200f201929030037020020102016290300370200201b201a280200360200201120002f01b8023b0000201141026a20272d00003a00002000200a3703680240200a200041086a41086a280200290300520d002012200d41306a280200360200201c201b290200370300201e2010290200370300201d200f2902003703002020200c290200370300201520042902003703002000200d2902003703c001200a21032007200b470d010c040b200941013a000020061038410621074106200b470d000c030b0b1041000b41012114410121020b201320024106746a21152002450d01200041386a41086a2116200041386a4104722110200041a7026a2117200041f8016a4104722118200041c0016a41186a2119200041c9016a211a200041c0016a41086a2107200041e8006a4104722105200041e8006a41286a211b200041e8006a41206a2112200041e8006a41106a211c2013210f0340200f22022802082111201b200241346a28020036020020122002412c6a290200370300200041e8006a41186a221d200241246a290200370300201c2002411c6a290200370300200041e8006a41086a221e200241146a29020037030020002002410c6a290200370368200241c0006a210f20114106460d0320022802382109200041086a41086a2204201e290300370300200041086a41106a2206201c290300370300200041086a41186a220b201d290300370300200041086a41206a220c2012290300370300200041086a41286a220d201b2802003602002000200029036837030820022d003c211f20102000290308370200201041086a2004290300370200201041106a2006290300370200201041186a200b290300370200201041206a200c290300370200201041286a200d28020036020020002011360238200041f8016a2009104220002802f801212002400240024002400240200041f8016a41086a22212802002202450d002002410574210d420021034200210a20202102034020021043210120021044212220052002290000370000200541086a200241086a290000370000200541106a200241106a290000370000200541186a200241186a29000037000020002009360268410810012204450d07200020043602c001200042083702c401200041c0016a41004108102720072007280200220441086a360200200420002802c0016a42e4cab5d3e3ee9bba3a370000200041c8026a41086a22042007280200360200200020002903c0013703c802200041c0016a200041e8006a104520002802c401210e20002802c001210c200041c8026a200428020020072802002206102720002802c802220b200428020022086a200c2006101e1a2004200820066a22083602000240200e450d00200c10020b20002802cc02210620044200370300200042003703c802200b2008200041c8026a100320004198026a41086a2004290300370300200020002903c8023703980202400240024020004198026a411041d02d410041001000417f470d004102210420060d010c020b200041003a00c00120004198026a4110200041c0016a41014100100041016a41014d0d0520002d00c00121042006450d010b200b10020b200441ff01714102460d02200241206a21024200202220017c2201200441017122041b200a7c210a2001420020041b20037c2103200d41606a220d0d000b20002802fc01450d040c030b4200210a4200210320002802fc010d020c030b41f90941e000102d000b41c1214133102d000b202010020b0240200041c8026a41086a22064200370300200042003703c80241f9204107200041c8026a100320004198026a41086a220b2006290300370300200020002903c802370398020240024002400240024020004198026a411041d02d410041001000417f460d0020004200370368024020004198026a4110200041e8006a41084100100041016a41084d0d0020002903682101200910460240200a20037c22224202882223500d0020232022510d004100210402400340200441026a21022022200441046a413e71ad882223500d012002210420232022520d000b0b20222002413e71ad88420052ad212302402002450d0003402023420186222320234201842223202320237e202241002002417e6a2204200420024b1b2202413f71ad88561b212320020d000b0b20014202882222500d040c030b2022420052ad21232001420288222250450d020c030b41c1214133102d000b41f4214122102d000b20222001510d004100210402400340200441026a21022001200441046a413e71ad882222500d012002210420222001520d000b0b20012002413e71ad88420052ad212202402002450d0003402022420186222220224201842222202220227e200141002002417e6a2204200420024b1b2202413f71ad88561b212220020d000b0b2023500d020c010b2001420052ad21222023500d010b02400240024002400240201f41037122024101460d0020024102470d012003200a580d050c040b2022500d01200a202280222420032023802225540d0303402023210120252024540d05200a202282212320032001822224500d052023500d042022202380212520222103202421222001210a2001202480222420255a0d000c040b0b2022500d01200a202380222420032022802225540d0203402023210120252024540d04200a200182212520032022822223500d042025500d03202220238021242022210a20012103202521222024200120258022255a0d000c030b0b419c31103b000b419c31103b000b200041c0016a41286a200041386a41286a290300370300200041c0016a41206a200041386a41206a2903003703002019200041386a41186a290300370300200041c0016a41106a220c200041386a41106a29030037030020072016290300370300200020002903383703c00102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802c001220e417f6a220241044b0d000240024002400240024020020e050004020301000b200728020022024101460d0720024102470d13102c0c210b200c2903002103200728020022024101460d0420024102470d132000200337036820064200370300200042003703c80241e122410a200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c200b200020002902c40122033703f8012003422088a721022003a72204410371220c4101460d04200c4102470d1320021046200441ff01714101470d1f201810220c1f0b20004194026a41026a220d201a41026a2d00003a00002021201941086a290300370300200041f8016a41106a2208201941106a2903003703002000201a2f00003b019402200020192903003703f80120072d0000410771417f6a220241034b0d13200c2903002103200041c0016a410c6a2802002104024020020e04000a0709000b2000200436026820064200370300200042003703c802419b164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410410040c1a0b2007280200410771417f6a220241034b0d13200c2903002103024020020e04000b070a000b2000200337036820064200370300200042003703c80241cf1d4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c1d0b200c2802002111200041c0016a410c6a280200211e2007280200210820002802c401410371221d4101460d03201d4102470d1302402011450d002008201141186c22046a210d2008210203402002280200200241086a2802002002410c6a280200200241146a2802001004200241186a2202200d470d000b2011450d002008210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b0240201e450d00200810020b41002104201d4101470d194100210441000d19201e450d1920081002200e41077122024103470d1a0c1b0b2000200337036820064200370300200042003703c802418d23410b200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c1b0b102e210a20064200370300200042003703c80241f7264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d122000420037036820004198026a4110200041e8006a41084100100041016a41084d0d0b20002903682101201b200241286a2903003703002012200241206a290300370300201d200241186a290300370300201c200241106a290300370300201e200241086a290300370300200020022903003703682001200a7c200041e8006a2003420888a7103f200210020c1a0b2000200c29030037036820064200370300200042003703c80241dd084107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c190b41942f4105200820111004201e450d18200810020c180b2000200337036820064200370300200042003703c80241a2164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c130b2000200041c0016a410c6a28020036026820064200370300200042003703c80241de1d4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410410040c160b2000200337036820064200370300200042003703c80241a9164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c110b20004198026a41036a200436000020004198026a41076a2003370000201720002903f80137000020004198026a41026a200d2d00003a0000201741086a2021290300370000201741106a20082d00003a0000200020002f0194023b019802200041e8006a1047200028026c2126200028026821270240201e2802002202450d00200241286c220241b07f6a2104200241586a210d202721020340200241086a2903002103200241106a290300210a200241186a2903002101200229030021222012200241206a290300370300201d2001370300201c200a370300201e200337030020002022370368200041e8006a20004198026a412010060d04200241286a2102200441586a2104200d41586a220d4158470d000b0b41002102410821112026450d03202710024100210d0c0f0b1048102c0c130b2000200337036820064200370300200042003703c80241d21e4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c120b200041c8026a41206a22202012290300370300200041c8026a41186a221f201d290300370300200041c8026a41106a2221201c2903003703002006201e290300370300200020002903683703c802412810012211450d15201120002903c802370300201141206a2020290300370300201141186a201f290300370300201141106a2021290300370300201141086a2006290300370300200020113602b80220004281808080103702bc02200d450d01200241286a21024101210d03402012200241206a290300370300201d200241186a290300370300201c200241106a290300370300201e200241086a290300370300200020022903003703680240200041e8006a20004198026a41201006450d0020202012290300370300201f201d2903003703002021201c2903003703002006201e290300370300200020002903683703c80220122020290300370300201d201f290300370300201c2021290300370300201e2006290300370300200020002903c8023703680240200d20002802bc02470d00200041b8026a200d4101104920002802b80221110b2011200d41286c6a22082000290368370300200841206a2012290300370300200841186a201d290300370300200841106a201c290300370300200841086a201e290300370300200041b8026a41086a200d41016a220d3602000b02402004450d00200241286a2102200441586a21040c010b0b2026450d0b0c0a0b4100210d0c0b0b4101210d20260d080c090b41c1214133102d000b418431103b000b419c3e103b000b419cc000103b000b41ac35103b000b41f43b103b000b419cc200103b000b41f4214122102d000b202710020b20002802bc0221020b201e200d3602002000200236026c20002011360268200041e8006a104a2002450d00201110020b410121040b200e41077122024103460d010b20020d012004450d0120002802c4012202450d01024020024101470d00200041c0016a410c6a280200450d02200728020010020c020b2007280200210d0240200c2802002202450d00200241186c2104200d210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b200041c0016a410c6a280200450d01200d10020c010b41000d0020002d00c40141ff01714101470d002007104b0b2000200941016a36026820064200370300200042003703c80241fe264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a41041004200f2015470d020c010b2000200941016a36026820064200370300200042003703c80241fe264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a41041004024002400240201141077122024103460d0020020d02200028023c2202450d0220024101470d01200041386a410c6a280200450d0220162802001002200f2015470d040c030b20002d003c4101470d0120161022200f2015470d030c020b201628020021060240200041386a41106a2802002202450d00200241186c21042006210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b200041386a410c6a280200450d00200610020b200f2015470d010b0b2015220f2015460d040c030b101c000b2013210f0b200f2015460d010b200041e8006a41086a211c200041e8006a410c6a2102200041e8006a41306a2105200041e8006a41286a2106200041e8006a41206a210b200041e8006a41186a210c200041e8006a41106a210d0340200f41086a2802002104200f29030021032005200f413c6a2802003602002006200f41346a290200370300200b200f412c6a290200370300200c200f41246a290200370300200d200f411c6a290200370300200041e8006a41086a2207200f41146a2902003703002000200f410c6a29020037036820044106460d01200041c0016a41306a220e2005280200360200200041c0016a41286a22082006290300370300200041c0016a41206a2209200b290300370300200041c0016a41186a2210200c290300370300200041c0016a41106a2211200d290300370300200041c0016a41086a22122007290300370300200020002903683703c00120072004360200200220002903c001370200200241086a2012290300370200200241106a2011290300370200200241186a2010290300370200200241206a2009290300370200200241286a2008290300370200200241306a200e28020036020020002003370368201c1038200f41c0006a220f2015470d000b0b02402014450d00201310020b102e2101200041e8006a41086a220242003703002000420037036841ba1d4107200041e8006a1003200041c8026a41086a22042002290300370300200020002903683703c802420021030240024002400240024002400240024002400240200041c8026a411041d02d410041001000417f460d0020004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d01200029036821030b200242003703002000420037036841c11d4107200041e8006a100320042002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0320004200370368024002400240200041c8026a4110200041e8006a41084100100041016a41084d0d002000290368210a200041e8006a41086a220242003703002000420037036841cf084107200041e8006a1003200041c8026a41086a2002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0720004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d012000290368200a7e22224200510d084200210a0240200120037d2022824200520d0010480b102e2103200041e8006a41086a220242003703002000420037036841d6084107200041e8006a1003200041c8026a41086a22042002290300370300200020002903683703c80202400240200041c8026a411041d02d410041001000417f460d0020004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d06200029036821014201210a0c010b0b200242003703002000420037036841cf084107200041e8006a100320042002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0920004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d02200029036822224200510d0a0240200342002001200a501b7d2022824200520d00102c0b200041c8026a41086a22024200370300200042003703c80241ad0b4107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d05200041003a006820004198026a4110200041e8006a41014100100041016a41014d0d0b20002d00682102200041c8026a41086a22044200370300200042003703c80241ad0b4107200041c8026a1003200041e8006a41086a2004290300370300200020002903c802370368200041e8006a411010052002450d05200041f0026a24000f0b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c432103b000b41f4214122102d000b41f4214122102d000b41ac3b103b000b41f4214122102d000b41b431103b000b41c1214133102d000bdd91010b017f017e017f017e057f017e047f017e187f027e027f230041f0026b22002400102e2101200041286a41086a220242003703002000420037032841b0164107200041286a1003200041086a41086a200229030037030020002000290328370308024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041086a411041d02d410041001000417f460d00200042003703900202400240200041086a411020004190026a41084100100041016a41084d0d0020002903900222034200510d0320012003824200520d1d200041286a41086a2202420037030020004200370328419b164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d052000410036029002200041086a411020004190026a41044100100041016a41044d0d012000280290022202450d1d200041e0016a1047200041286a41086a220442003703002000420037032841b00f4107200041286a1003200041086a41086a200429030037030020002000290328370308410021040240200041086a411041d02d410041001000417f460d002000200041086a360290012000411036029401200042003703900220004100200041086a411020004190026a41084100100022042004417f461b2204410820044108491b220d36029801200441074d0d05200029039002210e200041003602900220004198016a4100200041086a411020004190026a4104200d100022042004417f461b2204410420044104491b200d6a360200200441034d0d05200028029002210420004190026a20004190016a103a200028029002220f450d0520002802e801220d20046a2000290294022203422088a76b211002402003a7450d00200f10020b20102002490d080c070b102e210e20002802e801220d20024f0d060c070b41c1214133102d000b41c1214133102d000b41f4214122102d000b41ac39103b000b41c1214133102d000b41f4214122102d000b0240200420024f0d00200d200420026b6a2202200d4f0d0820002802e001200241286c6a290320210e0c010b200041286a41086a220242003703002000420037032841a9164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d082000420037039002200041086a411020004190026a41084100100041016a41084d0d01200029039002200e7c210e0b200041286a41086a220242003703002000420037032841b0164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d03200042003703900202400240200041086a411020004190026a41084100100041016a41084d0d0020002903900222034200510d06200e20037c427f7c220e200e2003827d2103024020002802e401450d0020002802e00110020b20032001520d17200041e8006a1047200041286a41086a2202420037030020004200370328419b164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d072000410036029002200041086a411020004190026a41044100100041016a41044d0d012000280290022115102e21030240024020002802702214450d002000280268220241206a2903002003520d0020004190026a41186a2204200241186a29000037030020004190026a41106a220d200241106a29000037030020004190026a41086a2210200241086a290000370300200020022900003703900241201001220f450d12200241286a2102200f200029039002370000200f41186a2004290300370000200f41106a200d290300370000200f41086a20102903003700002000200f3602e00120004281808080103702e401412021104101210d0240201441286c41586a2211450d000340200241206a2903002003520d01200041c8006a41186a200241186a2204290000370300200041c8006a41106a200241106a2216290000370300200041c8006a41086a200241086a22172900003703002000200229000037034820004190016a41186a2218200429000037030020004190016a41106a2219201629000037030020004190016a41086a2216201729000037030020002002290000370390010240200d20002802e401470d00200041e0016a200d410110860120002802e001210f0b200241286a2102200f20106a2204200029039001370000200441186a2018290300370000200441106a2019290300370000200441086a2016290300370000200041e0016a41086a200d41016a220d360200201041206a2110201141586a22110d000b0b20002802e40121022014200d6b2015490d010c160b410021024101210f4100210d201441006b20154f0d150b200041286a41086a220442003703002000420037032841a2164107200041286a1003200041086a41086a200429030037030020002000290328370308200041086a411041d02d410041001000417f460d0a2000420037039002200041086a411020004190026a41084100100041016a41084d0d03200029039002210e20004190026a41106a2002360200200041a4026a200d3602002000200d20146b20156a2219360298022000200e20037c2203370390022000200f36029c02200041003602e801200042013703e001200041e0016a41004108102720002802e00120002802e80122046a20033700002000200441086a22043602e801200041e0016a20044104102720002802e00120002802e80122046a20193600002000200441046a22103602e80120004190016a2000419c026a10a201200028029001210d200041e0016a2010200028029801220410272000200420002802e80122116a22163602e801201120002802e00122106a200d2004101e1a0240200028029401450d00200d10020b200041286a41086a220442003703002000420037032841b00f4107200041286a1003200041086a41086a200429030037030020002000290328370308200041086a4110201020161004024020002802e401450d00201010020b02402002450d00200f10020b41082118200041286a41086a220242003703002000420037032841c50f4107200041286a1003200041086a41086a200229030037030020002000290328370308410021140240024002400240200041086a411041d02d410041001000417f460d0020004210370294012000200041086a3602900120004190026a20004190016a103a2000280290022215450d1341082118200028029402211b20004190026a41086a2802002202450d0120024105744105752214ad4203862203a722044100480d122003422088a74100470d12200410012218450d152002410574220d41606a410576211020182104201521020340200420021043200210447c370300200441086a2104200241206a2102200d41606a220d0d000b201041016a21020c030b410121154100211b0c010b410021140b410021020b2000410036029802200042013703900220004190026a41004104102720002802900220002802980222046a20023600002000200441046a3602980220004190016a41086a2204200028029802360200200020002903900237039001024002402002450d002002410374210f2018210d0340200d2903002103410810012202450d152000200236029002200042083702940220004190026a41004108102720004190026a41086a22022002280200221141086a2202360200201120002802900222106a2003370000200028029402211120004190016a2004280200200210272000280290012217200428020022166a20102002101e1a2004201620026a220236020002402011450d00201010020b200d41086a210d200f41786a220f0d000c020b0b200028029801210220002802900121170b2000280294012104200041286a41086a220d4200370300200042003703284181114107200041286a1003200041086a41086a200d29030037030020002000290328370308200041086a411020172002100402402004450d00201710020b02402014450d00201810020b200041286a41086a220242003703002000420037032841b7164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d0b2000410036029002200041086a411020004190026a41044100100041016a41044d0d042000280290022102200041a8016a4200370300200041a0016a420037030020004198016a42003703002000420037039001200220196a220dad42287e2203422088a70d0c2003a72202417f4c0d0d4108210402402002450d00200210012204450d140b2000200d3602e401200020043602e001200041003602e80120004190026a41186a221020004190016a41186a29030037030020004190026a41106a220f20004190016a41106a29030037030020004190026a41086a20004190016a41086a290300370300200020002903900137039002200041e0016a200d10850120002802e00120002802e801221141286c6a2102024002400240200d4102490d0041012104034020024200370300200241206a2010290300370300200241186a200f290300370300200241106a20004190026a41086a290300370300200241086a200029039002370300200241286a2102200441016a2204200d490d000b201120046a417f6a21110c010b200d450d010b200220002903900237030820024200370300200241106a20004198026a290300370300200241186a20004190026a41106a290300370300200241206a20004190026a41186a290300370300201141016a21110b200041e0016a41086a2202201136020020004190026a41086a2002280200360200200020002903e0013703900220004190026a10b7010240200028029402450d0020002802900210020b201b450d15201510020c150b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41f4214122102d000b41c439103b000b41f4214122102d000b41cc362002200d103c000b41f4214122102d000b41f4214122102d000b41f4214122102d000b105e000b105f000b1041000b41c1214133102d000b41d900212a0c070b41d900212a0c060b41d900212a0c050b41d900212a0c040b2002450d00200f1002200028026c0d010c020b200028026c450d010b200028026810020b200041286a41086a220242003703002000420037032841b00f4107200041286a1003200041086a41086a20022903003703002000200029032837030802400240200041086a411041d02d410041001000417f460d002000200041086a360290012000411036029401200042003703900220004100200041086a411020004190026a41084100100022022002417f461b2202410820024108491b220436029801200241074d0d0b2000290390022103200041003602900220004198016a4100200041086a411020004190026a41042004100022022002417f461b22024104200241044922021b20046a36020020020d0b20004190026a20004190016a103a2000280290022205450d0b200028029402210620032001520d01200041286a41086a22024200370300200042003703284181114107200041286a1003200041086a41086a2204200229030037030020002000290328370308200041086a41101005200442003703002000420037030841b00f4107200041086a10032002200429030037030020002000290308370328200041286a411041d02d410041001000417f460d082000200041286a360290012000411036029401200042003703900220004100200041286a411020004190026a41084100100022022002417f461b22024108200241084922041b22023602980120040d09200041003602900220004198016a4100200041286a411020004190026a41042002100022042004417f461b2204410420044104491b20026a360200200441034d0d09200028029002210720004190026a20004190016a103a2000280290022208450d0920002902940221094108210a200041086a41086a220242003703002000420037030841b00f4107200041086a1003200041286a41086a2204200229030037030020002000290308370328200041286a411010052002420037030020004200370308418f114107200041086a100320042002290300370300200020002903083703284100210b02400240200041286a411041d02d410041001000417f460d0020004210370294012000200041286a3602900120004190026a20004190016a10b601200028029002220a450d052000290294022103200041086a41086a2202420037030020004200370308418f114107200041086a1003200041286a41086a200229030037030020002000290308370328200041286a411010052003422088a7210b2003a7210c0c010b4100210c0b102e2103200041286a41086a220242003703002000420037032841a9164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d072000420037039002200041086a411020004190026a41084100100041016a41084d0d0d200020002903900220037c3703e002200041286a41086a220242003703002000420037032841c6104107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d062000420037039002200041086a411020004190026a41084100100041016a41084d0d0c2009422088a72111200a200b41286c22026a210f02402007450d0020002903900221034100200a6b20026b21042007210d200f210203402002200a460d01200241586a22102903004200510d01200241606a2003103d200441286a210420102102200d417f6a220d0d000b0b20004190026a104720002802980221042000280290022102200028029402210d200041f8016a200f360200200041fc016a41003a000020004180026a20073602002000200d3602e401200020023602e001200020023602e80120002002200441286c6a3602ec01200020113602f0012000200a3602f40120004184026a200041e0026a360200200041003a00880220004190026a200041e0016a10b90102400240024002400240024002400240024002400240024002400240024002400240024002400240024002402000290390024200510d00417f4100200041ec016a280200200041e0016a41086a2802006b41286d2202200041f0016a2802006b2204200420024b1b220241016a220420042002491b2204ad42287e2203422088a70d1b2003a72202417f4c0d1a4108211202402002450d00200210012212450d160b201220004190026a41086a2202290300370300201241206a200241206a290300370300201241186a200241186a290300370300201241106a200241106a290300370300201241086a200241086a290300370300200020123602482000200436024c410121132000410136025020004190016a41286a200041e0016a41286a28020036020020004190016a41206a200041e0016a41206a29030037030020004190016a41186a200041e0016a41186a29030037030020004190016a41106a2214200041e0016a41106a29030037030020004190016a41086a200041e0016a41086a290300370300200020002903e0013703900120004190026a20004190016a10b90102402000290390024201520d0020004190026a41086a21022000419c016a2115412821104101210d0340200041e8006a41206a220f200241206a290300370300200041e8006a41186a2211200241186a290300370300200041e8006a41106a2216200241106a290300370300200041e8006a41086a2217200241086a290300370300200020022903003703680240200d2004470d00200041c8006a2004417f4100201528020020004190016a41086a2802006b41286d221820142802006b2219201920184b1b221841016a221920192018491b1049200028024821120b0240201220106a22042000290368370300200441206a200f290300370300200441186a2011290300370300200441106a2016290300370300200441086a2017290300370300200041c8006a41086a200d41016a220f36020020004190026a20004190016a10b9012000290390024201520d00201041286a2110200028024c2104200f210d0c010b0b200d41016a21130b024020004198016a220428020022022000419c016a280200220d460d0020042002200d20026b41586a41286e41286c6a41286a3602000b0240200028029401450d0020002802900110020b200028024c211a201341144b0d01201341014d0d022013417f6a210f2012201341286c6a41586a211103402013200f2202417f6a220f490d2102402013200f6b220d4102490d002012200241286c6a221041206a22042903002012200f41286c6a220241206a221629030022035a0d0020004190026a41186a2217200241186a221829030037030020004190026a41106a2219200241106a221429030037030020004190026a41086a2215200241086a221b290300370300200020022903003703900220022010290300370300201b201041086a2903003703002014201041106a2903003703002018201041186a290300370300201620042903003703000240200d4103490d00410221042011210203402004200d4f0d290240200241c8006a221029030020035a0d002004417f6a200d4f0d29200241206a2010290300370300200241186a200241c0006a290300370300200241106a200241386a290300370300200241086a200241306a2903003703002002200241286a221029030037030020102102200441016a2204200d490d010c020b0b200221100b2010200029039002370300201041186a2017290300370300201041106a2019290300370300201041086a2015290300370300201020033703200b201141586a2111200f0d000c030b0b0240200041e8016a22042802002202200041ec016a280200220d460d0020042002200d20026b41586a41286e41286c6a41286a3602000b024020002802e401450d0020002802e00110020b4100211a41082112410021130c010b2013410176221cad42287e2203422088a70d192003a72202417f4c0d184108211d02402002450d0020021001221d450d130b4100210420004100360298012000420437039001201241586a211e201241a87f6a211f4104210d20004190016a41086a21202013212103402021211641002121410121100240024002402016417f6a2202450d0002400240024002400240024002402012200241286c6a41206a29030020122016417e6a221041286c6a41206a29030022035a0d00410021112010450d02201f201641286c6a2102034020032002290300220e5a0d02200241586a2102200e21032010417f6a22100d000c030b0b02402010450d00201f201641286c6a210241022110034020032002290300220e540d04200241586a2102200e21032016201041016a2210470d000b41002121201621102004200028029401470d090c080b41022110410021212004200028029401470d080c070b201021110b024020162011490d00201620134b0d140240201620116b22104101762217450d00201e201641286c6a21022012201141286c6a210f034020004190026a41206a2218200f41206a221929030037030020004190026a41186a2214200f41186a221529030037030020004190026a41106a221b200f41106a222129030037030020004190026a41086a2222200f41086a22232903003703002000200f29030037039002200241086a22242903002103200241106a2225290300210e200241186a22262903002127200229030021282019200241206a2229290300370300201520273703002021200e37030020232003370300200f202837030020292018290300370300202620142903003703002025201b290300370300202420222903003703002002200029039002370300200241586a2102200f41286a210f2017417f6a22170d000b0b2011450d030c020b201120161055000b201620106b2211450d010b201041094d0d010b201121212004200028029401470d030c020b201620134b0d0d2012201141286c6a2117034020162011417f6a2221490d0f0240201620216b22104102490d002012201141286c6a221141206a220f2903002012202141286c6a220241206a221829030022035a0d0020004190026a41186a2219200241186a221429030037030020004190026a41106a2215200241106a221b29030037030020004190026a41086a2222200241086a22232903003703002000200229030037039002200220112903003703002023201141086a290300370300201b201141106a2903003703002014201141186a2903003703002018200f290300370300024020104103490d004102210f201721020340200f20104f0d090240200241c8006a221129030020035a0d00200f417f6a20104f0d0b200241206a2011290300370300200241186a200241c0006a290300370300200241106a200241386a290300370300200241086a200241306a2903003703002002200241286a221129030037030020112102200f41016a220f2010490d010c020b0b200221110b2011200029039002370300201141186a2019290300370300201141106a2015290300370300201141086a2022290300370300201120033703200b2021450d01201741586a2117202121112010410a490d000b0b2004200028029401470d010b20004190016a107a20202802002104200028029001210d0b200d20044103746a22022010360204200220213602002020200441016a2204360200024020044102490d00200028029001210d03400240024002400240200d2004417f6a4103746a2202280200450d00200d20044103746a221141746a280200220f200228020422104d0d00200441024d0d05200d2004417d6a22144103746a28020422022010200f6a4d0d01200441034d0d05201141646a2802002002200f6a4d0d010c050b20044103490d0120022802042110200d2004417d6a22144103746a28020421020b20022010490d010b2004417e6a21140b2004201441016a22154d0d06200420144d0d07200d201441037422226a2202280204222320022802006a2202200d201541037422246a2204280200221b490d08200220134b0d092012201b41286c6a22182004280204221941286c22046a210f200241286c210d024002400240024002402002201b6b221120196b220220194f0d00201d200f200241286c2204101e221120046a211020194101480d0120024101480d01201e200d6a210d200f21020340200d200241586a2216201041586a2217201041786a290300200241786a29030054220f1b2204290300370300200d41206a200441206a290300370300200d41186a200441186a290300370300200d41106a200441106a290300370300200d41086a200441086a29030037030020102017200f1b2110201820162002200f1b22024f0d04200d41586a210d2011210420112010490d000c050b0b201d20182004101e220220046a211020194101480d01201120194c0d012012200d6a2116200221042018210203402002200f2004200f41206a290300200441206a2903005422111b220d290300370300200241206a200d41206a290300370300200241186a200d41186a290300370300200241106a200d41106a290300370300200241086a200d41086a2903003703002004200441286a20111b2104200241286a2102200f41286a200f20111b220f20164f0d04201020044b0d000c040b0b200f21020c010b201821020b201d21040b20022004201020046b220d200d4128706b101e1a2020280200220220144d0d0a200028029001220d20226a2204202320196a3602042004201b360200200220154d0d0b200d20246a2204200441086a200220156b41037441786a10391a20202002417f6a2204360200200441014b0d000b0b20210d000b0240200028029401450d0020002802900110020b201c450d00201d10020b2000201a360294022000201236029002200020133602980220004190026a104a0240201a450d00201210020b200041286a41086a2202420037030020004200370328418d104107200041286a1003200041086a41086a2002290300370300200020002903283703084100211102400240200041086a411041d02d410041001000417f460d0020004210370294012000200041086a3602900120004190026a20004190016a103a2000280290022217450d0f20004198026a2802002111200028029402211e0c010b410121174100211e0b200041a8026a4200370300200041a0026a420037030020004198026a420037030020004200370390022011ad2203421b88a70d0b2003420586a72202417f4c0d0c024002402002450d002002100122020d010c120b410121020b200020113602940120002002360290012000410036029801200041c8006a41186a220d20004190026a41186a290300370300200041c8006a41106a220f20004190026a41106a290300370300200041c8006a41086a221620004190026a41086a290300370300200020002903900237034820004190016a41002011108601200028029001221020002802980122244105746a210202400240024020114102490d0041012104034020022000290348370000200241186a200d290300370000200241106a200f290300370000200241086a2016290300370000200241206a2102200441016a22042011490d000b202420046a417f6a21240c010b2011450d010b20022000290348370000200241186a200041c8006a41186a290300370000200241106a200041c8006a41106a290300370000200241086a200041c8006a41086a290300370000202441016a21240b2009a7211f20004190016a41086a22232024360200200a200b41286c6a2118200028029401212941002113410021164100212620070d0f0c0e0b41ccc100200f2010103c000b41dcc100200f417f6a2010103c000b41acc10020152004103c000b41acc10020142004103c000b201b20021055000b200220131029000b41bcc10020142002103c000b41b4c300103b000b20162011417f6a22214f0d010b202120161055000b201620131029000b1066000b1067000b41c1214133102d000b419201212a0c060b4106212a0c050b41d900212a0c040b41d900212a0c030b41d900212a0c020b4128212a0c010b4126212a0b0340024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240202a0e9601080d94010e95010f101112131415161718191a1b1c1d1e292a2b2c88012f3031323334353638393a3b3c3d3e404155565758595b5c5d5e5f8e0160616263646566676c757677787e7f8001810182018301840185018601797a7c7d6d6e6f707172733f748d0168696a6b5a7b87014243900144454748494a4b4c4d4e4f515253549101920150468f019301372d2e1f2021890122238a0124258b0126278c01280001020405060703090a0b0c0c0b2018200a460d9f01418b01212a0c8a020b201841586a2202290300210320004190026a41186a2204201841786a221929030037030020004190026a41106a220d201841706a221429030037030020004190026a41086a220f201841686a22152903003703002000201841606a22182903003703900220004190016a41186a221d201929030037030020004190016a41106a22252014290300370300202320152903003703002000201829030037039001200041c8006a41186a22182004290300370300200041c8006a41106a2219200d290300370300200041c8006a41086a2214200f290300370300200020002903900237034820034200510d9f01418c01212a0c89020b200041e0016a41186a22152018290300370300200041e0016a41106a221b2019290300370300200041e0016a41086a22212014290300370300200020002903483703e0010c87020b2007417f6a210720152018290300370300201b201929030037030020212014290300370300200020002903483703e0014100211620222102418d01212a0c87020b200041e8006a41186a22122015290300370300200041e8006a41106a2220201b290300370300200041e8006a41086a22222021290300370300200020002903e00137036820042012290300370300200d2020290300370300200f202229030037030020002000290368370390022007450d9301418e01212a0c86020b201641ff01710d9901418f01212a0c85020b200a2002460d9b01419001212a0c84020b200241586a222229030021032004200241786a2216290300370300200d200241706a2212290300370300200f200241686a22202903003703002000200241606a220229030037039002201d201629030037030020252012290300370300202320202903003703002000200229030037039001201820042903003703002019200d2903003703002014200f290300370300200020002903900237034820034200520d9c010c9b010b200041286a41186a2004290300370300200041286a41106a200d290300370300200041286a41086a200f29030037030020002000290390023703280c8e010b201341ff01710d9101419301212a0c81020b2018200a460d9101419401212a0c80020b201841586a22022903002103200041e0016a41186a2204201841786a220d290300370300200041e0016a41106a220f201841706a2216290300370300200041e0016a41086a2219201841686a22142903003703002000201841606a22182903003703e00120004190016a41186a200d29030037030020004190016a41106a201629030037030020232014290300370300200020182903003703900120004190026a41186a220d200429030037030020004190026a41106a2204200f29030037030020004190026a41086a220f2019290300370300200020002903e001370390022003500d9101419501212a0cff010b200041286a41186a200d290300370300200041286a41106a2004290300370300200041286a41086a200f290300370300200020002903900237032841002113410021164101212a0cfe010b20004190026a41186a2204200041286a41186a29030037030020004190026a41106a220d200041286a41106a29030037030020004190026a41086a220f200041286a41086a2903003703002000200029032837039002200041e0016a20004190026a10b50120002802e0014101470d8b014103212a0cfd010b200041e0016a41086a280200211820004190016a41186a2219200429030037030020004190016a41106a2214200d2903003703002023200f290300370300200020002903900237039001200041086a41186a22152019290300370300200041086a41106a22192014290300370300200041086a41086a22142023290300370300200020002903900137030820042015290300370300200d2019290300370300200f20142903003703002000200029030837039002202420184d0d8b014105212a0cfc010b201020184105746a2218200029039002370000201841186a2004290300370000201841106a200d290300370000201841086a200f290300370000202641016a212641002107200221184100450d86014106212a0cfb010b4100450d8d014107212a0cfa010b200c450d93014108212a0cf9010b200a10024109212a0cf8010b20244105742221410575221b201141057441057522022002201b4b1b2218450d9201410a212a0cf7010b20172102201021044100210d410b212a0cf6010b20102017460d9201410c212a0cf5010b2002200441201006450d9201410d212a0cf4010b41071001220f450d9201410e212a0cf3010b2000200f36029002200042073702940220004190026a41004107102720004190026a41086a220f200f280200221141076a221936020020112000280290026a221641002800bf1036000020004190016a41086a22112019360200201641046a41002f00c3103b0000201641066a41002d00c5103a0000200020002903900237039001412010012216450d9201410f212a0cf2010b2000201636029002200042203702940220004190026a410041201027200f200f280200221941206a22163602002019200028029002220f6a20024120101e1a200028029402211420004190016a2011280200201610272000280290012219201128020022156a200f2016101e1a2011201520166a22163602002014450d92014110212a0cf1010b200f10024111212a0cf0010b200028029401210f200041286a41086a221142003703002000420037032820192016200041286a1003200041086a41086a201129030037030020002000290328370308200041086a41101005200f450d91014112212a0cef010b201910024113212a0cee010b200241206a2102200441206a2104200d41016a220d2018490d89014114212a0ced010b201020216a21022024210d201b4104490d8f0141fc00212a0cec010b20004190026a41206a2118200041d0026a2119200041f0026a211420004190036a2115200041a8026a210f200041a0026a211120004198026a21162024210d41fd00212a0ceb010b200f420037030020114200370300201642003703002000420037039002201820022204460de10141fe00212a0cea010b200441606a20004190026a412010060de101418001212a0ce9010b200f42003703002011420037030020164200370300200042003703900220192004460de101418101212a0ce8010b200441406a20004190026a412010060de101418301212a0ce7010b200f42003703002011420037030020164200370300200042003703900220142004460de101418401212a0ce6010b200441a07f6a20004190026a412010060de101418601212a0ce5010b200f420037030020114200370300201642003703002000420037039002200441807f6a210220152004460de101418701212a0ce4010b200220004190026a412010060de101418901212a0ce3010b200d417c6a210d200220106b41057541034b0d86014115212a0ce2010b20102002460d86014116212a0ce1010b20004190026a41206a2104200041a8026a210f200041a0026a211120004198026a21164117212a0ce0010b200f42003703002011420037030020164200370300200042003703900220042002460d86014118212a0cdf010b200241606a20004190026a412010060d860141fa00212a0cde010b200d417f6a210d2010200241606a2202470d830141fb00212a0cdd010b4100450d8f01411a212a0cdc010b200d41016a22022024202420024b1b2124411b212a0cdb010b20002029360294012000201036029001200020243602980120004190026a20004190016a10a20120002802980221042000280290022102200041286a41086a220d420037030020004200370328418d104107200041286a1003200041086a41086a200d29030037030020002000290328370308200041086a4110200220041004200028029402450d8e01411c212a0cda010b20021002411d212a0cd9010b2029450d8d01411e212a0cd8010b20101002411f212a0cd7010b2000202636029002200041286a41086a220242003703002000420037032841cd104107200041286a1003200041086a41086a2204200229030037030020002000290328370308200041086a411020004190026a41041004200242003703002000420037032841b70f4107200041286a10032004200229030037030020002000290328370308200041086a411041d02d410041001000417f460d8c014120212a0cd6010b2000410036029002200041086a411020004190026a41044100100041016a41044d0d8c014121212a0cd5010b20002802900241016a21020c8c010b410121024122212a0cd3010b2000200236029002200041286a41086a220242003703002000420037032841b70f4107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411020004190026a41041004201e450d8b014123212a0cd2010b201710024124212a0cd1010b201f450d8a014125212a0cd0010b200810024126212a0ccf010b2006450d89014127212a0cce010b200510024128212a0ccd010b20004190026a412c6a212520004190026a410472212620004190026a41206a210d20004190016a412c6a2122200041e0016a41086a2123200041e0016a4104722120200041e0016a410c6a21290c88010b20004190026a41286a200041e0016a41286a290300370300200d200041e0016a41206a29030037030020004190026a41186a200041e0016a41186a29030037030020004190026a41106a200041e0016a41106a29030037030020042023290300370300200020002903e0013703900220004190026a410210ba014129212a0ccb010b200041e0026a10bb0120002802e002210241062112200041e0026a41086a2210280200220f450d9001412a212a0cca010b20022903002103200041c8006a41186a2211200241206a290000370300200041c8006a41106a2216200241186a290000370300200041c8006a41086a2217200241106a290000370300200020022900083703484106211220032001520d900141e100212a0cc9010b200f417f6a2218ad42287e2203422088a70db50141e200212a0cc8010b2003a72204417f4c0db50141e400212a0cc7010b2004450db50141e500212a0cc6010b2004100122190daf010cae010b4108211941e600212a0cc4010b20004190026a41086a220441003602002000201836029402200020193602900220004190026a4100200f41286c41586a41286e220f108201200420042802002218200f6a360200200028029002201841286c6a200241286a200f41286c101e1a2023200428020036020020002000290390023703e001200041e0016a10bc0120002802e401450db30141e700212a0cc3010b20002802e001100241e800212a0cc2010b200041e8006a41186a22142011290300370300200041e8006a41106a22152016290300370300200041e8006a41086a221b20172903003703002000200029034837036841071001220f450dac0141e900212a0cc1010b2000200f36029002200042073702940220004190026a41004107102720042004280200220f41076a2218360200200f2000280290026a220f41002800eb2236000020232018360200200f41046a41002f00ef223b0000200f41066a41002d00f1223a000020002000290390023703e00141201001220f450dac0141ea00212a0cc0010b2000200f36029002200042203702940220004190026a41004120102720042004280200221841206a220f360200201820002802900222196a22182000290368370000201841086a201b290300370000201841106a2015290300370000201841186a20142903003700002000280294022115200041e0016a2023280200200f102720002802e0012218202328020022146a2019200f101e1a20232014200f6a22143602002015450db00141eb00212a0cbf010b2019100241ec00212a0cbe010b20002802e401211d200041086a41086a220f42003703002000420037030820182014200041086a1003200041286a41086a2219200f29030037030020002000290308370328200041286a411041d02d410041001000417f460daf0141ed00212a0cbd010b2000421037020c2000200041286a36020820004190026a200041086a10bd0120002802900222124106460daf0141ee00212a0cbc010b200041e0016a41286a202641286a280200360200200041e0016a41206a202641206a290200370300200041e0016a41186a202641186a290200370300200041e0016a41106a202641106a2902003703002023202641086a290200370300200020262902003703e001200f42003703002000420037030820182014200041086a10032019200f29030037030020002000290308370328200041286a411010050caf010b4106211241ef00212a0cba010b20004190026a41286a220f200041e0016a41286a2219280200360200200d200041e0016a41206a221429030037030020004190026a41186a2215200041e0016a41186a221b29030037030020004190026a41106a2221200041e0016a41106a222429030037030020042023290300370300200020002903e00137039002201d450dae0141f000212a0cb9010b2018100241f100212a0cb8010b20124106460dad0141f200212a0cb7010b2019200f2802003602002014200d290300370300201b2015290300370300202420212903003703002023200429030037030020002000290390023703e001200f2019280200360200200d20142903003703002015201b290300370300202120242903003703002004202329030037030020252000290348370200202541086a2017290300370200202541106a2016290300370200202541186a2011290300370200200020002903e0013703900220004190016a20004190026a41cc00101e1a412b212a0cb6010b20002802e402450d7d412c212a0cb5010b20021002412d212a0cb4010b20124106460d7c412e212a0cb3010b2020200029029001370200202041086a20004190016a41086a290200370200202041106a20004190016a41106a290200370200202041186a20004190016a41186a290200370200202041206a20004190016a41206a290200370200202041286a20004190016a41286a280200360200200020123602e001200041e8006a41186a2215202241186a290000370300200041e8006a41106a221b202241106a290000370300200041e8006a41086a2221202241086a29000037030020002022290000370368200041e0026a104720002802e00221242010280200221d41286c2217450d7c412f212a0cb2010b4100211441002119202421020c7c0b4102211120180d82010c81010b200d200229000037000020004190026a41186a201529030037030020004190026a41106a201b29030037030020004190026a41086a2021290300370300200d41086a200241086a290000370000200d41106a200241106a290000370000200d41186a200241186a2900003700002000200029036837039002410910012204450d7c4131212a0caf010b200020043602482000420937024c200041c8006a410041091027200041c8006a41086a22102010280200220441096a220f360200200420002802486a221141002900f922370000200041286a41086a2204200f360200201141086a41002d0081233a000020002000290348370328200041c8006a20004190026a10be01200028024c211820002802482111200041286a20042802002010280200220f102720002802282210200428020022166a2011200f101e1a20042016200f6a22163602002018450d7c4132212a0cae010b201110024133212a0cad010b200028022c2118200041086a41086a220f42003703002000420037030820102016200041086a10032004200f29030037030020002000290308370328200041286a411041d02d410041001000417f460d7b4134212a0cac010b200041003a0048200041286a4110200041c8006a41014100100041016a41014d0d7b4136212a0cab010b20002d00482111200f42003703002000420037030820102016200041086a10032004200f29030037030020002000290308370328200041286a411010052018450d7d4137212a0caa010b201010024138212a0ca9010b201141ff01714102460d7c4139212a0ca8010b201420114101716a211420192011417f734101716a2119413a212a0ca7010b200241286a2102201741586a22170d72413b212a0ca6010b201920146a210220002802e402450d7a413c212a0ca5010b20241002413d212a0ca4010b201d20026b210220124103470d7b41da00212a0ca3010b20002d00e40141ff01714102470d7b41db00212a0ca2010b20190d7e41dc00212a0ca1010b20020d7c41dd00212a0ca0010b202328020010460c790b2014200220196a4d0d7941d000212a0c9e010b410910012204450d810141d100212a0c9d010b2000200436029002200042093702940220004190026a41004109102720004190026a41086a22042004280200221041096a220f36020020102000280290026a2211410029009823370000200041c8006a41086a2210200f360200201141086a41002d00a0233a0000200020002903900237034841201001220f450d810141d200212a0c9c010b2000200f36029002200042203702940220004190026a41004120102720042004280200221141206a220f360200201120002802900222166a22112000290368370000201141086a2021290300370000201141106a201b290300370000201141186a20152903003700002000280294022117200041c8006a2010280200200f102720002802482211201028020022186a2016200f101e1a20102018200f6a220f3602002017450d810141d300212a0c9b010b2016100241d400212a0c9a010b200028024c2110200041286a41086a22164200370300200042003703282011200f200041286a1003200041086a41086a201629030037030020002000290328370308200041086a411010052010450d800141d500212a0c99010b2011100241d600212a0c98010b20022019720d7f41d800212a0c97010b20004190026a41286a200041e0016a41286a290300370300200d200041e0016a41206a29030037030020004190026a41186a200041e0016a41186a29030037030020004190026a41106a200041e0016a41106a29030037030020042023290300370300200020002903e0013703900220004190026a410110ba010c530b201241077122024103460d7341c000212a0c95010b20020d5241c100212a0c94010b20002802e4012202450d5441c200212a0c93010b20024101470d7141cc00212a0c92010b2029280200450d5341cd00212a0c91010b202328020010020c530b4100211941002114410041006a210220002802e4020d660c650b20002d00e4014101470d4d41cf00212a0c8e010b202310bf010c4d0b20232802002110200041e0016a41106a2802002202450d6c41c400212a0c8c010b200241186c21042010210241c500212a0c8b010b200241046a280200450d6c41c600212a0c8a010b2002280200100241c700212a0c89010b200241106a280200450d6b41c800212a0c88010b2002410c6a280200100241c900212a0c87010b200241186a2102200441686a22040d6741ca00212a0c86010b2029280200450d4941cb00212a0c85010b201010020c490b200041f0026a24000f0b200d417f6a210d41010d340c330b200d417f6a210d41010d310c300b200d417e6a210d41010d2e0c2d0b200d417d6a210d41010d2b0c2a0b200d417c6a210d41010d280c270b101c000b41c1214133102d000b1064000b1065000b4187254139102d000b41c1214133102d000b41c1214133102d000b41f316411c102d000b41b43820182024103c000b419201212a0c740b4101212a0c730b4100212a0c720b4102212a0c710b4104212a0c700b4107212a0c6f0b4107212a0c6e0b4107212a0c6d0b418a01212a0c6c0b4107212a0c6b0b4107212a0c6a0b4107212a0c690b4107212a0c680b4107212a0c670b419101212a0c660b4109212a0c650b4114212a0c640b410b212a0c630b4113212a0c620b4113212a0c610b41d900212a0c600b41d900212a0c5f0b4111212a0c5e0b4113212a0c5d0b4115212a0c5c0b41fd00212a0c5b0b41fb00212a0c5a0b4117212a0c590b41fa00212a0c580b4119212a0c570b411b212a0c560b411a212a0c550b411b212a0c540b411a212a0c530b411b212a0c520b411a212a0c510b411b212a0c500b411a212a0c4f0b411b212a0c4e0b411a212a0c4d0b411b212a0c4c0b411d212a0c4b0b411f212a0c4a0b41f900212a0c490b41f800212a0c480b4122212a0c470b4124212a0c460b4126212a0c450b4128212a0c440b4129212a0c430b4129212a0c420b4129212a0c410b4129212a0c400b4129212a0c3f0b4129212a0c3e0b4129212a0c3d0b4129212a0c3c0b4129212a0c3b0b4129212a0c3a0b412b212a0c390b412b212a0c380b412d212a0c370b41e000212a0c360b41df00212a0c350b4130212a0c340b4130212a0c330b41d900212a0c320b4133212a0c310b41de00212a0c300b4135212a0c2f0b4138212a0c2e0b4137212a0c2d0b4138212a0c2c0b413a212a0c2b0b413d212a0c2a0b413d212a0c290b413c212a0c280b413e212a0c270b413e212a0c260b413f212a0c250b413f212a0c240b413f212a0c230b413f212a0c220b41ce00212a0c210b41c300212a0c200b41ca00212a0c1f0b41c500212a0c1e0b41c700212a0c1d0b41c900212a0c1c0b41d900212a0c1b0b41d900212a0c1a0b41d400212a0c190b41d600212a0c180b41d700212a0c170b41d900212a0c160b41e600212a0c150b41d900212a0c140b41d900212a0c130b41f700212a0c120b41e300212a0c110b41f600212a0c100b41e800212a0c0f0b41ec00212a0c0e0b41f500212a0c0d0b41f400212a0c0c0b41ef00212a0c0b0b41f100212a0c0a0b41f300212a0c090b418001212a0c080b41ff00212a0c070b418301212a0c060b418201212a0c050b418601212a0c040b418501212a0c030b418901212a0c020b418801212a0c010b418d01212a0c000b0b41c1214133102d000b1057000b1056000b41f4214122102d000b41f4214122102d000b41be164135102d000b41c1214133102d000b200f20131055000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41dcc1002004417f6a200d103c000b41ccc1002004200d103c000ba50c03047f017e177f23004180026b22012400200141b0016a41086a22024200370300200142003703b0014191264107200141b0016a1003200141086a2002290300370300200120012903b0013703000240024002400240024002402001411041d02d410041001000417f460d002001200136021020014110360214200141003602b0012001410020014110200141b0016a41044100100022022002417f461b2202410420024104491b2203360218200241034d0d0320012802b0012204ad42d8007e2205422088a70d052005a72202417f4c0d042002450d012002100122060d02101c000b200041003602082000420837020020014180026a24000f0b410821060b20012004360224200120063602202001410036022802402004450d0020014180016a41086a210720014180016a4104722108200121094100210a4110210b4100210c0340200141003602b001200141106a41086a220d41002009200b200141b0016a41042003100022022002417f461b2202410420024104491b20036a3602000240024002400240200241034d0d0020012802b001210e200141b0016a200141106a10bd0120012802b0014106460d0020014180016a41286a200141b0016a41286a220f29030037030020014180016a41206a200141b0016a41206a221029030037030020014180016a41186a2211200141b0016a41186a221229030037030020014180016a41106a2213200141b0016a41106a22142903003703002007200141b0016a41086a2215290300370300200120012903b00137038001200141e0016a41186a22164200370300200141e0016a41106a22174200370300200141e0016a41086a22184200370300200142003703e001200d200d28020022024100200128021022092001280214220b200141e0016a41202002100022022002417f461b2202412020024120491b6a220336020002402002411f4d0d00200141306a41186a22022016290300370300200141306a41106a220d2017290300370300200141306a41086a22162018290300370300200120012903e001370330200141d0006a41086a2217200841086a290200370300200141d0006a41106a2218200841106a290200370300200141d0006a41186a2219200841186a290200370300200141d0006a41206a221a200841206a290200370300200141d0006a41286a221b200841286a28020036020020012008290200370350200128028001221c4106460d01200c41016a210c200f201b2802003602002010201a290300370300201220192903003703002014201829030037030020152017290300370300200720162903003703002013200d29030037030020112002290300370300200120012903503703b0012001200129033037038001200a2001280224470d04200141206a1074200141206a41086a280200210a200128022021060c040b0240024020012802800122024103460d0020020d022001280284012202450d0220024101470d012001418c016a280200450d0220014188016a280200100220012802202103200a0d030c040b20012d0084014101470d012007104b20012802202103200a0d020c030b20014188016a2802002103024020014180016a41106a2802002202450d00200241186c21082003210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200841686a22080d000b0b2001418c016a280200450d00200310020b20012802202103200a450d010b200a41d8006c210820032102034020021038200241d8006a2102200841a87f6a22080d000b0b2001280224450d03200310020c030b2006200a41d8006c6a2202201c3602002002411c6a2012290300370200200241146a20142903003702002002410c6a2015290300370200200220012903b001370204200241246a20102903003702002002412c6a200f2802003602002002200e36023020022001290380013702342002413c6a2007290300370200200241c4006a2013290300370200200241cc006a2011290300370200200141206a41086a200a41016a220a360200200c2004490d000b200128022021060b2006450d00200020012902243702042000200636020020014180026a24000f0b41c1214133102d000b1059000b1058000b8d0402057f017e230041c0006b220224000240024002400240410810012203450d002002200336023020024208370234200241306a4100410810272002280230200228023822036a42e4cab5d3c3ac99b83a3700002002200341086a360238200241086a200228023836020020022002290330370300410410012203450d002002200336023020024204370234200241306a41004104102720022802302203200228023822046a20013600002002200441046a220136023820022802342105200220022802082001102720022802002204200228020822066a20032001101e1a2002200620016a220136020802402005450d00200310020b20022802042103200241306a41086a220542003703002002420037033020042001200241306a1003200241086a20052903003703002002200229033037030002402002411041d02d410041001000417f460d002002200236021020024110360214200242003703302002410020024110200241306a41084100100022012001417f461b2201410820014108491b360218200141074d0d0220022903302107200241306a200241106a103a20022802302201450d022002200229023437032020002001360208200020073703002000200229032037020c200041146a200241286a2802003602002003450d040c030b2000410036020820030d020c030b101c000b41c1214133102d000b200410020b200241c0006a24000bda0101027f0240024020002802002201450d0020014103470d0120002d00044101470d01200041086a22012802001038200128020010020f0b20002802042201450d00024020014101470d002000410c6a280200450d01200041086a28020010020f0b0240200041106a2802002202450d00200041086a2802002101200241186c210203400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200241686a22020d000b0b2000410c6a280200450d00200041086a28020010020f0b0b0a00200020012002100b0bc80403067f017e097f230041d0006b220224002002410036023020012001280208220341002001280200220420012802042205200241306a41042003100022032003417f461b2203410420034104491b6a220636020802400240024002400240200341034d0d0020022802302207ad2208421b88a70d042008420586a72203417f4c0d032003450d012003100122090d02101c000b20004100360200200241d0006a24000f0b410121090b20022007360204200220093602002002410036020802402007450d00200241306a41186a210a200241306a41106a210b410021034100210c0340200a4200370300200b4200370300200241306a41086a220d420037030020024200370330200141086a410020042005200241306a412020061000220e200e417f461b220e4120200e4120491b20066a220636020002400240200e411f4d0d00200c41016a210c200241106a41186a220f200a290300370300200241106a41106a2210200b290300370300200241106a41086a2211200d2903003703002002200229033037031020032002280204470d012002107c200241086a2802002103200228020021090c010b2000410036020002402002280204450d00200910020b200241d0006a24000f0b200920034105746a220e2002290310370000200e41186a200f290300370000200e41106a2010290300370000200e41086a2011290300370000200241086a200341016a2203360200200c2007490d000b0b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b1067000b1066000b2c02017f017e230041106b2201240020002902102102200120002902083703002001200237030820011054000b070020001054000bab0303017f017e047f230041306b220224002000104321030240410810012204450d002002200436022020024208370224200241206a4100410810272002280220200228022822046a42f3e885d3a3ac98b63a3700002002200441086a360228200241106a41086a200228022836020020022002290320370310412010012204450d00200320017c21012002200436022020024220370224200241206a41004120102720022802202205200228022822066a22042000290000370000200441086a200041086a290000370000200441106a200041106a290000370000200441186a200041186a2900003700002002200641206a220036022820022802242106200241106a20022802182000102720022802102204200228021822076a20052000101e1a2002200720006a220036021802402006450d00200510020b2002280214210520022001370308200241206a41086a220642003703002002420037032020042000200241206a1003200241106a41086a200629030037030020022002290320370310200241106a4110200241086a4108100402402005450d00200410020b200241306a24000f0b101c000bcb0501097f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002100200241d8006c21050340200141106a41086a2203410036020020014201370310200041306a2802002102200141106a41004104102720032003280200220641046a2207360200200620012802106a2002360000200141206a200010d80120012802202108200141106a2007200141206a41086a22062802002202102720032002200328020022076a2209360200200720012802106a20082002101e1a02402001280224450d00200810020b200141106a20094120102720032003280200220741206a22023602002007200128021022086a220341086a2000413c6a290000370000200341106a200041c4006a290000370000200341186a200041cc006a2900003700002003200041346a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200641003602002001200236022420012003360220200141206a41002002102720062006280200220720026a22033602002007200128022022066a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002207200428020022086a20062003101e1a2004200820036a220336020002402002450d00200610020b200041d8006a2100200541a87f6a22050d000c020b0b20012802082103200128020021070b20012802042100200141206a41086a22024200370300200142003703204191264107200141206a1003200141106a41086a200229030037030020012001290320370310200141106a411020072003100402402000450d00200710020b200141306a24000f0b1019000b101c000be50c03037f017e047f230041a0016b22032400200341086a220442003703002003420037030041852741072003100320034180016a41086a200429030037030020032003290300370380010240024020034180016a411041d02d410041001000417f460d00200341003602400240024020034180016a4110200341c0006a41044100100041016a41044d0d00024020032802402205450d0020032005417f6a104020032802084106460d00200341c0006a41086a2204200341086a290300370300200341c0006a41386a200341386a290300370300200341c0006a41306a200341306a290300370300200341c0006a41286a200341286a290300370300200341c0006a41206a200341206a290300370300200341c0006a41186a200341186a290300370300200341c0006a41106a200341106a290300370300200320032903002206370340024002400240200428020022044103460d0020040d02200341cc006a2802002204450d0220044101470d01200341d4006a280200450d02200341d0006a280200100220062000580d030c070b200341cc006a2d00004101470d01200341d0006a102220062000580d020c060b200341c0006a41106a28020021070240200341c0006a41186a2802002204450d00200441186c21082007210403400240200441046a280200450d00200428020010020b0240200441106a280200450d002004410c6a28020010020b200441186a2104200841686a22080d000b0b200341d4006a280200450d00200710020b20062000560d040b2003200541016a360240200341086a220442003703002003420037030041852741072003100320034180016a41086a22082004290300370300200320032903003703800120034180016a4110200341c0006a41041004200341c0006a41106a200141086a290300370300200341c0006a41186a200141106a290300370300200341c0006a41206a200141186a290300370300200341c0006a41286a200141206a290300370300200341f0006a200141286a29030037030020032000370340200320023a007820032001290300370348410810012201450d01200320013602002003420837020420034100410810272003280200200328020822016a42e4cab5d383cedcb73a3700002003200141086a360208200820032802083602002003200329030037038001410410012201450d01200341c0006a41086a21022003200136020020034204370204200341004104102720032802002204200328020822016a20053600002003200141046a22013602082003280204210820034180016a20032802880120011027200328028001220520032802880122076a20042001101e1a2003200720016a22073602880102402008450d00200410020b200328028401210841002104200341003602980120034201370390012003290340210020034190016a41004108102720032802900120032802980122016a20003700002003200141086a2209360298012003200210d8012003280200210220034190016a20092003280208220110272003200120032802980122096a220a3602980120092003280290016a20022001101e1a02402003280204450d00200210020b02400240200341f8006a2d000022014103714102460d0020014101470d01410121040c010b410221040b20034190016a200a4101102720034190016a41086a22012001280200220241016a2209360200200220032802900122016a20043a0000200341086a2204420037030020034200370300200520072003100320034180016a41086a2004290300370300200320032903003703800120034180016a41102001200910040240200328029401450d00200110020b02402008450d00200510020b024002400240200328024822014103460d0020010d02200341cc006a2802002201450d0220014101470d01200341d4006a280200450d02200341d0006a2802001002200341a0016a24000f0b200341cc006a2d00004101470d01200341d0006a1022200341a0016a24000f0b0240200341c0006a41186a2802002204450d00200341c0006a41106a2802002101200441186c210403400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200441686a22040d000b0b200341d4006a280200450d00200341d0006a28020010020b200341a0016a24000f0b41c1214133102d000b101c000b41f4214122102d000b4184c000103b000b810a03057f017e067f230041c0016b220224000240024002400240410810012203450d002002200336029001200242083702940120024190016a41004108102720022802900120022802980122036a42e4cab5d383cedcb73a3700002002200341086a36029801200241e0006a41086a2002280298013602002002200229039001370360410410012203450d002002200336029001200242043702940120024190016a410041041027200228029001220320022802980122046a20013600002002200441046a2201360298012002280294012105200241e0006a20022802682001102720022802602204200228026822066a20032001101e1a2002200620016a220136026802402005450d00200310020b2002280264210520024190016a41086a2203420037030020024200370390012004200120024190016a1003200241086a41086a20032903003703002002200229039001370308024002400240200241086a411041d02d410041001000417f460d002002200241086a3602182002411036021c200242003703900120024100200241086a411020024190016a41084100100022012001417f461b2201410820014108491b360220200141074d0d06200229039001210720024190016a200241186a10bd012002280290014106460d06200241e0006a41286a20024190016a41286a290300370300200241e0006a41206a20024190016a41206a290300370300200241e0006a41186a20024190016a41186a290300370300200241e0006a41106a20024190016a41106a290300370300200241e0006a41086a20024190016a41086a2903003703002002200229039001370360200241003a0030200241186a41086a2201200128020022012002280218200228021c200241306a41012001100041016a220141014b6a360200024020014102490d0020022d0030220141034f0d00200241386a2206200241ec006a290200370300200241c0006a2208200241e0006a41146a290200370300200241c8006a2209200241e0006a411c6a290200370300200241d0006a220a200241e0006a41246a290200370300200241d8006a220b200241e0006a412c6a2802003602002002200229026437033020022802602103200241286a41066a220c200241e0006a41066a2d00003a0000200241286a41046a220d200241e0006a41046a2f00003b01002002200228006036022820034106460d0720002003360208200020073703002000200229033037020c20002002280228360039200041386a20013a0000200041146a20062903003702002000411c6a2008290300370200200041246a20092903003702002000412c6a200a290300370200200041346a200b2802003602002000413d6a200d2f01003b00002000413f6a200c2d00003a000020050d020c030b200228026022010d0420022802642201450d0620014101460d05200241e8006a28020021030240200241e0006a41106a2802002201450d00200141186c21002003210103400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200041686a22000d000b0b200241ec006a280200450d06200310020c060b200041063602082005450d010b200410020b200241c0016a24000f0b101c000b20014103470d0120022d00644101470d01200241e8006a104b41c1214133102d000b200241ec006a280200450d00200241e8006a280200100241c1214133102d000b41c1214133102d000b080041fc31103b000b960201057f230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42e4cab5d3e38e9db93a3700002002200341086a360218200241086a200228021836020020022002290310370300410410012203450d002002200336021020024204370214200241106a41004104102720022802102203200228021822046a20013600002002200441046a220136021820022802142105200220022802082001102720022802002204200228020822066a20032001101e1a2002200620016a220136020802402005450d00200310020b2002280204210320002004200110da0102402003450d00200410020b200241206a24000f0b101c000bc70302057f017e230041206b220124000240410810012202450d002001200236021020014208370214200141106a4100410810272001280210200128021822026a42f3e885d3a3ac98b63a3700002001200241086a360218200141086a200128021836020020012001290310370300412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bc70302057f017e230041206b220124000240410810012202450d002001200236021020014208370214200141106a4100410810272001280210200128021822026a42f3e885d3c3cdd8b73a3700002001200241086a360218200141086a200128021836020020012001290310370300412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bb80201047f230041206b2202240020024100360208200242013703002001280200210320024100410410272002280200200228020822046a20033600002002200441046a2203360208200220034120102720022802002204200228020822056a22032001290004370000200341086a2001410c6a290000370000200341106a200141146a290000370000200341186a2001411c6a2900003700002002200541206a220136020802402001417f4c0d00024002402001450d002001100122030d01101c000b410121030b200220013602142002200336021020024100360218200241106a41002001102720022002280218220320016a360218200320022802106a20042001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200410020b200241206a24000f0b1019000bc808010d7f230041d0006b220124000240410810012202450d00200120023602082001420837020c200141086a4100410810272001280208200128021022026a42e4cab5d383cedcb73a3700002001200241086a360210200141c0006a41086a200128021036020020012001290308370340410410012202450d00200120023602082001420437020c200141086a41004104102720012802082203200128021022026a20003600002001200241046a2202360210200128020c2104200141c0006a20012802482002102720012802402205200128024822066a20032002101e1a2001200620026a220236024802402004450d00200310020b20012802442103200141c0006a41086a220442003703002001420037034020052002200141c0006a1003200141306a41086a200429030037030020012001290340370330200141306a4110100502402003450d00200510020b410810012202450d00200120023602082001420837020c200141086a4100410810272001280208200128021022026a42e4cab5d3e38e9db93a3700002001200241086a360210200141c0006a41086a200128021036020020012001290308370340410410012202450d00200120023602082001420437020c200141086a41004104102720012802082203200128021022026a20003600002001200241046a2202360210200128020c2104200141c0006a20012802482002102720012802402205200128024822066a20032002101e1a2001200620026a220236024802402004450d00200310020b20012802442103200141c0006a41086a220442003703002001420037034020052002200141c0006a1003200141306a41086a200429030037030020012001290340370330200141306a4110100502402003450d00200510020b200141086a20001042200128020c210720012802082108024020012802102202450d0020024105742109200141086a410472210420082102034020042002290000370000200441186a200241186a290000370000200441106a200241106a290000370000200441086a200241086a29000037000020012000360208410810012203450d022001200336024020014208370244200141c0006a410041081027200141c0006a41086a22032003280200220541086a360200200520012802406a42e4cab5d3e3ee9bba3a370000200141306a41086a2205200328020036020020012001290340370330200141c0006a200141086a10452001280244210a2001280240210b200141306a20052802002003280200220610272001280230220c2005280200220d6a200b2006101e1a2005200d20066a22063602000240200a450d00200b10020b2001280234210b2003420037030020014200370340200c2006200141c0006a10032005200329030037030020012001290340370330200141306a411010050240200b450d00200c10020b200241206a2102200941606a22090d000b0b02402007450d00200810020b200141d0006a24000f0b101c000b810604047f017e097f037e230041e0006b22012400200141c0006a41086a220242003703002001420037034041c7114107200141c0006a1003200141086a2002290300370300200120012903403703000240024002400240024002402001411041d02d410041001000417f460d0020014100360240410020014110200141c0006a41044100100022022002417f461b220341034d0d0320012802402204ad42287e2205422088a70d042005a72202417f4c0d052002450d012002100122060d02101c000b2000410036020820004208370200200141e0006a24000f0b410821060b200120043602142001200636021020014100360218024002402004450d002003410420034104491b2107200141c0006a41186a2108200141c0006a41086a2109410021034100210a034020084200370300200141c0006a41106a220b42003703002009420037030020014200370340410020014110200141c0006a41202007100022022002417f461b2202411f4d0d02200141206a41186a220c2008290300370300200141206a41106a220d200b290300370300200141206a41086a220e20092903003703002001200129034037032020014200370340410020014110200141c0006a41082002412020024120491b20076a2207100022022002417f461b220241074d0d02200a41016a210a2002410820024108491b2102200129034021052008200c290300370300200b200d2903003703002009200e29030037030020012001290320370340024020032001280214470d00200141106a1078200141106a41086a2802002103200128021021060b200220076a21072006200341286c6a220220012903403703002009290300210f200b29030021102008290300211120022005370320200241186a2011370300200241106a2010370300200241086a200f370300200141106a41086a200341016a2203360200200a2004490d000b200128021021060b2006450d012000200129021437020420002006360200200141e0006a24000f0b2001280214450d00200610020b41c1214133102d000b1056000b1057000bf81505037f017e087f017e047f230041f0006b22002400200041086a41086a220142003703002000420037030841c81d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350024002400240024002400240200041d0006a411041d02d410041001000417f460d00200042003703080240024002400240200041d0006a4110200041086a41084100100041016a41084d0d002000200029030842017c370340200041086a41086a220142003703002000420037030841c81d4107200041086a1003200041d0006a41086a2202200129030037030020002000290308370350200041d0006a4110200041c0006a41081004200142003703002000420037030841cf1d4107200041086a100320022001290300370300200020002903083703500240200041d0006a411041d02d410041001000417f460d0020004200370308200041d0006a4110200041086a41084100100041016a41084d0d02200020002903082203370330200041086a41086a220142003703002000420037030841c11d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350200041d0006a411041d02d410041001000417f460d0920004200370308200041d0006a4110200041086a41084100100041016a41084d0d0320032000290308510d0020002003370340200041086a41086a220142003703002000420037030841c11d4107200041086a1003200041d0006a41086a2202200129030037030020002000290308370350200041d0006a4110200041c0006a410810042000102e370340200142003703002000420037030841ba1d4107200041086a10032002200129030037030020002000290308370350200041d0006a4110200041c0006a410810040b200041086a41086a220142003703002000420037030841d61d4108200041086a1003200041d0006a41086a2001290300370300200020002903083703504100210102400240200041d0006a411041d02d410041001000417f460d00200042103702442000200041d0006a360240200041086a200041c0006a103a20002802082204450d0b200041106a2802002101200028020c21050c010b41012104410021050b2000410036024820004208370340200041c0006a20014105742206410575108501200028024821022000280240210702402006450d002007200241286c6a21012002200641606a4105766a2108200421020340200041086a41186a2209200241186a290000370300200041086a41106a220a200241106a290000370300200041086a41086a220b200241086a29000037030020002002290000370308200041086a10432103200041086a1044210c200041d0006a41186a220d2009290300370300200041d0006a41106a2209200a290300370300200041d0006a41086a220a200b290300370300200020002903083703502001200c20037c370300200141206a200d290300370300200141186a2009290300370300200141106a200a290300370300200141086a2000290350370300200141286a2101200241206a2102200641606a22060d000b200841016a21020b02402005450d00200410020b200041c0006a41086a20023602002000280244210820072002410041202002676b10c401200041086a41086a220142003703002000420037030841de1d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350200041d0006a411041d02d410041001000417f460d0520004100360208200041d0006a4110200041086a41044100100041016a41044d0d032000280208210b2000410036024820004201370340200041c0006a4100200241286c220941286d2201200b2001200b491b1086012000280248210a2000280240210e0240200b450d00200e200a4105746a2102200041086a41086a21062007210103402009450d01200041086a41206a200141206a290300370300200041086a41186a200141186a290300370300200041086a41106a200141106a2903003703002006200141086a290300370300200041d0006a41086a220d200641086a290000370300200041d0006a41106a2204200641106a290000370300200041d0006a41186a2205200641186a2900003703002000200129030037030820002006290000370350200241186a2005290300370000200241106a2004290300370000200241086a200d29030037000020022000290350370000200941586a2109200a41016a210a200241206a2102200141286a2101200b417f6a220b0d000b0b02402008450d00200710020b200041c8006a200a360200200aad2203421b88a70d062003420586a72201417f4c0d072000280244210f024002402001450d002001100122010d01101c000b410121010b2000200a36020c2000200136020820004100360210200041086a4100200a108601200020002802102201200a6a360210200028020820014105746a200e200a4105742202101e1a200041306a41086a200028021036020020002000290308370330200041c0006a200041306a10a2012000280248210620002802402101200041086a41086a220942003703002000420037030841e4084107200041086a1003200041d0006a41086a200929030037030020002000290308370350200041d0006a411020012006100402402000280244450d00200110020b02402000280234450d00200028023010020b410021062000410036024820004201370340200041c0006a4100200241057510860120002802482101200028024021100240200a4105742209450d00200041086a41186a220a200e41186a290000370300200041086a41106a220b200e41106a290000370300200041086a41086a220d200e41086a2900003703002000200e290000370308200141016a2104200e41206a2102200941606a2109201020014105746a210102400340200041d0006a41186a2205200a290300370300200041d0006a41106a2207200b290300370300200041d0006a41086a2208200d29030037030020002000290308370350200141186a2005290300370000200141106a2007290300370000200141086a2008290300370000200120002903503700002009450d01200a200241186a290000370300200b200241106a290000370300200d200241086a29000037030020002002290000370308200441016a2104200241206a2102200941606a2109200141206a21010c000b0b200421010b200041c0006a41086a20013602002000280244210d02402001450d002001410574210241002106200041086a41086a210a201021010340200041086a2006103220002802082209200a2802002001412010040240200028020c450d00200910020b200141206a2101200641016a2106200241606a22020d000b0b200041086a10302000280208220120002802101031210b0240200028020c450d00200110020b0240200b20064d0d00200041106a210a200621010340200041086a103020002802082202200a280200103121090240200028020c450d00200210020b200141016a21020240200920014d0d00200041086a2001103220002802082201200a2802001005200028020c450d00200110020b20022101200b2002470d000b0b200041086a103020002802102102200028020821012000200636025020012002200041d0006a410410040240200028020c450d00200110020b0240200d450d00201010020b0240200f450d00200e10020b200041f0006a24000f0b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b1066000b1067000b41f4214122102d000b41c1214133102d000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341286c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000bf40403067f017e027f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a2203410036020020014201370310200141106a41004120102720032003280200220241206a2206360200200220012802106a220241186a200041186a290000370000200241106a200041106a290000370000200241086a200041086a29000037000020022000290000370000200041206a2903002107200141106a20064108102720032003280200220641086a22023602002006200128021022086a20073700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220641003602002001200236022420012003360220200141206a41002002102720062006280200220920026a22033602002009200128022022066a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20062003101e1a2004200820036a220336020002402002450d00200610020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a220042003703002001420037032041c7114107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a104b200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020bd60403047f017e087f230041c0006b2203240020024103742104410021050240024002400240024002402002450d0020044103752206ad4202862207a722084100480d042007422088a74100470d04200810012209450d05200120046a220a2001460d010c020b4104210941002106200120046a220a2001470d010b4101210c410021040c010b20024103742108200a41786a210b410021022009210403402004200120026a41046a280200360200200441046a21042008200241086a2202470d000b200b20016b41037641016a21054101210c410021044100210803402001280200210d0240024002402004200822026b200141046a280200220b4f0d002002200b6a22082002490d052004410174220e20082008200e491b220e4100480d052004450d01200e1001220f450d06200f200c200e20042004200e4b1b101e210f200c1002200e2104200f210c0c020b2002200b6a21080c010b200e2104200e1001220c450d040b200c20026a200d200b101e1a200141086a2201200a470d000b0b200341206a41186a22014200370300200341206a41106a22024200370300200341206a41086a2208420037030020034200370320200c20092005200341206a1007200341186a2001290300370300200341106a2002290300370300200341086a20082903003703002003200329032037030002402004450d00200c10020b02402006450d00200910020b20002003290300370000200041186a200341186a290300370000200041106a200341106a290300370000200041086a200341086a290300370000200341c0006a24000f0b1041000b101c000b14002006200710082008ad10092009ad100900000b0b0041e70a4122100800000b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b1050000b05001041000ba60101047f200141086a28020021024104210302400240410410012204450d002004200236000020012802002105024002402002450d00200241046a22032002490d0320034108200341084b1b22034100480d03200310012201450d02200120042003410420034104491b101e1a200410020c010b200421010b200141046a20052002101e1a20002003360204200020013602002000200241046a3602080f0b101c000b1041000b0600200010010b0600200010020b2500200020002000200020002000200028020020002802042000280208200028020c104d000b080041a4321054000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1069000b05001041000b850101057f410421010240024002400240200041046a2802002202450d0020024180808010710d03200028020021012002410674220310012204450d0220042001200320024105742205200520034b1b101e1a20011002200241017421010c010b41800110012204450d010b20002004360200200041046a20013602000f0b101c000b106b000b05001041000b840101057f410421010240024002400240200041046a2802002202450d0020024180066c2201417f4c0d0320002802002103200110012204450d0220042003200120024180036c2205200520014b1b101e1a20031002200241017421010c010b41800c10012204450d010b20002004360200200041046a20013602000f0b101c000b106d000b05001041000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1070000b05001041000b850101057f410421010240024002400240200041046a2802002202450d00200241808080c000710d03200028020021012002410474220310012204450d0220042001200320024103742205200520034b1b101e1a20011002200241017421010c010b412010012204450d010b20002004360200200041046a20013602000f0b101c000b1072000b05001041000b05001041000b840101057f410421010240024002400240200041046a2802002202450d00200241b0016c2201417f4c0d0320002802002103200110012204450d02200420032001200241d8006c2205200520014b1b101e1a20031002200241017421010c010b41e00210012204450d010b20002004360200200041046a20013602000f0b101c000b1075000b05001041000b820101057f410421010240024002400240200041046a2802002202450d00200241306c2201417f4c0d0320002802002103200110012204450d02200420032001200241186c2205200520014b1b101e1a20031002200241017421010c010b41e00010012204450d010b20002004360200200041046a20013602000f0b101c000b1077000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1079000b05001041000b850101057f410421010240024002400240200041046a2802002202450d00200241808080c000710d03200028020021012002410474220310012204450d0220042001200320024103742205200520034b1b101e1a20011002200241017421010c010b412010012204450d010b20002004360200200041046a20013602000f0b101c000b107b000b05001041000b850101057f0240024002400240200041046a2802002201450d0020014180808010710d03200028020021022001410674220310012204450d0220042002200320014105742205200520034b1b101e1a20021002200141017421010c010b41800110012204450d01410421010b20002004360200200041046a20013602000f0b101c000b107d000b05001041000b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b107f000b05001041000b860101057f410421010240024002400240200041046a2802002202450d0020024180808020710d03200028020021012002410574220310012204450d0220042001200320024104742205200520034b1b101e1a20011002200241017421010c010b41c00010012204450d010b20002004360200200041046a20013602000f0b101c000b108101000b05001041000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341286c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42187e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341186c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000ba20103037f017e017f024002400240200041046a280200220220014f0d00200241017422032001200320014b1b2204ad420c7e2205a722014100480d012005422088a74100470d01024002402002450d0020002802002106200110012203450d042003200620012002410c6c2202200220014b1b101e1a200610020c010b200110012203450d030b20002003360200200041046a20043602000b0f0b1041000b101c000ba20103037f017e017f024002400240200041046a280200220220014f0d00200241017422032001200320014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402002450d0020002802002106200110012203450d04200320062001200241286c2202200220014b1b101e1a200610020c010b200110012203450d030b20002003360200200041046a20043602000b0f0b1041000b101c000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad4205862205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d0420022006200120034105742203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000b0e0002402001450d00200010020b0bc00d010f7f230041e0066b220424000240200128020422052f01be032206410a4b0d00200441a8036a41206a2207200341206a290300370300200441a8036a41186a2208200341186a290300370300200441a8036a41106a2209200341106a290300370300200441a8036a41086a220a200341086a290300370300200420032903003703a8032005200128020c220b4105746a220341e0036a200341c0036a220c2006200b6b41057410391a200341d8036a200241186a290000370000200341d0036a200241106a290000370000200341c8036a200241086a290000370000200c20022900003700002005200b41286c6a220341286a2003200541be036a22052f0100200b6b41286c10391a200341206a2007290300370300200341186a2008290300370300200341106a2009290300370300200341086a200a290300370300200320042903a803370300200520052f010041016a3b0100200441b3036a200141086a280000360000200041003a000020002003360260200041106a200128020c360000200420012900003700ab03200020042900a803370001200041086a200441af036a290000370000200441e0066a24000f0b2001280208210d2001280200210e024041a0061001220b450d00200b200441a8036a41b803101e220b41003b01be03200b41003602b803200b41c0036a200441c8006a41e002101e210f200441286a41186a220c20054198056a290200370300200441286a41106a221020054190056a290200370300200441286a41086a221120054188056a290200370300200441a8036a41086a2206200541f8016a290300370300200441a8036a41106a220720054180026a290300370300200441a8036a41186a220820054188026a290300370300200441a8036a41206a220920054190026a290300370300200420054180056a290200370328200420052903f0013703a803200f200541a0056a200541be036a220a2f010041796a2212410574101e210f200b20054198026a201241286c101e210b200a41063b0100200b20123b01be03200441186a200c290300370300200441106a2010290300370300200441086a201129030037030020042004290328370300200441c8006a41206a2009290300370300200441c8006a41186a2008290300370300200441c8006a41106a2007290300370300200441c8006a41086a2006290300370300200420042903a803370348200441003602242004200b36022002400240200128020c220141064b0d002009200341206a2903003703002008200341186a2903003703002007200341106a2903003703002006200341086a290300370300200420032903003703a803200520014105746a220341e0036a200341c0036a220b200a2f010020016b41057410391a200341d8036a200241186a290000370000200341d0036a200241106a290000370000200341c8036a200241086a290000370000200b20022900003700002005200141286c6a220341286a2003200a2f010020016b41286c10391a200341206a2009290300370300200341186a2008290300370300200341106a2007290300370300200341086a2006290300370300200320042903a803370300200a200a2f010041016a3b01000c010b200c200241186a2900003703002010200241106a2900003703002011200241086a290000370300200420022900003703282009200341206a2903003703002008200341186a2903003703002007200341106a2903003703002006200341086a290300370300200420032903003703a803200f20014105746a41c07e6a200f200141796a22024105746a2203200b2f01be0320026b41057410391a200341186a200c290300370000200341106a2010290300370000200341086a201129030037000020032004290328370000200b200141286c6a220141907e6a200141e87d6a2203200b2f01be0320026b41286c10391a200141887e6a2009290300370300200141807e6a2008290300370300200141f87d6a2007290300370300200141f07d6a2006290300370300200320042903a803370300200b200b2f01be0341016a3b01be030b200041013a000020002004290300370001200041246a200e360000200041286a20053600002000412c6a200d360000200041306a2004290320370300200041386a2004290348370300200041096a200441086a290300370000200041116a200441106a290300370000200041196a200441186a290300370000200041d0006a200441c8006a41186a290300370300200041c8006a200441c8006a41106a290300370300200041c0006a200441c8006a41086a290300370300200041d8006a200441e8006a29030037030020002003360260200441e0066a24000f0b101c000ba108010a7f230041c0026b220424000240200128020422052f018e022206410a4b0d00200441286a41086a2207200241086a28020036020020042002290200370328200441386a41086a2208200341086a280200360200200420032902003703382005200128020c2202410c6c2203410c6a22096a200520036a220a200620026b410c6c10391a200a41086a2007280200360200200a200429032837020020054184016a220620096a200620036a22032005418e026a22052f010020026b410c6c10391a200341086a200828020036020020032004290338370200200520052f010041016a3b0100200128020c210520004100360200200041106a2005360200200020062005410c6c6a360230200020012902003702042000410c6a200141086a280200360200200441c0026a24000f0b2001280208210b2001280200210c024041900210012206450d002006200441386a418802101e220641003b018e022006410036028802200441386a41086a220a200541d0006a280200360200200441286a41086a2207200541d4016a280200360200200420052902483703382004200541cc016a2902003703282006200541d4006a2005418e026a22082f010041796a2209410c6c220d101e22064184016a200541d8016a200d101e210d200841063b0100200620093b018e02200441086a200a28020036020020042004290338370300200441106a41086a200728020036020020042004290328370310200441003602242004200636022002400240200128020c220941064b0d002007200241086a28020036020020042002290200370328200a200341086a2802003602002004200329020037033820052009410c6c2201410c6a22036a200520016a220220082f010020096b410c6c10391a200241086a20072802003602002002200429032837020020054184016a220220036a200220016a220120082f010020096b410c6c10391a200141086a200a28020036020020012004290338370200200820082f010041016a3b01000c010b2007200241086a28020036020020042002290200370328200a200341086a2802003602002004200329020037033820062009410c6c220141b87f6a22026a2006200141ac7f6a22036a220120062f018e02200941796a22086b410c6c10391a200141086a200728020036020020012004290328370200200d20026a200d20036a220120062f018e0220086b410c6c10391a200141086a200a28020036020020012004290338370200200620062f018e0241016a3b018e020b200041013602002000200c36020420002001360230200041086a20053602002000410c6a200b360200200041106a20042903003702002000411c6a2004290310370200200041286a2004290320370200200041186a200441086a280200360200200041246a200441106a41086a280200360200200441c0026a24000f0b101c000bf307010d7f23004180036b220624000240200128020422072f018e02410a4b0d00200641c8006a41086a200241086a28020036020020062002290200370348200641f8006a41086a200341086a280200360200200620032902003703782001200641c8006a200641f8006a2004108b0120004100360200200020012902003702042000410c6a200141086a29020037020020064180036a24000f0b2001280208210820012802002109024041c0021001220a450d004100210b200a200641f8006a418802101e220a41003b018e02200a410036028802200a200629024837029002200a4198026a200641c8006a41086a220c290200370200200a41a0026a200641d8006a290200370200200a41a8026a200641e0006a290200370200200a41b0026a200641e8006a290200370200200a41b8026a200641f0006a290200370200200c200741d0006a28020036020020062007290248370348200641f8006a41086a220d200741d4016a2802003602002006200741cc016a290200370378200a200741d4006a2007418e026a220e2f0100220f41796a2210410c6c2211101e22124184016a200741d8016a2011101e1a20124190026a220a200741ac026a200f417a6a220f410274101e1a200e41063b0100201220103b018e020240200f450d000340200a280200220e200b3b018c02200e201236028802200a41046a210a200b41016a220b200f490d000b0b200641386a41086a220b200c280200360200200641286a41086a220a200d2802003602002006200629034837033820062006290378370328200641086a200b28020036020020062006290338370300200641106a41086a200a28020036020020062006290328370310200620093602242006201236022002400240200128020c220b41064b0d002006200736027c2006200936027820062008360280012006200b36028401200641386a41086a200241086a28020036020020062002290200370338200641c8006a41086a200341086a28020036020020062003290200370348200641f8006a200641386a200641c8006a2004108b010c010b2006201236027c200620093602782006200b41796a360284012006200641206a36028001200641386a41086a200241086a28020036020020062002290200370338200641c8006a41086a200341086a28020036020020062003290200370348200641f8006a200641386a200641c8006a2004108b010b2000200936020420004101360200200041086a20073602002000410c6a2008360200200041106a20062903003702002000411c6a2006290310370200200041286a2006290320370200200041186a200641086a280200360200200041246a200641106a41086a28020036020020064180036a24000f0b101c000b890301077f230041206b22042400200041046a22052802002106200028020c2107200441086a2208200141086a28020036020020042001290200370300200441106a41086a2209200241086a2802003602002004200229020037031020062007410c6c2202410c6a220a6a200620026a220120062f018e0220076b410c6c10391a200141086a20082802003602002001200429030037020020064184016a2201200a6a200120026a220220062f018e0220076b410c6c10391a200241086a200928020036020020022004290310370200200620062f018e0241016a3b018e0220064190026a2206200028020c22074102746a41086a2006200741016a22074102746a220620052802002f018e0220076b41027410391a200620033602000240200028020c220041016a220620052802002f018e0222034b0d0020004102744194026a21000340200641016a22072006490d012005280200220220006a2802002201200236028802200120063b018c02200041046a210020072106200720034d0d000b0b200441206a24000bd40c02117f017e230041c0076b220624000240200128020422072f01be03410a4b0d00200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a29030037030020062003290300370388042001200641f8006a20064188046a2004108d01200041003a0000200041046a20012902003702002000410c6a200141086a290200370200200641c0076a24000f0b2001280208210820012802002109024041d0061001220a450d004100210b200a20064188046a41b803101e220a41003b01be03200a41003602b803200a41c0036a200641f8006a419003101e210c200641286a41186a220d20074198056a290000370300200641286a41106a220e20074190056a290000370300200641286a41086a220f20074188056a290000370300200620074180056a29000037032820064188046a41206a221020074190026a29030037030020064188046a41186a221120074188026a29030037030020064188046a41106a221220074180026a29030037030020064188046a41086a2213200741f8016a290300370300200620072903f00137038804200c200741a0056a200741be036a22142f0100221541796a2216410574101e1a200a20074198026a201641286c101e220c41a0066a220a200741bc066a2015417a6a2215410274101e1a201441063b0100200c20163b01be0302402015450d000340200a2802002216200b3b01bc032016200c3602b803200a41046a210a200b41016a220b2015490d000b0b200641f8006a41206a220b2010290300370300200641f8006a41186a220a2011290300370300200641f8006a41106a22162012290300370300200641f8006a41086a22152013290300370300200641d8006a41086a2210200f290300370300200641d8006a41106a2211200e290300370300200641d8006a41186a2212200d290300370300200620062903880437037820062006290328370358200641086a41186a2012290300370300200641086a41106a2011290300370300200641086a41086a201029030037030020062006290358370308200641286a41206a200b290300370300200d200a290300370300200e2016290300370300200f201529030037030020062006290378370328200620093602542006200c36025002400240200128020c220b41064b0d002006200736025c20062009360258200620083602602006200b360264200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a2903003703002006200329030037038804200641d8006a200641f8006a20064188046a2004108d010c010b2006200c36025c200620093602582006200b41796a3602642006200641d0006a360260200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a2903003703002006200329030037038804200641d8006a200641f8006a20064188046a2004108d010b20002006290308370001200041246a2009360200200041286a20073602002000412c6a2008360200200041386a2006290328370300200041096a200641086a41086a290300370000200041116a200641086a41106a290300370000200041196a200641086a41186a290300370000200041c0006a200641286a41086a290300370300200041c8006a200641286a41106a290300370300200041d0006a200641286a41186a290300370300200041d8006a200641c8006a29030037030020062903502117200041013a0000200041306a2017370200200641c0076a24000f0b101c000bb804010b7f230041d0006b22042400200041046a22052802002106200028020c2107200441086a41186a2208200141186a290000370300200441086a41106a2209200141106a290000370300200441086a41086a220a200141086a29000037030020042001290000370308200441286a41206a2201200241206a290300370300200441286a41186a220b200241186a290300370300200441286a41106a220c200241106a290300370300200441286a41086a220d200241086a29030037030020042002290300370328200620074105746a220241e0036a200241c0036a220e20062f01be0320076b41057410391a200241d8036a2008290300370000200241d0036a2009290300370000200241c8036a200a290300370000200e20042903083700002006200741286c6a220241286a200220062f01be0320076b41286c10391a200241206a2001290300370300200241186a200b290300370300200241106a200c290300370300200241086a200d29030037030020022004290328370300200620062f01be0341016a3b01be03200641a0066a2206200028020c22024102746a41086a2006200241016a22024102746a220620052802002f01be0320026b41027410391a200620033602000240200028020c220241016a220620052802002f01be0322034b0d00200241027441a4066a21020340200641016a22012006490d012005280200220020026a280200220720003602b803200720063b01bc03200241046a210220012106200120034d0d000b0b200441d0006a24000b8614010e7f230041d0006b220424004100210502404101417f100d2206417f460d002004410036020820044204370300200441386a41ae0d4103102a200441106a41b10d410f102a200441cc006a2207200441106a41086a220528020036020020042004290310370244200441106a41106a2208200441386a41106a22092903003703002005200441386a41086a220a290300370300200420042903383703102004106a2004280204210b2004280200220c2004280208220d4105746a220e2004290310370200200e4100360218200e41086a2005290300370200200e41106a2008290300370200200e411c6a41013602002004200d41016a220d360208200441386a41ae0d4103102a200441106a41c00d410f102a2007200528020036020020042004290310370244200820092903003703002005200a290300370300200420042903383703100240200d200b470d002004106a200441086a280200210d2004280200210c2004280204210b0b200c200d4105746a220e2004290310370200200e4100360218200e41106a2008290300370200200e41086a2005290300370200200e411c6a4102360200200441086a200d41016a220e360200200441386a41ae0d4103102a200441106a41cf0d410c102a2007200528020036020020042004290310370244200820092903003703002005200a290300370300200420042903383703100240200e200b470d002004106a200441086a280200210e2004280204210b2004280200210c0b200c200e4105746a2208200429031037020020084100360218200841106a200441106a41106a220d290300370200200841086a200441106a41086a22052903003702002008411c6a4103360200200441086a2207200e41016a220e360200200441386a41ae0d4103102a200441106a41db0d410a102a200441cc006a2209200528020036020020042004290310370244200d200441386a41106a220a2903003703002005200441386a41086a220f290300370300200420042903383703100240200e200b470d002004106a2007280200210e2004280200210c2004280204210b0b200c200e4105746a2208200429031037020020084100360218200841106a200d290300370200200841086a20052903003702002008411c6a41043602002007200e41016a2208360200200441386a41ae0d4103102a200441106a41e50d4106102a2009200528020036020020042004290310370244200d200a2903003703002005200f2903003703002004200429033837031002402008200b470d002004106a200441086a28020021082004280200210c0b200c20084105746a2205200429031037020020054101360218200541106a200441106a41106a220b290300370200200541086a200441106a41086a2903003702002005411c6a2006360200200441086a200841016a2205360200200b200241086a290000370300200441106a41186a200241106a290000370300200441306a200241186a2900003703002004200336021020042006360214200420022900003703184104210702400240410410012210450d00201020053600000240024002402005450d00200c20054105746a2111200441c0006a210341042107410421080340200441386a200c105120042802382105410121064100210b024020032802002202450d0020024100480d042002210b200210012206450d050b200620052002101e210a0240200428023c450d00200510020b200441386a200c410c6a220f105120042802382109024002400240200b20026b2003280200220d490d002002200d6a2105200b2106200a220e20026a2009200d101e1a200428023c0d010c020b2002200d6a22052002490d05200b4101742206200520052006491b22064100480d0520061001210e0240200b450d00200e450d07200e200a2006200b200b20064b1b101e210b200a1002200b20026a2009200d101e1a200428023c0d010c020b200e450d06200e20026a2009200d101e1a200428023c450d010b200910020b2003410036020020044201370338200c41186a2802002102200441386a104f2004280238220d2003280200220b6a21090240024002400240024002400240024020024101470d00200941023a00002003200b41016a2202360200200c411c6a280200210c200428023c220920026b41034b0d01200241046a220b2002490d0b2009410174220a200b200b200a491b220a4100480d0b200a1001210b2009450d02200b450d0c200b200d200a20092009200a4b1b101e1a200d10020c030b200941013a00002003200b41016a2202360200200c411c6a280200210c200428023c220920026b41034b0d00200241046a220b2002490d0a2009410174220a200b200b200a491b220a4100480d0a200a1001210b2009450d03200b450d0b200b200d200a20092009200a4b1b101e1a200d10020c040b200d210b0c050b200b450d090b2004200a36023c0c020b200b450d070b2004200a36023c0b2004200b3602380b200b20026a200c3600002003200241046a220c360200200428023c210a0240024002400240200620056b200c4f0d002005200c6a22022005490d072006410174220d20022002200d491b22094100480d0720091001210d2006450d01200d450d08200d200e20092006200620094b1b101e2106200e1002200620056a200b200c101e1a200a0d020c030b2005200c6a210220062109200e220d20056a200b200c101e1a200a0d010c020b200d450d06200d20056a200b200c101e1a200a450d010b200b10020b0240024002400240200720086b20024f0d00200820026a22052008490d0720074101742206200520052006491b22064100480d072007450d0120061001220b450d08200b201020062007200720064b1b101e210b2010100220062107200b221020086a200d2002101e1a20090d020c030b200820026a2105201020086a200d2002101e1a20090d010c020b20062107200610012210450d06201020086a200d2002101e1a2009450d010b200d10020b20052108200f41146a220c2011470d000c020b0b410421050b41052000200120102005200441106a100e210202402007450d00201010020b02402002417f460d00410121050240200241eb0d4104200441106a100f2202450d002002417d470d04410021050b200428020021030240200441086a2802002202450d00200241057421062003210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241206a2102200641606a22060d000b0b2004280204450d0420031002200441d0006a240020050f0b200428020021060240200441086a2802002202450d00200241057421052006210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241206a2102200541606a22050d000b0b02402004280204450d00200610020b200441d0006a240041000f0b1041000b101c000b41fc3a103b000b200441d0006a240020050bbe0701047f23004190016b220424000240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042103200241146a2802002105200241246a2802002106200441186a4200370300200441106a4200370300200441086a42003703002004420037030002400240024002402001280204220720032004412010102202417e460d0020020d0a200441206a41186a200141206a290000370300200441206a41106a200141186a290000370300200441206a41086a200141106a290000370300200420012900083703202005450d01200441c0006a41186a4200370300200441c0006a41106a4200370300200441c0006a41086a42003703002004420037034020072006200441c0006a412010102202417e460d0320020d0c20012802002101412010012202450d0b2004200236028001200442203702840120044180016a41004120102720042802800120042802880122036a22022004290300370000200441e0006a41086a200341206a2203360200200241086a200441086a290300370000200241106a200441106a290300370000200241186a200441186a29030037000020042004290380013703602004200336028801412010012202450d0b2004200236028001200442203702840120044180016a41004120102720042802800120042802880122036a22022004290340370000200441f0006a41086a200341206a2203360200200241086a200441c0006a41086a290300370000200241106a200441c0006a41106a290300370000200241186a200441c0006a41186a290300370000200420042903800137037020042003360288012001200441206a200441e0006a200441f0006a1094010c020b2000410536020020044190016a24000f0b20012802002101412010012202450d092004200236024020044220370244200441c0006a4100412010272004280240200428024822036a2202200429030037000020044180016a41086a200341206a2203360200200241086a200441086a290300370000200241106a200441106a290300370000200241186a200441186a290300370000200420042903403703800120042003360248200441003602402001200441206a20044180016a200441c0006a1094010b2000410436020020044190016a24000f0b2000410536020020044190016a24000f0b41bc3441004100103c000b41ec3f103b000b41cc3441014101103c000b41ec3f103b000b41dc3441022003103c000b41ec3f103b000b41cc31103b000b101c000b41cc31103b000bc50301027f230041d0006b2204240002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320022802042103200241146a2802002102200441186a4200370300200441106a4200370300200441086a420037030020044200370300024002400240024002402001280204220520032004412010102203417e460d0020030d09200441206a41186a200141206a290000370300200441206a41106a200141186a290000370300200441206a41086a200141106a29000037030020042001290008370320200441c0006a2001280200200441206a2004412010950120042802402201450d0120042802442103200520022001200441c0006a41086a28020010112202417e460d0320020d0a2003450d02200110020c020b20004105360200200441d0006a24000f0b2005200241bd0e412010112202417e460d0220020d090b20004104360200200441d0006a24000f0b2000410536020002402003450d00200110020b200441d0006a24000f0b20004105360200200441d0006a24000f0b419c3441004100103c000b41ec3f103b000b41ac3441014101103c000b41ec3f103b000b41cc31103b000b41e431103b000b41e431103b000b861a05037f017e047f047e027f230041a0076b22042400024002400240024002400240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042105200241146a2802002106200241246a3502002107410021022004410036020820044201370300024002402006450d0020044100200610272004280200200441086a220828020022096a210a024020064101460d00410021020340200a20026a41003a0000200241026a2103200241016a220b210220032006490d000b2009200b6a2109200a200b6a210a0b200a41003a00002008200941016a2202360200200428020021030c010b410121030b024002400240200128020420052003200210102206417e460d0020060d09200441e8036a2002412020024120491b22066a41004100412020066b2006411f4b1b10171a200441e8036a20032006101e1a2002411f4d0d0b200441106a41186a200441e8036a41186a290000370300200441106a41106a200441e8036a41106a290000370300200441106a41086a200441e8036a41086a290000370300200420042900e803370310200441306a41186a200141206a290000370300200441306a41106a200141186a290000370300200441306a41086a200141106a29000037030020042001290008370330200128020022022802002206417f460d0a2002200641016a360000200241046a220a200441306a1096012206450d012006280200450d01200641086a290300210c0c020b200041053602002004280204450d0f0c0e0b2002280210200441306a200241146a280200280214111400210c0b200220022802002206417f6a360000200c2007540d092006450d072002200636000002400240200a200441106a1096012206450d002006280200450d00200641086a290300210d0c010b2002280210200441106a200241146a280200280214111400210d0b20022002280200417f6a360000024002400240410810012206450d00200420063602e803200442083702ec03200441e8036a41004108102720042802e80320042802f00322066a42f3e885d3a3ec9bb73a3700002004200641086a3602f00320044188016a41086a20042802f003360200200420042903e80337038801412010012206450d00200420063602e803200442203702ec03200441e8036a41004120102720042802e803220a20042802f003220b6a22062004290330370000200641086a200441306a41086a290300370000200641106a200441306a41106a290300370000200641186a200441306a41186a2903003700002004200b41206a22063602f00320042802ec03210520044188016a20042802900120061027200428028801220b20042802900122096a200a2006101e1a2004200920066a22063602900102402005450d00200a10020b200428028c01210a4200210e200441e8036a41086a22054200370300200442003703e803200b2006200441e8036a100320044188016a41086a2005290300370300200420042903e80337038801024020044188016a411041d02d410041001000417f460d00200442003703e80320044188016a4110200441e8036a41084100100041016a41084d0d0220042903e803210e0b0240200a450d00200b10020b410810012206450d00200420063602e803200442083702ec03200441e8036a41004108102720042802e80320042802f00322066a42f3e885d3a3ec9bb73a3700002004200641086a3602f00320044188016a41086a20042802f003360200200420042903e80337038801412010012206450d00200420063602e803200442203702ec03200441e8036a41004120102720042802e803220a20042802f003220b6a22062004290310370000200641086a200441106a41086a290300370000200641106a200441106a41106a290300370000200641186a200441106a41186a2903003700002004200b41206a22063602f00320042802ec03210520044188016a20042802900120061027200428028801220b20042802900122096a200a2006101e1a2004200920066a22063602900102402005450d00200a10020b200428028c01210a4200210f200441e8036a41086a22054200370300200442003703e803200b2006200441e8036a100320044188016a41086a2005290300370300200420042903e80337038801024020044188016a411041d02d410041001000417f460d00200442003703e80320044188016a4110200441e8036a41084100100041016a41084d0d0320042903e803210f0b0240200a450d00200b10020b200e200f560d0d200d20077c220e200d580d0e41a00610012206450d002006200441e8036a41b803101e220641003b01be03200641003602b803200641c0036a20044188016a41e002101e1a200441d0006a41086a220a4200370300200441e4006a41c43d360200200420063602542004410036025020042002360260200441d0006a41047221020240200441306a200441106a41201006450d002004417f360250200441e8036a41186a2206200441306a41186a290300370300200441e8036a41106a2209200441306a41106a290300370300200441e8036a41086a200441306a41086a290300370300200420042903303703e803200420023602702004200a2802003602682004200428025436026c20044188016a200441e8006a200441e8036a1097014101210a20044188016a41106a280200210b20044188016a410c6a280200210820044188016a41086a2802002105200428028c01211002402004280288014101470d00200441e8006a41186a2006290300370300200441e8006a41106a2009290300370300200441e8006a41086a200441e8036a41086a290300370300200420042903e8033703684100210a0b41900210012206450d01200c20077d21072006200441e8036a418802101e220641003b018e02200641003602880202400240200a450d0020042006360288012004420037028c012005200b41286c6a2106200441e8036a20044188016a109801200441e8036a1099010c010b20044184046a200441f0006a2903003702002004418c046a200441f8006a29030037020020044194046a20044180016a290300370200200420053602ec03200420103602e803200420083602f0032004200b3602f4032004200441d0006a410c6a3602f803200420042903683702fc03200441a8016a420037030020044100360298012004420037038801200420063602a401200441e8036a20044188016a109a0121060b20064201370300200620073703082004417f360250200441e8036a41186a2206200441106a41186a290300370300200441e8036a41106a2209200441106a41106a290300370300200441e8036a41086a2208200441106a41086a290300370300200420042903103703e803200420023602702004200441d0006a41086a2802003602682004200428025436026c20044188016a200441e8006a200441e8036a1097014101210a20044188016a41106a280200210b20044188016a410c6a280200211020044188016a41086a2802002105200428028c01211102402004280288014101470d00200441e8006a41186a2006290300370300200441e8006a41106a2009290300370300200441e8006a41086a2008290300370300200420042903e8033703684100210a0b41900210012206450d012006200441e8036a418802101e220641003b018e02200641003602880202400240200a450d0020042006360288012004420037028c012005200b41286c6a2106200441e8036a20044188016a109801200441e8036a1099010c010b20044184046a200441f0006a2903003702002004418c046a200441f8006a29030037020020044194046a20044180016a290300370200200420053602ec03200420113602e803200420103602f0032004200b3602f4032004200441d0006a410c6a3602f803200420042903683702fc03200441a8016a420037030020044100360298012004420037038801200420063602a401200441e8036a20044188016a109a0121060b200642013703002006200e370308200441003602500b200441e8036a200441d0006a200441106a109b0102400240024020042802f0032206450d0020042802e803220a2006200441106a200441d0006a108e01450d010b200441d8006a290300210720042802542102024020042802ec03450d0020042802e80310020b2002450d0120012802002106200420073702ec03200420023602e8032006200441e8036a109c010c010b024020042802ec03450d00200a10020b20044188016a41086a200241086a2802003602002004200229020037038801200441e8036a20044188016a109d01200441e8036a109e010b2000410436020020042802040d0f0c100b101c000b41c1214133102d000b41c1214133102d000b41ec3341004100103c000b41ec3f103b000b41fc3341014101103c000b41ec3f103b000b418c3441022003103c000b41ec3f103b000b41cc31103b000b109f01000b41ec3f103b000b418c3c103b000b41a43c103b000b41bc3c103b000b200310020b200441a0076a24000b811a06047f017e047f017e037f057e230022042105200441c0086b4160712204240002400240024002400240024002400240024002400240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042106200241146a2802002107200241246a3502002108410021022004410036020820044201370300024002402007450d0020044100200710272004280200200441086a2209280200220a6a210b024020074101460d00410021020340200b20026a41003a0000200241026a2103200241016a220c210220032007490d000b200a200c6a210a200b200c6a210b0b200b41003a00002009200a41016a2202360200200428020021030c010b410121030b024002400240200128020420062003200210102207417e460d0020070d09200441106a41186a200141206a290000370300200441106a41106a200141186a290000370300200441186a200141106a2900003703002004200129000837031020012802002207280200220b417f460d0a2007200b41016a360000200741046a200441106a109601220b450d01200b280200450d01200b41086a290300210d0c020b200041053602002004280204450d140c130b2007280210200441106a200741146a280200280214111400210d0b20072007280200417f6a360000200d2008540d08200441c8046a41186a220b4200370300200441c8046a41106a220c4200370300200441c8046a41086a22014200370300200442003703c80420032002200441c8046a1012200441e8016a41186a2206200b290300370300200441e8016a41106a220a200c290300370300200441e8016a41086a22092001290300370300200420042903c8043703e801200b2006290300370300200c200a29030037030020012009290300370300200420042903e8013703c80441201001220e450d0d2004200e3602e801200442203702ec01200441e8016a41004120102720042802e80120042802f001220f6a220e20042903c80437000020044180086a41086a2210200f41206a220f360200200e41086a2001290300370000200e41106a200c290300370000200e41186a200b290300370000200420042903e801370380082004200f3602f00120044180086a20102802004120102720102010280200220e41206a220f360200200e20042802800822106a220e2004290310370000200e41086a200441106a41086a290300370000200e41106a200441106a41106a290300370000200e41186a200441106a41186a290300370000200b4200370300200c420037030020014200370300200442003703c8042010200f200441c8046a10122006200b290300370300200a200c29030037030020092001290300370300200420042903c8043703e801200441306a41186a2006290300370300200441306a41106a200a290300370300200441306a41086a2009290300370300200420042903e8013703300240200428028408450d00201010020b200441306a200441106a41201006450d1041a0061001220b450d0d200b200441c8046a41b803101e220b41003b01be03200b41003602b803200b41c0036a200441e8016a41e002101e1a2004200b36025020044200370254200441306a200441106a41201006450d09200441a0016a41186a200441306a41186a290300370300200441a0016a41106a200441306a41106a290300370300200441a0016a41086a200441306a41086a290300370300200420042903303703a0012002417f4c0d0a024002402002450d0020021001220b0d010c0f0b4101210b0b200420023602cc042004200b3602c804200441003602d004200441c8046a410020021027200420042802d004220b20026a3602d004200b20042802c8046a20032002101e1a200441e8016a41086a220c20042802d004360200200420042903c8043703e80141900210012202450d0d200441d0006a41086a210b2002200441c8046a418802101e220241003b018e022002410036028802200420083703c801200442013703c001200420023602dc01200420042903e8013703d0012004200c2802003602d801200441c8046a41186a2202200441a0016a41186a290300370300200441c8046a41106a220c200441a0016a41106a290300370300200441c8046a41086a200441a0016a41086a290300370300200420042903a0013703c804200420042802543602b008200420042802503602b4082004200441d0006a3602b808200441e8016a200441b0086a200441c8046a109701200441a0086a41086a200441f4016a290200370300200420042902ec013703a008024020042802e8014101470d0020044180086a41186a2201200229030037030020044180086a41106a2202200c29030037030020044180086a41086a220c200441c8046a41086a2206290300370300200420042903c80437038008200441b0086a41086a200441a0086a41086a220a290300370300200420042903a0083703b0082006200a290300370300200441e4046a200c290300370200200441ec046a2002290300370200200441f4046a20012903003702002004200b3602d804200420042903a0083703c80420042004290380083702dc0420044188026a4200370300200441e8016a41186a20042903d801370300200420042903d0013703f801200420042903c8013703f001200420042903c0013703e801200441c8046a200441e8016a109a011a2004420237036041010d0d0c0c0b200441c8046a41086a200441a0086a41086a290300370300200420042903a0083703c80420042802cc0420042802d40441286c6a22022900102112200220042903d00137001020022900082113200220042903c80137000820022900002114200220042903c0013700002002290020211120024200370020200241186a22022900002115200220042903d8013700002004200b3602d8042004201237037020042013370368200420143703602004201537037820144202520d0b0c0c0b41bc3341004100103c000b41ec3f103b000b41cc3341014101103c000b41ec3f103b000b41dc3341022003103c000b41ec3f103b000b41cc31103b000b109f01000b41943d103b000b41ac3d103b000b1019000b024020042802702202450d002004280274450d00200210020b200420113702ec012004200428027c3602e801200441c8046a200441e8016a109801200441c8046a1099010b200441a0016a41186a220c200441106a41186a290300370300200441a0016a41106a2201200441106a41106a290300370300200441a0016a41086a2206200441106a41086a290300370300200420042903103703a00141900210012202450d002002200441c8046a418802101e220241003b018e0220024100360288022004200d20087d3703c801200442013703c001200441003602d001200420023602dc01200441c8046a41186a200c290300370300200441c8046a41106a2001290300370300200441c8046a41086a2006290300370300200420042903a0013703c804200420042802543602b008200420042802503602b4082004200441d0006a3602b808200441e8016a200441b0086a200441c8046a109701200441a0086a41086a200441f4016a290200370300200420042902ec013703a0080240024020042802e8014101470d0020044180086a41186a2202200441c8046a41186a29030037030020044180086a41106a220c200441c8046a41106a29030037030020044180086a41086a2201200441c8046a41086a2206290300370300200420042903c80437038008200441b0086a41086a200441a0086a41086a220a290300370300200420042903a0083703b0082006200a290300370300200441e4046a2001290300370200200441ec046a200c290300370200200441f4046a20022903003702002004200b3602d804200420042903a0083703c80420042004290380083702dc0420044188026a4200370300200441e8016a41186a20042903d801370300200420042903d0013703f801200420042903c8013703f001200420042903c0013703e801200441c8046a200441e8016a109a011a200442023703800141010d010c030b200441c8046a41086a200441a0086a41086a290300370300200420042903a0083703c80420042802cc0420042802d40441286c6a22022900102111200220042903d00137001020022900082114200220042903c8013700082002290000210d200220042903c0013700002002290020210820024200370020200241186a22022900002112200220042903d8013700002004200b3602d804200420113703900120042014370388012004200d370380012004201237039801200d4202520d020b20042802502202450d030c020b101c000b02402004280290012202450d00200428029401450d00200210020b200420083702ec012004200428029c013602e801200441c8046a200441e8016a109801200441c8046a10990120042802502202450d010b200420042902543702cc04200420023602c8042007200441c8046a109c010b200041043602002004280204450d010b200310020b200524000bd41003027f017e077f230041c0006b22042400024020010d0041d02d2100410021010b20044100360200024002400240024002400240200141034d0d002004200028000022053602002005ad2206421c88a70d012006420486a72207417f4c0d02024002402007450d002007100122080d010c070b410821080b20042005360204200420083602002004410036020802400240024002402005450d002001417c6a2101200041046a2107200441086a2109410021004100210a0340200441003a0030200441306a20072001410047220b101e1a2001450d0320042d0030417f6a220c41034b0d032001200b6b21012007200b6a210702400240024002400240024002400240200c0e0403010400030b20044200370330200441306a20072001410820014108491b220b101e1a200141074d0d0a2007200b6a2107200429033021064103210c0c010b20044200370330200441306a20072001410820014108491b220b101e1a200141074d0d092007200b6a2107200429033021064101210c0b200a41016a210a20002004280204470d040c030b20044100360230200441306a20072001410420014104491b220b101e1a200141034d0d072007200b6a21072004280230210d4100210c0c010b20044100360230200441306a20072001410420014104491b220b101e1a200141034d0d062007200b6a21072004280230210d4102210c0b200a41016a210a20002004280204470d010b200410800120092802002100200428020021080b2001200b6b2101200820004104746a220b200d360204200b200c360200200b41086a20063703002009200041016a2200360200200a2005490d000b20042802042107200428020022080d010c030b41002100410021072008450d020b20042002200820002003110700200441003602182004420137031020042802002101200441106a107e2004280210200428021822006a210a024020014105470d00200a41013a0000200441186a2201200041016a2200360200200441106a20004100102720012802002101200428021021000c070b200a41003a0000200441106a41086a200041016a22003602002004410036022820044201370320200441206a104f2004280220220b2004280228220a6a210c0240024020014104470d00200c41003a0000200441206a41086a200a41016a220a3602000c010b200c41013a0000200441206a41086a200a41016a36020020044100360238200442013703300240024002400240024002400240024002400240024002400240024002400240024002400240200141037122014101460d00024020014102460d0020014103470d02200441086a2903002106200441306a104f20042802302205200441306a41086a220b280200220c6a41043a0000200b200c41016a22013602002004280234220d20016b41074b0d03200141086a220a2001490d1a200d4101742209200a200a2009491b22094100480d1a20091001210a200d450d07200a450d1c200a20052009200d200d20094b1b101e1a200510020c080b20042802042102200441306a104f20042802302205200441386a220b280200220c6a41033a0000200b200c41016a22013602002004280234220d20016b41034b0d03200141046a220a2001490d19200d4101742209200a200a2009491b22094100480d1920091001210a200d450d09200a450d1b200a20052009200d200d20094b1b101e1a200510020c0a0b200441086a2903002106200441306a104f20042802302205200441306a41086a220b280200220c6a41023a0000200b200c41016a22013602002004280234220d20016b41074b0d03200141086a220a2001490d18200d4101742209200a200a2009491b22094100480d1820091001210a200d450d0b200a450d1a200a20052009200d200d20094b1b101e1a200510020c0c0b20042802042102200441306a104f20042802302205200441386a220b280200220c6a41013a0000200b200c41016a22013602002004280234220d20016b41034b0d03200141046a220a2001490d17200d4101742209200a200a2009491b22094100480d1720091001210a200d450d0d200a450d19200a20052009200d200d20094b1b101e1a200510020c0e0b2005210a0c050b2005210a0c070b2005210a0c090b2005210a0c0b0b200a450d140b200420093602342004200a3602300b200b200c41096a360200200a20016a20063700000c090b200a450d110b200420093602342004200a3602300b200b200c41056a360200200a20016a20023600000c060b200a450d0e0b200420093602342004200a3602300b200b200c41096a360200200a20016a20063700000c030b200a450d0b0b200420093602342004200a3602300b200b200c41056a360200200a20016a20023600000b200428023421092004280230210c02400240024002402004280224220d200441206a41086a28020022016b200441306a41086a280200220a4f0d002001200a6a220b2001490d0a200d4101742205200b200b2005491b22054100480d0a200d450d012004280220210220051001220b450d0c200b20022005200d200d20054b1b101e1a200210020c020b2004280220210b0c020b20051001220b450d0a0b200420053602242004200b3602200b200441286a220d2001200a6a360200200b20016a200c200a101e1a02402009450d00200c10020b200d280200210a2004280220210b0b2004280224210c200441106a2000200a1027200441186a22012001280200220d200a6a2201360200200d200428021022006a200b200a101e1a200c450d06200b10020c060b2004280204450d00200428020010020b41af1b41f000102d000b200420002001101e1a41af1b41f000102d000b105a000b105b000b1041000b2000ad4220862001ad84210602402007450d00200810020b200441c0006a240020060f0b101c000ba30501097f230041e0026b220424000240024020002802000d002000417f360000200441306a41186a2205200141186a290000370300200441306a41106a2206200141106a290000370300200441306a41086a2207200141086a290000370300200420012900003703302004200041046a3602182004200041086a28020036021020042000280204360214200441b8026a200441106a200441306a10970141012108200441b8026a41106a2802002109200441c4026a280200210a200441b8026a41086a280200210b20042802bc02210c024020042802b8024101470d00200441106a41186a2005290300370300200441106a41106a2006290300370300200441106a41086a200729030037030020042004290330370310410021080b41900210012201450d012001200441306a418802101e220141003b018e022001410036028802024002402008450d00200420013602b802200442003702bc02200b200941286c6a2101200441306a200441b8026a109801200441306a1099010c010b200441cc006a200441186a290300370200200441d4006a200441206a290300370200200441dc006a200441286a2903003702002004200b3602342004200c3602302004200a3602382004200936023c20042000410c6a36024020042004290310370244200441d8026a4200370300200441003602c802200442003703b802200420013602d402200441306a200441b8026a109a0121010b200441b8026a41086a200241086a280200360200200420022902003703b802200441306a41086a200341086a2802003602002004200329020037033020042001411c6a200441b8026a200441306a10d20102402004280200450d0020042802042201450d00200441086a280200450d00200110020b20004100360000200441e0026a24000f0b10c301000b101c000be60602097f017e230041206b22052400024002400240024020012802002206417f460d002001200641016a360000200141046a20021096012206450d02200628022021072006411c6a28020022082f018e022209450d01410f210a0c030b109f01000b4101210a0c010b4116210a0b034002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200a0e170a090c0d160e0f1314151012110708000102030406050b0b0b20082009410c6c6a210b41002109200821064110210a0c280b20032006280200200641086a280200220c2004200c2004491b1006220d450d174111210a0c270b200d411e76417f73410271417f6a220c450d254112210a0c260b200c4101470d194113210a0c250b200941016a21092006410c6a2206200b470d170c160b4100417f4101200c20044b1b200c2004461b220c0d214114210a0c230b200541013a000c20052d000c4101710d11410d210a0c220b2007450d1e410e210a0c210b2007417f6a2107200820094102746a4190026a28020022082f018e0222090d0e4101210a0c200b200541003a000c20052d000c410171450d140c150b2008418e026a2f010021090c0f0b20002001280210200220032004200141146a28020028020c1113000c190b20082009410c6c6a22064184016a2802002204450d134103210a0c1c0b2006418c016a2802002206417f4c0d134105210a0c1b0b2006450d134106210a0c1a0b2006100122090d13410a210a0c190b101c000b410021090c120b410121094107210a0c160b200520063602142005200936021020054100360218200541106a41002006102720052005280218220c20066a360218200c200528021022096a20042006101e1a2005290214210e4108210a0c150b2000200e370204200020093602004109210a0c140b20012001280200417f6a360000200541206a24000f0b1019000b410f210a0c110b4102210a0c100b4115210a0c0f0b4101210a0c0e0b4100210a0c0d0b4110210a0c0c0b4101210a0c0b0b410d210a0c0a0b4102210a0c090b410c210a0c080b4104210a0c070b410b210a0c060b4107210a0c050b4108210a0c040b4109210a0c030b4116210a0c020b4112210a0c010b4114210a0c000b0bbe0301087f230041106b220224002000280204210302400240200028020022042f01be0322050d00410a21060c010b410421060b037f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020060e0c050a0800010203040709060b0b0b2003417f6a2103200420054102746a41a0066a28020022042f01be032205450d0b410421060c150b20054105742107200441c0036a210041002105410521060c140b20012000412010062208450d0b410621060c130b4100210920084100480d11410721060c120b200041206a2100200541016a2105200741606a22070d0c410021060c110b200441be036a2f01002105200241003a000c20022d000c410171450d090c0a0b41002109410821060c0f0b200220093a000c20022d000c4101710d0a410221060c0e0b20030d0b0c0a0b200241013a000c20022d000c410171450d03410121060c0c0b200241106a24002004200541286c6a0f0b200241106a240041000f0b410a21060c090b410221060c080b410921060c070b410221060c060b410121060c050b410521060c040b410121060c030b410b21060c020b410321060c010b410821060c000b0bad04010c7f230041106b220324002001280208210420012802002105200141086a2106200141046a210702400240200128020422082f01be0322090d00410a210a0c010b4104210a0b03400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200a0e0c050a0800010203040709060b0b0b20012005417f6a2205360200200620043602002007200820094102746a41a0066a280200220836020020082f01be032209450d0b4104210a0c150b2009410574210b200841c0036a210c410021094105210a0c140b2002200c41201006220d450d0b4106210a0c130b4100210e200d4100480d114107210a0c120b200c41206a210c200941016a2109200b41606a220b0d0c4100210a0c110b200841be036a2f01002109200341003a000c20032d000c410171450d090c0a0b4100210e4108210a0c0f0b2003200e3a000c20032d000c4101710d0a4102210a0c0e0b20050d0b0c0a0b200341013a000c20032d000c410171450d034101210a0c0c0b2000200536020420004100360200200041086a20083602002000410c6a2004360200200041106a2009360200200341106a24000f0b20004201370200200041086a20083602002000410c6a2004360200200041106a2009360200200341106a24000f0b410a210a0c090b4102210a0c080b4109210a0c070b4102210a0c060b4101210a0c050b4105210a0c040b4101210a0c030b410b210a0c020b4103210a0c010b4108210a0c000b0bb20301097f23002102200141046a280200210320012802082104200241306b220241186a2205200128020022063602002002411c6a2207410036020020022003360214200220034100472208360210024002402003450d002003417f6a2101200241106a41047221092006210a03402005200a28029002220a3602002007410036020020022001360214200220014100473602102001417f6a2201417f470d000c020b0b200241106a41047221090b200241086a200941086a28020036020020022009290200370300200241106a41086a220a20063602002002411c6a22054100360200200220033602142002200836021002402003450d002003417f6a21010340200a200620062f018e024102746a4190026a28020022063602002005410036020020022001360214200220014100473602102001417f6a2201417f470d000b0b200241106a41086a28020022012f018e0221062002411c6a280200210a200228021421052000410036020c20002005360210200041146a2001360200200041186a200a3602002000411c6a200636020020002004360220200041086a200241086a280200360200200020022903003702000bf00202067f027e230041206b22012400200141086a200010ca01024020012802082202450d00200141186a2103200141146a2104034020032802002105200428020021060240200128020c450d00200210020b02402006450d002005450d00200610020b200141086a200010ca01200128020822020d000b0b2000280208210320002802002102024002400240024020002802042206280288022205450d00200632018c0221072001200536020c2001200241016a2202360208200120074220862003ad842207370310200610022005450d020c010b2003ad210741002105200610024100450d010b024002402005280288022206450d00200532018c0221082001200636020c2001200241016a36020820012008422086200742ffffffff0f83843703102005100220060d010c020b41002106200510024100450d010b2006210503402006280288022206450d02200510022006210520060d000b0b200141206a24000f0b20051002200141206a24000bcc0b01117f230041c0076b2202240020002802102203200328020041016a360200200241d8006a41086a200041086a29020037030020022000290200370358200241206a41186a22032000412c6a290000370300200241206a41106a2204200041246a290000370300200241206a41086a22052000411c6a29000037030020022000290014370320200241f8006a41206a200141206a290300370300200241f8006a41186a200141186a290300370300200241f8006a41106a200141106a290300370300200241f8006a41086a200141086a2903003703002002200129030037037820024188046a200241d8006a200241206a200241f8006a108801024002400240024002400240024020022d008804450d00200241086a20024191046a290000370300200241106a20024199046a290000370300200241186a200241a1046a2900003703002005200241c8046a2903003703002004200241d0046a2903003703002003200241d8046a290300370300200241206a41206a200241e0046a29030037030020022002290089043703002002200241c0046a290300370320200241bc046a2802002106200241b8046a280200210420022802e804210720024188046a412c6a280200210320024188046a41246a2802002100200241b0046a28020022012802b8032205450d0120012f01bc0321082002200536027c2002200041016a2209360278200220033602800120022008360284014100450d020c030b20024188046a41106a280200210020024188046a41086a2802002101200241c0076a24002001200041286c6a0f0b2002200136027c2002200036027820022003360280012003210941010d010b200241c0046a210020024188046a4101722101200241d4006a210a200241bc046a210b200241b8046a210c200241b4046a210d200241b0046a210e200241ac046a210f0340200241c8006a41086a2003360200200a20083602002002200536024c20022009360248200241d8006a41186a200241186a2203290300370300200241d8006a41106a200241106a2205290300370300200241d8006a41086a200241086a220829030037030020022002290300370358200241f8006a41206a200241206a41206a2209290300370300200241f8006a41186a200241206a41186a2210290300370300200241f8006a41106a200241206a41106a2211290300370300200241f8006a41086a200241206a41086a22122903003703002002200229032037037820024188046a200241c8006a200241d8006a200241f8006a20042006108c0120022d008804450d0302402008200141086a2900003703002005200141106a2900003703002003200141186a2900003703002012200041086a2903003703002011200041106a2903003703002010200041186a2903003703002009200041206a2903003703002002200129000037030020022000290300370320200c2802002104200d2802002103200e28020022082802b8032205450d00200b2802002106200f28020041016a210920082f01bc0321080c010b0b41d00610012200450d030c010b2009210341d00610012200450d020b200020024188046a41b803101e220041003b01be03200041003602b803200041c0036a200241f8006a419003101e2101200020032802003602a006200320003602002003200328020441016a36020420002802a006220341003b01bc03200320003602b803200120002f01be0322034105746a22012002290300370000200141186a200241186a290300370000200141106a200241106a290300370000200141086a200241086a2903003700002000200341286c6a220141106a200241206a41106a290300370300200141086a200241206a41086a29030037030020012002290320370300200141206a200241206a41206a290300370300200141186a200241206a41186a290300370300200041a0066a200341016a22014102746a2004360200200020002f01be0341016a3b01be03200420013b01bc03200420003602b8030b200241c0076a240020070f0b101c000bf10101047f230041106b220324000240024020012802002204417f460d002001200441016a3600000240024002400240200141046a20021096012204450d0020042802102205450d0020042802182202417f4c0d052002450d012002100122040d02101c000b200020012802102002200141146a2802002802101106000c020b410121040b200320023602042003200436020020034100360208200341002002102720032003280208220420026a3602082004200328020022066a20052002101e1a20002003290204370204200020063602000b20012001280200417f6a360000200341106a24000f0b109f01000b1019000b890b07027f017e107f017e047f017e027f230041f0026b22022400024020002802000d002000417f36000020024180016a41086a2203200141086a2802003602002002200129020037038001200220024180016a109d01200241286a41206a200241206a280200360200200241286a41186a200241186a290300370300200241286a41106a200241106a290300370300200241286a41086a200241086a2903003703002002200229030037032820024180016a200241286a10c801024020022903a00122044202510d002000410c6a2105200041046a2106200241f8016a411c6a210720024180016a41146a2108200241bc016a2109200241a0026a410c6a210a20024180016a41286a210b200241b0016a210c200241b4016a210d200241b8016a210e20024180016a41206a210f0340200241e0006a41186a220120024180016a41186a2210290300370300200241e0006a41106a221120024180016a41106a2212290300370300200241e0006a41086a22132003290300370300200241d0006a41086a2214200941086a280200360200200220022903800137036020022009290200370350200b2903002115200c2802002116200d2802002117200e2802002118200241c8016a41086a22192014280200360200200220022903503703c8012010200129030037030020122011290300370300200320132903003703002002200229036037038001200241b8026a41086a220120063602002002200041086a2802003602b802200220062802003602bc02200241f8016a200241b8026a20024180016a1097010240024020022802f8014101470d00200241d8016a41086a22012003290300370300200241d8016a41106a22112012290300370300200241d8016a41186a2213201029030037030020022002290380013703d80120022902fc01211a2003200241f8016a410c6a29020037030020122005360200200820022903d801370200200841086a2001290300370200200841106a2011290300370200200841186a20132903003702002002201a37038001200241f8016a41086a2015370300200241f8016a41106a2016360200200241f8016a41146a2017360200200241f8016a41186a2018360200200720022903c801370200200741086a2019280200360200200220043703f80120024180016a200241f8016a109a011a0c010b200241f8016a41086a2214280200200241f8016a41106a221b28020041286c6a211102402004500d0020112004370300201120153703080b024002402016450d00201141106a211302402011280210221c450d00201341046a280200450d00201c10020b201320173602042013201636020020112018360218410121130c010b410021130b20032019280200360200200220022903c80137038001200241f8016a20024180016a109801200f200241f8016a41206a2802003602002010200241f8016a41186a2903003703002012201b29030037030020032014290300370300200220022903f80137038001200241b8026a20024180016a10ca01024020022802b802450d002011411c6a21100340200241a0026a41106a200241b8026a41106a290300370300200241a0026a41086a22122001290300370300200220022903b8023703a002200241e0026a41086a2012280200360200200220022903a0023703e0022001200a41086a2802003602002002200a2902003703b802200241d0026a2010200241e0026a200241b8026a10d201024020022802d002450d0020022802d4022212450d00200241d0026a41086a280200450d00201210020b200241b8026a20024180016a10ca0120022802b8020d000b0b20024180016a1099012013201645720d002017450d00201610020b20024180016a200241286a10c801200f29030022044202520d000b0b200241286a109e0120004100360000200241f0026a24000f0b10c301000bb20301097f23002102200141046a280200210320012802082104200241306b220241186a2205200128020022063602002002411c6a2207410036020020022003360214200220034100472208360210024002402003450d002003417f6a2101200241106a41047221092006210a03402005200a2802a006220a3602002007410036020020022001360214200220014100473602102001417f6a2201417f470d000c020b0b200241106a41047221090b200241086a200941086a28020036020020022009290200370300200241106a41086a220a20063602002002411c6a22054100360200200220033602142002200836021002402003450d002003417f6a21010340200a200620062f01be034102746a41a0066a28020022063602002005410036020020022001360214200220014100473602102001417f6a2201417f470d000b0b200241106a41086a28020022012f01be0321062002411c6a280200210a200228021421052000410036020c20002005360210200041146a2001360200200041186a200a3602002000411c6a200636020020002004360220200041086a200241086a280200360200200020022903003702000bc70302077f027e23004190016b220124002001200010c801024020012903204202510d00200141c8006a4104722102200141386a2103200141346a2104200141306a2105200141206a21060340200141c8006a41086a200341086a29030037030020012003290300370348024020052802002207450d002004280200450d00200710020b20014180016a41086a200241086a2802003602002001200229020037038001200141d8006a20014180016a109801200141d8006a1099012001200010c80120062903004202520d000b0b20002802082105200028020021070240024002400240200028020422022802b8032203450d0020023201bc032108200120033602042001200741016a2207360200200120084220862005ad842208370308200210022003450d020c010b2005ad210841002103200210024100450d010b0240024020032802b8032202450d0020033201bc032109200120023602042001200741016a36020020012009422086200842ffffffff0f83843703082003100220020d010c020b41002102200310024100450d010b20022103034020022802b8032202450d02200310022002210320020d000b0b20014190016a24000f0b2003100220014190016a24000b080041ec3a1054000b950301067f230041106b22022400200241003a000b2002410b6a20012802002203200128020422044100472205101e1a2001200420056b22063602042001200320056a22053602000240024002400240024002402004450d0020022d000b2204450d0120044101470d022002410036020c2002410c6a20052006410420064104491b2204101e1a200141046a200620046b3602002001200520046a360200200641034d0d03200041046a200228020c360200200041023a0000200241106a24000f0b200041033a0000200241106a24000f0b200110212203450d0320022003360204200141046a22062802002104200241003a000b2002410b6a2001280200220720044100472205101e1a2006200420056b3602002001200720056a3602002004450d0220022d000b220141034f0d02200020013a0001200041013a0000200041046a2003360200200241106a24000f0b200041033a0000200241106a24000f0b200041033a0000200241106a24000f0b200041033a0000200241046a1022200241106a24000f0b200041033a0000200241106a24000bc905020f7f037e23004180016b22022400200241e0006a10302002280260220320022802681031210402402002280264450d00200310020b200241003602082002420137030020024100200410860120022802082105024002402004450d00200228020020054105746a2103200241306a41086a2106200241106a41186a2107200241106a41106a2108410021090340200241306a200910320240024002402002280230220a2006280200220b41d02d410041001000417f470d002007420037030020084200370300200241106a41086a420037030020024200370310200941016a210920022802340d010c020b200241e0006a41186a220c4200370300200241e0006a41106a220d4200370300200241e0006a41086a220e420037030020024200370360200a200b200241e0006a412041001000220b417f460d04200b411f4d0d04200241c0006a41186a220b200c290300370300200241c0006a41106a220f200d290300370300200241c0006a41086a2210200e29030037030020022002290360370340200c200b290300370300200d200f290300370300200e201029030037030020022002290340370360200b200c2903002211370300200f200d29030022123703002010200e2903002213370300200241106a41086a2013370300200820123703002007201137030020022002290360221137034020022011370310200941016a21092002280234450d010b200a10020b20032002290310370000200341186a2007290300370000200341106a2008290300370000200341086a200241106a41086a290300370000200341206a210320092004490d000b200520096a21050b200241086a2005360200200241c0006a41086a200536020020022002290300370340200241e0006a200241c0006a10a2012002350268422086200235026084211102402002280244450d00200228024010020b20024180016a240020110f0b41eb1a4133102d000bee0201077f230041206b22022400200141086a28020021032002410036021820024201370310200241106a4100410410272002280210200228021822046a20033600002002200441046a360218200241086a2205200228021836020020022002290310370300024002402003450d0020012802002101200341057421060340412010012203450d022002200336021020024220370214200241106a410041201027200241106a41086a22032003280200220441206a22033602002004200228021022076a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002280214210420022005280200200310272002280200200528020022086a20072003101e1a2005200820036a36020002402004450d00200710020b200141206a2101200641606a22060d000b0b20002002290300370200200041086a2005280200360200200241206a24000f0b101c000bf80101017f23004180026b22022400024002402001450d00200220003602080c010b200241d02d360208410021010b2002200136020c20024188016a200241086a101d0240200228029001450d00200241106a20024188016a41f800101e1a20024188016a200241106a41f800101e1a20024188016a2002419c016a200241dc016a10a401024020024198016a2802002200450d0020022802900121012000410c6c210003400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b024020024194016a280200450d0020024190016a28020010020b20024180026a240042010f0b4184351054000ba11903017f017e237f230041900d6b220324002003200029030022043703f00c200341106a41086a220042003703002003420037031041d12d4107200341106a1003200341086a220520002903003703002003200329031037030020034110200341f00c6a41081004200042003703002003420037031041d82d4107200341106a10032005200029030037030020032003290310370300200341102001412010040240024002400240410710012200450d002003200036021020034207370214200341106a4100410710272003280210200328021822056a220041002800c72d360000200341f00c6a41086a200541076a2205360200200041046a41002f00cb2d3b0000200041066a41002d00cd2d3a0000200320032903103703f00c20032005360218410810012200450d002003200036021020034208370214200341106a41004108102720032802102205200328021822006a2004427f7c3700002003200041086a220036021820032802142106200341f00c6a20032802f80c2000102720032802f00c220720032802f80c22086a20052000101e1a2003200820006a22003602f80c02402006450d00200510020b20032802f40c2105200341106a41086a220642003703002003420037031020072000200341106a1003200341086a2006290300370300200320032903103703002003411020014120100402402005450d00200710020b200341106a41086a220042003703002003420037031041df2d4107200341106a1003200341086a220120002903003703002003200329031037030020034110200241201004200042003703002003420037031041d12d4107200341106a100320012000290300370300200320032903103703002003411041d02d410041001000417f460d01200342003703100240024020034110200341106a41084100100041016a41084d0d0020032903104200510d04200341106a41086a220042003703002003420037031041d12d4107200341106a1003200341086a2000290300370300200320032903103703002003411041d02d410041001000417f460d052003420037031020034110200341106a41084100100041016a41084d0d012003290310210441002108200341106a410041e00c10171a2004427f7c2104410021094100210a4100210b4100210c4100210d4100210e4100210f410021104100211141002112410021134100211441002115410021164100211741002118410021194100211a4100211b4100211c4100211d4100211e4100211f4100212041002121410021224100212341002124410021254100212641002102410021270340200341f00c6a42002004427f7c2004501b220410a801200341106a202722004103704105746a220141186a200341f00c6a41186a290200370000200141106a200341f00c6a41106a290200370000200141086a200341f00c6a41086a290200370000200120032902f00c370000200041016a21274100210141002107024003402000200041036e2205417d6c6a4102470d01200341106a20016a220041df006a2d000022022000411f6a2d000022067120022006722000413f6a2d000071722108200041de006a2d000022022000411e6a2d000022067120022006722000413e6a2d000071722109200041dd006a2d000022022000411d6a2d000022067120022006722000413d6a2d00007172210a200041dc006a2d000022022000411c6a2d000022067120022006722000413c6a2d00007172210b200041db006a2d000022022000411b6a2d000022067120022006722000413b6a2d00007172210c200041da006a2d000022022000411a6a2d000022067120022006722000413a6a2d00007172210d200041d9006a2d00002202200041196a2d00002206712002200672200041396a2d00007172210e200041d8006a2d00002202200041186a2d00002206712002200672200041386a2d00007172210f200041d7006a2d00002202200041176a2d00002206712002200672200041376a2d000071722110200041d6006a2d00002202200041166a2d00002206712002200672200041366a2d000071722111200041d5006a2d00002202200041156a2d00002206712002200672200041356a2d000071722112200041d4006a2d00002202200041146a2d00002206712002200672200041346a2d000071722113200041d3006a2d00002202200041136a2d00002206712002200672200041336a2d000071722114200041d2006a2d00002202200041126a2d00002206712002200672200041326a2d000071722115200041d1006a2d00002202200041116a2d00002206712002200672200041316a2d000071722116200041d0006a2d00002202200041106a2d00002206712002200672200041306a2d000071722117200041cf006a2d000022022000410f6a2d000022067120022006722000412f6a2d000071722118200041ce006a2d000022022000410e6a2d000022067120022006722000412e6a2d000071722119200041cd006a2d000022022000410d6a2d000022067120022006722000412d6a2d00007172211a200041cc006a2d000022022000410c6a2d000022067120022006722000412c6a2d00007172211b200041cb006a2d000022022000410b6a2d000022067120022006722000412b6a2d00007172211c200041ca006a2d000022022000410a6a2d000022067120022006722000412a6a2d00007172211d200041c9006a2d00002202200041096a2d00002206712002200672200041296a2d00007172211e200041c8006a2d00002202200041086a2d00002206712002200672200041286a2d00007172211f200041c7006a2d00002202200041076a2d00002206712002200672200041276a2d000071722120200041c6006a2d00002202200041066a2d00002206712002200672200041266a2d000071722121200041c5006a2d00002202200041056a2d00002206712002200672200041256a2d000071722122200041c4006a2d00002202200041046a2d00002206712002200672200041246a2d000071722123200041c3006a2d00002202200041036a2d00002206712002200672200041236a2d000071722124200041c2006a2d00002202200041026a2d00002206712002200672200041226a2d000071722125200041c1006a2d00002202200041016a2d00002206712002200672200041216a2d000071722126200041c0006a2d0000220220002d00002206712002200672200041206a2d000071722102200141800c460d01200341106a20012005410574200541036e41e0006c6b6a6a220041e1006a20263a0000200041e0006a20023a0000200041e2006a20253a0000200041e3006a20243a0000200041e4006a20233a0000200041e5006a20223a0000200041e6006a20213a0000200041e7006a20203a0000200041e8006a201f3a0000200041e9006a201e3a0000200041ea006a201d3a0000200041eb006a201c3a0000200041ec006a201b3a0000200041ed006a201a3a0000200041ee006a20193a0000200041ef006a20183a0000200041f0006a20173a0000200041f1006a20163a0000200041f2006a20153a0000200041f4006a20133a0000200041f3006a20143a0000200041f5006a20123a0000200041f6006a20113a0000200041f7006a20103a0000200041f8006a200f3a0000200041f9006a200e3a0000200041fa006a200d3a0000200041fb006a200c3a0000200041fc006a200b3a0000200041fd006a200a3a0000200041fe006a20093a0000200041ff006a20083a0000200141e0006a210120052100200741016a22074111490d000b0b202741d100470d000b200320263a00f10c200320023a00f00c200320253a00f20c200320243a00f30c200320233a00f40c200320223a00f50c200320213a00f60c200320203a00f70c2003201f3a00f80c2003201e3a00f90c2003201d3a00fa0c2003201c3a00fb0c2003201b3a00fc0c2003201a3a00fd0c200320193a00fe0c200320183a00ff0c200320173a00800d200320163a00810d200320153a00820d200320133a00840d200320143a00830d200320123a00850d200320113a00860d200320103a00870d2003200f3a00880d2003200e3a00890d2003200d3a008a0d2003200c3a008b0d2003200b3a008c0d2003200a3a008d0d200320093a008e0d200320083a008f0d200341106a41086a220042003703002003420037031041e62d4107200341106a1003200341086a220120002903003703002003200329031037030020034110200341f00c6a41201004200341003602f00c200042003703002003420037031041ed2d4107200341106a1003200120002903003703002003200329031037030020034110200341f00c6a41041004200341900d6a24000f0b41c1214133102d000b41c1214133102d000b101c000b41f4214122102d000b4184c200103b000b41f4214122102d000ba80601057f230041d0096b22022400024002402001450d00200220003602080c010b200241d02d360208410021010b2002200136020c200241a0066a200241086a10200240024020022d00a8064107460d00200241106a200241a0066a418003101e1a20024190036a200241106a418003101e1a20024190066a20024190036a1026200241a0066a41086a22014200370300200242003703a00641ed2d4107200241a0066a1003200241b0096a41086a2001290300370300200220022903a0063703b009200241b0096a411041d02d410041001000417f460d01200241003602a00602400240200241b0096a4110200241a0066a41044100100041016a41044d0d0020022802a0062103200241a0096a41086a20024190066a41086a28020036020020022002290390063703a009410710012201450d01200220013602a006200242073702a406200241a0066a41004107102720022802a00620022802a80622006a220141002800e02e360000200241b0096a41086a200041076a2200360200200141046a41002f00e42e3b0000200141066a41002d00e62e3a0000200220022903a0063703b009200220003602a806410410012201450d01200220013602a006200242043702a406200241a0066a41004104102720022802a006220020022802a80622016a20033600002002200141046a22013602a80620022802a4062104200241b0096a20022802b8092001102720022802b009220320022802b80922056a20002001101e1a2002200520016a22053602b80902402004450d00200010020b20022802b4092100200241c0096a200241a0096a105120022802c809210420022802c0092101200241a0066a41086a22064200370300200242003703a00620032005200241a0066a1003200241b0096a41086a2006290300370300200220022903a0063703b009200241b0096a4110200120041004024020022802c409450d00200110020b02402000450d00200310020b024020022802a409450d0020022802a00910020b200241a0066a20024190036a418003101e1a200241a0066a10a601200241d0096a240042010f0b41c1214133102d000b101c000b4184351054000b41f4214122102d000bec0e04037f017e037f017e230041a0086b2201240020014180036a2000418003101e1a200141386a4200370300200141306a4200370300200141286a4200370300200141206a4200370300200141186a4200370300200141106a4200370300200141086a42003703002001420037030002400240024002400240200141c0056a200141c0001006450d00200141a0056a21000c010b20014188066a41186a420037030020014188066a41106a420037030020014188066a41086a42003703002001420037038806200141a0056a220020014188066a41201006450d010b2001410036029006200142013703880620014188066a41004120102720012802880620012802900622026a22032000290000370000200341186a200041186a290000370000200341106a200041106a290000370000200341086a200041086a2900003700002001200241206a220036029006200129038003210420014188066a20004108102720012802880620012802900622006a20043700002001200041086a220236029006200120014180036a41086a10282001280200210320014188066a20022001280208220010272001200020012802900622056a220636029006200520012802880622026a20032000101e1a02402001280204450d00200310020b200128028c06210020022006200141c0056a200141a0056a1015210302402000450d00200210020b200120014180036a418003101e1a20030d010c020b200120014180036a418003101e1a0c010b41bc3a103b000b20014180036a2001418003101e1a200141186a4200370300200141106a4200370300200141086a420037030020014200370300024002400240024002400240024002400240200141a0056a2200200141201006450d00200010c001200129038003520d06200010c0012104410710012203450d04200120033602002001420737020420014100410710272001280200200128020822026a220341002800d92e36000020014188066a41086a200241076a2202360200200341046a41002f00dd2e3b0000200341066a41002d00df2e3a0000200120012903003703880620012002360208412010012203450d04200442017c21042001200336020020014220370204200141004120102720012802002202200128020822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002001200541206a22033602082001280204210620014188066a20012802900620031027200128028806220520012802900622076a20022003101e1a2001200720036a22073602900602402006450d00200210020b200128028c0621022001200437038006200141086a2203420037030020014200370300200520072001100320014188066a41086a22062003290300370300200120012903003703880620014188066a411020014180066a4108100402402002450d00200510020b200010432104200342003703002001420037030041bf2041072001100320062003290300370300200120012903003703880620014188066a411041d02d410041001000417f460d072001420037030020014188066a4110200141084100100041016a41084d0d02200420012903002208540d08410810012203450d04200120033602002001420837020420014100410810272001280200200128020822036a42f3e885d3a3ac98b63a3700002001200341086a36020820014188066a41086a20012802083602002001200129030037038806412010012203450d04200420087d21042001200336020020014220370204200141004120102720012802002202200128020822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002001200541206a22003602082001280204210320014188066a20012802900620001027200128028806220520012802900622066a20022000101e1a2001200620006a22003602900602402003450d00200210020b200128028c0621022001200437038006200141086a2203420037030020014200370300200520002001100320014188066a41086a2003290300370300200120012903003703880620014188066a411020014180066a4108100420014188066a2103200121002002450d01200510020c010b2001210020014188066a21030b200120014180036a41c002101e22014188066a200141086a419802101e1a20014188066a200141a0026a10c101200041086a220242003700002000420037000041ed2d410720001003200341086a2002290000370000200320002900003700002003411041d02d410041001000417f460d032001410036020020034110200141044100100041016a41044d0d012001200128020041016a36028006200041086a220242003700002000420037000041ed2d410720001003200341086a2002290000370000200320002900003700002003411020014180066a41041004200141a0086a24000f0b41c1214133102d000b41c1214133102d000b101c000b41f4214122102d000b41d43a103b000b41f4214122102d000b41fc3c103b000bc51505047f017e027f017e027f23004190096b22022400024002402001450d00200220003602000c010b200241d02d360200410021010b20022001360204200241f0056a2002101d20024180066a280200210320022802fc05210420022802f805210520022903f0052106200241f8016a20024184066a41e400101e1a024002400240024002400240024002402005450d00200241f0006a200241f8016a41e400101e1a200241f8046a200241f0006a41e400101e1a200241003602f005200241f0056a2002280200220720022802042201410420014104491b2200101e1a2002200120006b3602042002200720006a3602000240200141034d0d0020022802f0052208ad4280037e2209422088a70d082009a72201417f4c0d07024002402001450d002001100122070d01101c000b410821070b2002200836020c20022007360208410021012002410036021002402008450d00200241f0056a41086a210a410021000340200241f0056a2002102002400240200a2d00004107460d00200041016a2100200241f8016a200241f0056a418003101e1a2001200228020c470d01200241086a106c200241086a41086a2802002101200228020821070c010b02402001450d0020014180036c2100200741186a210103400240200141706a2d00002208411d74411d75417f4a0d000240024020084105460d0020084104470d01200141786a2d00004101470d022001417c6a220828020010382008280200100220014180036a2101200041807d6a22000d030c040b200141786a2d00004101470d012001280200450d012001417c6a280200100220014180036a2101200041807d6a22000d020c030b200141746a2d00004101470d00200141786a220828020010382008280200100220014180036a2101200041807d6a22000d010c020b20014180036a2101200041807d6a22000d000b0b200228020c450d03200710020c030b200720014180036c6a200241f8016a418003101e1a200241086a41086a200141016a220136020020002008490d000b0b2007450d00200229020c2109200241f0056a200241f8046a41e400101e1a2005450d01200241086a200241f0056a41e400101e1a200241fc006a200436020020024180016a2003360200200220053602782002200637037020024184016a200241086a41e400101e2101200241ec016a2009370200200220073602e801200241f0006a2001200241c4016a220310a40120022903702206500d06200241f0056a2006427f7c10a801200241f0056a2001412010060d06200241e8016a2802002100200241f0016a28020021012002410036028005200242043703f804200241f8046a20014180036c22084180036d108401200228028005210720022802f8042105024002402001450d0020052007410c6c6a21010340200241f0056a2000102620022802f005450d0220004180036a2100200241f8016a41086a220a200241f0056a41086a280200360200200220022903f0053703f801200141086a200a280200360200200120022903f801370200200741016a21072001410c6a2101200841807d6a22080d000b0b200241003602f0050b20024180056a200736020020022802fc042108200241f8016a200520052007410c6c6a10a901200241f0056a20022802f8012201200228028002104c024020022802fc01450d00200110020b02402007450d002007410c6c21002005210103400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b02402008450d00200510020b02402003200241f0056a41201006450d0041d90a410e1008200341201013200241f0056a412010130b200241c4016a200241f0056a412010060d05200241ec016a2802002104200241f0006a41f8006a2802002105200241f0016a280200210a200241f8046a200241f0006a41f800101e1a2005200a4180036c6a210720052101200a450d03200241f0056a41096a2108200521010340200141086a2d0000210020012903002106200241f8016a200141096a41f702101e1a20004107460d03200241f0056a41086a20003a0000200220063703f0052008200241f8016a41f702101e1a200241f0056a10a60120014180036a22012007470d000c050b0b02402003450d002003410c6c21012005210203400240200241046a280200450d00200228020010020b2002410c6a2102200141746a22010d000b0b2004450d00200510020b4184351054000b20014180036a21010b20012007460d002005200a4180036c6a210803402001220041086a2d000022074107460d0120004180036a210102402007411d74411d75417f4a0d00200041146a2800002103200041106a280000210a02400240200741077122074105460d0020074104470d01200a41ff01714101470d02200310382003100220082001470d030c040b200a41ff01714101470d01200041186a280000450d012003100220082001470d020c030b2000410c6a2d000041ff01714101470d00200a1038200a100220082001470d010c020b20082001470d000b0b02402004450d00200510020b1034200241f0056a41086a22014200370300200242003703f00541e72e4107200241f0056a1003200241f8016a41086a2001290300370300200220022903f0053703f8014100210b02400240024002400240200241f8016a411041d02d410041001000417f460d00200242103702f4082002200241f8016a3602f008200241f0056a200241f0086a101620022802f0052204450d02200241f8056a280200210820022802f405210b0c010b41042104410021080b4100210a02400240024002400240024020024188056a2802002008470d000240024002402008450d0020024180056a280200210141002107200421000340200141086a280200220a200041086a280200470d0202402001280200220520002802002203460d0020052003200a10060d040b2001410c6a21012000410c6a2100200741016a22072008490d000b4101210a20080d040c060b4101210a200b0d060c070b20042008410c6c6a21074100210a0c030b4100210a0b2008450d020b20042008410c6c6a21070b2004210103402001410c6a21000240200141046a280200450d00200128020010020b2000210120072000470d000b0b200b450d010b200410020b200a450d01200241f0056a10aa0120022802f8052107024020024180066a2802002201450d002001410c6c21002007210103400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b0240200241fc056a280200450d00200710020b200241f8016a41186a22014200370300200241f8016a41106a22004200370300200241f8016a41086a22074200370300200242003703f801200241f8016a1014200241f0086a41186a2001290300370300200241f0086a41106a2000290300370300200241f0086a41086a2007290300370300200220022903f8013703f0080240200241ac056a2201200241f0086a41201006450d0041d90a410e1008200141201013200241f0086a412010130b2001200241f0086a412010060d02024020024188056a2802002200450d0020024180056a28020021012000410c6c210003400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b024020024184056a280200450d0020024180056a28020010020b20024190096a240042010f0b41c1214133102d000b418c3a103b000b41a43a103b000b41f439103b000b41dc39103b000b105d000b105c000b8b0401067f230041306b22022400024002400240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800c72d360000200241086a200441076a2204360200200341046a41002f00cb2d3b0000200341066a41002d00cd2d3a00002002200229031037030020022004360218410810012203450d002002200336021020024208370214200241106a41004108102720022802102204200228021822036a20013700002002200341086a220336021820022802142105200220022802082003102720022802002206200228020822076a20042003101e1a2002200720036a220736020802402005450d00200410020b20022802042104200241106a41086a220342003703002002420037031020062007200241106a1003200241086a2003290300370300200220022903103703002002411041d02d410041001000417f460d02200241286a4200370300200241106a41106a4200370300200342003703002002420037031020024110200241106a4120410010002203417f460d012003411f4d0d0120002002290310370000200041186a200241106a41186a290300370000200041106a200241106a41106a290300370000200041086a200241106a41086a29030037000002402004450d00200610020b200241306a24000f0b101c000b41c1214133102d000b41f4214122102d000bc50103037f017e027f4100210302400240024002400240200220016b2204450d002004410c6d2205ad4203862206a722044100480d032006422088a74100470d03200410012207450d0420012002470d010c020b410421074100210520012002460d010b4100210320072104034020012802002108200441046a200141086a28020036020020042008360200200441086a2104200341016a21032001410c6a22012002470d000b0b2000200536020420002007360200200020033602080f0b1041000b101c000be40703037f027e057f23004180016b22012400200141e0006a41086a220242003703002001420037036041e62d4107200141e0006a1003200141c0006a41086a2203200229030037030020012001290360370340200141c0006a41101005200242003703002001420037036041ed2d4107200141e0006a10032003200229030037030020012001290360370340200141c0006a41101005200342003703002001420037034041d12d4107200141c0006a100320022003290300370300200120012903403703600240024002400240200141e0006a411041d02d410041001000417f460d0020014200370340200141e0006a4110200141c0006a41084100100041016a41084d0d0220012903402104200141c0006a41086a220242003703002001420037034041d12d4107200141c0006a1003200141e0006a41086a200229030037030020012001290340370360200141e0006a411010054201a7450d010c030b4200a70d020b41f4214122102d000b41c1214133102d000b200141d82d10d901200141c0006a41086a220242003703002001420037034041e72e4107200141c0006a1003200141e0006a41086a20022903003703002001200129034037036041002102024002400240200141e0006a411041d02d410041001000417f460d00200142103702242001200141e0006a360220200141c0006a200141206a101620012802402203450d0220012902442105200141c0006a41086a220242003703002001420037034041e72e4107200141c0006a1003200141e0006a41086a200229030037030020012001290340370360200141e0006a411010052005422088a721022005a721060c010b41042103410021060b200141206a41df2d10d901200141e0006a41186a22074200370300200141e0006a41106a22084200370300200141e0006a41086a2209420037030020014200370360200141e0006a1014200141c0006a41186a220a2007290300370300200141c0006a41106a22072008290300370300200141c0006a41086a2208200929030037030020012001290360370340200020043703002000412c6a200141186a290300370000200041246a200141106a2903003700002000411c6a200141086a29030037000020002001290300370014200020012903403700342000413c6a2008290300370000200041c4006a2007290300370000200041cc006a200a290300370000200020033602082000410c6a2006360200200041106a2002360200200041ec006a200141206a41186a290300370000200041e4006a200141206a41106a290300370000200041dc006a200141206a41086a2903003700002000200129032037005420014180016a24000f0b41c1214133102d000bda10040d7f017e017f017e230041d0016b220224001034200241b0016a41086a22034200370300200242003703b00141ed2d4107200241b0016a1003200241a0016a41086a2003290300370300200220022903b0013703a0010240200241a0016a411041d02d410041001000417f460d00200241003602080240200241a0016a4110200241086a41044100100041016a41044d0d0020022802082104200241003602c801200242043703c001200241c0016a200410840120022802c801210520022802c00121060240024002400240024002402004450d0020062005410c6c6a2107410021080340410710012203450d02200220033602082002420737020c200241086a410041071027200241086a41086a22032003280200220941076a220a360200200920022802086a220b41002800e02e36000020024180016a41086a2209200a360200200b41046a41002f00e42e3b0000200b41066a41002d00e62e3a0000200220022903083703800141041001220b450d022002200b3602082002420437020c200241086a41004104102720032003280200220a41046a220b360200200a2002280208220c6a2008360000200228020c210d20024180016a2009280200200b1027200228028001220a2009280200220e6a200c200b101e1a2009200e200b6a220e3602000240200d450d00200c10020b200228028401210d200241a0016a41086a220b4200370300200242003703a001200a200e200241a0016a10032003200b290300370300200220022903a001370308200241086a411041d02d410041001000417f460d0420024100360280014100200241086a411020024180016a41044100100022032003417f461b220c41034d0d062002280280012203417f4c0d03024002402003450d00200310012209450d0420094100200310171a0c010b410121090b20034100200241086a411020092003200c4104200c4104491b1000220c200c417f461b4b0d052009450d06200841016a21082003ad220f422086200f84210f200b4200370300200242003703a001200a200e200241a0016a1003200241b0016a41086a200b290300370300200220022903a0013703b001200241b0016a411010050240200d450d00200a10020b20072009360200200741046a200f3702002007410c6a210720082004490d000b200520086a21050b200241c8016a200536020020022802c4012108200241086a200620062005410c6c6a10a90120024180016a200228020822032002280210104c0240200228020c450d00200310020b02402005450d002005410c6c21092006210303400240200341046a280200450d00200328020010020b2003410c6a2103200941746a22090d000b0b02402008450d00200610020b200241086a41186a20024180016a41186a290300370300200241086a41106a220920024180016a41106a290300370300200241086a41086a20024180016a41086a22072903003703002002200229038001370308200241b0016a41086a22044200370300200242003703b00141df2d4107200241b0016a1003200241a0016a41086a22082004290300370300200220022903b0013703a001200241a0016a4110200241086a41201004200241086a10aa01200241003602c801200242013703c001200241c0016a41004120102720022802c00120022802c801220b6a2203200229021c370000200341086a200241246a290200370000200341106a2002412c6a290200370000200341186a200241346a2902003700002002200b41206a22033602c8012002290308210f200241c0016a20034108102720022802c00120022802c80122036a200f3700002002200341086a22033602c801200241c0016a20034120102720022802c00120022802c801220b6a2203200229023c370000200341086a200241c4006a290200370000200341106a200241cc006a290200370000200341186a200241d4006a2902003700002002200b41206a22033602c801200241c0016a20034120102720022802c00120022802c801220b6a2203200229025c370000200341086a200241e4006a290200370000200341106a200241ec006a290200370000200341186a200241f4006a2902003700002002200b41206a22103602c801200928020021052002410036028801200242013703800120024180016a41004104102720022802800120022802880122036a20053600002002200341046a36028801200820022802880136020020022002290380013703a00120022802102106024002402005450d002005410c6c210c2006210b0340200241b0016a200b105120042802002203417f4c0d0420022802b001210a024002402003450d002003100122090d010c050b410121090b200741003602002002200336028401200220093602800120024180016a41002003102720072007280200220d20036a2209360200200d200228028001220e6a200a2003101e1a2002280284012103024020022802b401450d00200a10020b200241a0016a20082802002009102720022802a001220d2008280200220a6a200e2009101e1a2008200a20096a220936020002402003450d00200e10020b200b410c6a210b200c41746a220c0d000c020b0b20022802a801210920022802a001210d0b20022802a4012103200241c0016a201020091027200220022802c801220820096a22073602c801200820022802c001220b6a200d2009101e1a02402003450d00200d10020b2007ad422086210f200bad211102402005450d002005410c6c21092006210303400240200341046a280200450d00200328020010020b2003410c6a2103200941746a22090d000b0b200f201184210f0240200241146a280200450d00200610020b200241d0016a2400200f0f0b101c000b1019000b41f4214122102d000b200910020b41c1214133102d000b41c1214133102d000b41f4214122102d000b810101047f230041106b220224002002102f2002280208210302402002280204450d00200228020010020b0240410410012204450d002002200436020020024204370204200241004104102720022802002204200228020822056a20033600002002200541046a2203360208200241106a24002003ad4220862004ad840f0b101c000b4802017f017e230041206b220224002002102f200241106a200210a2012002350218422086200235021084210302402002280204450d00200228020010020b200241206a240020030ba56d09047f027e047f017e0b7f017e027f017e0c7f230041a0016b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d0000417f6a220341044b0d000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020030e050004020301000b200041106a2802002104200241186a41086a2000410c6a2802003602002002200041046a290200370318200241e8006a41086a220342003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a2205200329030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d38200342003703002002420037036841b70f4107200241e8006a10032005200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d0420024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d4320022802782004470d050c590b200041246a2802002104200041286a290300210c200241c0006a200041196a290000370300200241286a41106a200041116a290000370300200241286a41086a200041096a29000037030020022000290001370328200241e8006a41086a220342003703002002420037036841b70f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358410021030240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d42200228027821030b20032004470d36200241e8006a41086a220342003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d352002200241d8006a3602682002411036026c2002420037037820024100200241d8006a4110200241f8006a41084100100022032003417f461b22034108200341084922041b220336027020040d3e20024100360278200241f0006a4100200241d8006a4110200241f8006a41042003100022042004417f461b22044104200441044922041b20036a36020020040d3e200241f8006a200241e8006a103a2002280278220d450d3e200241f8006a41086a280200210e200228027c210f200241e8006a41086a22034200370300200242003703684181114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d34200241003602784100200241d8006a4110200241f8006a41044100100022032003417f461b220441034d0d4a20022802782209ad2206421d88a70d332006420386a72203417f4c0d322003450d052003100122100d060c5a0b200041046a2802002103200241e8006a41086a220442003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d30200110af01450d2f200241e8006a41086a220442003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d392002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782204450d2e20024180016a280200220520034d0d39200228027c21080240200420034105746a22092001460d0020092001412010060d1c0b2002200836027c20022004360278200220053602800120012003200241f8006a10b001200241e8006a41086a220342003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2d20024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d472002290378210620012001104422072006200720072006561b22067d10b101200110432107410810012203450d59200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241286a41086a20022802800136020020022002290378370328412010012203450d59200720067c2106200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241286a20022802302003102720022802282205200228023022016a20042003101e1a2002200120036a220336023002402008450d00200410020b200228022c210820022006370378200241e8006a41086a220442003703002002420037036820052003200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a41081004410121042008450d58200510020c580b200041046a2802002103410710012204450d58200220043602782002420737027c200241f8006a410041071027200228027820022802800122056a220441002800bf10360000200241286a41086a200541076a2205360200200441046a41002f00c3103b0000200441066a41002d00c5103a0000200220022903783703282002200536028001412010012204450d58200220043602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200841206a220436028001200228027c2109200241286a200228023020041027200228022822082002280230220a6a20052004101e1a2002200a20046a220436023002402009450d00200510020b200228022c2105200241e8006a41086a220942003703002002420037036820082004200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a4110200241f8006a410041001000210402402005450d00200810020b2004417f470d2b200241e8006a41086a220442003703002002420037036841c6104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2a20024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d452001200229037810b201450d29200241e8006a41086a220442003703002002420037036841cd104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358410021050240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d3f200228027821050b200241e8006a41086a2204420037030020024200370368418d104107200241e8006a1003200241d8006a41086a20042903003703002002200229036837035841002109200241d8006a411041d02d410041001000417f460d052002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782208450d1920024180016a2802002104200228027c210920052003470d4e0c4d0b2000412c6a2802002103200041286a2802002111200041246a2802002112200241c0006a200041196a290000370300200241286a41106a200041116a290000370300200241286a41086a200041096a29000037030020022000290001370328200241e8006a41086a220442003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d27200241086a200110b30120022802084101470d262002200241286a10b3012002280200450d252002280204210e200241e8006a41086a220442003703002002420037036841b70f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358410021040240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d3d200228027821040b20042003470d24200241e8006a41086a22044200370300200242003703684186104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2320024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d41200e200320022802786b4f0d22200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d3a2002421037026c2002200241d8006a360268200241f8006a200241e8006a103a20022802782213450d2120024180016a280200221420124d0d3a200228027c21150240201320124105746a22032001460d0020032001412010060d3b0b201420114d0d360240201320114105746a2203200241286a460d002003200241286a412010060d370b200241c8006a200241286a10b4012002280250210320022802482105200241e8006a41086a2204420037030020024200370368418d104107200241e8006a1003200241d8006a41086a20042903003703002002200229036837035841002116200241d8006a411041d02d410041001000417f460d052002421037026c2002200241d8006a360268200241f8006a200241e8006a103a20022802782217450d17200228027c211620024180016a28020041057441057522042003200320044b1b22080d060c070b41002004460d540b41dc351054000b410821100b2002200936027c20022010360278200241003602800102402009450d002004410420044104491b210441002103410021050340200242003703684100200241d8006a4110200241e8006a41082004100022082008417f461b220841074d0d442008410820084108491b2108200541016a21052002290368210602402003200228027c470d00200241f8006a1071200241f8006a41086a2802002103200228027821100b200820046a2104201020034103746a2006370300200241f8006a41086a200341016a220336020020052009490d000b200228027821100b2010450d43200229027c2118200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a20032903003703002002200229036837035841002119200241d8006a411041d02d410041001000417f460d042002421037026c2002200241d8006a360268200241f8006a200241e8006a103a2002280278221a450d1220024180016a280200210b200228027c21190c050b410121084100210420052003460d470c480b4101211741002003200341004b1b2208450d010b4100210420024190016a210920024188016a210a20024180016a210b2017210303400240200520046a2d0000450d0020094200370300200a4200370300200b420037030020024200370378200241f8006a2003460d002003200241f8006a41201006450d00200241f8006a200310b50120022802784101470d3b200228027c200e4d0d050b200341206a2103200441016a22042008490d000b0b410021032016450d430c420b4101211a4100210b0b200241e8006a41086a22034200370300200242003703684188114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d1620024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d392002290378210620011043200110447c2006200bad7e221b540d15200241e8006a41086a2203420037030020024200370368418f114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d142002421037026c2002200241d8006a360268200241f8006a200241e8006a10b60120022802782217450d1320024180016a280200221c450d122017290300200c5a0d11200228027c211d200241f8006a104720022802782209200228028001221141286c22056a210a41002103200921040240024002400240200541286d4104490d0020092105410021030340200241286a20052204460d0220032004200241286a4120100622054100476a21032005450d02200441286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200541286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200541286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200a200541286a22056b41286d41034b0d000b200441a0016a21040b02402004200a460d002009201141286c6a21080340200241286a2004460d0220032004200241286a4120100622054100476a21032005450d022008200441286a2204470d000b0b41000d010c020b4101450d010b2003200e4f0d0c0b0240200228027c450d00200910020b200241f8006a200241286a10b50120022802784101470d10024002402018421d88a74103752203200b4105744105752204200420034b1b2208450d0020024180016a2802002109200228027c210a4200210741002104201a210320102105034020052903002106200241106a200310b301200441016a21040240024020022802104101470d002002280214200a490d00200241f8006a200310b4010240200241f8006a41086a28020020094d0d002002280278220e20096a2d0000210b0240200228027c450d00200e10020b200b41ff01710d020c010b200228027c450d00200228027810020b420021060b200341206a2103200541086a2105200620077c210720042008490d000c020b0b420021070b2017201c41286c22056a21042017210302400240200541286d4104490d00200241206a2105200241786a2108200241506a2109200241a87f6a210a20172103034020052003460d02200341086a200241286a41201006450d0220082003460d02200341306a200241286a41201006450d0220092003460d02200341d8006a200241286a41201006450d02200a2003460d0220034180016a200241286a41201006450d022004200341a0016a22036b41286d41034b0d000b0b024020032004460d002017201c41286c6a2105200241206a2104034020042003460d02200341086a200241286a41201006450d022005200341286a2203470d000b0b2007200c520d00200241f8006a41186a2203200241286a41186a290300370300200241f8006a41106a2204200241286a41106a290300370300200241f8006a41086a2205200241286a41086a290300370300200220022903283703782017200c370300201741206a2003290300370300201741186a2004290300370300201741106a200529030037030020172002290378370308201c41144b0d02201c41014d0d03201c417f6a21092017201c41286c6a41586a210e0340201c20092203417f6a2209490d2d0240201c20096b22084102490d002017200341286c6a22052903002017200941286c6a220b29030022065a0d00200b2005290300370300200b2903082107200b41086a200541086a290300370300200241f8006a41186a2211200b41206a2203290300370300200241f8006a41106a2212200b41186a2204290300370300200241f8006a41086a2213200b41106a22012903003703002001200541106a2903003703002004200541186a2903003703002003200541206a2903003703002002200737037841012101024020084103490d0041012104200e21030340200441016a220120084f0d340240200341286a220529030020065a0d00200420084f0d34200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032005290300370300200441026a210a2001210420052103200a2008490d010c020b0b20042101200321050b20052006370300200b200141286c6a22032002290378370308200341206a2011290300370300200341186a2012290300370300200341106a20132903003703000b200e41586a210e20090d000c040b0b200110432106410810012203450d4d200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241e8006a41086a20022802800136020020022002290378370368412010012203450d4d2006201b20062006201b561b220c7d2107200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241e8006a20022802702003102720022802682205200228027022096a20042003101e1a2002200920036a220336027002402008450d00200410020b200228026c210420022007370378200241e8006a41086a220842003703002002420037036820052003200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a4110200241f8006a4108100402402004450d00200510020b0240201b2006580d002001200110442206201b200c7d2207200620062007561b7d10b1010b0240201d450d00201710020b02402019450d00201a10020b2018a7450d3f0c3e0b4101210320160d3f0c400b201c410176221ead42287e2206422088a70d082006a72203417f4c0d074108211f02402003450d0020031001221f450d4c0b410021042002410036027020024204370368201741586a2120201741887f6a212141042105200241e8006a41086a2115201c211603402016210e410021164101210802400240024002400240024002400240200e417f6a2203450d0002400240024002400240024002402017200341286c6a2903002017200e417e6a220841286c6a29030022065a0d00410021092008450d022021200e41286c6a210303402006200329030022075a0d02200341586a2103200721062008417f6a22080d000c030b0b02402008450d002021200e41286c6a2103410221080340200620032903002207540d04200341586a210320072106200e200841016a2208470d000b41002116200e21082004200228026c470d0e0c0d0b41022108410021162004200228026c470d0d0c0c0b200821090b200e2009490d02200e201c4b0d090240200e20096b2208410176220a450d002020200e41286c6a21032017200941286c6a21010340200241f8006a41206a220b200141206a2211290300370300200241f8006a41186a2212200141186a2213290300370300200241f8006a41106a2214200141106a2216290300370300200241f8006a41086a2222200141086a222329030037030020022001290300370378200341086a22242903002106200341106a22252903002107200341186a2226290300211b2003290300210c2011200341206a22272903003703002013201b37030020162007370300202320063703002001200c3703002027200b29030037030020262012290300370300202520142903003703002024202229030037030020032002290378370300200341586a2103200141286a2101200a417f6a220a0d000b0b2009450d010c030b200e20086b22090d020b200921160c020b2009200e1055000b0240200841094b0d00200e201c4b0d042017200941286c6a21120340200e2009417f6a2216490d060240200e20166b22084102490d002017200941286c6a22092903002017201641286c6a221129030022065a0d002011200929030037030020112903082107201141086a200941086a290300370300200241f8006a41186a2213201141206a2203290300370300200241f8006a41106a2214201141186a2201290300370300200241f8006a41086a2222201141106a220a290300370300200a200941106a2903003703002001200941186a2903003703002003200941206a290300370300200220073703784101210a024020084103490d0041012101201221030340200141016a220a20084f0d060240200341286a220929030020065a0d00200120084f0d08200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032009290300370300200141026a210b200a210120092103200b2008490d010c020b0b2001210a200321090b200920063703002011200a41286c6a22032002290378370308200341206a2013290300370300200341186a2014290300370300200341106a20222903003703000b2016450d02201241586a2112201621092008410a490d000c020b0b200921162004200228026c470d070c060b2004200228026c460d050c060b41ccc100200141016a2008103c000b41dcc10020012008103c000b200e2009417f6a22164f0d010b2016200e1055000b200e201c1029000b200241e8006a107a20152802002104200228026821050b200520044103746a22032008360204200320163602002015200441016a2204360200024020044102490d00200228026821050340024002400240024020052004417f6a4103746a2203280200450d00200520044103746a220941746a2802002201200328020422084d0d00200441024d0d0520052004417d6a22124103746a2802042203200820016a4d0d01200441034d0d05200941646a280200200320016a4d0d010c050b20044103490d012003280204210820052004417d6a22124103746a28020421030b20032008490d010b2004417e6a21120b2004201241016a22134d0d04200420124d0d052005201241037422226a2203280204222320032802006a22032005201341037422246a22042802002214490d062003201c4b0d072017201441286c6a220e2004280204221141286c22046a2108200341286c210502400240024002400240200320146b220920116b220320114f0d00201f2008200341286c2204101e220b20046a210120114101480d0120034101480d01202020056a21052008210303402005200341586a2208200141586a22092009290300200829030054220a1b2204290300370300200541206a200441206a290300370300200541186a200441186a290300370300200541106a200441106a290300370300200541086a200441086a29030037030020012009200a1b2101200e20082003200a1b22034f0d04200541586a2105200b2104200b2001490d000c050b0b201f200e2004101e220320046a210120114101480d01200920114c0d01201720056a210a20032104200e21030340200320082004200829030020042903005422091b2205290300370300200341206a200541206a290300370300200341186a200541186a290300370300200341106a200541106a290300370300200341086a200541086a2903003703002004200441286a20091b2104200341286a2103200841286a200820091b2208200a4f0d04200120044b0d000c040b0b200821030c010b200e21030b201f21040b20032004200120046b220520054128706b101e1a2015280200220320124d0d082002280268220520226a2204202320116a36020420042014360200200320134d0d09200520246a2204200441086a200320136b41037441786a10391a20152003417f6a2204360200200441014b0d000b0b20160d000b0240200228026c450d00200228026810020b201e450d00201f10020b2002201d36027c200220173602782002201c36028001200241f8006a10b7010240201d450d00201710020b02402019450d00201a10020b2018a70d3b0c3c0b41acc10020132004103c000b41acc10020122004103c000b201420031055000b2003201c1029000b41bcc10020122003103c000b41b4c300103b000b105f000b105e000b418439103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41d437103b000b41ce114123102d000b41ec38103b000b41cc3641004100103c000b41c1214133102d000b4196114131102d000b41d438103b000b41f4214122102d000b41c1214133102d000b41b436103b000b41f4214122102d000b419c36103b000b41da0f412c102d000b418436103b000b41ec35103b000b418438103b000b41f4214122102d000b41ec37103b000b41f4214122102d000b41c1214133102d000b41a437103b000b418c37103b000b1063000b1062000b41f4214122102d000b41d410412d102d000b41c4381054000b41c435103b000b2009201c1055000b41f436103b000b41bc37103b000b41dcc10020042008103c000b41ccc100200441016a2008103c000b41dc36103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b419410412b102d000b41c1214133102d000b41ac35103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b200228027c450d00201010020b41c1214133102d000b201010020b200f450d09200d10020c090b201710020b0240200228024c450d00200510020b2002201536027c2002201336027820022014360280012001200241286a20031b2012201120031b200241f8006a10b001200241e8006a41086a220442003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a2004290300370300200220022903683703580240200241d8006a411041d02d410041001000417f460d00200242003703780240200241d8006a4110200241f8006a41084100100041016a41084d0d002002290378210602402003450d0020012001104422072006200720072006561b7d10b1010c0a0b200241286a200241286a104422072006200720072006561b22067d10b101200110432107410810012203450d0d200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241e8006a41086a20022802800136020020022002290378370368412010012203450d0d200720067c2106200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241e8006a20022802702003102720022802682205200228027022016a20042003101e1a2002200120036a220336027002402008450d00200410020b200228026c210420022006370378200241e8006a41086a220842003703002002420037036820052003200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a4110200241f8006a410810042004450d09200510020c090b41c1214133102d000b41f4214122102d000b20042003460d010b200420034d0d0120024190016a420037030020024188016a420037030020024180016a420037030020024200370378200820034105746a220a200241f8006a460d00200a200241f8006a412010060d010b2002200936024c20022008360248200220043602500240024020042003470d00200241f8006a41186a2204200141186a290000370300200241f8006a41106a220b200141106a290000370300200241f8006a41086a220e200141086a290000370300200220012900003703782003210a20032009460d010c040b200241f8006a41186a2209200141186a290000370300200241f8006a41106a220a200141106a290000370300200241f8006a41086a220b200141086a29000037030020022001290000370378200420034d0d02200820034105746a22042002290378370000200441186a2009290300370000200441106a200a290300370000200441086a200b2903003700000c040b200241c8006a107c200241c8006a41086a280200210a200228024821080c020b419c38103b000b41b43820032004103c000b200e2903002106200b29030021072004290300211b2008200a4105746a22042002290378370000200441186a201b370000200441106a2007370000200441086a2006370000200241c8006a41086a200a41016a3602000b200241286a41086a200241c8006a41086a28020036020020022002290348370328200241f8006a200241286a10a201200228028001210820022802782104200241e8006a41086a2209420037030020024200370368418d104107200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a41102004200810040240200228027c450d00200410020b0240200228022c450d00200228022810020b2002200541016a360278200241e8006a41086a220442003703002002420037036841cd104107200241e8006a1003200241d8006a41086a2205200429030037030020022002290368370358200241d8006a4110200241f8006a41041004200442003703002002420037036841b70f4107200241e8006a10032005200429030037030020022002290368370358410021050240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d02200228027821050b410710012204450d04200220043602782002420737027c200241f8006a410041071027200228027820022802800122086a220441002800bf10360000200241286a41086a200841076a2208360200200441046a41002f00c3103b0000200441066a41002d00c5103a0000200220022903783703282002200836028001412010012204450d04200220043602782002422037027c200241f8006a4100412010272002280278220820022802800122096a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200941206a220436028001200228027c2109200241286a200228023020041027200228022822012002280230220a6a20082004101e1a2002200a20046a220a36023002402009450d00200810020b200228022c2108200241003602800120024201370378200241f8006a410041041027200228027820022802800122046a20053600002002200441046a220436028001200241f8006a2004410410272002280278220420022802800122056a20033600002002200541046a220336028001200241e8006a41086a22054200370300200242003703682001200a200241e8006a1003200241d8006a41086a200529030037030020022002290368370358200241d8006a41102004200310040240200228027c450d00200410020b2008450d00200110020b410121040c020b41c1214133102d000b0240200110af010d00200241e8006a41086a220342003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a2003290300370300200220022903683703580240024002400240200241d8006a411041d02d410041001000417f460d00200242003703780240200241d8006a4110200241f8006a41084100100041016a41084d0d00200229037821062001104322072006540d02410810012203450d07200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241286a41086a20022802800136020020022002290378370328412010012203450d07200720067d2107200220033602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200841206a220336028001200228027c2109200241286a200228023020031027200228022822082002280230220a6a20052003101e1a2002200a20036a220336023002402009450d00200510020b200228022c210520022007370378200241e8006a41086a220942003703002002420037036820082003200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a4110200241f8006a4108100402402005450d00200810020b20012001104420067c10b101200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a20032903003703002002200229036837035802400240200241d8006a411041d02d410041001000417f460d002002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782208450d052002200229027c220637022c20022008360228200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241f8006a21032006422088a722052006a7460d010c060b2002410036023020024201370328200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241f8006a21030b200241286a107c200241306a2802002105200228022821080c040b41c1214133102d000b41f4214122102d000b41ec3d103b000b41c1214133102d000b20032900002106200241286a41086a2209200541016a360200200820054105746a22052006370000200541186a200341186a290000370000200541106a200341106a290000370000200541086a200341086a290000370000200241c8006a41086a200928020036020020022002290328370348200241f8006a200241c8006a10a201200228028001210520022802782103200241e8006a41086a220842003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a41102003200510040240200228027c450d00200310020b200228024c450d00200228024810020b200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241c8006a41086a200241186a41086a28020036020020022002290318370348410710012203450d01200220033602282002420737022c200241286a4100410710272002280228200228023022056a220341002800cc0f360000200241e8006a41086a200541076a2205360200200341046a41002f00d00f3b0000200341066a41002d00d20f3a00002002200229032837036820022005360230412010012203450d01200220033602282002422037022c200241286a41004120102720022802282205200228023022086a22032002290378370000200341086a200241f8006a41086a290300370000200341106a200241f8006a41106a290300370000200341186a200241f8006a41186a2903003700002002200841206a2203360230200228022c2109200241e8006a200228027020031027200228026822082002280270220a6a20052003101e1a2002200a20036a220a36027002402009450d00200510020b200228026c2105200241286a200241c8006a10b8012002280230210920022802282103200241e8006a41086a220b4200370300200242003703682008200a200241e8006a1003200241d8006a41086a200b29030037030020022002290368370358200241d8006a41102003200910040240200228022c450d00200310020b02402005450d00200810020b0240200228024c450d00200228024810020b410710012203450d01200220033602782002420737027c200241f8006a410041071027200228027820022802800122056a220341002800d30f360000200241286a41086a200541076a2205360200200341046a41002f00d70f3b0000200341066a41002d00d90f3a0000200220022903783703282002200536028001412010012203450d01200220033602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200841206a220336028001200228027c2101200241286a20022802302003102720022802282208200228023022096a20052003101e1a2002200920036a220336023002402001450d00200510020b200228022c210520022004360278200241e8006a41086a220442003703002002420037036820082003200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a4104100402402005450d00200810020b410021040b0240024020002d000022034107714101460d0020034105460d0120034102460d0120034101470d01200041086a280200450d01200041046a2802001002200241a0016a24000f0b2004450d00200041086a280200450d00200041046a28020010020b200241a0016a24000f0b101c000ba90301057f230041206b220124000240410710012202450d002001200236021020014207370214200141106a4100410710272001280210200128021822036a220241002800d30f360000200141086a200341076a2203360200200241046a41002f00d70f3b0000200241066a41002d00d90f3a00002001200129031037030020012003360218412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b20012802042103200141106a41086a220442003703002001420037031020022000200141106a1003200141086a20042903003703002001200129031037030020014110200141106a410041001000210002402003450d00200210020b200141206a24002000417f470f0b101c000bc70908057f017e017f027e017f017e017f017e230041d0006b220324000240200241086a2204280200220520014d0d002002280200220620014105746a220141186a2207290000210820062005417f6a22094105746a2205290000210a200541086a2206290000210b200541106a220c290000210d2007200541186a220e290000370000200141106a2207290000210f2007200d370000200141086a2207290000210d2007200b3700002001290000210b2001200a370000200341106a41186a2008370300200341106a41106a200f370300200341106a41086a2201200d370300200e2008370000200c200f3700002006200d3700002005200b3700002003200b37031020042009360200200341086a200936020020032002290200370300200341c0006a200310a2012003280248210220032802402105200142003703002003420037031041c50f4107200341106a1003200341306a41086a200129030037030020032003290310370330200341306a411020052002100402402003280244450d00200510020b02402003280204450d00200328020010020b0240410710012201450d002003200136021020034207370214200341106a4100410710272003280210200328021822056a220141002800cc0f360000200341306a41086a200541076a2205360200200141046a41002f00d00f3b0000200141066a41002d00d20f3a00002003200329031037033020032005360218412010012201450d002003200136021020034220370214200341106a41004120102720032802102205200328021822026a22012000290000370000200141086a200041086a290000370000200141106a200041106a290000370000200141186a200041186a2900003700002003200241206a220136021820032802142109200341306a20032802382001102720032802302202200328023822046a20052001101e1a2003200420016a220136023802402009450d00200510020b20032802342105200341106a41086a220942003703002003420037031020022001200341106a1003200341306a41086a200929030037030020032003290310370330200341306a4110100502402005450d00200210020b410710012201450d002003200136021020034207370214200341106a4100410710272003280210200328021822056a220141002800d30f360000200341306a41086a200541076a2205360200200141046a41002f00d70f3b0000200141066a41002d00d90f3a00002003200329031037033020032005360218412010012201450d002003200136021020034220370214200341106a41004120102720032802102205200328021822026a22012000290000370000200141086a200041086a290000370000200141106a200041106a290000370000200141186a200041186a2900003700002003200241206a220036021820032802142102200341306a20032802382000102720032802302201200328023822096a20052000101e1a2003200920006a220036023802402002450d00200510020b20032802342105200341106a41086a220242003703002003420037031020012000200341106a1003200341306a41086a200229030037030020032003290310370330200341306a4110100502402005450d00200110020b200341d0006a24000f0b101c000b419c3920012005103c000b9a0301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3c3cdd8b73a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220036021802402005450d00200410020b2002280214210420022001370308200241206a41086a220542003703002002420037032020032000200241206a1003200241106a41086a200529030037030020022002290320370310200241106a4110200241086a4108100402402004450d00200310020b200241306a24000f0b101c000bfd0602067f017e230041306b220224000240410810012203450d00200220033602182002420837021c200241186a4100410810272002280218200228022022036a42f3e885d3a3ec9bb73a3700002002200341086a360220200241086a41086a200228022036020020022002290318370308412010012203450d00200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a2203360220200228021c2106200241086a20022802102003102720022802082205200228021022076a20042003101e1a2002200720036a220336021002402006450d00200410020b200228020c210442002108200241186a41086a220642003703002002420037031820052003200241186a1003200241086a41086a20062903003703002002200229031837030802400240200241086a411041d02d410041001000417f460d0020024200370318200241086a4110200241186a41084100100041016a41084d0d01200229031821080b02402004450d00200510020b4100210302402008427f510d002008102e560d002000104322082001540d00410810012203450d02200220033602182002420837021c200241186a4100410810272002280218200228022022036a42f3e885d3a3ac98b63a3700002002200341086a360220200241086a41086a200228022036020020022002290318370308412010012203450d02200820017d2108200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a2200360220200228021c2103200241086a20022802102000102720022802082205200228021022066a20042000101e1a2002200620006a220036021002402003450d00200410020b200228020c210420022008370328200241186a41086a220342003703002002420037031820052000200241186a1003200241086a41086a200329030037030020022002290318370308200241086a4110200241286a41081004410121032004450d00200510020b200241306a240020030f0b41c1214133102d000b101c000bf80301057f230041206b22022400024002400240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800d30f360000200241086a200441076a2204360200200341046a41002f00d70f3b0000200341066a41002d00d90f3a00002002200229031037030020022004360218412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241106a41086a220542003703002002420037031020032001200241106a1003200241086a20052903003703002002200229031037030041002101024002402002411041d02d410041001000417f460d00200241003602104101210120024110200241106a41044100100041016a41044d0d01200228021021052004450d040c030b20040d020c030b41c1214133102d000b101c000b200310020b2000200136020020002005360204200241206a24000b8806010a7f230041306b22022400024002400240024002400240024002400240410710012203450d00200220033602182002420737021c200241186a4100410710272002280218200228022022046a220341002800cc0f360000200241086a41086a200441076a2204360200200341046a41002f00d00f3b0000200341066a41002d00d20f3a00002002200229031837030820022004360220412010012203450d00200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a2201360220200228021c2103200241086a20022802102001102720022802082206200228021022056a20042001101e1a2002200520016a220136021002402003450d00200410020b200228020c2107200241186a41086a220342003703002002420037031820062001200241186a1003200241086a41086a200329030037030020022002290318370308200241086a411041d02d410041001000417f460d01200241003602184100200241086a4110200241186a41044100100022012001417f461b220141034d0d0720022802182208417f4c0d082008450d022008100122090d030b101c000b200041003602082000420137020020070d020c030b410121090b2002200836021c200220093602182002410036022002402008450d002001410420014104491b2103200241206a210a41002101410021040340200241003a002f200241086a41102002412f6a41012003100041016a41014b220b450d04200441016a210420022d002f210502402001200228021c470d00200241186a1023200a2802002101200228021821090b2003200b6a2103200920016a20053a0000200a200141016a220136020020042008490d000b200228021821090b2009450d032000200229021c370204200020093602002007450d010b200610020b200241306a24000f0b200228021c450d00200910020b41c1214133102d000b1024000b990401057f230041206b220224000240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800bf10360000200241086a200441076a2204360200200341046a41002f00c3103b0000200341066a41002d00c5103a00002002200229031037030020022004360218412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241106a41086a220542003703002002420037031020032001200241106a1003200241086a20052903003703002002200229031037030041002101024002402002411041d02d410041001000417f460d002002410036021020024110200241106a41044100100041016a41044d0d01200228021021012002410036021020024110200241106a41044104100041016a41044d0d01200041086a200228021036020020002001360204410121010b2000200136020002402004450d00200310020b200241206a24000f0b41c1214133102d000b101c000b930503067f017e097f230041d0006b220224002002410036023020012001280208220341002001280200220420012802042205200241306a41042003100022032003417f461b2203410420034104491b6a220636020802400240024002400240200341034d0d0020022802302207ad42287e2208422088a70d042008a72203417f4c0d032003450d012003100122090d02101c000b20004100360200200241d0006a24000f0b410821090b20022007360204200220093602002002410036020802402007450d00200241306a41186a210a200241306a41106a210b4100210c4100210d034020024200370330200141086a220e410020042005200241306a41082006100022032003417f461b2203410820034108491b20066a220636020002400240200341074d0d0020022903302108200a4200370300200b4200370300200241306a41086a220f420037030020024200370330200e410020042005200241306a41202006100022032003417f461b2203412020034120491b20066a22063602002003411f4d0d00200d41016a210d200241106a41186a220e200a290300370300200241106a41106a2210200b290300370300200241106a41086a2211200f29030037030020022002290330370310200c2002280204470d0120021068200241086a280200210c200228020021090c010b2000410036020002402002280204450d00200910020b200241d0006a24000f0b2009200c41286c6a2203200837030020032002290310370308200341206a200e290300370300200341186a2010290300370300200341106a2011290300370300200241086a200c41016a220c360200200d2007490d000b0b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b105f000b105e000bf40403057f017e037f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a220341003602002001420137031020002903002106200141106a41004108102720032003280200220241086a2207360200200220012802106a2006370000200141106a20074120102720032003280200220741206a22023602002007200128021022086a220341086a200041106a290000370000200341106a200041186a290000370000200341186a200041206a2900003700002003200041086a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220741003602002001200236022420012003360220200141206a41002002102720072007280200220920026a22033602002009200128022022076a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20072003101e1a2004200820036a220336020002402002450d00200710020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a2200420037030020014200370320418f114107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000bb50201077f230041206b22022400200141086a28020021032002410036021820024201370310200241106a4100410410272002280210200228021822046a20033600002002200441046a360218200241086a2204200228021836020020022002290310370300024002402003450d00200128020021050340410110012201450d022002200136021020024201370214200241106a410041011027200241106a41086a22012001280200220641016a22013602002006200228021022076a20052d00003a00002002280214210620022004280200200110272002280200200428020022086a20072001101e1a2004200820016a36020002402006450d00200710020b200541016a21052003417f6a22030d000b0b20002002290300370200200041086a2004280200360200200241206a24000f0b101c000bd60c03047f047e017f230041f0006b210202400240024002400240024002400240024002400240024002400240024020012d002822034103714101460d0020034102470d01200141206a22032802002204450d0e20032004417f6a3602002001411c6a2d0000450d050c0e0b20012802102204450d01200141106a4100360200024020012802082203200128020c2205460d002004417f7321040340200241c8006a41206a200341206a290300370300200241c8006a41186a200341186a290300370300200241c8006a41106a200341106a290300370300200241c8006a41086a200341086a29030037030020022003290300370348200441016a2204450d072005200341286a2203470d000b200141086a20053602000b200042003703000f0b20012802102204450d01200141106a410036020020012802082203200128020c2205460d022004417f7321040340200241c8006a41206a200341206a290300370300200241c8006a41186a200341186a290300370300200241c8006a41106a200341106a290300370300200241c8006a41086a200341086a29030037030020022003290300370348200441016a2204450d062005200341286a2203470d000b200141086a20053602000c020b20012802082202200128020c460d06200141086a200241286a360200200041286a200241206a290300370300200041206a200241186a290300370300200041186a200241106a290300370300200041106a200241086a29030037030020002002290300370308200042013703000f0b20012802082203200128020c460d00200141086a200341286a360200200241206a200341206a290300370300200241186a200341186a290300370300200241106a200341106a290300370300200241086a200341086a290300370300200220032903003703000c040b200141286a41023a0000200141206a22032802002204450d0820032004417f6a3602002001411c6a2d0000450d050c080b200141186a22042802002203200141146a280200460d082004200341586a220336020020032903004200510d05200241c8006a41206a200341206a2903002206370300200241c8006a41186a200341186a2903002207370300200241c8006a41106a200341106a2903002208370300200241c8006a41086a200341086a2903002209370300200241086a22042008370300200241106a22052007370300200241186a220a20063703002002200329030037034820022009370300200041286a200141246a280200290300370300200041206a200a290300370300200041186a2005290300370300200041106a200429030037030020002002290300370308200042013703000f0b2000200229034837030820004201370300200141086a200341286a360200200041106a200241c8006a41086a290300370300200041186a200241c8006a41106a290300370300200041206a200241c8006a41186a290300370300200041286a200241c8006a41206a2903003703000f0b200141086a200341286a360200200241086a200241c8006a41086a290300370300200241106a200241c8006a41106a290300370300200241186a200241c8006a41186a290300370300200241206a200241c8006a41206a290300370300200220022903483703000b2000200229030037030820004201370300200041106a200241086a290300370300200041186a200241106a290300370300200041206a200241186a290300370300200041286a200241206a2903003703000f0b200042003703000f0b200141186a22042802002203200141146a280200460d022004200341586a220336020020032903004200510d01200241c8006a41206a200341206a2903002206370300200241c8006a41186a200341186a2903002207370300200241c8006a41106a200341106a2903002208370300200241c8006a41086a200341086a2903002209370300200241286a41086a22042008370300200241286a41106a22052007370300200241286a41186a220a20063703002002200329030037034820022009370328200041286a200141246a280200290300370300200041206a200a290300370300200041186a2005290300370300200041106a200429030037030020002002290328370308200042013703000f0b2001411c6a41013a0000200042003703000f0b2001411c6a41013a0000200042003703000f0b200042003703000f0b200042003703000b8c0204017f017e017f017e230041c0006b22022400102e2103200241086a220442003703002002420037030041f726410720021003200241306a41086a2004290300370300200220022903003703300240200241306a411041d02d410041001000417f460d00200242003703000240200241306a4110200241084100100041016a41084d0d0020022903002105200241286a200041286a290300370300200241206a200041206a290300370300200241186a200041186a290300370300200241106a200041106a290300370300200241086a200041086a29030037030020022000290300370300200520037c20022001103f200241c0006a24000f0b41c1214133102d000b41f4214122102d000bba0503047f017e087f230041e0006b22012400200141c0006a41086a220242003703002001420037034041f2224107200141c0006a1003200141086a2002290300370300200120012903403703000240024002402001411041d02d410041001000417f460d00200141003602400240410020014110200141c0006a41044100100022022002417f461b220341034d0d0020012802402204ad42287e2205422088a70d022005a72202417f4c0d03024002402002450d002002100122060d01101c000b410821060b200120043602142001200636021020014100360218024002402004450d002003410420034104491b2107200141c0006a41186a21084100210341002109034020014200370340410020014110200141c0006a41082007100022022002417f461b220241074d0d022001290340210520084200370300200141c0006a41106a220a4200370300200141c0006a41086a220b420037030020014200370340410020014110200141c0006a41202002410820024108491b20076a2207100022022002417f461b2202411f4d0d02200941016a21092002412020024120491b2102200141206a41186a220c2008290300370300200141206a41106a220d200a290300370300200141206a41086a220a200b29030037030020012001290340370320024020032001280214470d00200141106a106f200141106a41086a2802002103200128021021060b200220076a21072006200341286c6a2202200537030020022001290320370308200241206a200c290300370300200241186a200d290300370300200241106a200a290300370300200141106a41086a200341016a220336020020092004490d000b200128021021060b2006450d012000200129021437020420002006360200200141e0006a24000f0b2001280214450d00200610020b41c1214133102d000b41f4214122102d000b1064000b1065000bf40403057f017e037f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a220341003602002001420137031020002903002106200141106a41004108102720032003280200220241086a2207360200200220012802106a2006370000200141106a20074120102720032003280200220741206a22023602002007200128021022086a220341086a200041106a290000370000200341106a200041186a290000370000200341186a200041206a2900003700002003200041086a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220741003602002001200236022420012003360220200141206a41002002102720072007280200220920026a22033602002009200128022022076a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20072003101e1a2004200820036a220336020002402002450d00200710020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a220042003703002001420037032041f2224107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000b922305077f017e027f017e037f230041b0016b22022400200241003a005020012001280208220320012802002001280204200241d0006a41012003100041016a220341014b6a220436020802400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020034102490d0020022d0050220341074b0d03024020030e080005020404060703000b200241003a0050200141086a20042001280200200141046a280200200241d0006a41012004100041016a220341014b6a220436020020034102490d1e20022d00502203450d0a20034101470d1e200141046a280200210520024100360250200141086a4100200128020022062005200241d0006a41042004100022032003417f461b2207410420074104491b20046a2203360200200741034d0d1e20022802502208ad42187e2209422088a70d202009a72204417f4c0d1f2004450d1b20041001220a0d1c0c210b20004106360200200241b0016a24000f0b200241003a005041042107200141086a200420012802002205200141046a280200220b200241d0006a41012004100041016a220341014b6a220436020020034102490d1020022d0050220341034b0d10024020030e04000e0f10000b20024200370350200141086a41002005200b200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d1020022903502109410121070c0f0b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d0620022d00502203450d0420034101470d0620024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d06200229035021094202210c0c050b20004106360200200241b0016a24000f0b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d0820022d00502203450d0620034101470d08420221090c070b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d1120022d00502203450d0820034101470d1120024100360250200141086a410020072005200241d0006a41042004100022012001417f461b2201410420014104491b20046a360200200141034d0d1120022802502103420221090c200b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a2204360200024020034102490d004105210320022d0050220b41034b0d1d0240200b0e0400100e0f000b20024100360250200141086a410020072005200241d0006a41042004100022012001417f461b2201410420014104491b20046a360200200141034d0d1d20022802502101410121030c1f0b410521030c1c0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d01200229035021094201210c0b20004105360200200041086a200c370300200041106a2009370300200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b200141046a280200210320024100360250200141086a410020012802002003200241d0006a41042004100022032003417f461b2203410420034104491b20046a2204360200200341034d0d1320022802502203417f4c0d172003450d0e20031001220a450d16200a4100200310171a200141086a28020021040c0f0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b22014108200141084922011b20046a36020020010d012002290350210c420121090b20004101360200200041086a2009370300200041106a200c370300200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b200241d0006a200110bd0120024180016a41086a2203200241dc006a29020037030020024180016a41106a2204200241e4006a29020037030020024180016a41186a2207200241ec006a29020037030020024180016a41206a2205200241f4006a29020037030020024180016a41286a220b200241fc006a2802003602002002200229025437038001200228025022064106460d08200241206a41286a220a200b280200360200200241206a41206a220b2005290300370300200241206a41186a22052007290300370300200241206a41106a22072004290300370300200241206a41086a220420032903003703002002200229038001370320200241d0006a41286a200a280200360200200241d0006a41206a200b290300370300200241d0006a41186a2005290300370300200241d0006a41106a2007290300370300200241d0006a41086a200429030037030020022002290320370350413010012203450d1220032002290350370204200320063602002003410c6a200241d0006a41086a290300370200200341146a200241e0006a2903003702002003411c6a200241e8006a290300370200200341246a200241f0006a2903003702002003412c6a200241f8006a28020036020020022003360208200241003a0050200141086a2204200428020022042001280200200141046a280200200241d0006a41012004100041016a41014b22016a3602002001450d0720022d0050220141034f0d07420121090c170b20024200370350200141086a41002005200b200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0220022903502109410221070c010b20024100360250200141086a41002005200b200241d0006a41042004100022012001417f461b2201410420014104491b20046a36020041032107200141034d0d01200228025021060b20004102360200200041086a20073602002000410c6a2006360200200041106a2009370200200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0f20022903502109410321030c100b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0e20022903502109410421030c0f0b200241d0006a41186a220b4200370300200241d0006a41106a22064200370300200241d0006a41086a220a420037030020024200370350200141086a410020072005200241d0006a41202004100022012001417f461b2201412020014120491b20046a3602002001411f4d0d0220024180016a41186a2201200b29030037030020024180016a41106a2203200629030037030020024180016a41086a2204200a2903003703002002200229035037038001200b200129030037030020062003290300370300200a20042903003703002002200229038001370350410221032002411c6a41026a220420022d00523a0000200241086a41086a2207200241e7006a290000370300200241086a41106a2205200241d0006a411f6a2d00003a0000200220022f01503b011c2002200229005f3703082002280053210120022900572109200241046a41026a20042d00003a0000200241206a41086a2007290300370300200241206a41106a20052d00003a0000200220022f011c3b0104200220022903083703200c0f0b200241086a10220b20004106360200200241b0016a24000f0b200b20024180016a41186a290000370300200620024180016a41106a290000370300200a20024180016a41086a29000037030020022002290080013703500c0a0b4101210a0b200141086a200341002001280200200141046a280200200a20032004100022012001417f461b2201200120034b1b20046a3602000240200320014d0d00200a10020c040b200a450d032003ad22094220862009842109410121010c020b4104210a0b200220083602542002200a3602502002410036025802402008450d00200141086a21044101210d4100210b03402002410036028001200441002006200520024180016a41042003100022072007417f461b2207410420074104491b20036a220f36020002400240200741034d0d002002280280012203417f4c0d09024002402003450d00200310012207450d0a20074100200310171a0c010b410121070b2004200341002006200520072003200f100022052005417f461b2205200520034b1b200f6a3602000240200320054b0d002007450d012003ad22094220862009842109200141046a220e28020021052004280200210320024100360280012004200341002001280200200520024180016a41042003100022052005417f461b2205410420054104491b6a22063602000240200541034d0d002002280280012203417f4c0d0b024002402003450d00200310012205450d0c20054100200310171a200428020021060c010b410121050b2004200341002001280200200e2802002005200320061000220f200f417f461b220f200f20034b1b20066a36020002402003200f4b0d002005450d012003ad220c422086200c84210c200b2002280254470d04200241d0006a1076200241d0006a41086a280200210b2002280250210a0c040b200510020b2009a7450d010b200710020b200228025021040240200b450d00200b41186c21032004210103400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200341686a22030d000b0b2002280254450d04200410020c040b0240200a200b41186c6a22032009370204200320073602002003410c6a2005360200200341106a200c370200200241d0006a41086a200b41016a220b360200200d20084f0d00200d41016a210d20042802002103200e2802002105200128020021060c010b0b2002280250210a0b200a450d0120022902542109410221010b2000200136020420004100360200200041086a200a3602002000410c6a2009370200200041146a20022902503702002000411c6a200241d0006a41086a290200370200200041246a200241e0006a2902003702002000412c6a200241e8006a280200360200200241b0016a24000f0b20004106360200200241b0016a24000f0b1061000b1060000b101c000b1019000b0b0b200241086a41026a2204200241046a41026a2d00003a0000200241d0006a41086a2207200241206a41086a290300370300200241d0006a41106a2205200241206a41106a290300370300200220022f01043b010820022002290320370350024020034105470d0020004106360200200241b0016a24000f0b2002411c6a41026a220b20042d00003a000020024180016a41086a2204200729030037030020024180016a41106a22072005290300370300200220022f01083b011c2002200229035037038001200041086a20033a0000200041043602002000410c6a2001360000200041106a2009370000200020022f011c3b00092000410b6a200b2d00003a0000200041186a200229038001370000200041206a2004290300370000200041286a2007290300370000200241b0016a24000f0b200041033602002000410c6a2002290250370200200041146a200241d8006a2902003702002000411c6a200241e0006a290200370200200041246a200241e8006a2902003702002000412c6a200241f0006a28020036020020002003ad422086200141ff0171ad42088684200984370204200241b0016a24000be60201047f230041206b22022400200241003602082002420137030020024100412010272002280200200228020822036a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200341206a2204360208200220044120102720022802002203200228020822056a22042001290020370000200441086a200141286a290000370000200441106a200141306a290000370000200441186a200141386a2900003700002002200541206a220136020802402001417f4c0d00024002402001450d002001100122040d01101c000b410121040b200220013602142002200436021020024100360218200241106a41002001102720022002280218220420016a360218200420022802106a20032001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200310020b200241206a24000f0b1019000be70101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a10bf01200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020be00302057f017e230041206b220124000240410710012202450d002001200236021020014207370214200141106a4100410710272001280210200128021822036a220241002800d92e360000200141086a200341076a2203360200200241046a41002f00dd2e3b0000200241066a41002d00df2e3a00002001200129031037030020012003360218412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bd14b05067f017e057f047e047f230041a0076b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d00002203417f6a220441054b0d0002400240024002400240024020040e06000402030105000b200241f8006a41086a22042000410a6a290000370300200241f8006a41106a2205200041126a290000370300200241f8006a41186a22062000411a6a2900003703002002200041026a29000037037820002d0001450d21200241d8036a41186a2006290300370300200241d8036a41106a2005290300370300200241d8036a41086a2004290300370300200220022903783703d803410810012204450d43200220043602582002420837025c200241d8006a4100410810272002280258200228026022046a42f3cacdd3e38d9eba3a3700002002200441086a360260200241206a41086a200228026036020020022002290358370320412010012204450d43200220043602582002422037025c200241d8006a41004120102720022802582205200228026022066a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200641206a2201360260200228025c2106200241206a20022802282001102720022802202204200228022822076a20052001101e1a2002200720016a220136022802402006450d00200510020b20022802242105200241d8006a41086a220642003703002002420037035820042001200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200241d8036a412010042005450d38200410020c380b200241d8036a41286a200041306a290300370300200241d8036a41206a200041286a290300370300200241d8036a41186a200041206a290300370300200241d8036a41106a200041186a290300370300200241d8036a41086a200041106a2903003703002002200041086a2903003703d803200241d8036a200110ae0141002101410121040c400b200041086a2903004200510d20200041106a2903002108200241f0036a4200370300200241d8036a41106a4200370300200241d8036a41086a4200370300200242003703d8030240200241d8036a2001460d002001200241d8036a412010060d270b200241d8006a41086a220142003703002002420037035841ad0b4107200241d8006a1003200241c0006a41086a2204200129030037030020022002290358370340200241c0006a411020024190076a410041001000417f470d21200142003703002002420037035841ed2d4107200241d8006a10032004200129030037030020022002290358370340200241c0006a411041d02d410041001000417f460d22200241003602d803200241c0006a4110200241d8036a41044100100041016a41044d0d1a20022802d8030d23200220083703d803200241d8006a41086a220142003703002002420037035841a90c4107200241d8006a1003200241c0006a41086a2205200129030037030020022002290358370340200241c0006a4110200241d8036a4108100441012104200241013a00d803200142003703002002420037035841ad0b4107200241d8006a10032005200129030037030020022002290358370340200241c0006a4110200241d8036a410110040c370b200241086a2205200041106a2903003703002002200041086a29030037030020022d000022044103714101460d0520044102460d0320044103470d2320022d0001210920022802042105410810012206450d40200220063602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322066a42e4cab5d383cedcb73a3700002002200641086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378410410012206450d40200220063602d803200242043702dc03200241d8036a41004104102720022802d803220720022802e00322066a20053600002002200641046a22063602e00320022802dc03210a200241f8006a200228028001200610272002280278220b200228028001220c6a20072006101e1a2002200c20066a2206360280010240200a450d00200710020b200228027c2107200241d8006a41086a220a420037030020024200370358200b2006200241d8006a1003200241c0006a41086a200a29030037030020022002290358370340200241c0006a411020024190076a410041001000210602402007450d00200b10020b2006417f460d2620011043210820011044420020087d510d27200241e4036a200141086a290000370200200241ec036a200141106a290000370200200241f4036a200141186a290000370200200220053602d803200220012900003702dc03410810012206450d40200220063602782002420837027c200241f8006a410041081027200228027820022802800122066a42e4cab5d3e3ee9bba3a3700002002200641086a36028001200241d8006a41086a220620022802800136020020022002290378370358200241f8006a200241d8036a1045200228027c210c2002280278210b200241d8006a2006280200200228028001220710272002280258220a2006280200220d6a200b2007101e1a2006200d20076a22073602000240200c450d00200b10020b200228025c2106200241d8006a41086a220b420037030020024200370358200a2007200241d8006a1003200241c0006a41086a200b29030037030020022002290358370340200241c0006a411020024190076a410041001000210702402006450d00200a10020b2007417f470d3a20024190076a20051042200241d8036a41186a2207200141186a290000370300200241d8036a41106a220b200141106a290000370300200241d8036a41086a220a200141086a290000370300200220012900003703d8032002280298072206200228029407460d170c390b200241086a2204200041116a290000370300200241106a2205200041196a290000370300200241186a2206200041216a2900003703002002200041096a290000370300200041086a2d000041037122034101460d0520034103460d0320034102470d23200241d8006a41086a220342003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200329030037030020022002290358370340200241c0006a411041d02d410041001000417f460d122002421037027c2002200241c0006a360278200241d8036a200241f8006a103a20022802d8032206450d27200220022902dc0322083702242002200636022020062008422088a7220741057422036a210520034105754104490d06200621040340200120042203460d182003200141201006450d18200341206a22042001460d182004200141201006450d18200441206a22042001460d182004200141201006450d18200441206a22042001460d182004200141201006450d182005200441206a22046b41057541034b0d000b20034180016a22032005470d070c080b200241f8036a200041246a280200360200200241f0036a2000411c6a290200370300200241e8036a200041146a290200370300200241e0036a2000410c6a2902003703002002200041046a2902003703d803200241d8036a200110db014100210541012104410121010c3d0b200041106a2d00004102470d32419cc200103b000b200241d8036a20022802042205103720022802e003450d25200241d8006a41106a2206200241d8036a41106a290300370300200241d8006a41086a200241d8036a41086a290300370300200220022903d8033703582001200229035810b201450d26200241f8006a41186a2207200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a2900003703002002200129000037037820062802002201200241e4006a280200460d110c340b200241d8006a41086a220342003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a2003290300370300200220022903583703404100210b200241c0006a411041d02d410041001000417f460d052002421037027c2002200241c0006a360278200241d8036a200241f8006a103a20022802d8032205450d2c2005200241e0036a280200220941057422036a210720022802dc03210b20034105754104490d0620052106410021030340200120062204460d0a2003200420014120100622064100476a21032006450d0a200441206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a200641206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a200641206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a2007200641206a22066b41057541034b0d000b20044180016a22042007470d070c080b20052903002108200220022802042206360220200241d8006a41086a220442003703002002420037035841a2294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340200241c0006a411041d02d410041001000417f460d25200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1420022903d8032008560d262001200810b201450d27200241d8006a41086a220442003703002002420037035841a9294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340410021050240200241c0006a411041d02d410041001000417f460d00200241003602d803200241c0006a4110200241d8036a41044100100041016a41044d0d1820022802d80321050b2002200541016a3602d803200241d8006a41086a220442003703002002420037035841a9294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340200241c0006a4110200241d8036a41041004412010012204450d3a200241e4036a428180808010370200200141086a2207290000210e200141106a220b290000210f20012900002110200441186a200141186a220a290000370000200441106a200f370000200441086a200e37000020042010370000200220083703d803200220043602e0032005200241d8036a10df01200241d8006a1036200241d8036a200610e001200241f8006a41186a2206200a290000370300200241f8006a41106a200b290000370300200241f8006a41086a20072900003703002002200129000037037820022802602204200228025c460d100c310b200041306a2903002108200241206a41186a2006290300370300200241206a41106a2005290300370300200241206a41086a20042903003703002002200229030037032041d02d200110c60122112008540d2741d02d200241206a10c601210e410810012203450d39200220033602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322036a42f3e885d3a3ec9bb73a3700002002200341086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378412010012203450d39200220033602d803200242203702dc03200241d8036a41004120102720022802d803220420022802e00322056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a22033602e00320022802dc032106200241f8006a200228028001200310272002280278220520022802800122076a20042003101e1a2002200720036a22033602800102402006450d00200410020b200228027c21044200210f200241d8006a41086a220642003703002002420037035820052003200241d8006a1003200241c0006a41086a2006290300370300200220022903583703400240200241c0006a411041d02d410041001000417f460d00200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1520022903d803210f0b02402004450d00200510020b410810012203450d39200220033602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322036a42f3e885d3a3ec9bb73a3700002002200341086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378412010012203450d39200220033602d803200242203702dc03200241d8036a41004120102720022802d803220420022802e00322056a22032002290320370000200341086a200241206a41086a290300370000200341106a200241206a41106a290300370000200341186a200241206a41186a2903003700002002200541206a22033602e00320022802dc032106200241f8006a200228028001200310272002280278220520022802800122076a20042003101e1a2002200720036a22033602800102402006450d00200410020b200228027c210442002110200241d8006a41086a220642003703002002420037035820052003200241d8006a1003200241c0006a41086a2006290300370300200220022903583703400240200241c0006a411041d02d410041001000417f460d00200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1620022903d80321100b02402004450d00200510020b200f2010560d28200e20087c220f200e580d2941a00610012203450d392003200241d8036a41b803101e220341003b01be03200341003602b803200341c0036a200241f8006a41e002101e1a200241c8006a4200370300200241d4006a41d43c3602002002200336024420024100360240200241d02d360250200241206a2001460d0b2001200241206a41201006450d0b2002417f360240200241d8036a41186a2207200141186a290000370300200241d8036a41106a220b200141106a290000370300200241d8036a41086a220a200141086a290000370300200220012900003703d8032002200241c0006a41047222043602602002200241c0006a41086a2802003602582002200228024436025c200241f8006a200241d8006a200241d8036a10970141012103200241f8006a41106a2802002105200241f8006a410c6a2802002109200241f8006a41086a2802002106200228027c210c024020022802784101470d00200241d8006a41186a2007290300370300200241d8006a41106a200b290300370300200241d8006a41086a200a290300370300200220022903d803370358410021030b41900210012201450d39201120087d21082001200241d8036a418802101e220141003b018e0220014100360288022003450d09200220013602782002420037027c2006200541286c6a2101200241d8036a200241f8006a109801200241d8036a1099010c0a0b200622032005460d010b200620074105746a2104034020012003460d102003200141201006450d102004200341206a2203470d000b0b200241d8036a41186a200141186a290000370300200241d8036a41106a200141106a290000370300200241d8036a41086a200141086a290000370300200220012900003703d803200241d8036a210320072008a7460d0a0c290b41012105410021094100210341000d270c040b41002103200522042007460d010b034020012004460d022003200420014120100622064100476a21032006450d022007200441206a2204470d000b0b4100450d010c240b41010d230b41dc3b103b000b200241f4036a200241e0006a290300370200200241fc036a200241e8006a29030037020020024184046a200241f0006a290300370200200220063602dc032002200c3602d803200220093602e003200220053602e4032002200241c0006a410c6a3602e803200220022903583702ec0320024198016a42003703002002410036028801200242003703782002200136029401200241d8036a200241f8006a109a0121010b20014201370300200120083703082002417f360240200241d8036a41186a2201200241206a41186a290300370300200241d8036a41106a2206200241206a41106a290300370300200241d8036a41086a2207200241206a41086a290300370300200220022903203703d803200220043602602002200241c0006a41086a2802003602582002200228024436025c200241f8006a200241d8006a200241d8036a10970141012103200241f8006a41106a2802002104200241f8006a410c6a280200210b200241f8006a41086a2802002105200228027c210a024020022802784101470d00200241d8006a41186a2001290300370300200241d8006a41106a2006290300370300200241d8006a41086a2007290300370300200220022903d803370358410021030b41900210012201450d2e2001200241d8036a418802101e220141003b018e022001410036028802024002402003450d00200220013602782002420037027c2005200441286c6a2101200241d8036a200241f8006a109801200241d8036a1099010c010b200241f4036a200241e0006a290300370200200241fc036a200241e8006a29030037020020024184046a200241f0006a290300370200200220053602dc032002200a3602d8032002200b3602e003200220043602e4032002200241c0006a410c6a3602e803200220022903583702ec0320024198016a42003703002002410036028801200242003703782002200136029401200241d8036a200241f8006a109a0121010b200142013703002001200f370308200241003602400b200241d8036a200241c0006a200241206a109b010240024020022802e0032201450d0020022802d80322032001200241206a200241c0006a108e01450d010b200241c8006a290300210820022802442101024020022802dc03450d0020022802d80310020b2001450d22200220083702dc03200220013602d80320024190076a200241d8036a10c7010c220b200241c0006a4104722101024020022802dc03450d00200310020b200241f8006a41086a200141086a28020036020020022001290200370378200241d8036a200241f8006a109d01200241d8036a109e010c210b2002410036022820024201370320200241d8036a41186a200141186a290000370300200241d8036a41106a200141106a290000370300200241d8036a41086a200141086a290000370300200220012900003703d803200241d8036a21030b200241206a107c200241286a2802002107200228022021060c1e0b200241e0006a107c200241e8006a28020021010c220b200241d8006a1074200241e0006a28020021040c200b20024190076a107c20024190076a41086a28020021060c210b41c43b103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b418431103b000b41dc32103b000b418c33103b000b41f4214122102d000b41a433103b000b419cc000103b000b41f43b103b000b41f432103b000b41fcc000103b000b4194c100103b000b41c1214133102d000b41b0294124102d000b41e4c000103b000b41f4214122102d000b41b4c000103b000b41ccc000103b000b418c3c103b000b41a43c103b000b41bc3c103b000b41c1214133102d000b200241d8036a41186a2206200520034105746a220341186a2207290000370300200241d8036a41106a220a200341106a220c290000370300200241d8036a41086a220d200341086a2212290000370300200220032900003703d80320052009417f6a22094105746a22042900002108200441086a2213290000210e200441106a2214290000210f2007200441186a2215290000370000200c200f3700002012200e37000020032008370000200420022903d8033700002013200d2903003700002014200a290300370000201520062903003700002002200b36027c200220053602782002200936028001200241d8036a200241f8006a10a20120022802e003210420022802d8032103200241d8006a41086a220642003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200320041004024020022802dc03450d00200310020b0240200b450d00200510020b200241d8006a41086a220342003703002002420037035841c81d4107200241d8006a1003200241c0006a41086a20032903003703002002200229035837034002400240200241c0006a411041d02d410041001000417f460d00200242003703d80302400240200241c0006a4110200241d8036a41084100100041016a41084d0d0020022903d8032108200241d8006a41086a220342003703002002420037035841d21e4107200241d8006a1003200241c0006a41086a200329030037030020022002290358370340200241c0006a411041d02d410041001000417f460d03200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d01200120022903d80320087c10c5010c050b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b200341086a2900002108200341106a290000210e200341186a290000210f200620074105746a22042003290000370000200441186a200f370000200441106a200e370000200441086a2008370000200241206a41086a2203200741016a360200200241f8006a41086a200328020036020020022002290320370378200241d8036a200241f8006a10a20120022802e003210420022802d8032103200241d8006a41086a220542003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200529030037030020022002290358370340200241c0006a4110200320041004024020022802dc03450d00200310020b0240200228027c450d00200228027810020b2001427f10c5010b20002d000021030b410121040b410121010c070b2002280258200441d8006c6a220120022903d8033703002001200536023020012002290378370234200141086a200241d8036a41086a2205290300370300200141106a200241d8036a41106a290300370300200141186a200241d8036a41186a290300370300200141206a200241d8036a41206a290300370300200141286a200241d8036a41286a2903003703002001413c6a200241f8006a41086a290300370200200141c4006a200241f8006a41106a290300370200200141cc006a2006290300370200200241d8006a41086a2201200441016a36020020052001280200360200200220022903583703d803200241d8036a103e20022802d8032106024020052802002201450d00200141d8006c210420062101034020011038200141d8006a2101200441a87f6a22040d000b0b024020022802dc03450d00200610020b200241206a10220c050b200241d8006a41106a2206200141016a360200200241d8006a41086a220b28020020014105746a22012002290378370000200141086a200241f8006a41086a290300370000200141106a200241f8006a41106a290300370000200141186a2007290300370000200241d8036a41106a2006290300370300200241d8036a41086a200b290300370300200220022903583703d8032005200241d8036a10df010c020b20024190076a41086a220c200641016a360200200a2903002108200b290300210e2007290300210f20022802900720064105746a220620022903d803370000200641186a200f370000200641106a200e370000200641086a2008370000200241206a41086a200c2802003602002002200229039007370320410810012206450d06200220063602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322066a42e4cab5d3e38e9db93a3700002002200641086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378410410012206450d06200220063602d803200242043702dc03200241d8036a41004104102720022802d803220720022802e00322066a20053600002002200641046a22063602e00320022802dc03210a200241f8006a200228028001200610272002280278220b200228028001220c6a20072006101e1a2002200c20066a220c360280010240200a450d00200710020b200228027c2107200241d8036a200241206a10a20120022802e003210a20022802d8032106200241d8006a41086a220d420037030020024200370358200b200c200241d8006a1003200241c0006a41086a200d29030037030020022002290358370340200241c0006a41102006200a1004024020022802dc03450d00200610020b02402007450d00200b10020b2002280224450d00200228022010020b200241e4036a200141086a290000370200200241ec036a200141106a290000370200200241f4036a200141186a290000370200200220053602d803200220012900003702dc03200220093a0020410810012201450d05200220013602782002420837027c200241f8006a410041081027200228027820022802800122016a42e4cab5d3e3ee9bba3a3700002002200141086a36028001200241d8006a41086a220120022802800136020020022002290378370358200241f8006a200241d8036a1045200228027c210b20022802782106200241d8006a200128020020022802800122051027200228025822072001280200220a6a20062005101e1a2001200a20056a22053602000240200b450d00200610020b200228025c2101200241d8006a41086a220642003703002002420037035820072005200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200241206a410110042001450d002007100220044101460d010c020b20044101470d010b200241047210220b41012101410021040b410121050b2003411d74411d75417f4a0d0102400240200341077122034104460d0020034105470d012001450d03200041086a2d00004101470d03200041106a280200450d032000410c6a2802001002200241a0076a24000f0b2004450d02200041086a2d00004101470d022000410c6a104b200241a0076a24000f0b2005450d01200041046a2d00004101470d01200041086a104b200241a0076a24000f0b101c000b200241a0076a24000b080041ec3a1054000b080041ec3a1054000bfe2507097f027e0a7f027e067f017e0d7f230041d0026b220424000240024020014115490d0041012105410121060240024002400340200620057121070340024002402003450d0020054101710d012000200110e1012003417f6a21030c010b2000200110e201200441d0026a24000f0b2001410276220641036c2108200641017421094100210a024020014132490d0020082008417f6a220b2000200841286c6a220c41586a290300220d200c290300220e54220a1b220f200841016a200b2008200a1b200d200e200a1b220d200c41286a290300220e5422101b2000200f41286c6a290300200e200d20101b5422111b210820092009417f6a220c2000200941286c6a220b41586a290300220d200b290300220e54220b1b22122009410172220f200c2009200b1b200d200e200b1b220d2000200f41286c6a290300220e54220f1b2000201241286c6a290300200e200d200f1b5422131b210920062006417f6a22142000200641286c6a221241586a290300220d2012290300220e54220c1b2215200641016a20142006200c1b200d200e200c1b220d201241286a290300220e5422121b2000201541286c6a290300200e200d20121b5422141b210641024101200c1b200c20121b20146a200b6a200f6a20136a200a6a20106a20116a210a0b200a2000200641286c6a290300220d2000200941286c6a290300220e54220c6a200d200e200c1b220d2000200841286c6a290300220e54220b6a210a0240024002400240200020092006200c1b221641286c6a290300200e200d200b1b5a0d00200a41016a220a410b4b0d012007200a45714101470d030c020b200820062009200c1b200b1b21162007200a45714101470d020c010b2001417f6a2117024020014101762208450d002000200141286c6a41586a2106200021090340200441a8016a41206a220c200941206a220a290300370300200441a8016a41186a220b200941186a2210290300370300200441a8016a41106a220f200941106a2212290300370300200441a8016a41086a2211200941086a2213290300370300200420092903003703a801200641086a2214290300210d200641106a2215290300210e200641186a221829030021192006290300211a200a200641206a221b290300370300201020193703002012200e3703002013200d3703002009201a370300201b200c2903003703002018200b2903003703002015200f29030037030020142011290300370300200620042903a801370300200941286a2109200641586a21062008417f6a22080d000b0b201720166b211620074101714101470d010b2000200110e3010d070b024002400240024002402002450d00201620014f0d092000201641286c6a22062903002002290300540d00200441a8016a41206a220a200041206a2212290300370300200441a8016a41186a220b200041186a2211290300370300200441a8016a41106a2210200041106a2213290300370300200441a8016a41086a220f200041086a2209290300370300200420002903003703a801200641086a2208290300210d200641106a220c290300210e200641186a221429030021192006290300211a2012200641206a2215290300370300201120193703002013200e3703002009200d3703002000201a3703002015200a2903003703002014200b290300370300200c20102903003703002008200f290300370300200620042903a8013703002000290300210d200441086a41186a221c2012290300370300200441086a41106a221d2011290300370300200441086a41086a221e201329030037030020042009290300370308200041286a21144100210841002001417f6a22094f0d010c020b201620014f0d07200441a8016a41206a2224200041206a2205290300370300200441a8016a41186a2225200041186a2226290300370300200441a8016a41106a2227200041106a2228290300370300200441a8016a41086a2229200041086a222a290300370300200420002903003703a8012000201641286c6a2206290300210d200641086a2209290300210e200641106a22082903002119200641186a220c290300211a2005200641206a220a2903003703002026201a37030020282019370300202a200e3703002000200d370300200a2024290300370300200c20252903003703002008202729030037030020092029290300370300200620042903a8013703002000290300210d200441086a41186a222b2005290300370300200441086a41106a222c2026290300370300200441086a41086a222d20282903003703002004202a2903003703082001417f6a210941002120200041286a2208210602400340200d20062903005a0d01200641286a2106202041016a22202009490d000b0b200921070240200920204d0d002000200141286c6a41586a2106200921070340200d2006290300540d01200641586a21062007417f6a220720204b0d000b0b20072020490d0620092007490d032008200741286c6a210b41800121164100210a410021154100210c4100211441800121172008202041286c6a222e21180340200b20186b220641286e21090240024002400240024002400240200641a7d0004b221f0d00200941807f6a20092015200a492014200c4922087222101b21062010450d012017200620081b21172006201620081b21160b2014200c470d020c010b2006200641017622176b21162014200c470d010b2017450d0141002106200441286a2214210c201821090340200c20063a0000200c200d20092903005a6a210c200941286a2109200641016a22062017490d000b0b2015200a470d020c010b200441286a220c21142015200a470d010b02402016450d00200b41586a210641002109200441a8016a2215210a0340200a20093a0000200a200d2006290300546a210a200641586a2106200941016a22092016490d000c020b0b200441a8016a220a21150b0240200a20156b2206200c20146b2209200920064b1b221b450d00200441a8026a41206a2222201820142d000041286c6a220641206a290300370300200441a8026a41186a221c200641186a290300370300200441a8026a41106a221d200641106a290300370300200441a8026a41086a221e200641086a290300370300200420062903003703a802201820142d000041286c6a2206200b20152d00002210417f7341286c6a2209290300370300200641206a200941206a290300370300200641186a200941186a290300370300200641106a200941106a290300370300200641086a200941086a2903003703000240201b4101460d00410021080340200b2010417f7341807e7241286c6a22092018201420086a41016a2d000041286c6a2206290300370300200941206a200641206a220f290300370300200941186a200641186a2212290300370300200941106a200641106a2211290300370300200941086a200641086a22132903003703002006200b201520086a41016a2d00002210417f7341286c6a2209290300370300200f200941206a2903003703002012200941186a2903003703002011200941106a2903003703002013200941086a290300370300200841026a2106200841016a220f21082006201b490d000b2015200f6a21152014200f6a21140b200920042903a802370300200941206a2022290300370300200941186a201c290300370300200941106a201d290300370300200941086a201e290300370300201541016a2115201441016a21140b2018201741286c6a20182014200c461b2118200b410020166b41286c6a200b2015200a461b210b201f0d000b024002402014200c4f0d00200b41586a2106200c21080340200441a8026a41206a220a20182008417f6a22082d000041286c6a220941206a2210290300370300200441a8026a41186a220f200941186a2212290300370300200441a8026a41106a2211200941106a2213290300370300200441a8026a41086a2215200941086a221b290300370300200420092903003703a802200641086a2216290300210e200641106a22172903002119200641186a221f290300211a200629030021212010200641206a22222903003703002012201a37030020132019370300201b200e370300200920213703002022200a290300370300201f200f2903003703002017201129030037030020162015290300370300200620042903a802370300200641586a210620142008490d000b200b2014200c6b41286c6a21180c010b20182106200a21082015200a4f0d0003402008417f6a22082d00002109200441a8026a41206a220c200641206a2210290300370300200441a8026a41186a220f200641186a2212290300370300200441a8026a41106a2211200641106a2213290300370300200441a8026a41086a2214200641086a221b290300370300200420062903003703a802200b2009417f7341286c6a2209290300210e200941086a22162903002119200941106a2217290300211a200941186a221f29030021212010200941206a2222290300370300201220213703002013201a370300201b20193703002006200e3703002022200c290300370300201f200f2903003703002017201129030037030020162014290300370300200920042903a802370300200641286a210620152008490d000b2018200a20156b41286c6a21180b2000200d3703002005202b2903003703002026202c2903003703002028202d290300370300200020042903083703080240024020012018202e6b41286e20206a22094d0d002024200529030037030020252026290300370300202720282903003703002029202a290300370300200420002903003703a8012000200941286c6a2206290300210d200641086a2208290300210e200641106a220c2903002119200641186a220a290300211a2005200641206a220b2903003703002026201a37030020282019370300202a200e3703002000200d370300200b2024290300370300200a2025290300370300200c202729030037030020082029290300370300200620042903a801370300200120096b2208450d0120082009200920084b1b210c2001410376210a200641286a210b0240024020092008417f6a22014f0d00200020092002200310c40120062102200b21000c010b200b20012006200310c401200921010b200c200a4f2105200720204d2106200141154f0d070c0b0b41b4c20020092001103c000b41c4c200103b000b410021230c010b410621230b03400240024002400240024002400240024002400240024002400240024002400240024020230e0a04080905060001020307070b200a2014200841286c6a220c41206a2215290300370300200b200c41186a22182903003703002010200c41106a221b290300370300200f200c41086a22162903003703002004200c2903003703a801200641086a2217290300210e200641106a221f2903002119200641186a2220290300211a200629030021212015200641206a22222903003703002018201a370300201b20193703002016200e370300200c20213703002022200a2903003703002020200b290300370300201f20102903003703002017200f290300370300200620042903a801370300200841016a22082009417f6a22094f0d0d410621230c100b2014200841286c6a2106410721230c0f0b2006290300200d540d0a410821230c0e0b200641286a2106200841016a22082009490d08410021230c0d0b200820094f0d06410321230c0c0b2000200941286c6a2106410421230c0b0b2006290300200d5a0d09410921230c0a0b200641586a210620082009417f6a2209490d07410121230c090b2000200d3703002012201c2903003703002011201d2903003703002013201e290300370300200020042903083703082001200841016a2206490d01410221230c080b2000200641286c6a2100200120066b220141154f0d090c0e0b200620011055000b410121230c050b410721230c040b410021230c030b410021230c020b410421230c010b410521230c000b0b0b0b200720091029000b202020071055000b41b4c20020162001103c000b41dcc20020162001103c000b20014102490d002000210a410121090340200941016a210c02402000200941286c6a220641586a22082903002006290300220d5a0d00200441086a41186a2210200641206a220b290300370300200441086a41106a220f200641186a2212290300370300200441086a41086a2211200641106a22132903003703002004200629030837030820062008290300370300200641086a200841086a2903003703002013200841106a2903003703002012200841186a290300370300200b200841206a2903003703004100210b0240024002402009417f6a2208450d00200a21060340200641586a2209290300200d5a0d02200641206a200641786a290300370300200641186a200641706a290300370300200641106a200641686a290300370300200641086a200641606a29030037030020062009290300370300200921062008417f6a22080d000b200921060c020b2000200841286c6a21060c010b2008210b0b2006200d3703002000200b41286c6a22062004290308370308200641206a2010290300370300200641186a200f290300370300200641106a20112903003703000b200a41286a210a200c2109200c2001490d000b0b200441d0026a24000b9a0301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3a3ec9bb73a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220036021802402005450d00200410020b2002280214210420022001370308200241206a41086a220542003703002002420037032020032000200241206a1003200241106a41086a200529030037030020022002290320370310200241106a4110200241086a4108100402402004450d00200310020b200241306a24000f0b101c000bc70302057f017e230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42f3e885d3a3ac98b63a3700002002200341086a360218200241086a200228021836020020022002290310370300412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b2002280204210442002107200241106a41086a220542003703002002420037031020032001200241106a1003200241086a200529030037030020022002290310370300024002402002411041d02d410041001000417f460d002002420037031020024110200241106a41084100100041016a41084d0d01200229031021070b02402004450d00200310020b200241206a240020070f0b41c1214133102d000b101c000ba11105027f017e0e7f017e0b7f230041b0036b2202240020024188016a41086a2203200141086a2802003602002002200129020037038801200241086a20024188016a109d01200241306a41206a200241086a41206a280200360200200241306a41186a200241086a41186a290300370300200241306a41106a200241086a41106a290300370300200241306a41086a200241086a41086a2903003703002002200229030837033020024188016a200241306a10c8010240024020022903a80122044202510d00200241f0016a4104722105200241c0016a210620024188016a41206a2107200241b0016a2108200241b8016a2109200241bc016a210a20024194016a210b2002419c016a210c200241ac016a210d0340200241e8006a41186a220120024188016a41186a220e290300370300200241e8006a41106a220f20024188016a41106a2210290300370300200241e8006a41086a22112003290300370300200241d8006a41086a2212200641086a2903003703002002200229038801370368200220062903003703582008290300211320092802002114200a2802002115200241d0016a41186a22162001290300370300200241d0016a41106a2217200f290300370300200241d0016a41086a22182011290300370300200220022903683703d001200241f0016a41086a2012290300370300200220022903583703f001024020044201520d00410810012201450d0320022001360288012002420837028c0120024188016a41004108102720032003280200220141086a36020020012002280288016a42f3e885d3a3ac98b63a370000200241a8026a41086a2201200328020036020020022002290388013703a80241201001220f450d032002200f360288012002422037028c0120024188016a41004120102720032003280200221141206a220f360200201120022802880122126a221120022903d001370000201141086a2018290300370000201141106a2017290300370000201141186a2016290300370000200228028c012119200241a8026a2001280200200f102720022802a80222112001280200221a6a2012200f101e1a2001201a200f6a220f36020002402019450d00201210020b20022802ac022101200220133703880120024190036a41086a2212420037030020024200370390032011200f20024190036a100320024180036a41086a201229030037030020022002290390033703800320024180036a411020024188016a410810042001450d00201110020b024002402014450d00200320022802f0013602002002201536028c012002201436028801200241d0016a20024188016a10c9014101211b2015450d01201410020c010b4100211b0b2003200541086a280200360200200220052902003703880120024180026a20024188016a109801200241a8026a41206a20024180026a41206a280200360200200241a8026a41186a20024180026a41186a290300370300200241a8026a41106a20024180026a41106a290300370300200241a8026a41086a20024180026a41086a29030037030020022002290380023703a80220024188016a200241a8026a10ca010240200228028801450d000340200241d0026a41086a2201200328020036020020022002290388013703d002200b280200211120102802002112200c2802002119200241e0026a41086a220f2001280200360200200220022903d0023703e002024002402011450d00200241f0026a41086a2019360200200220123602f402200220113602f002200e20162903003703002010201729030037030020032018290300370300200720022903e002370200200741086a200f280200360200200220022903d00137038801410810012201450d062002200136029003200242083702940320024190036a41004108102720024190036a41086a22012001280200220f41086a360200200f2002280290036a42f3e885d3b38eddb73a37000020024180036a41086a220f200128020036020020022002290390033703800320024190036a20024188016a10cb01200228029403211c200228029003211a20024180036a200f280200200128020022191027200228028003221d200f280200221e6a201a2019101e1a200f201e20196a221e3602000240201c450d00201a10020b200228028403211a200241a0036a200241f0026a1051200241a0036a41086a280200211c20022802a0032119200142003703002002420037039003201d201e20024190036a1003200f200129030037030020022002290390033703800320024180036a41102019201c1004024020022802a403450d00201910020b0240201a450d00201d10020b0240200d280200450d00200728020010020b2012450d01201110020c010b200720022903e002370200200e20162903003703002010201729030037030020032018290300370300200741086a200f280200360200200220022903d00137038801410810012201450d052002200136029003200242083702940320024190036a41004108102720024190036a41086a22012001280200220f41086a360200200f2002280290036a42f3e885d3b38eddb73a37000020024180036a41086a220f200128020036020020022002290390033703800320024190036a20024188016a10cb01200228029403211a200228029003211220024180036a200f2802002001280200221110272002280280032219200f280200221d6a20122011101e1a200f201d20116a22113602000240201a450d00201210020b20022802840321122001420037030020024200370390032019201120024190036a1003200f200129030037030020022002290390033703800320024180036a4110100502402012450d00201910020b200d280200450d00200728020010020b20024188016a200241a8026a10ca012002280288010d000b0b200241a8026a1099010240201b201445720d002015450d00201410020b20024188016a200241306a10c801200729030022044202520d000b0b200241306a109e01200241b0036a24000f0b101c000bc10b03087f017e027f230041d0016b220224000240024020012802202203450d00200141206a2003417f6a36020020012802082104200128020c2203200128020422052f01be034f0d01200241306a41186a2206200520034105746a220741d8036a290000370300200241306a41106a2208200741d0036a290000370300200241306a41086a2209200741c8036a2900003703002002200741c0036a290000370330200141046a2005360200200141086a20043602002001410c6a200341016a360200200241d0006a41206a22072005200341286c6a220341206a290300370300200241d0006a41186a2205200341186a290300370300200241d0006a41106a2204200341106a290300370300200241d0006a41086a2201200341086a29030037030020022003290300370350200241f8006a41186a2006290300370300200241f8006a41106a2008290300370300200241f8006a41086a2009290300370300200241f8006a41286a2001290300370300200241a8016a2004290300370300200241b0016a2005290300370300200241b8016a20072903003703002002200229033037037820022002290350370398012000200241f8006a41c800101e1a200241d0016a24000f0b20004202370320200241d0016a24000f0b200128020021070240024020052802b8032203450d0020053201bc03210a2002200336027c2002200741016a22073602782002200a4220862004ad84220a370380010c010b2004ad210a410021030b20051002200241106a220820033602002002200736020c02400240200a422088a7220520032f01be034f0d00200241186a2005360200200241146a200a3e020020024100360208200241086a410472210b200241206a21070c010b200241146a2209200a37020020024101360208200aa72104200241086a410472210b200241186a210c2003210503400240024020032802b8032206450d00200741016a210720033201bc034220862004ad84210a200621030c010b2004ad210a410021030b024020051002200820033602002002200736020c0240200a422088a7220520032f01be034f0d00200c20053602002009200aa72204360200200241003602082003210541000d020c010b2009200a370200200aa72104200241013602082003210541010d010b0b200241206a21070b2007200b290200370200200741086a200b41086a290200370200200241306a41086a20022802242206200228022c22084105746a220341c8036a290000370300200241306a41106a200341d0036a290000370300200241306a41186a200341d8036a2900003703002002200341c0036a290000370330200241d0006a41206a2006200841286c6a220341206a290300370300200241d0006a41186a200341186a290300370300200241d0006a41106a200341106a290300370300200241d0006a41086a200341086a290300370300200220032903003703502007280200210920022802282105200241f8006a41086a2204200620084102746a41a4066a280200220736020020024184016a2206200536020020022009417f6a220336027c20022003410047360278024002402003450d002009417e6a2103200241f8006a41047221080340200420072802a0062207360200200620053602002002200336027c200220034100473602782003417f6a2203417f470d000c020b0b200241f8006a41047221080b200120082902003702002001410c6a4100360200200141086a200841086a280200360200200241f8006a41186a200241306a41186a290300370300200241f8006a41106a200241306a41106a290300370300200241f8006a41086a200241306a41086a290300370300200241a0016a200241d0006a41086a290300370300200241a8016a200241d0006a41106a290300370300200241b0016a200241d0006a41186a290300370300200241b8016a200241f0006a2903003703002002200229033037037820022002290350370398012000200241f8006a41c800101e1a200241d0016a24000bb30301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3b3ec9bb23a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220636021802402005450d00200410020b200228021421042002200110512002280208210120022802002100200241206a41086a220542003703002002420037032020032006200241206a1003200241106a41086a200529030037030020022002290320370310200241106a411020002001100402402002280204450d00200010020b02402004450d00200310020b200241306a24000f0b101c000bba0803057f017e057f230041f0006b220224000240024020012802202203450d00200141206a2003417f6a36020020012802082104200128020c2203200128020422052f018e024f0d01200141046a2005360200200141086a20043602002001410c6a200341016a360200200241086a220620052003410c6c6a220341086a28020036020020022003290200370300200241c8006a41086a22052006280200360200200241dc006a2003418c016a280200360200200020022903002207370200200220034184016a290200370254200041086a2005290300370200200041106a200241c8006a41106a29030037020020022007370348200241f0006a24000f0b20004100360200200241f0006a24000f0b20012802002106024002402005280288022203450d00200532018c0221072002200336024c2002200641016a2206360248200220074220862004ad8422073703500c010b2004ad2107410021030b20051002200241086a2208200336020020022006360204024002402007422088a7220520032f018e024f0d00200241106a20053602002002410c6a20073e02002002410036020020024104722109200241186a21060c010b2002410c6a220a2007370200200241013602002007a7210420024104722109200241106a210b20032105034002400240200328028802220c450d00200641016a2106200332018c024220862004ad842107200c21030c010b2004ad2107410021030b024020051002200820033602002002200636020402402007422088a7220520032f018e024f0d00200b2005360200200a2007a72204360200200241003602002003210541000d020c010b200a20073702002007a72104200241013602002003210541010d010b0b200241186a21060b20062009290200370200200641086a200941086a290200370200200241286a41086a200228021c220c2002280224220a410c6c6a220341086a28020036020020022003290200370328200241386a41086a2003418c016a280200360200200220034184016a2902003703382006280200210820022802202105200241c8006a41086a2204200c200a4102746a4194026a2802002206360200200241c8006a410c6a220c200536020020022008417f6a220336024c20022003410047360248024002402003450d002008417e6a2103200241c8006a4104722108034020042006280290022206360200200c20053602002002200336024c200220034100473602482003417f6a2203417f470d000c020b0b200241c8006a41047221080b200120082902003702002001410c6a4100360200200141086a200841086a280200360200200241c8006a41086a2203200241286a41086a280200360200200241dc006a200241386a41086a28020036020020002002290328220737020020022002290338370254200041086a2003290300370200200041106a200241c8006a41106a29030037020020022007370348200241f0006a24000bda0201057f230041206b22022400200241003602082002420137030020024100412010272002280200200228020822036a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200341206a2205360208200241106a200141206a1051200228021021032002200520022802182204102720022004200228020822066a22013602082006200228020022056a20032004101e1a02402002280214450d00200310020b02402001417f4c0d00024002402001450d002001100122040d01101c000b410121040b200220013602142002200436021020024100360218200241106a41002001102720022002280218220420016a360218200420022802106a20052001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200510020b200241206a24000f0b1019000b02000be90502047f017e230041d0006b220524000240024002402004417f4c0d000240024002402004450d002004100122060d010c020b410121060b200520043602042005200636020020054100360208200541002004102720052005280208220620046a360208200620052802006a20032004101e1a200541c0006a41086a2204200528020836020020052005290300370340200541186a200241186a290000370300200541106a200241106a290000370300200541086a200241086a290000370300200541286a20042802003602002005200229000037030020052005290340370320410810012204450d002005200436024020054208370244200541c0006a4100410810272005280240200528024822046a42f3e885d3b38eddb73a3700002005200441086a360248200541306a41086a2204200528024836020020052005290340370330200541c0006a200510cb012005280244210720052802402103200541306a200428020020052802482202102720052802302206200428020022086a20032002101e1a2004200820026a220236020002402007450d00200310020b20052802342103200541c0006a41086a220442003703002005420037034020062002200541c0006a1003200541306a41086a20042903003703002005200529034037033002400240024002400240200541306a411041d02d410041001000417f460d00200541003602404100200541306a4110200541c0006a41044100100022042004417f461b220741034d0d0820052802402204417f4c0d062004450d01200410012202450d0520024100200410171a0c020b2000410036020020030d020c030b410121020b20044100200541306a4110200220042007410420074104491b100022072007417f461b4b0d042002450d0520002004ad2209422086200984370204200020023602002003450d010b200610020b0240200541246a280200450d00200541206a28020010020b200541d0006a24000f0b101c000b1019000b200210020b41c1214133102d000bd50402057f017e230041206b220324000240024002400240410810012204450d002003200436021020034208370214200341106a4100410810272003280210200328021822046a42f3e885d3b3ec9bb23a3700002003200441086a360218200341086a200328021836020020032003290310370300412010012204450d002003200436021020034220370214200341106a41004120102720032802102205200328021822066a22042002290000370000200441086a200241086a290000370000200441106a200241106a290000370000200441186a200241186a2900003700002003200641206a220236021820032802142104200320032802082002102720032802002206200328020822076a20052002101e1a2003200720026a220236020802402004450d00200510020b20032802042105200341106a41086a220442003703002003420037031020062002200341106a1003200341086a200429030037030020032003290310370300024002400240024002402003411041d02d410041001000417f460d0020034100360210410020034110200341106a41044100100022022002417f461b220741034d0d0820032802102202417f4c0d062002450d01200210012204450d0520044100200210171a0c020b200041003602082000420137020020050d020c030b410121040b2002410020034110200420022007410420074104491b100022072007417f461b4b0d042004450d0520002002ad2208422086200884370204200020043602002005450d010b200610020b200341206a24000f0b101c000b1019000b200410020b41c1214133102d000ba90701047f230041f0006b220424000240024002402003280200450d00200441086a200341086a28020036020020042003290200370300200441106a41186a200141186a290000370300200441106a41106a200141106a290000370300200441106a41086a200141086a290000370300200441386a200241086a2802003602002004200129000037031020042002290200370330410810012201450d022004200136025020044208370254200441d0006a4100410810272004280250200428025822016a42f3e885d3b38eddb73a3700002004200141086a360258200441c0006a41086a2201200428025836020020042004290350370340200441d0006a200441106a10cb012004280254210520042802502102200441c0006a200128020020042802582203102720042802402206200128020022076a20022003101e1a2001200720036a220336020002402005450d00200210020b20042802442102200441e0006a200410512004280268210520042802602101200441d0006a41086a220742003703002004420037035020062003200441d0006a1003200441c0006a41086a200729030037030020042004290350370340200441c0006a411020012005100402402004280264450d00200110020b02402002450d00200610020b0240200441346a280200450d00200441306a28020010020b2004280204450d0120042802001002200441f0006a24000f0b200441106a41186a200141186a290000370300200441106a41106a200141106a290000370300200441106a41086a200141086a290000370300200441386a200241086a2802003602002004200129000037031020042002290200370330410810012201450d012004200136025020044208370254200441d0006a4100410810272004280250200428025822016a42f3e885d3b38eddb73a3700002004200141086a360258200441c0006a41086a2201200428025836020020042004290350370340200441d0006a200441106a10cb012004280254210520042802502102200441c0006a200128020020042802582203102720042802402206200128020022076a20022003101e1a2001200720036a220336020002402005450d00200210020b20042802442101200441d0006a41086a220242003703002004420037035020062003200441d0006a1003200441c0006a41086a200229030037030020042004290350370340200441c0006a4110100502402001450d00200610020b200441346a280200450d00200441306a28020010020b200441f0006a24000f0b101c000b1e002001200210c9010240200241046a280200450d00200228020010020b0b9a0301057f230041306b220324000240410810012204450d002003200436022020034208370224200341206a4100410810272003280220200328022822046a42f3e885d3a3ac98b63a3700002003200441086a360228200341106a41086a200328022836020020032003290320370310412010012204450d002003200436022020034220370224200341206a41004120102720032802202205200328022822066a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002003200641206a220136022820032802242106200341106a20032802182001102720032802102204200328021822076a20052001101e1a2003200720016a220136021802402006450d00200510020b2003280214210520032002370308200341206a41086a220642003703002003420037032020042001200341206a1003200341106a41086a200629030037030020032003290320370310200341106a4110200341086a4108100402402005450d00200410020b200341306a24000f0b101c000bf90f020b7f017e230041a0036b220424002001280204210520022802082106200228020421072002280200210802400240200128020022092f018e02220a450d004107210b0c010b4101210b0b03400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200b0e1b0a090b0c0d0708000102030406050e1a0f10141617151819121113130b2009200a410c6c6a210c4100210a200921024108210b0c300b20082002280200200241086a280200220d20062006200d4b1b1006220e450d1b4109210b0c2f0b200e411e76417f73410271417f6a220d450d24410a210b0c2e0b200d4101470d1d410b210b0c2d0b200a41016a210a2002410c6a2202200c470d1b0c1a0b4100417f41012006200d491b2006200d461b220d0d20410c210b0c2b0b200441013a00980120042d0098014101710d154105210b0c2a0b2005450d1d4106210b0c290b2005417f6a21052009200a4102746a4190026a28020022092f018e02220a0d124101210b0c280b200441003a00980120042d009801410171450d180c190b2009418e026a2f0100210a0c130b200141086a2102200aad4220862001ad84210f2007450d184103210b0c250b200810024104210b0c240b20042005360268200420023602782004200936026c2004200f370370200441086a41086a2202200341086a2802003602002004200329020037030820044198016a41086a220a2009200f422088a7410c6c6a2206418c016a220d280000220536020020064184016a2206290000210f20062004290308370000200d2002280200360000200220053602002004200f370398012004200f370308200a20022802003602002004200429030837039801200041013602002000410c6a200a2802003602002000200429039801370204200441a0036a24000f0b200441086a41106a20093602002001200128020841016a3602082004411c6a200aad4220862001ad84220f3702002004200736020c2004200836020820042006ad3703102004200936026c200441003602682004200f3703702004200736024c2004200836024820042006360250200441d8006a41086a200341086a2802003602002004200329020037035820044198016a200441e8006a200441c8006a200441d8006a1089012004280298014101470d1a4110210b0c220b200441286a41086a200441b0016a280200360200200441386a41086a200441bc016a280200360200200420044198016a41106a2903003703282004200441b4016a290200370338200441a4016a2802002102200441c4016a2802002109200441c0016a280200210a200428029c01210520044198016a41086a280200220d280288022206450d1a4111210b0c210b200d2f018c02210d2004200636026c2004200541016a2205360268200420023602702004200d3602744100450d1b4119210b0c200b2005210241c002100122060d1e4118210b0c1f0b101c000b2004200d36026c20042005360268200420023602702002210541010d174112210b0c1d0b200441b4016a210e200441a8016a2108200441e8006a410c6a210c200441c4016a2103200441c0016a21010c180b20032802002109200428029c0141016a2105200d2f018c02210d4113210b0c1b0b200441e8006a41086a2002360200200c200d3602002004200636026c20042005360268200441c8006a41086a200441286a41086a220228020036020020042004290328370348200441d8006a41086a200441386a41086a22062802003602002004200429033837035820044198016a200441e8006a200441c8006a200441d8006a200a2009108a012004280298014101470d114114210b0c1a0b2002200841086a2802003602002006200e41086a280200360200200420082902003703282004200e29020037033820044198016a410c6a28020021022001280200210a20044198016a41086a280200220d2802880222060d164116210b0c190b41c00210012206450d164117210b0c180b200620044198016a418802101e220641003b018e022006410036028802200620042902683702900220064198026a200441e8006a41086a290200370200200641a0026a200441f8006a290200370200200641a8026a20044180016a290200370200200641b0026a20044188016a290200370200200641b8026a20044190016a2902003702002006200228020036029002200220063602002002200228020441016a360204200628029002220241003b018c022002200636028802200620062f018e02220d410c6c6a220220042903283702002002418c016a200441386a41086a280200220536020020024184016a2004290338220f370200200241086a200441286a41086a28020036020020064190026a200d41016a22024102746a200a360200200620062f018e0241016a3b018e0220044198016a41086a2005360200200a20023b018c02200a2006360288022004200f37039801410f210b0c170b20004100360200200441a0036a24000f0b4107210b0c150b4102210b0c140b410d210b0c130b4101210b0c120b4100210b0c110b4108210b0c100b4101210b0c0f0b4105210b0c0e0b4102210b0c0d0b4104210b0c0c0b410e210b0c0b0b410a210b0c0a0b410c210b0c090b410f210b0c080b410f210b0c070b411a210b0c060b4119210b0c050b4112210b0c040b4113210b0c030b4115210b0c020b4118210b0c010b4117210b0c000b0b4501017f230041c0006b22012400200141386a2000410c6a28020036020020012000290204370330200141086a200141306a109d01200141086a109e01200141c0006a24000b7302017f017e024020002802002202417f460d002000200241016a36000002400240200041046a20011096012202450d002002280200450d00200241086a29030021030c010b20002802102001200041146a28020028021411140021030b20002000280200417f6a36000020030f0b109f01000b960501077f230041e0026b22032400200341086a200241086a28020036020020032002290200370300024002400240024020002802000d002000417f360000200341306a41186a2204200141186a290000370300200341306a41106a2205200141106a290000370300200341306a41086a200141086a290000370300200320012900003703302003200041046a3602182003200041086a28020036021020032000280204360214200341b8026a200341106a200341306a10970141012102200341b8026a41106a2802002106200341c4026a2802002107200341b8026a41086a280200210820032802bc022109024020032802b8024101470d00200341106a41186a2004290300370300200341106a41106a2005290300370300200341106a41086a200341306a41086a29030037030020032003290330370310410021020b41900210012201450d012001200341306a418802101e220141003b018e02200141003602880202402002450d00200320013602b802200342003702bc02200341306a200341b8026a109801200341306a1099012008200641286c6a220241106a210120022802102206450d040c030b200341cc006a200341186a290300370200200341d4006a200341206a290300370200200341dc006a200341286a2903003702002003200836023420032009360230200320073602382003200636023c20032000410c6a36024020032003290310370244200341d8026a4200370300200341003602c802200342003703b802200320013602d402200341306a200341b8026a109a01220241106a2101200228021022060d020c030b10c301000b101c000b200241146a280200450d00200610020b20012003290300370200200141086a200341086a28020036020020004100360000200341e0026a24000bab0401097f230041d0026b220324000240024020002802000d002000417f360000200341c8006a41186a2204200141186a290000370300200341c8006a41106a2205200141106a290000370300200341c8006a41086a2206200141086a290000370300200320012900003703482003200041046a3602082003200041086a28020036020020032000280204360204200341206a2003200341c8006a10970141012107200341206a41106a28020021082003412c6a2802002109200341206a41086a280200210a2003280224210b024020032802204101470d00200341186a2004290300370300200341106a2005290300370300200341086a200629030037030020032003290348370300410021070b41900210012201450d012001200341c8006a418802101e220141003b018e022001410036028802024002402007450d002003200136022020034200370224200a200841286c6a2101200341c8006a200341206a109801200341c8006a1099010c010b200341e4006a200341086a290300370200200341ec006a200341106a290300370200200341f4006a200341186a2903003702002003200a36024c2003200b360248200320093602502003200836025420032000410c6a3602582003200329030037025c200341c0006a420037030020034100360230200342003703202003200136023c200341c8006a200341206a109a0121010b200142013703002001200237030820004100360000200341d0026a24000f0b10c301000b101c000bfc0103017f017e047f230041306b2203240020034100360208200342013703002002290300210420034100410810272003280200200328020822056a20043700002003200541086a2206360208200341206a200241086a10a201200328022021052003200620032802282202102720032002200328020822076a22083602082007200328020022066a20052002101e1a02402003280224450d00200510020b200341206a41086a220242003703002003420037032020002001200341206a1003200341106a41086a200229030037030020032003290320370310200341106a411020062008100402402003280204450d00200610020b200341306a24000bfb1903047f017e077f230041d0006b22022400200241003602082002420137030002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001280200417f6a220341044b0d000240024002400240024020030e050004020301000b2002107e2002280200200241086a22032802006a41013a00002003200328020041016a22043602002002410036024820024201370340200141086a28020022054101460d0920054102470d1a200241c0006a107e20022802402205200241c8006a220328020022016a41013a00002003200141016a22013602000c0a0b2002107e2002280200200241086a22032802006a41073a00002003200328020041016a3602002002410036024820024201370340200141086a28020022034101460d0420034102470d1a200241c0006a107e2002280240200241c0006a41086a220328020022056a41013a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c050b2002107e2002280200200241086a22032802006a41053a00002003200328020041016a360200200241003602382002420137033020012d000422034103714101460d0520034102470d1a200241306a107e2002280230200241306a41086a220328020022056a41013a00002003200541016a2205360200200141086a2802002104200241306a20054104102720032003280200220741046a22013602002007200228023022056a20043600000c060b2002107e2002280200200241086a22032802006a41063a00002003200328020041016a3602002002410036024820024201370340200141086a22042d0000417f6a220341034b0d1a024020030e04000d0a0c000b200241c0006a107e2002280240200241c8006a220328020022056a41003a00002003200541016a22053602002001410c6a2802002104200241c0006a20054104102720032003280200220741046a22013602002007200228024022056a20043600000c0d0b2002107e2002280200200241086a22032802006a41023a00002003200328020041016a3602002002410036024820024201370340200141086a280200417f6a220341034b0d1a024020030e04000f0a0e000b200241c0006a107e2002280240200241c0006a41086a220328020022056a41003a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c0f0b2002107e2002280200200241086a22032802006a41003a00002003200328020041016a3602002002410036021820024201370310200128020422034101460d0620034102470d1a200241106a107e2002280210200241106a41086a220328020022056a41013a00002003200541016a2208360200200141106a220328020021052002410036024820024201370340200241c0006a4100410410272002280240200228024822046a20053600002002200441046a360248200241206a41086a220420022802483602002002200229034037032020032802002203450d0f200141086a2802002201200341186c6a21090340200241306a41086a2203410036020020024201370330200241c0006a200110512002280240210a200241306a4100200241c0006a41086a220528020022071027200320072003280200220b6a220c360200200b20022802306a200a2007101e1a02402002280244450d00200a10020b200241c0006a2001410c6a220d10512002280240210a200241306a200c200528020022071027200320072003280200220c6a2201360200200c2002280230220b6a200a2007101e1a02402002280244450d00200a10020b2001417f4c0d14024002402001450d002001100122030d010c170b410121030b200541003602002002200136024420022003360240200241c0006a41002001102720052005280200220720016a22033602002007200228024022056a200b2001101e1a2002280244210102402002280234450d00200b10020b200241206a2004280200200310272002280220220a200428020022076a20052003101e1a2004200720036a220336020002402001450d00200510020b200d410c6a22012009470d000c110b0b200241c0006a107e2002280240200241c0006a41086a220328020022056a41003a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d10200510020c100b200241306a107e2002280230200241306a41086a220328020022056a41003a00002003200541016a2207360200200241c0006a200141086a28020010d80120022802402104200241306a200720022802482205102720032005200328020022076a220a360200200720022802306a20042005101e1a02402002280244450d00200410020b410221030240200141056a2d000022014103714102460d004100210320014101470d00410121030b200241306a200a41011027200241386a22012001280200220441016a22013602002004200228023022056a20033a00000b200228023421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d0e200510020c0e0b200241c0006a107e2002280240200241c0006a41086a220428020022056a41003a00002004200541016a2205360200200141106a2903002106200241c0006a20054108102720022802402205200428020022016a20063700002004200141086a2201360200200328020021040b200228024421032002200420011027200241086a22042004280200220420016a360200200420022802006a20052001101e1a2003450d0c200510020c0c0b200241106a107e2002280210200241106a41086a220328020022056a41003a00002003200541016a2205360200200241c0006a200141086a105120022802402107200241106a2005200228024822041027200320042003280200220a6a2201360200200a200228021022056a20072004101e1a2002280244450d0a200710020c0a0b200241c0006a107e2002280240200241c0006a41086a220328020022056a41023a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c030b200241c0006a107e2002280240200241c8006a220328020022056a41023a00002003200541016a22053602002001410c6a2802002104200241c0006a20054104102720032003280200220741046a22013602002007200228024022056a20043600000c050b200241c0006a107e2002280240200241c0006a41086a220328020022056a41033a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c010b200241c0006a107e2002280240200241c0006a41086a220328020022016a41013a00002003200141016a2201360200200241c0006a20014120102720032003280200220741206a22013602002007200228024022056a220341086a200441096a290000370000200341106a200441116a290000370000200341186a200441196a290000370000200320042900013700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d06200510020c060b200241c0006a107e20022802402205200241c8006a220328020022016a41033a00002003200141016a22013602000c010b200241c0006a107e2002280240200241c0006a41086a220328020022056a41013a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d03200510020c030b200228022821032002280220210a0b20022802242104200241106a20082003102720022002280218220720036a22013602182007200228021022056a200a2003101e1a2004450d00200a10020b200228021421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d00200510020b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b1019000b101c000b41ec30103b000b41843e103b000b41ac3f103b000b419435103b000b41943b103b000b41ecc100103b000bc20201027f230041c0006b22022400200241106a41086a220342003703002002420037031020014107200241106a1003200241086a20032903003703002002200229031037030002402002411041d02d410041001000417f460d00200241386a4200370300200241206a41106a4200370300200241206a41086a420037030020024200370320024020024110200241206a4120410010002203417f460d002003411f4d0d0020002002290320370000200041186a200241206a41186a290300370000200041106a200241206a41106a290300370000200041086a200241206a41086a2200290300370000200241106a41086a220342003703002002420037031020014107200241106a10032000200329030037030020022002290310370320200241206a41101005200241c0006a24000f0b41c1214133102d000b41f4214122102d000bb80101027f230041306b22032400200341206a41086a220442003703002003420037032020012002200341206a1003200341086a200429030037030020032003290320370300024002402003411041d02d410041001000417f460d002003421037021420032003360210200341206a200341106a103a20032802202201450d012000200329022437020420002001360200200341306a24000f0b2000410036020820004201370200200341306a24000f0b41c1214133102d000b8d5b05087f037e137f017e017f230041e0016b2202240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d000022034103714101460d00024020034102460d0020034103470d0d200241206a200041196a290000370300200241186a200041116a290000370300200241106a200041096a29000037030020022000290001370308200241386a1047200228023822042002280240220541286c22066a2107200421030240200641286d4104490d00200421060340200120062203460d062003200141201006450d06200341286a22062001460d0a2006200141201006450d0a200641286a22062001460d0b2006200141201006450d0b200641286a22062001460d0c2006200141201006450d0c2007200641286a22066b41286d41034b0d000b200341a0016a21030b024020032007460d002004200541286c6a2106034020012003460d042003200141201006450d042006200341286a2203470d000b0b2004200228023c10870141fc3e103b000b200041216a2d0000210520024198016a41186a200041196a220329000037030020024198016a41106a200041116a220629000037030020024198016a41086a200041096a22042900003703002002200029000137039801200241386a41186a2003290000370300200241386a41106a2006290000370300200241386a41086a2004290000370300200241e0006a200141086a290000370300200241e8006a200141106a290000370300200241f0006a200141186a2900003703002002200029000137033820022001290000370358410910012203450d17200220033602c001200242093702c401200241c0016a41004109102720022802c00120022802c80122066a220441002900f922370000200241086a41086a2203200641096a2206360200200441086a41002d0081233a0000200220022903c001370308200220063602c801200241c0016a200241386a10be0120022802c401210820022802c0012104200241086a200328020020022802c8012206102720022802082207200328020022096a20042006101e1a2003200920066a220636020002402008450d00200410020b200228020c210320024188016a41086a2204420037030020024200370388012007200620024188016a1003200241f8006a41086a20042903003703002002200229038801370378200241f8006a411041d02d410041001000417f460d02200241003a00c001200241f8006a4110200241c0016a41014100100041016a41014d0d1020022d00c00121062003450d160c150b200041046a280200210d102e210a20024188016a41086a22034200370300200242003703880141e122410a20024188016a1003200241f8006a41086a20032903003703002002200229038801370378200241f8006a411041d02d410041001000417f460d0c20024200370338200241f8006a4110200241386a41084100100041016a41084d0d0a2002290338200a7c210a200241386a1047200228023822072002280240220841286c22066a2105200721030240200641286d4104490d00200721030340200120032206460d052006200141201006450d05200641286a2103200641286a22042001460d062004200141201006450d06200641d0006a2103200441286a22042001460d062004200141201006450d06200641f8006a2103200441286a22042001460d062004200141201006450d062005200441286a22036b41286d41034b0d000b200641a0016a21030b4102210420032005460d052007200841286c6a2106034020012003460d052003200141201006450d052006200341286a2203470d000c060b0b200228023c450d120c110b4102210620030d120c130b200228023c0d0f0c100b200621030b200341206a290300200a5621040b200441024720047121030240200228023c450d00200710020b2003450d0720024198016a200d10d80120022802a00121052002280298012107200241386a41186a22034200370300200241386a41106a22064200370300200241386a41086a220442003703002002420037033820072005200241386a1012200241c0016a41186a22052003290300370300200241c0016a41106a22082006290300370300200241c0016a41086a22092004290300370300200220022903383703c0010240200228029c01450d00200710020b200320052903003703002006200829030037030020042009290300370300200220022903c001370338410710012203450d1020022003360298012002420737029c0120024198016a41004107102720022802980120022802a00122066a220341002800eb22360000200241086a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a00002002200229039801370308200220063602a001412010012203450d1020022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241086a20022802102003102720022802082204200228021022056a20062003101e1a2002200520036a220336021002402007450d00200610020b200228020c210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a411020024198016a410041001000210302402006450d00200410020b2003417f470d08200241386a200241c0016a10dc01024020022802402203450d002002290338210b20022802442106102e210c02402006450d00200310020b200c200b540d0b0b200241286a10bb01200241386a41186a2206200241c0016a41186a290300370300200241386a41106a2204200241c0016a41106a290300370300200241386a41086a2207200241c0016a41086a290300370300200220022903c00137033820022802302205200228022c460d030c0b0b200228023c0d0b0c0c0b200228023c0d0a0c0b0b200228023c0d090c0a0b200241286a106f200241286a41086a28020021050c070b41c1214133102d000b419c3e103b000b41f4214122102d000b41b43e103b000b41cc3e103b000b41c1214133102d000b41e43e103b000b200241286a41086a200541016a22153602002002280228220f200541286c6a2203200a37030020032002290338370308200341106a2007290300370300200341186a2004290300370300200341206a2006290300370300024002400240024002400240024002400240024002400240024002400240024002400240201541144b0d00201541014d0d01200f200541286c6a21110340201520052203417f6a2205490d100240201520056b22074102490d00200f200341286c6a2204290300200f200541286c6a220e290300220a5a0d00200e2004290300370300200e290308210b200e41086a200441086a290300370300200241386a41186a2200200e41206a2203290300370300200241386a41106a2212200e41186a2206290300370300200241386a41086a2213200e41106a22082903003703002008200441106a2903003703002006200441186a2903003703002003200441206a2903003703002002200b37033841012108024020074103490d0041012106201121030340200641016a220820074f0d150240200341286a2204290300200a5a0d00200620074f0d15200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032004290300370300200641026a2109200821062004210320092007490d010c020b0b20062108200321040b2004200a370300200e200841286c6a22032002290338370308200341206a2000290300370300200341186a2012290300370300200341106a20132903003703000b201141586a211120050d000c020b0b20154101762216ad42287e220a422088a70d0d200aa72203417f4c0d0c4108211702402003450d00200310012217450d160b41002106200241003602a0012002420437039801200f41586a2118200f41887f6a21194104210420024198016a41086a211a2015211003402010211141002110410121070240024002402011417f6a2203450d000240024002400240024002400240200f200341286c6a290300200f2011417e6a220741286c6a290300220a5a0d00410021082007450d022019201141286c6a21030340200a2003290300220b5a0d02200341586a2103200b210a2007417f6a22070d000c030b0b02402007450d002019201141286c6a2103410221070340200a2003290300220b540d04200341586a2103200b210a2011200741016a2207470d000b41002110201121072006200228029c01470d090c080b41022107410021102006200228029c01470d080c070b200721080b024020112008490d00201120154b0d140240201120086b22074101762209450d002018201141286c6a2103200f200841286c6a21050340200241386a41206a220e200541206a2200290300370300200241386a41186a2212200541186a2213290300370300200241386a41106a2214200541106a2210290300370300200241386a41086a221b200541086a221c29030037030020022005290300370338200341086a221d290300210a200341106a221e290300210b200341186a221f290300210c200329030021202000200341206a22212903003703002013200c3703002010200b370300201c200a370300200520203703002021200e290300370300201f2012290300370300201e2014290300370300201d201b29030037030020032002290338370300200341586a2103200541286a21052009417f6a22090d000b0b2008450d030c020b200820111055000b201120076b2208450d010b200741094d0d010b200821102006200228029c01470d030c020b201120154b0d0d200f200841286c6a2112034020112008417f6a2210490d0f0240201120106b22074102490d00200f200841286c6a2208290300200f201041286c6a2200290300220a5a0d00200020082903003703002000290308210b200041086a200841086a290300370300200241386a41186a2213200041206a2203290300370300200241386a41106a2214200041186a2205290300370300200241386a41086a221b200041106a22092903003703002009200841106a2903003703002005200841186a2903003703002003200841206a2903003703002002200b37033841012109024020074103490d0041012105201221030340200541016a220920074f0d090240200341286a2208290300200a5a0d00200520074f0d0b200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032008290300370300200541026a210e2009210520082103200e2007490d010c020b0b20052109200321080b2008200a3703002000200941286c6a22032002290338370308200341206a2013290300370300200341186a2014290300370300200341106a201b2903003703000b2010450d01201241586a2112201021082007410a490d000b0b2006200228029c01470d010b20024198016a107a201a280200210620022802980121040b200420064103746a2203200736020420032010360200201a200641016a2206360200024020064102490d0020022802980121040340024002400240024020042006417f6a4103746a2203280200450d00200420064103746a220841746a2802002205200328020422074d0d00200641024d0d0520042006417d6a22124103746a2802042203200720056a4d0d01200641034d0d05200841646a280200200320056a4d0d010c050b20064103490d012003280204210720042006417d6a22124103746a28020421030b20032007490d010b2006417e6a21120b2006201241016a22134d0d06200620124d0d0720042012410374221b6a2203280204221c20032802006a220320042013410374221d6a22062802002214490d08200320154b0d09200f201441286c6a22112006280204220041286c22066a2107200341286c210402400240024002400240200320146b220820006b220320004f0d0020172007200341286c2206101e220e20066a210520004101480d0120034101480d01201820046a21042007210303402004200341586a2207200541586a2208200829030020072903005422091b2206290300370300200441206a200641206a290300370300200441186a200641186a290300370300200441106a200641106a290300370300200441086a200641086a2903003703002005200820091b210520112007200320091b22034f0d04200441586a2104200e2106200e2005490d000c050b0b201720112006101e220320066a210520004101480d01200820004c0d01200f20046a210920032106201121030340200320072006200729030020062903005422081b2204290300370300200341206a200441206a290300370300200341186a200441186a290300370300200341106a200441106a290300370300200341086a200441086a2903003703002006200641286a20081b2106200341286a2103200741286a200720081b220720094f0d04200520064b0d000c040b0b200721030c010b201121030b201721060b20032006200520066b220420044128706b101e1a201a280200220320124d0d0a2002280298012204201b6a2206201c20006a36020420062014360200200320134d0d0b2004201d6a2206200641086a200320136b41037441786a10391a201a2003417f6a2206360200200641014b0d000b0b20100d000b0240200228029c01450d0020022802980110020b2016450d00201710020b200241286a10bc0120024198016a41186a200241c0016a41186a29030037030020024198016a41106a200241c0016a41106a29030037030020024198016a41086a200241c0016a41086a290300370300200220022903c00137039801200241386a41286a200d41286a290300370300200241386a41206a200d41206a290300370300200241386a41186a200d41186a290300370300200241386a41106a200d41106a290300370300200241386a41086a200d41086a2903003703002002200d290300370338410710012203450d14200220033602082002420737020c200241086a4100410710272002280208200228021022066a220341002800eb2236000020024188016a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a0000200220022903083703880120022006360210412010012203450d14200220033602082002422037020c200241086a41004120102720022802082206200228021022046a2203200229039801370000200341086a20024198016a41086a290300370000200341106a20024198016a41106a290300370000200341186a20024198016a41186a2903003700002002200441206a2203360210200228020c210720024188016a20022802900120031027200228028801220420022802900122056a20062003101e1a2002200520036a22053602900102402007450d00200610020b200228028c012106200241086a200241386a10d801200228021021072002280208210320024188016a41086a2208420037030020024200370388012004200520024188016a1003200241f8006a41086a20082903003703002002200229038801370378200241f8006a41102003200710040240200228020c450d00200310020b02402006450d00200410020b024002400240200228023822034103460d0020030d02200228023c2203450d0220034101470d01200241c4006a280200450d02200241c0006a28020010020c020b20022d003c4101470d01200241c0006a10bf010c010b0240200241386a41106a2802002206450d00200241c0006a2802002103200641186c210603400240200341046a280200450d00200328020010020b0240200341106a280200450d002003410c6a28020010020b200341186a2103200641686a22060d000b0b200241c4006a280200450d00200241c0006a28020010020b200241386a41186a2206200241c0016a41186a2204290300370300200241386a41106a2207200241c0016a41106a2205290300370300200241386a41086a2208200241c0016a41086a2209290300370300200220022903c001370338412010012203450d14200141086a220e290000210a200141106a2211290000210b2001290000210c200341186a200141186a2200290000370000200341106a200b370000200341086a200a3700002003200c3700002002200336029801200242818080801037029c01200241386a20024198016a10dd01200620042903003703002007200529030037030020082009290300370300200241e0006a200e290000370300200241e8006a2011290000370300200241f0006a2000290000370300200220022903c00137033820022001290000370358200241386a410110de010240200228022c450d00200228022810020b200d1002200241e0016a24000f0b41ccc100200541016a2007103c000b41dcc10020052007103c000b41acc10020132006103c000b41acc10020122006103c000b201420031055000b200320151029000b41bcc10020122003103c000b41b4c300103b000b20112008417f6a22104f0d010b201020111055000b201120151029000b1065000b1064000b200520151055000b41dcc10020062007103c000b41ccc100200641016a2007103c000b200410020b410b10012203450d02200220033602382002420b37023c200241386a4100410b10272002280238200228024022066a220341002900822337000020024198016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a0000200220022903383703980120022006360240412010012203450d02200220033602382002422037023c200241386a41004120102720022802382206200228024022046a22032002290308370000200341086a200241086a41086a290300370000200341106a200241086a41106a290300370000200341186a200241086a41186a2903003700002002200441206a2203360240200228023c210720024198016a20022802a00120031027200228029801220420022802a00122056a20062003101e1a2002200520036a22033602a00102402007450d00200610020b200228029c01210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a411020024198016a410041001000210302402006450d00200410020b02400240024002402003417f460d00200241386a200241086a10dc010240024002400240024020022802402208450d0020022002290244220a37022c20022008360228200aa7210e200a422088a72209450d0120094101470d02410021030c030b410021092002410036023020024201370328410121084100210e0b410021060c020b4100210320092106034020032006410176220720036a2204200820044105746a2001412010062205417f4a1b200420051b2103200620076b220641014b0d000b0b200820034105746a2001412010062206450d032006411f7620036a21060b200241386a41186a200141186a290000370300200241386a41106a200141106a290000370300200241386a41086a200141086a2900003703002002200129000037033820092006490d012009200e470d03200241286a107c200228022821080c030b41943f103b000b419cc300103b000b200310c201000b200820064105746a220341206a2003200920066b41057410391a20032002290338370000200341186a200241386a41186a290300370000200341106a200241386a41106a290300370000200341086a200241386a41086a290300370000200241286a41086a200941016a360200102e210a20024188016a41086a220342003703002002420037038801418d23410b20024188016a1003200241f8006a41086a200329030037030020022002290388013703780240200241f8006a411041d02d410041001000417f460d00200242003703380240200241f8006a4110200241386a41084100100041016a41084d0d002002290338210b200241c8006a200241286a41086a2802003602002002200b200a7c37033820022002290328370340410910012203450d0420022003360298012002420937029c0120024198016a41004109102720022802980120022802a00122036a2206410029009823370000200241c0016a41086a200341096a2203360200200641086a41002d00a0233a000020022002290398013703c001200220033602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290308370000200341086a200241086a41086a290300370000200341106a200241086a41106a290300370000200341186a200241086a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620042003200241386a10d70102402006450d00200410020b0240200241c4006a280200450d00200241c0006a28020010020b200241386a10bb01200228023c210f20022802382110024002400240024020022802402203450d00200341286c41b07f6a2104200241386a41086a2106201021030340200241386a41206a200341206a290300370300200241386a41186a200341186a290300370300200241386a41106a200341106a2903003703002006200341086a29030037030020022003290300370338200241c0016a41186a200641186a290000370300200241c0016a41106a200641106a290000370300200241c0016a41086a200641086a290000370300200220062900003703c001200241c0016a200241086a412010060d02200341286a2103200441586a220441b07f470d000b0b2002410036024020024208370338200f450d0120101002200241386a10bc010c020b20024198016a41206a2206200241386a41206a29030037030020024198016a41186a2207200241386a41186a29030037030020024198016a41106a2205200241386a41106a29030037030020024198016a41086a2208200241386a41086a2903003703002002200229033837039801412810012211450d062011200229039801370300201141206a2006290300370300201141186a2007290300370300201141106a2005290300370300201141086a20082903003703002002201136028801200242818080801037028c01024020044158460d00200341286a2103200241386a41086a21064101210e0340200241386a41206a2205200341206a290300370300200241386a41186a2208200341186a290300370300200241386a41106a2209200341106a2903003703002006200341086a29030037030020022003290300370338200241c0016a41186a200641186a290000370300200241c0016a41106a200641106a290000370300200241c0016a41086a200641086a290000370300200220062900003703c0010240200241c0016a200241086a41201006450d0020024198016a41206a2207200529030037030020024198016a41186a2212200829030037030020024198016a41106a2213200929030037030020024198016a41086a2214200629030037030020022002290338370398012005200729030037030020082012290300370300200920132903003703002006201429030037030020022002290398013703380240200e200228028c01470d0020024188016a200e410110820120022802880121110b2011200e41286c6a22072002290338370300200741206a2005290300370300200741186a2008290300370300200741106a2009290300370300200741086a200629030037030020024188016a41086a200e41016a220e3602000b2004450d01200341286a2103200441586a21040c000b0b0240200f450d00201010020b200241386a41086a20024188016a41086a2802003602002002200229038801370338200228023c2103200241386a10bc012003450d01200228023810020c010b200241386a10bc010b200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a29030037030020022002290308370338410b10012203450d0420022003360298012002420b37029c0120024198016a4100410b102720022802980120022802a00122066a2203410029008223370000200241c0016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a000020022002290398013703c001200220063602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a4110100502402006450d00200410020b200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a29030037030020022002290308370338410710012203450d0420022003360298012002420737029c0120024198016a41004107102720022802980120022802a00122066a220341002800eb22360000200241c0016a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a000020022002290398013703c001200220063602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a4110100502402006450d00200410020b200241386a1047200228023c211320022802382112024020022802402203450d00200341286c2109200241d8006a210620122103034020062003290000370000200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a290300370300200641086a200341086a290000370000200641106a200341106a290000370000200641186a200341186a29000037000020022002290308370338410910012204450d0620022004360298012002420937029c0120024198016a41004109102720024198016a41086a22072007280200220441096a220536020020042002280298016a220841002900f922370000200241c0016a41086a22042005360200200841086a41002d0081233a000020022002290398013703c00120024198016a200241386a10be01200228029c01210e2002280298012105200241c0016a200428020020072802002207102720022802c0012208200428020022116a20052007101e1a2004201120076a22073602000240200e450d00200510020b20022802c401210420024188016a41086a2205420037030020024200370388012008200720024188016a1003200241f8006a41086a20052903003703002002200229038801370378200241f8006a4110100502402004450d00200810020b200341286a2103200941586a22090d000b0b02402013450d00201210020b20002d00004101470d0a0c090b41c1214133102d000b41f4214122102d000b200710020b200641ff01714102470d04410b10012203450d00200220033602382002420b37023c200241386a4100410b10272002280238200228024022066a2203410029008223370000200241c0016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a0000200220022903383703c00120022006360240412010012203450d00200220033602382002422037023c200241386a41004120102720022802382206200228024022046a2203200229039801370000200341086a20024198016a41086a290300370000200341106a20024198016a41106a290300370000200341186a20024198016a41186a2903003700002002200441206a2203360240200228023c2107200241c0016a20022802c8012003102720022802c001220420022802c80122086a20062003101e1a2002200820036a22033602c80102402007450d00200610020b20022802c401210720024188016a41086a2206420037030020024200370388012004200320024188016a1003200241f8006a41086a20062903003703002002200229038801370378410021030240200241f8006a411041d02d410041001000417f460d00200242103702c4012002200241f8006a3602c001200241386a200241c0016a103a20022802382206450d022002200229023c220a37020c20022006360208200a422088a72103200aa721092007450d040c030b2002410036021020024201370308410121064100210920070d020c030b101c000b41c1214133102d000b200410020b200241386a41186a2204200141186a290000370300200241386a41106a2207200141106a290000370300200241386a41086a2208200141086a29000037030020022001290000370338024020032009470d00200241086a107c200241086a41086a2802002103200228020821060b2008290300210a2007290300210b2004290300210c200620034105746a22062002290338370000200641186a200c370000200641106a200b370000200641086a200a370000200241086a41086a2206200341016a360200200420024198016a41186a290300370300200720024198016a41106a290300370300200820024198016a41086a2903003703002002200229039801370338200241c0016a41086a2006280200360200200220022903083703c001200241386a200241c0016a10dd010b200241386a41186a20024198016a41186a290300370300200241386a41106a20024198016a41106a290300370300200241386a41086a20024198016a41086a290300370300200241e0006a200141086a290000370300200241e8006a200141106a290000370300200241f0006a200141186a290000370300200220022903980137033820022001290000370358200241386a200541ff017141004710de0120002d00004101470d010b200041046a10bf010b200241e0016a24000bcd0402057f017e230041c0006b220224000240024002400240410910012203450d002002200336023020024209370234200241306a4100410910272002280230200228023822036a2204410029009823370000200241086a200341096a2203360200200441086a41002d00a0233a00002002200229033037030020022003360238412010012203450d002002200336023020024220370234200241306a41004120102720022802302204200228023822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136023820022802342105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241306a41086a220542003703002002420037033020032001200241306a1003200241086a20052903003703002002200229033037030002402002411041d02d410041001000417f460d002002200236021020024110360214200242003703302002410020024110200241306a41084100100022012001417f461b2201410820014108491b360218200141074d0d0220022903302107200241306a200241106a103a20022802302201450d022002200229023437032020002001360208200020073703002000200229032037020c200041146a200241286a2802003602002004450d040c030b2000410036020820040d020c030b101c000b41c1214133102d000b200310020b200241c0006a24000be20301067f230041306b220224000240410b10012203450d00200220033602202002420b370224200241206a4100410b10272002280220200228022822046a2203410029008223370000200241106a41086a2004410b6a2204360200200341086a41002f008a233b00002003410a6a41002d008c233a00002002200229032037031020022004360228412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220636021802402005450d00200410020b200228021421042002200110a2012002280208210520022802002100200241206a41086a220742003703002002420037032020032006200241206a1003200241106a41086a200729030037030020022002290320370310200241106a411020002005100402402002280204450d00200010020b02402004450d00200310020b0240200141046a280200450d00200128020010020b200241306a24000f0b101c000bc00201057f230041306b22022400200220013a000f0240410910012201450d002002200136022020024209370224200241206a4100410910272002280220200228022822036a220441002900f922370000200241106a41086a2201200341096a2203360200200441086a41002d0081233a00002002200229032037031020022003360228200241206a200010be012002280224210520022802202103200241106a200128020020022802282200102720022802102204200128020022066a20032000101e1a2001200620006a220036020002402005450d00200310020b20022802142103200241206a41086a220542003703002002420037032020042000200241206a10032001200529030037030020022002290320370310200241106a41102002410f6a4101100402402003450d00200410020b200241306a24000f0b101c000bab0201057f230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42e4cab5d3c3ac99b83a3700002002200341086a360218200241086a200228021836020020022002290310370300410410012203450d002002200336021020024204370214200241106a41004104102720022802102203200228021822046a20003600002002200441046a220036021820022802142105200220022802082000102720022802002204200228020822066a20032000101e1a2002200620006a220036020802402005450d00200310020b2002280204210320042000200110d70102402003450d00200410020b02402001410c6a280200450d00200128020810020b200241206a24000f0b101c000b9c0b04027f017e027f017e230041d0006b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001280200417f6a220341044b0d000240024002400240024020030e050004020301000b200141086a28020022034101460d0720034102470d16420221040c080b420121040240200141086a28020022034101460d0020034102470d17420221040b20004105360200200041086a2004370300200041106a200141106a290300370300200241d0006a24000f0b20012d000422034103714101460d034102210520034102470d16200141086a28020021030c040b200141086a22052d0000417f6a220341034b0d16024020030e04000c080a000b2001410c6a2802002101410121030c0c0b200141086a280200417f6a220641034b0d1641042103024020060e0400080d0e000b200141106a2903002104410121030c0d0b200128020422034101460d0420034102470d16200141106a2802002205ad42187e2204422088a70d172004a72203417f4c0d18200141086a28020021012003450d0d2003100122060d0e0c100b413010012203450d0f2003200141086a28020010e001200141056a2d00002101410121050b20004103360200200041086a20033602002000200141ff0171410874200572360204200241d0006a24000f0b200141106a2903002107420121040b20004101360200200041106a2007370300200041086a2004370300200241d0006a24000f0b200141106a2802002203417f4c0d14200141086a2802002106410121014101210502402003450d00200310012205450d0c0b2002200336023c2002200536023820024100360240200241386a41002003102720022002280240220520036a360240200520022802386a20062003101e1a200241286a2002280240360200200220022903383703200c0a0b200141106a2903002104410321030c020b200141106a2903002104410221030c050b200141106a2903002104410421030b0c010b41022103200241206a41026a200541036a2d00003a0000200241c0006a200141206a290000370300200241386a41106a200141286a2d00003a0000200220052f00013b01202002200141186a290000370338200141106a29000021042001410c6a28000021010b200020022f01203b000920004104360200200041086a20033a00002000410c6a2001360200200041106a2004370300200041186a20022903383703002000410b6a200241226a2d00003a0000200041206a200241386a41086a290300370300200041286a200241386a41106a290300370300200241d0006a24000f0b2001410c6a2802002105410321030b200041023602002000410c6a2005360200200041086a2003360200200041106a2004370300200241d0006a24000f0b410421060b20022006360208200241003602102002200536020c200241086a4100200341186d10830120022802102103200228020821062002200136021820022001200541186c6a36021c200241386a200241186a103302402002280238450d002006200341186c6a21010340200241206a41106a2205200241386a41106a290300370300200241206a41086a2206200241386a41086a29030037030020022002290338370320200141106a2005290300370200200141086a200629030037020020012002290320370200200341016a2103200141186a2101200241386a200241186a103320022802380d000b0b200241086a41086a2003360200200241206a41086a200336020020022002290308370320410221010b2000200136020420004100360200200041086a2002290320370200200041106a200241206a41086a280200360200200241d0006a24000f0b101c000b41ec30103b000b41843e103b000b41ac3f103b000b419435103b000b41943b103b000b41ecc100103b000b1060000b1061000b1019000b9d08090e7f017e017f017e017f017e017f017e017f230041306b22022400024002400240024020014108490d00200141017641feffffff07712203417f6a220420014f0d032001410d74200173220541117620057322054105742005732206417f2001417f6a677622077122054100200120052001491b6b220520014f0d01200241086a41206a22082000200441286c6a220441206a2209290300370300200241086a41186a220a200441186a220b290300370300200241086a41106a220c200441106a220d290300370300200241086a41086a220e200441086a220f2903003703002000200541286c6a22052903002110200541086a22112903002112200541106a22132903002114200541186a221529030021162009200541206a2217290300370300200b2016370300200d2014370300200f2012370300200429030021122004201037030020022012370308201720082903003703002015200a2903003703002013200c2903003703002011200e29030037030020052002290308370300200320014f0d022006410d7420067322054111762005732205410574200573220620077122054100200120052001491b6b220520014f0d01200241086a41206a22082000200341286c6a220441206a2209290300370300200241086a41186a220a200441186a220b290300370300200241086a41106a220c200441106a220d290300370300200241086a41086a220e200441086a220f2903003703002000200541286c6a22052903002110200541086a22112903002112200541106a22132903002114200541186a221529030021162009200541206a2217290300370300200b2016370300200d2014370300200f2012370300200429030021122004201037030020022012370308201720082903003703002015200a2903003703002013200c2903003703002011200e290300370300200520022903083703002003410172220420014f0d032006410d742006732205411176200573220541057420057320077122054100200120052001491b6b220520014f0d01200241086a41206a22032000200441286c6a220141206a2204290300370300200241086a41186a2206200141186a2207290300370300200241086a41106a2208200141106a2209290300370300200241086a41086a220a200141086a220b2903003703002000200541286c6a22002903002110200041086a22052903002112200041106a220c2903002114200041186a220d29030021162004200041206a220e2903003703002007201637030020092014370300200b2012370300200129030021122001201037030020022012370308200e2003290300370300200d2006290300370300200c20082903003703002005200a290300370300200020022903083703000b200241306a24000f0b41b4c20020052001103c000b200321040b41ecc20020042001103c000bd808070d7f017e017f017e017f027e027f230041306b2202240002400240024002400240024020014101762203450d0003402003417f6a2203210403402004410174220d41017221160240200d41026a220d20014f0d00201620014f0d06200d20162000200d41286c6a2903002000201641286c6a290300541b21160b0240201620014f0d00200420014f0d042000201641286c6a220d2903002000200441286c6a22042903005a0d00200241086a41206a2205200441206a2206290300370300200241086a41186a2207200441186a2208290300370300200241086a41106a2209200441106a220a290300370300200241086a41086a220b200441086a220c290300370300200d41086a220e290300210f200d41106a22102903002111200d41186a22122903002113200d29030021142006200d41206a221529030037030020082013370300200a2011370300200c200f3703002004290300210f200420143703002002200f370308201520052903003703002012200729030037030020102009290300370300200e200b290300370300200d2002290308370300201621040c010b0b20030d000b0b024020014102490d002001210503402005417f6a220520014f0d06200241086a41206a2206200041206a220d290300370300200241086a41186a2207200041186a2216290300370300200241086a41106a2208200041106a220a290300370300200241086a41086a2209200041086a220b2903003703002000200541286c6a2204290300210f200441086a220c2903002111200441106a220e2903002113200441186a22102903002114200d200441206a221229030037030020162014370300200a2013370300200b2011370300200029030021112000200f370300200220113703082012200629030037030020102007290300370300200e2008290300370300200c2009290300370300200420022903083703004100210403402004410174220d41017221160240200d41026a220d20054f0d00201620054f0d07200d20162000200d41286c6a2903002000201641286c6a290300541b21160b0240201620054f0d00200420054f0d052000201641286c6a220d2903002000200441286c6a22042903005a0d002006200441206a220a2903003703002007200441186a220b2903003703002008200441106a220c2903003703002009200441086a220e290300370300200d41086a2210290300210f200d41106a22122903002111200d41186a22152903002113200d2903002114200a200d41206a2203290300370300200b2013370300200c2011370300200e200f3703002004290300210f200420143703002002200f37030820032006290300370300201520072903003703002012200829030037030020102009290300370300200d2002290308370300201621040c010b0b200541014b0d000b0b200241306a24000f0b418cc30020042001103c000b418cc30020042005103c000b41fcc20020162001103c000b41fcc20020162005103c000b41b4c20020052001103c000bac0904097f017e0e7f017e230041306b22022400200041286a2103200041887f6a2104200041586a21054100210620014132492107410121080240024002400340024002400240200820014f0d002005200841286c6a210903402009290300200941286a2209290300540d0220092109200841016a22082001490d000b0b410021092008200146220a0d030c010b410121092008200146220a0d020b20070d012008417f6a220a20014f0d022009450d032000200a41286c6a2209290300210b20092000200841286c220c6a220a290300370300200241086a41206a220d200941206a220e290300370300200241086a41186a220f200941186a2210290300370300200241086a41106a2211200941106a2212290300370300200241086a41086a2213200941086a22142903003703002014200a41086a22152903003703002012200a41106a22162903003703002010200a41186a2217290300370300200e200a41206a22182903003703002002200b3703082018200d2903003703002017200f2903003703002016201129030037030020152013290300370300200a2002290308370300024020084102490d0020002008417e6a220d41286c6a22192903002009290300220b5a0d00200920192903003703002009290308211a2014201941086a290300370300200f200e29030037030020112010290300370300201320122903003703002012201941106a2903003703002010201941186a290300370300200e201941206a2903003703002002201a3703084100210e0240200d450d002004200c6a2109024003402009290300200b5a0d01200941286a2009290300370300200941c8006a200941206a290300370300200941c0006a200941186a290300370300200941386a200941106a290300370300200941306a200941086a290300370300200941586a2109200d417f6a220d0d000b200941286a21190c010b200941286a2119200d210e0b2019200b3703002000200e41286c6a22092002290308370308200941206a200f290300370300200941186a2011290300370300200941106a20132903003703000b200641016a21060240200120086b22124102490d00200a290300220b200a2903285a0d00200a200a41286a220d290300370300200a290308211a2015200d41086a290300370300200f201829030037030020112017290300370300201320162903003703002016200d41106a2903003703002017200d41186a2903003703002018200d41206a2903003703002002201a37030841012116024020124103490d002003200c6a21094101210e02400340200b200941286a220d2903005a0d01200941206a200941c8006a290300370300200941186a200941c0006a290300370300200941106a200941386a290300370300200941086a200941306a2903003703002009200d290300370300200e41026a2110200e41016a2216210e200d210920102012490d000c020b0b200e21162009210d0b200d200b370300200a201641286c6a22092002290308370308200941206a200f290300370300200941186a2011290300370300200941106a20132903003703000b20064105490d000b4100210a0b200241306a2400200a0f0b41ecc200200a2001103c000b41b4c20020082001103c000b0bdb3b02004180080bec282f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f73657373696f6e2f7372632f6c69622e72737365733a696e647365733a6c656e7365733a6c6c637365733a6e6c6e7365733a76616c00000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72730000000000000000000000000000617474656d707420746f20646976696465206279207a65726f00000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f616c6c206974656d7320636f6d652066726f6d2060766f74657273603b20666f7220616e206974656d20746f20626520696e2060766f7465727360207468657265206d757374206265206120766f746520726567697374657265643b2071656448617368206e6f7420657175616c52756e74696d65206d656d6f7279206578686175737465642e2041626f7274696e676c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f7774696d3a64696454696d657374616d70206d7573742062652075706461746564206f6e636520696e2074686520626c6f636b2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f74696d657374616d702f7372632f6c69622e727374696d3a76616c54696d657374616d70206d7573742062652066697273742065787472696e73696320696e2074686520626c6f636b54696d657374616d70206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b617373657274696f6e206661696c65643a206175782e69735f656d7074792829656e766578745f7365745f73746f726167656578745f6765745f73746f726167656578745f7472616e736665726578745f6372656174656d656d6f727963616c6c002f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f7374616b696e672f7372632f636f6e74726163742e72730000000000000000000000000000000000000000000000000000000000000000007372632f6c69622e72732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f756e63696c2f7372632f6c69622e7273636f753a6e7874636f753a76636f636f753a76626f636f753a767273636f753a617072636f753a6c616374617267657420666f7220696e616374697669747920636c65616e7570206d75737420626520616374697665636f753a766770636f753a63616e616c6c206974656d7320696e2063616e64696461746573206c697374206172652072656769737465726564636f753a726567636f753a63626f636f753a636e6363616e6e6f742070726573656e74206f757473696465206f662070726573656e746174696f6e20706572696f64636f753a737373636f753a707373636f753a77696e6c6561646572626f617264206d757374206578697374207768696c652070726573656e7420706861736520616374697665636f753a61637470726573656e7465642063616e646964617465206d7573742062652063757272656e7463616e646964617465206d757374206e6f7420666f726d2061206475706c696361746564206d656d62657220696620656c656374656463616e646964617465206e6f7420776f72746879206f66206c6561646572626f61726470726573656e746572206d75737420686176652073756666696369656e7420736c61736861626c652066756e647300000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e7273696e76616c69642063616e64696461746520736c6f7463616e64696461746520686173206e6f7420656e6f7567682066756e64736475706c69636174652063616e646964617465207375626d697373696f6e72657472616374696f6e20696e646578206d69736d6174636872657472616374696f6e20696e64657820696e76616c696463616e6e6f742072657472616374206e6f6e2d766f74657263616e6e6f742072657472616374207768656e2070726573656e74696e676261642074617267657420696e646578626164207265706f7274657220696e64657863616e6e6f74207265617020647572696e67206772616365207065726964766f746520696e646578206e6f742063757272656e74726561706572206d757374206265206120766f74657263616e6e6f74207265617020647572696e672070726573656e746174696f6e20706572696f64617373657274696f6e206661696c65643a202153656c663a3a70726573656e746174696f6e5f6163746976652829636f753a737473636f753a706475636f753a74726d636f753a706572636f753a63636f66696e616c6973652063616e206f6e6c792062652063616c6c656420616674657220612074616c6c7920697320737461727465642e72756e6e6572207570206d757374206265207265676973746572656400617474656d707420746f20646976696465206279207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72730000000000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f53746f7261676520726f6f74206d757374206d6174636820746861742063616c63756c617465642e2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f6578656375746976652f7372632f6c69622e7273617373657274696f6e206661696c65643a206865616465722e6469676573742829203d3d20263c73797374656d3a3a4d6f64756c653c53797374656d3e3e3a3a6469676573742829416c6c207472616e73616374696f6e732073686f756c6420686176652074686520636f7272656374206e6f6e6365416c6c207472616e73616374696f6e732073686f756c642062652070726f7065726c79207369676e65645472616e73616374696f6e207472696520726f6f74206d7573742062652076616c69642e506172656e7420686173682073686f756c642062652076616c69642e7374726f616765206973206e6f74206e756c6c2c207468657265666f7265206d75737420626520612076616c696420747970656c6962636f72652f726573756c742e727373657269616c697a656420617267732073686f756c642062652070726f7669646564206279207468652072756e74696d653b0a090909636f72726563746c792073657269616c697a656420646174612073686f756c6420626520646573657269616c697a61626c653b0a0909097165642f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652d73616e64626f782f7372632f2e2e2f776974686f75745f7374642e72732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f7374616b696e672f7372632f6c69622e72737374613a6c65637374613a7370657374613a6572617374613a6e73657374613a77696c3a7374613a7661630000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72737374613a6c6f63617373657274696f6e206661696c65643a20746f5f62616c616e6365202b2076616c7565203e20746f5f62616c616e6365617373657274696f6e206661696c65643a203c426f6e646167653c543e3e3a3a676574287472616e736163746f7229203c3d203c426f6e646167653c543e3e3a3a676574286465737429617373657274696f6e206661696c65643a2066726f6d5f62616c616e6365203e3d2076616c756543616e6e6f7420756e7374616b65206966206e6f7420616c7265616479207374616b65642e43616e6e6f74207374616b6520696620616c7265616479207374616b65642e7374613a666565617474656d707420746f207472616e7361637420776974686f757420656e6f7567682066756e647320746f20706179206665657374613a746f74617373657274696f6e206661696c65643a20266465737420213d207472616e736163746f72617373657274696f6e206661696c65643a2062203e3d2076616c756573746f72616765206973206e6f74206e756c6c2c207468657265666f7265206d75737420626520612076616c6964207479706552657175697265642076616c756573206d75737420626520696e2073746f726167652f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f756e63696c2f7372632f766f74696e672e7273636f763a706572696f64636f763a70726f636f763a707273636f763a766f74653a636f763a766f746572733a636f763a636f6f6c6f6666636f763a7665746f3a70726f706f73616c206d75737420657869737420746f206265207665746f65646f6e6c7920636f756e63696c6c6f7273206d6179207665746f20636f756e63696c2070726f706f73616c73617373657274696f6e206661696c65643a202153656c663a3a69735f7665746f6564282670726f706f73616c5f68617368294e6f206475706c69636174652070726f706f73616c7320616c6c6f776564617373657274696f6e206661696c65643a2053656c663a3a77696c6c5f7374696c6c5f62655f636f756e63696c6c6f725f6174286175782e7265665f696e746f28292c2065787069727929616c6c207175657565642070726f706f73616c20686173686573206d7573742068617665206173736f6369617465642070726f706f73616c732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f64656d6f63726163792f7372632f6c69622e727364656d3a6c617564656d3a707562416c6c2063757272656e74207075626c69632070726f706f73616c73206861766520616e20616d6f756e74206c6f636b65646465706f7369746f727320616c7761797320657869737420666f722063757272656e742070726f706f73616c7364656d3a70657264656d3a6e787464656d3a72636f43616e6e6f7420696e6a6563742061207265666572656e64756d207468617420656e6473206561726c696572207468616e2070726563656564696e67207265666572656e64756d63616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e7273002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e72730000000000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e727364656d3a6d696e64656d3a70706363616e206f6e6c79207365636f6e6420616e206578697374696e672070726f706f73616c7472616e736163746f72206d75737420686176652062616c616e636520746f207369676e616c20617070726f76616c2e766f746520676976656e20666f7220696e76616c6964207265666572656e64756d2e617373657274696f6e206661696c65643a203c7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e646564286175782e7265665f696e746f28292c206465706f7369742e3029617373657274696f6e206661696c65643a203c7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e646564286175782e7265665f696e746f28292c2076616c756529617373657274696f6e206661696c65643a2076616c7565203e3d2053656c663a3a6d696e696d756d5f6465706f736974282900000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e727300000000000000000000000000002f636865636b6f75742f7372632f6c6962616c6c6f632f736c6963652e7273696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f64652f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f6e73656e7375732f7372632f6c69622e72733a617574683a7379733a6f6c640000007379733a6e756d7379733a7068617379733a7478727379733a726e647379733a787469426c6f636b206e756d626572206d6179206e65766572206265207a65726f2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f73797374656d2f7372632f6c69622e72737379733a6e6f6e7379733a7874647379733a6469676c656e5f5f5068616e746f6d4974656d2073686f756c64206e6576657220626520757365642e3a636f6465000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f736f72742e7273617373657274696f6e206661696c65643a206d6964203c3d206c656e6c6962636f72652f736c6963652f6d6f642e7273000000000000000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e7273617373657274696f6e206661696c65643a20696e646578203c3d206c656e6c6962616c6c6f632f7665632e7273617373657274696f6e206661696c65643a20696e646578203c206c656e0041ec300be0124f1600002800000000040000480000003300000001000000711700002300000000040000480000003300000001000000a0040000190000007004000022000000c50100002d000000c00400003900000070040000220000001a0200002d0000004f160000280000001f0e0000530000006f000000090000004f160000280000001f0e00005300000078000000090000009c050000110000008905000013000000e502000005000000df17000014000000d008000005000000df17000014000000d608000005000000fe130000110000009203000005000000b40500002b000000df0500004a0000004b000000030000007117000023000000df0500004a0000002b000000010000008e06000020000000df0500004a00000041000000030000005e06000030000000df0500004a0000004200000003000000300600002e000000df0500004a0000004300000003000000f00600004d0000008700000012000000f00600004d0000008800000012000000f00600004d000000890000000f000000f00600004d0000007000000019000000f00600004d0000007100000019000000f00600004d000000720000000f000000f00600004d0000005e00000016000000f00600004d0000005f00000012000000f00600004d0000003d00000016000000f00600004d0000003e00000018000000f00600004d0000003f000000130000004f16000028000000df0500004a0000002b000000010000005e0700000a000000a8000000020000004f1600002800000068070000480000006500000001000000711700002300000068070000480000006500000001000000ed0a00002e0000006807000048000000e3000000030000006807000048000000e400000003000000c70a0000260000006807000048000000f800000003000000b10a0000160000006807000048000000f9000000030000009b0a0000160000006807000048000000fb000000030000007d0a00001e0000006807000048000000fc000000030000008009000022000000200900000a0000006b0a000012000000680700004800000000010000030000005b0a000010000000680700004800000001010000030000003d0a00001e00000068070000480000001b01000003000000250a00001800000068070000480000001c010000030000000d0a00001800000068070000480000001f01000003000000f40900001900000068070000480000002001000003000000d60900001e00000068070000480000002901000003000000b80900001e00000068070000480000002a01000003000000a20900001600000068070000480000002f010000030000008009000022000000260900000e000000680700004800000044010000030000004a0900002e00000068070000480000004a01000003000000270900002300000068070000480000004d01000003000000f1080000360000006807000048000000500100000400000080090000220000003c02000023000000e00b000039000000b00b0000220000001a0200002d000000900b000019000000b00b000022000000c50100002d0000004f0d00001c000000410c00004a00000050000000030000002b0d000024000000410c00004a00000058000000030000008b0c000048000000410c00004a0000009c00000003000000190c000028000000410c00004a000000a400000003000000010d00002a000000410c00004a000000850000000e000000d30c00002e000000410c00004a0000008b000000040000009e0d000011000000b1030000050000004f160000280000001f0e00005300000008010000090000004f16000028000000720e0000480000005b00000001000000f00e000039000000300f0000220000001a0200002d000000201000001f000000720e000048000000c800000003000000fb0f000025000000720e000048000000d6000000040000007117000023000000720e0000480000005b00000001000000d40f000027000000720e00004800000030020000030000008a0f00004a000000720e0000480000003302000003000000590f000031000000720e00004800000034020000030000000600000000000000010000000700000008000000090000000a0000000b0000000c0000000d0000004610000033000000720e0000480000005702000003000000d40f000027000000720e00004800000016020000030000008010000025000000720e00004800000022020000030000000e00000018000000040000000f000000100000001100000012000000130000001400000015000000a51000001c000000720e00004800000015010000030000004f16000028000000161100004b0000001b000000010000007117000023000000161100004b0000001b000000010000003c1200004b000000161100004b0000004e000000030000001e1200001e000000161100004b0000005200000003000000ec11000032000000161100004b0000005300000003000000c11100002b000000161100004b0000006900000003000000a111000020000000161100004b0000006a000000030000004f16000028000000c01200004a0000003900000001000000401400003900000080140000220000001a0200002d00000010140000220000003c02000023000000d31300002b000000fe130000110000004f010000150000008c13000047000000c01200004a000000d9000000040000007117000023000000c01200004a0000003900000001000000c615000032000000c01200004a0000009300000003000000781500004e000000c01200004a00000094000000030000002615000052000000c01200004a000000a2000000030000000415000022000000c01200004a000000ac00000004000000d414000030000000c01200004a000000af000000040000000016000022000000200900000a0000000016000022000000260900000e000000301600001f000000b20200001e000000301600001f000000b5020000360000004f16000028000000771600004a0000003b00000001000000f41600001e00000012170000470000007d000000030000007117000023000000771600004a0000003b0000000100000000180000220000003d02000023000000c31700001c000000df17000014000000cc0100000d000000a017000023000000910200001d00000000180000220000003c02000023000000a017000023000000a70000003a000000a017000023000000ae00000030000000221800001e000000401800000f00000047030000090000004f1800001d000000401800000f0000006f03000009000000000c076c696e6b696e670302cc3b00ff8401046e616d6501f68401e40100146578745f6765745f73746f726167655f696e746f010a6578745f6d616c6c6f6302086578745f66726565030c6578745f74776f785f313238040f6578745f7365745f73746f7261676505116578745f636c6561725f73746f72616765060a6578745f6d656d636d7007186578745f656e756d6572617465645f747269655f726f6f74080e6578745f7072696e745f75746638090d6578745f7072696e745f6e756d0a0a6578745f6d656d6370790b0b6578745f6d656d6d6f76650c0a6578745f6d656d7365740d166578745f73616e64626f785f6d656d6f72795f6e65770e176578745f73616e64626f785f696e7374616e74696174650f126578745f73616e64626f785f696e766f6b6510166578745f73616e64626f785f6d656d6f72795f67657411166578745f73616e64626f785f6d656d6f72795f736574120e6578745f626c616b65325f323536130d6578745f7072696e745f68657814106578745f73746f726167655f726f6f7415126578745f656432353531395f76657269667916773c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a4469676573743c4974656d3e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a686366613333306530633737643531613517066d656d73657418393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a6838313936363666396265663463633931194b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68646339636565313232303362623835621a4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68353632363038323130343238623465631b4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68653335663962326562366332393066621c24616c6c6f633a3a616c6c6f633a3a6f6f6d3a3a68613732396634666436376436376633391d8b013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a4865616465723c4e756d6265722c20486173682c204469676573744974656d3e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a68306561356233376164373865313636341e066d656d6370791f573c616c6c6f633a3a7665633a3a5665633c75383e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a683135633166653139313338396266313020a0013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a556e636865636b656445787472696e7369633c4163636f756e7449642c20496e6465782c2043616c6c2c205369676e61747572653e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a686666343637646332363738333264373321583c616c6c6f633a3a626f7865643a3a426f783c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a683733356130396161356431326165663322345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e3138363723393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a6835646661343736643064326634353464244b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6831623238376135353263616531393734252b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a683461653631636530366535663831633126a0013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a556e636865636b656445787472696e7369633c4163636f756e7449642c20496e6465782c2043616c6c2c205369676e61747572653e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6862346461326637656565363934383334273a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a6861623665336266623631626431356231285a3c706f6c6b61646f745f72756e74696d653a3a43616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a68393931323239363862316130396334322934636f72653a3a736c6963653a3a736c6963655f696e6465785f6c656e5f6661696c3a3a68363938393263393438396363616162622a363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a68353666353936643634373237343833632b8d015f5a4e34395f244c5424616c6c6f632e2e7261775f7665632e2e526177566563244c54245424432424753230244124475424244754243131616c6c6f636174655f696e32385f24753762242475376224636c6f737572652475376424247537642431376838343739373131363565646633646537452e6c6c766d2e3632303339333138363734383337373033382c493c7375627374726174655f72756e74696d655f73657373696f6e3a3a4d6f64756c653c543e3e3a3a726f746174655f73657373696f6e3a3a68663938353764613535613230616562632d2e636f72653a3a6f7074696f6e3a3a6578706563745f6661696c65643a3a68653163323536643932353565393632662e463c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a626c6f636b5f6e756d6265723a3a68313635316433343866326134346235372f527375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a726571756972653a3a6861313164373161613165393864646363304b3c54206173207375627374726174655f636f6465633a3a6b657965647665633a3a4b657965645665633e3a3a746f5f6b657965645f7665633a3a6866346339626432626430633262303964314f7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765745f6f725f64656661756c743a3a6837623835343430353965333637333638324b3c54206173207375627374726174655f636f6465633a3a6b657965647665633a3a4b657965645665633e3a3a746f5f6b657965645f7665633a3a686466633130663239626637643964313133523c636f72653a3a697465723a3a436c6f6e65643c493e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a683032316562386262636530636661323334583c28412c204229206173207375627374726174655f72756e74696d655f7072696d6974697665733a3a7472616974733a3a45786563757461626c653e3a3a657865637574653a3a6863373034616135306561623165643139359f017375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a3c696d706c207375627374726174655f72756e74696d655f7072696d6974697665733a3a7472616974733a3a45786563757461626c6520666f72207375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a657865637574653a3a683730353563353930613161356165386336597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a686432656434346461383333643033393337473c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a6465706f7369745f6f663a3a6864356630353863656136333834623032382b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a683436373662323538363033663731396439076d656d6d6f76653a563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a68653630626561346331643730393736643b29636f72653a3a70616e69636b696e673a3a70616e69633a3a68313137323734323133346465393231303c36636f72653a3a70616e69636b696e673a3a70616e69635f626f756e64735f636865636b3a3a68363630346666363535326232666562323d413c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a726566756e643a3a68633362613564623165383537303661313e86013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a68656161636164343939313263336335363f4e3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a696e6a6563745f7265666572656e64756d3a3a6863653264346134373837396137323635404c3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a7265666572656e64756d5f696e666f3a3a68356430386136656330613537303133384134616c6c6f633a3a7261775f7665633a3a63617061636974795f6f766572666c6f773a3a686334316261316636346437363033373942473c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a766f746572735f666f723a3a686539303831303936616133363162333843473c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a667265655f62616c616e63653a3a6862653837643063316262386365323731444b3c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a72657365727665645f62616c616e63653a3a6865623966656232366134653538343433453e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6835666661663632366231656464306238464d3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a636c6561725f7265666572656e64756d3a3a683065326261346565363332393465346547597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a686364633932303862653939363865303148423c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a6e65775f6572613a3a6834333536343534386630353530373663493a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a68666363653264376532363234386132664a86013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a68383237346662353239326530653935384b345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e313933304c6d3c7375627374726174655f72756e74696d655f696f3a3a426c616b6554776f323536206173207375627374726174655f72756e74696d655f696f3a3a48617368696e673e3a3a656e756d6572617465645f747269655f726f6f743a3a68373531363037396363363934643362344d11727573745f626567696e5f756e77696e644e08727573745f6f6f6d4f393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683934323963666464366239343939316550463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686638333437636630333536663137633751573c616c6c6f633a3a7665633a3a5665633c75383e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a683562613039363631356162393163653352066d616c6c6f63530466726565542d636f72653a3a70616e69636b696e673a3a70616e69635f666d743a3a68343066313034346338363430636537655536636f72653a3a736c6963653a3a736c6963655f696e6465785f6f726465725f6661696c3a3a6838313330343432303532386232613865564b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6832653739643730623164373537336236574b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6834333337316334333361323734393066584b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6835653639393561353131376336316261594b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68393332616436626561643261373838325a4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68643335646131306634323134323937335b4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68306464323861643233626338353865665c4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68323236353666303366323931393738325d4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68626461366634636434623039663433665e4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68303139363230336638363464396133345f4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6862396532346165643662353163376566604b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6863613166626538323365653436383431614b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6862323236663235303162633264306264624b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6836333364303435386436356363393863634b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6866616563633135353361633333613835644b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6861356133316562653333306639326635654b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6832376361366365373461626664666264664b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6836323932333830613439323131383638674b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a686163306336633862333061653039663768393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683063653362633633326336616364326169463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68376636633966373761363663373937636a393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68343038373662383637653261396330396b463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68383863616164303861633361623961646c393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68353262366336626163626135633061386d463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68623437366264373632363935623330336e463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68326132353062613265323263336337396f393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683636323532376436666130383237343470463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683365363965636439633766616165306371393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683764313835303766636661646366353972463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686335663366366638303064303431353273463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683738366438643636323036316564613074393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686261353735613734386133306233306375463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686532653262373435333764623266386476393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686461363738663731646162613761666577463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683863323961323539383931333766343978393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686463356361653038383331346337376679463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68326161633766383935303734356563397a393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68646433633635373262343532613031347b463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68626462393236656664376432346539387c393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68653333366232306266663138383930347d463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68346633396332623430636437333963347e393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68653338643736373866303134323236317f463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68363862383536613030333235623134628001393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68656330653961326130616435633466648101463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683838636134306365646335303261316282013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683534343836366335623963663730373583013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683734393131616635323537633037393784013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683735663262666638613830643365623985013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683863616636616537333938376436346386013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a68653033623365323432663733346433308701503c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68393537643736623535353030646266348801c3013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68353731386465393136646662313737328901c3013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68373463373532366661626363646564358a01c7013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68343437336564333066636136316137308b01cb013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572745f6669743a3a68326333636630383765623331663734338c01c7013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68386365653235383631313166343439668d01cb013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572745f6669743a3a68663630346163643262623861646636648e013f7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a68666332303937306166616238363265658f01507375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f7365745f73746f726167653a3a68633235623630316631346635383463389001507375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f6765745f73746f726167653a3a683736613962653764306632343937316491014d7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f7472616e736665723a3a683632326464636435333464616431363892014b7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f6372656174653a3a68396363303263356565333664303032379301417375627374726174655f72756e74696d655f73616e64626f783a3a696d703a3a64697370617463685f7468756e6b3a3a683939386139316165306131663037633594017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f73746f726167653a3a683035373136666235306661623636643395017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f73746f726167653a3a683031326363613031653639396364643996013b3c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e3e3a3a6765743a3a6865383334633533623431306361303264970134616c6c6f633a3a62747265653a3a7365617263683a3a7365617263685f747265653a3a68613435343266643037623530613430349801653c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e20617320636f72653a3a697465723a3a7472616974733a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a68323337613934396465633834333065369901553c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68663765393037343761386636613332309a01453c616c6c6f633a3a62747265653a3a6d61703a3a566163616e74456e7472793c27612c204b2c20563e3e3a3a696e736572743a3a68616639316138373166656365356538369b017c3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f636f64653a3a68636634333438326462356135353864349c01793c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6d657267653a3a68306134623934346339646231343665329d01653c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e20617320636f72653a3a697465723a3a7472616974733a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a68336331666362643134643933623735619e01553c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68626262323936373561396334396234399f012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6866313734613335313966343639373764a0016c3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a5072697643616c6c3c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6836313935643931346137663363333636a1010b617574686f726974696573a201563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6834663037313434396230306561366362a30110696e697469616c6973655f626c6f636ba401443c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a696e697469616c6973653a3a6832326337643330356130373863393035a5010f6170706c795f65787472696e736963a601783c7375627374726174655f72756e74696d655f6578656375746976653a3a4578656375746976653c53797374656d2c20426c6f636b2c205061796d656e742c2046696e616c69736174696f6e3e3e3a3a6170706c795f65787472696e7369635f696e6e65723a3a6836303438333536646465653962326663a7010d657865637574655f626c6f636ba801443c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a626c6f636b5f686173683a3a6838333036626630323533366265386266a901523c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a53706563457874656e643c542c20493e3e3a3a66726f6d5f697465723a3a6863383933623037366263653438356361aa01423c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a66696e616c6973653a3a6835643638333133636232646637366465ab010e66696e616c6973655f626c6f636bac010f76616c696461746f725f636f756e74ad010a76616c696461746f7273ae01793c7375627374726174655f72756e74696d655f636f756e63696c3a3a43616c6c3c543e206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6836363435303363376332313138323333af01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a6578697374733a3a6837323366316130366637356338376235b001473c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a72656d6f76655f766f7465723a3a6837326137643235373861356638346333b101563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6830396163353435653961376538333833b2014a3c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e6465643a3a6835366234393235363039633261333763b3014c3c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a766f7465725f6c6173745f6163746976653a3a6862336538666236373336303764663063b401473c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a617070726f76616c735f6f663a3a6865333163643561323839663761303839b5014d3c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a63616e6469646174655f7265675f696e666f3a3a6866303561313635613136333135646633b601563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6831613262363530646163366431306537b70186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6866373862303163316265363933623132b801563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6862636662316161343963386239396538b901543c636f72653a3a697465723a3a436861696e3c412c20423e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839313464643736343236613933323338ba01563c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a696e7465726e616c5f73746172745f7265666572656e64756d3a3a6864663562353935316539353236643238bb01527375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a726571756972653a3a6862646338666238653461356339396261bc0186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6836363231356566633664633732336432bd015e3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6836636664343364363366653539376139be013e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6834356437316332383730346338366538bf01345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e31383434c001473c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a6163636f756e745f696e6465783a3a6830663032313835306531326631353532c1016d3c706f6c6b61646f745f72756e74696d653a3a43616c6c206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6862353365306137383562356439313664c2012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6835636361383862626431396436663637c3012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6861636366363539333334346266343932c4012d636f72653a3a736c6963653a3a736f72743a3a726563757273653a3a6865653866663861633636343163366337c501563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6836643335643961613335663530373466c601773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f62616c616e63653a3a6839366364653364613533393430373432c701713c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6d657267653a3a6863386138646538333035626335356661c8015e3c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839663430373961306139316533623539c901563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6839633838336432616334356335643565ca015e3c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6831353032303864643239373239616232cb013e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6866653733303335653834393636616231cc012b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a6837313232393564313131373938333732cd01773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f73746f726167653a3a6865626533633663393533393837616132ce01743c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f636f64653a3a6837376330653737383334326563333934cf01773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f73746f726167653a3a6862663865653331383633303066393130d001743c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f636f64653a3a6834393266643631333433343565656533d101773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f62616c616e63653a3a6861303936363266636534323061373632d2013e3c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e3e3a3a696e736572743a3a6863313238323330343366616132306235d3012b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a6862623666313834333462363831646364d4017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f62616c616e63653a3a6864333339636666326536626431326136d5017c3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f636f64653a3a6832353031306366393163383531653633d6017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f62616c616e63653a3a6835663038363634343266663639663034d70186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6833663831363961656164316536306634d8015e3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6864323261663136323532663732653865d901587375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a74616b655f6f725f70616e69633a3a6865373635393838373032386265316365da01597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a6834623732396637663566373061363932db0181013c7375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a43616c6c3c543e206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6830653834363332383930313361343764dc014a3c7375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a4d6f64756c653c543e3e3a3a7665746f5f6f663a3a6862306633653061333063356237626537dd01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6834336534383363363337326338613963de01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6866323533306336323935613261646262df01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6863373164346434623063343438383037e0014c3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6833623430356561333864626335613735e10134636f72653a3a736c6963653a3a736f72743a3a627265616b5f7061747465726e733a3a6836346333343639613537386236366265e2012e636f72653a3a736c6963653a3a736f72743a3a68656170736f72743a3a6830386534373738303065643562646365e3013c636f72653a3a736c6963653a3a736f72743a3a7061727469616c5f696e73657274696f6e5f736f72743a3a6838643731323265613337623036313336", - "0x0346fb0f1ce64e1a02c4959d38ebad38": "0x00000000" -}}, -"bootNodes": [ - "/ip4/104.211.54.233/tcp/30333/p2p/QmRMGcQh69t8a8YwzHkofVo9SFr7ffggUwhAYjVSTChmrd", - "/ip4/104.211.48.51/tcp/30333/p2p/QmWCnXrhM1in1qPqVT3rDXQEJHedAzbPDMimdjqy2P9fGn", - "/ip4/104.211.48.247/tcp/30333/p2p/QmY33GW69TnTsdQWjAkxJR1GrWTdeV1PmzzcSmUay4HvAB", - "/ip4/40.114.120.164/tcp/30333/p2p/QmWzYU5X1NpFrprD1YZF5Lcj9aE5WF4QEg5FpvQx5XGWG7", - "/ip4/40.117.153.33/tcp/30333/p2p/QmSz8qCADMmi92QB8dTqMPu56JYQQKZBAHz7y8KXjvqcvW" -] -} + "name": "Krumme Lanke", + "id": "krummelanke", + "genesis": {"raw": { + "0x9768f3cbdd14c1a63474dfbdbe052f42": "0x80f4030000000000", + "0x3b700687fecdff5ec1c4a5b714521eb6": "0x0000000000000000", + "0xa059ae3b3ef725721e97452642803b61": "0x0c00000000000000", + "0x81c1e7165a6371a30eda241a30ea26dd": "0x6400000000000000", + "0x45e71d57a2e3a4eace16dbc9286652e3": "0x00000000", + "0x1d72be21946c0b245c026b7be8256cc5": "0x00000000", + "0xd68ee884e4baac617d9823d543ab9295": "0x0000000000000010", + "0x1d007e138cb61e2524a67b15ec01d8cb": "0x0000000000000010", + "0xbfde7c86a8efd60ee5db2de6446703d5": "0xc04e000000000000", + "0x3a617574683a6c656e": "0x04000000", + "0xb54b186fe8782c2a03f2fd15f95c26bf": "0x00000000", + "0x9dd24013e492bdbb3544fba06734baf7": "0xd002000000000000", + "0xd52c584b1e542130e5b277f1af7b7714": "0x00000000", + "0x3a617574683a03000000": "0x8101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0x916dbd78366f27a9597bd4c831e7914d": "0x00e9070000000000", + "0xf37d2c26c6953b18878dbc1dc65edbc0": "0x1800000000000000", + "0x8d62e0fbc08e8694f8991f88d763c5fb": "0x5a00000000000000", + "0xa659ecb253960cfd890e08809104b815": "0x809d000000000000", + "0x3a617574683a00000000": "0x82c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf5", + "0x3a617574683a02000000": "0x063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca5", + "0xe885ffcc2245c8b7d128685cac6b1a0b": "0x0100000000000000", + "0x94b01408fc662bcf2e97df23ce6d67e2": "0x0100000000000000", + "0x6cac40e934558080fbf29c55c113b461": "0x0000000000000000", + "0x8379e35e0cd953085e0404b9223c0cb0": "0xc04e000000000000", + "0x5a3dcf1edb28ea65a038d1eef6767380": "0x003b010000000000", + "0x7a5bafa684003bc748abe89bfbd20f76": "0xe803000000000000", + "0x3d5680071e92ff27a2914bba661e5d83": "0x400b000000000000", + "0x274351e20682cb2ed212b6eab04ef89f": "0x00000000", + "0x3a617574683a01000000": "0x4de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7", + "0x482b5d7b62ccccac45d55bd43c767266": "0x6400000000000000", + "0x35b8ced31f34a951bc3b56db2f425c51": "0x00000000", + "0x98b9e95963cac608a3d0d537fbeaf5c2": "0x0400000082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca58101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0xce83497694648564e47482d0dc444564": "0x18000000", + "0xa0c2154e69bce912f28e890561fcb95c": "0x0400000082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca58101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0x9b7ecc8eb0fade7c91d94b8715fc9ee1": "0xe803000000000000", + "0x3a636f6465": "0x0061736d010000000197011760027f7f0060057f7f7f7f7f017f60017f017f60037f7f7f017f60017f0060000060037f7f7f0060047f7f7f7f006000017e60027f7f017f60027f7e0060037e7f7f0060017f017e600a7f7f7f7f7f7f7f7f7f7f0060017e0060067f7f7f7f7f7f0060047f7f7f7f017f60047f7f7f7f017e60067f7f7f7f7f7f017f60057f7f7f7f7f0060027f7f017e60027f7e017f60037f7f7e0002f1031603656e76146578745f6765745f73746f726167655f696e746f000103656e760a6578745f6d616c6c6f63000203656e76086578745f66726565000403656e760c6578745f74776f785f313238000603656e760f6578745f7365745f73746f72616765000703656e76116578745f636c6561725f73746f72616765000003656e760a6578745f6d656d636d70000303656e76186578745f656e756d6572617465645f747269655f726f6f74000703656e760e6578745f7072696e745f75746638000003656e760d6578745f7072696e745f6e756d000e03656e760a6578745f6d656d637079000303656e760b6578745f6d656d6d6f7665000303656e760a6578745f6d656d736574000303656e76166578745f73616e64626f785f6d656d6f72795f6e6577000903656e76176578745f73616e64626f785f696e7374616e7469617465001203656e76126578745f73616e64626f785f696e766f6b65001003656e76166578745f73616e64626f785f6d656d6f72795f676574001003656e76166578745f73616e64626f785f6d656d6f72795f736574001003656e760e6578745f626c616b65325f323536000603656e760d6578745f7072696e745f686578000003656e76106578745f73746f726167655f726f6f74000403656e76126578745f656432353531395f766572696679001003d001ce010003040505050500030000020404050400060000060505000804040900000505040004030004060a040b0005000c0c00040405060404060d0504050002040400050505050505050505050505050505050505040504050405050405040505040504050405040504050405040506060000060007070f070f0710070707071107130906000409060000040500140014061404140a06041414140002060a15000000000400000004040000040c000405070a1400000000000413060706160704140616060000060000000000000000090405017001161605030100110609017f0141d0c3c0000b07a8010b066d656d6f7279020011727573745f626567696e5f756e77696e64004d066d616c6c6f630052046672656500530b617574686f72697469657300a10110696e697469616c6973655f626c6f636b00a3010f6170706c795f65787472696e73696300a5010d657865637574655f626c6f636b00a7010e66696e616c6973655f626c6f636b00ab010f76616c696461746f725f636f756e7400ac010a76616c696461746f727300ad010930010041010b158f019001910192019301cc01cd01ce01c601cf01d001d101c701d30195019b01d4019401d501d6019c010abbe40cce01ea0403067f017e057f230041106b220224002002410036020020012001280208220341002001280200220420012802042205200241042003100022032003417f461b2203410420034104491b6a22063602080240024002400240200341034d0d0020022802002207ad420c7e2208422088a70d022008a72203417f4c0d01024002402003450d002003100122090d010c050b410421090b20022007360204200220093602002002410036020802402007450d00200141086a210a4100210b4100210c03402002410036020c200a4100200420052002410c6a41042006100022012001417f461b2201410420014104491b20066a2206360200024002400240200141034d0d00200228020c2201417f4c0d01024002402001450d00200110012203450d0a20034100200110171a0c010b410121030b200a20014100200420052003200120061000220d200d417f461b220d200d20014b1b20066a220636020002402001200d4b0d002003450d01200c41016a210c2001ad22084220862008842108200b2002280204470d0320021018200241086a280200210b200228020021090c030b200310020b200228020021060240200b450d00200b410c6c21032006210103400240200141046a280200450d00200128020010020b2001410c6a2101200341746a22030d000b0b2002280204450d04200610020c040b1019000b2009200b410c6c6a2201200837020420012003360200200241086a200b41016a220b360200200c2007490d000b200228020021090b2009450d002000200229020437020420002009360200200241106a24000f0b20004100360200200241106a24000f0b101a000b101b000b101c000b0a00200020012002100c0b810101057f410421010240024002400240200041046a2802002202450d00200241186c2201417f4c0d0320002802002103200110012204450d022004200320012002410c6c2205200520014b1b101e1a20031002200241017421010c010b413010012204450d010b20002004360200200041046a20013602000f0b101c000b1073000b05001041000b05001041000b05001041000b0500104e000bc11105097f037e017f017e027f230041a0026b220224002001280200210320024180026a20012802042204412020044120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20032005101e1a2001200420056b22063602042001200320056a22053602000240024002400240024002400240024002402004411f4d0d00200241e0016a41186a220420024180026a41186a2203290300370300200241e0016a41106a220720024180026a41106a2208290300370300200241e0016a41086a220920024180026a41086a220a29030037030020022002290380023703e00120032004290300220b37030020082007290300220c370300200a2009290300220d370300200241c0006a41086a2204200d370300200241c0006a41106a2203200c370300200241c0006a41186a2207200b370300200220022903e001220b3703402002200b37038002200241206a41186a2007290300370300200241206a41106a2003290300370300200241206a41086a200429030037030020022002290340370320200242003703800220024180026a20052006410820064108491b2204101e1a200141046a2207200620046b22033602002001200520046a2204360200200641074d0d01200229038002210c20024180026a2003412020034120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20042005101e1a2007200320056b22063602002001200420056a22043602002003411f4d0d02200241e0016a41186a220320024180026a41186a2207290300370300200241e0016a41106a220820024180026a41106a2209290300370300200241e0016a41086a220a20024180026a41086a220e29030037030020022002290380023703e00120072003290300220b37030020092008290300220d370300200e200a290300220f37030020024180016a41086a2205200f37030020024180016a41106a2210200d37030020024180016a41186a2211200b370300200220022903e001220b370380012002200b37038002200241e0006a41186a2011290300370300200241e0006a41106a2010290300370300200241e0006a41086a2005290300370300200220022903800137036020024180026a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a20024180026a20042005101e1a200141046a2211200620056b22103602002001200420056a22053602002006411f4d0d032003200729030037030020082009290300370300200a200e29030037030020022002290380023703e00120072003290300220b37030020092008290300220d370300200e200a290300220f370300200241c0016a41086a2204200f370300200241c0016a41106a2203200d370300200241c0016a41186a2206200b370300200220022903e001220b3703c0012002200b37038002200241a0016a41186a2006290300370300200241a0016a41106a2003290300370300200241a0016a41086a2004290300370300200220022903c0013703a001200241003602800220024180026a20052010410420104104491b2204101e1a2011201020046b3602002001200520046a360200201041034d0d062002280280022208ad420c7e220b422088a70d08200ba72205417f4c0d072005450d042005100122070d05101c000b20024180026a41186a200241e0016a41186a29000037030020024180026a41106a200241e0016a41106a29000037030020024180026a41086a200241e0016a41086a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b20004100360208200241a0026a24000f0b20024180026a41186a200241e0016a41186a29000037030020024180026a41106a200241e0016a41106a29000037030020024180026a41086a200241e0016a41086a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b2007200329000037030020092008290000370300200e200a290000370300200220022900e0013703800220004100360208200241a0026a24000f0b410421070b200220083602e401200220073602e00141002105200241003602e80102402008450d00200241e8016a210941002104034020024180026a2001101f024002402002280280022203450d00200441016a2104200229028402210b200520022802e401470d01200241e0016a10182009280200210520022802e00121070c010b20022802e001210402402005450d002005410c6c21052004210103400240200141046a280200450d00200128020010020b2001410c6a2101200541746a22050d000b0b20022802e401450d03200410020c030b20072005410c6c6a2206200b370204200620033602002009200541016a220536020020042008490d000b20022802e00121070b2007450d0020022902e401210b20024180026a41186a2201200241206a41186a29030037030020024180026a41106a2205200241206a41106a29030037030020024180026a41086a2204200241206a41086a290300370300200241e0016a41086a2203200241e0006a41086a290300370300200241e0016a41106a2206200241e0006a41106a290300370300200241e0016a41186a2208200241e0006a41186a290300370300200241086a2209200241a0016a41086a290300370300200241106a220a200241a0016a41106a290300370300200241186a220e200241a0016a41186a2903003703002002200229032037038002200220022903603703e001200220022903a001370300200020073602082000200c3703002000200b37020c200041146a2002290380023702002000411c6a2004290300370200200041246a20052903003702002000412c6a2001290300370200200041346a20022903e0013702002000413c6a2003290300370200200041c4006a2006290300370200200041cc006a2008290300370200200041ec006a200e290300370200200041e4006a200a290300370200200041dc006a2009290300370200200041d4006a2002290300370200200241a0026a24000f0b20004100360208200241a0026a24000f0b101a000b101b000b0a00200020012002100a0b880201067f230041106b220224002002410036020c2002410c6a2001280200220320012802042204410420044104491b2205101e1a2001200420056b22063602042001200320056a220536020002400240024002400240200441034d0d00200228020c2204417f4c0d032004450d01200410012207450d0420074100200410171a0c020b20004100360200200241106a24000f0b410121070b200720052006200420062004491b2203101e2107200141046a200620036b3602002001200520036a3602000240200620044f0d002000410036020020071002200241106a24000f0b2000200436020420002007360200200041086a2004360200200241106a24000f0b1019000b101c000ba6c80107097f047e047f027e257f057e077f230041f0126b2202240020012001280200200128020422034104200341044922041b22056a22063602002001200320056b2203360204024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020040d00200241d8096a2003412020034120491b22046a41004100412020046b2004411f4b1b10171a200241d8096a20062004101e1a200141046a200320046b22053602002001200620046a22043602002003411f4d0d01200241086a41186a2203200241d8096a41186a2206290300370300200241086a41106a2207200241d8096a41106a2208290300370300200241086a41086a2209200241d8096a41086a220a290300370300200220022903d80937030820062003290300220b37030020082007290300220c370300200a2009290300220d370300200241e0076a41086a2203200d370300200241e0076a41106a2206200c370300200241e0076a41186a2207200b37030020022002290308220b3703e0072002200b3703d809200241c0076a41186a2007290300370300200241c0076a41106a2006290300370300200241c0076a41086a2003290300370300200220022903e0073703c00720024200370308200241086a200420054108200541084922061b2203101e1a200141046a2207200520036b22053602002001200420036a220336020020060d022002290308210e200241003a0008200241086a200320054100472204101e1a2007200520046b220f3602002001200320046a22043602002005450d184107210320022d0008221041074b0d37024020100e08000507083b090406000b200241003a0008200241086a2004200f4100472205101e1a200141046a2208200f20056b22063602002001200420056a2207360200410321094200210d20022d00084108744100200f1b2005724181fe03714101470d35200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20072004101e1a2008200620046b22053602002001200720046a22043602002006411f4d0d0c200241086a41186a2206200241f8096a41186a2207290300370300200241086a41106a2208200241f8096a41106a220a290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f80937030820072006290300220b370300200a2008290300220c370300201220112903002213370300200241d8116a41086a22062013370300200241d8116a41106a2207200c370300200241d8116a41186a2208200b37030020022002290308220b3703d8112002200b3703f80920024198106a41186a200829030037030020024198106a41106a200729030037030020024198106a41086a2006290300370300200220022903d8113703981020024200370308200241086a200420054108200541084922071b2206101e1a200141046a2208200520066b22053602002001200420066a220636020020070d332002290308210b200241f8096a2005412020054120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a2008200520046b22073602002001200620046a22043602002005411f4d0d20200241086a41186a2205200241f8096a41186a2206290300370300200241086a41106a2208200241f8096a41106a220a290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f80937030820062005290300220c370300200a20082903002213370300201220112903002214370300200241d8116a41086a22052014370300200241d8116a41106a22062013370300200241d8116a41186a2208200c37030020022002290308220c3703d8112002200c3703f809200241b8106a41186a2008290300370300200241b8106a41106a2006290300370300200241b8106a41086a2005290300370300200220022903d8113703b810200241003a0008200241086a200420074100472205101e1a200141046a200720056b22063602002001200420056a22043602002007450d3341014102410320022d000822054112461b20054111461b22054101460d2b20054103460d3320024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d3320022802082115200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a2008200720046b22063602002001200520046a22083602002007411f4d0d2a200241086a41186a2216200241f8096a41186a2207290300370300200241086a41106a2217200241f8096a41106a2218290300370300200241086a41086a2219200241f8096a41086a221a290300370300200220022903f80937030820182017290300370300201a20192903003703002007201629030037030020024198126a41086a2204200241870a6a221b280000360200200220022903083703f809200220022900ff093703981220072d0000210520022800fb09211c20022d008b0a211d20022d008c0a211e20022f008d0a210a20022d008f0a211120022f00910a210f20022d00930a211220022d00940a211f20022f00950a212020022d00970a211020022f01f809212120022d00fa092122200241d8096a41086a200428020036020020022002290398123703d809200241f8096a200641c000200641c000491b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a20082004101e1a200141046a2223200620046b22243602002001200820046a22253602002006413f4d0d29200241086a41386a2204200241f8096a41386a2206290300370300200241086a41306a2208200241f8096a41306a2226290300370300200241086a41286a2227200241f8096a41286a2228290300370300200241086a41206a2229200241f8096a41206a222a29030037030020162007290300370300201720182903003703002019201a290300370300200220022903f80937030820182017290300370300201a201929030037030020072016290300370300202a202929030037030020282027290300370300202620082903003703002006200429030037030020024198116a41086a2204201b29000037030020024198116a41106a22062002418f0a6a29000037030020024198116a41186a2207200241f8096a411f6a29000037030020024198116a41206a22082002419f0a6a29000037030020024198116a41286a2216200241a70a6a29000037030020024198116a41306a2217200241af0a6a29000037030020024198116a41386a2218200241f8096a413f6a2d00003a0000200220022903083703f809200220022900ff093703981120023502f809210c20023201fc09211320023100fe092114200241d8106a41086a2004290300370300200241d8106a41106a2006290300370300200241d8106a41186a2007290300370300200241d8106a41206a2008290300370300200241d8106a41286a2016290300370300200241d8106a41306a2017290300370300200241d8106a41386a20182d00003a000020022002290398113703d81020022f01e209211620022d00e109210820022d00e009211920022f01de09211720022d00dd09210720022d00dc09211820022802d809212b200241f8096a2024412020244120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20252004101e1a2023202420046b22063602002001202520046a222c3602002024411f4d0d28200241086a41186a222d200241f8096a41186a222e290300370300200241086a41106a222f200241f8096a41106a2230290300370300200241086a41086a2231200241f8096a41086a2232290300370300200220022903f8093703082030202f29030037030020322031290300370300202e202d290300370300200241b8126a41086a2204200241870a6a280000360200200220022903083703f809200220022900ff093703b812202e2d0000212620022800fb09211a20022d008b0a212420022d008c0a212520022f008d0a211b20022d008f0a212320022f00910a212720022d00930a212820022d00940a212920022f00950a212a20022d00970a213320022f01f809213420022d00fa092135200241d8096a41086a22362004280200360200200220022903b8123703d809200241f8096a200641c000200641c000491b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a202c2004101e1a200141046a200620046b3602002001202c20046a3602002006413f4d0d2720212022411074722137200c201320144210868442208684210c20342035411074722106200241086a41386a2204200241f8096a41386a2221290300370300200241086a41306a2222200241f8096a41306a222c290300370300200241086a41286a2234200241f8096a41286a2235290300370300200241086a41206a2238200241f8096a41206a2239290300370300202d202e290300370300202f203029030037030020312032290300370300200220022903f809370308202120042903002213370300202c2022290300221437030020352034290300223a37030020392038290300223b370300202e202d290300223c3703002030202f290300223d37030020322031290300223e370300200241d8116a41086a223f203e370300200241d8116a41106a2240203d370300200241d8116a41186a2241203c370300200241d8116a41206a2242203b370300200241d8116a41286a2243203a370300200241d8116a41306a22442014370300200241d8116a41386a224520133703002002200229030822133703d811200220133703f809200241e0126a41086a20362802003602002031203f290300370300202f2040290300370300202d204129030037030020382042290300370300203420432903003703002022204429030037030020042045290300370300200220022903d8093703e012200220022903d8113703082021200241d8106a41386a2d00003a0000202c200241d8106a41306a2903003703002035200241d8106a41286a2903003703002039200241d8106a41206a290300370300202e200241d8106a41186a2903003703002030200241d8106a41106a2903003703002032200241d8106a41086a290300370300200220022903d8103703f809410121040c2c0b200041073a0008200241f0126a24000f0b200241d8096a41186a200241086a41186a290000370300200241d8096a41106a200241086a41106a290000370300200241d8096a41086a200241086a41086a290000370300200220022900083703d8090b410721040c380b200241003a0008200241086a2004200f4100472206101e1a200141046a200f20066b22053602002001200420066a2206360200200f450d3320022d0008220441044b0d33024020040e050019161714000b20024100360208200241086a20062005410420054104491b2207101e1a200141046a200520076b22043602002001200620076a2206360200200541034d0d332002280208220a417f4c0d22200a450d20200a100122110d21101c000b200241003a0008200241086a2004200f4100472205101e1a200141046a2208200f20056b22063602002001200420056a220736020020022d00084108744100200f1b2005724181fe03714101470d05200241f8096a20064120200641204922051b22046a41004100412020046b2004411f4b1b10171a200241f8096a20072004101e1a2008200620046b3602002001200720046a36020020050d04200241086a41186a2205200241f8096a41186a2204290300370300200241086a41106a2206200241f8096a41106a2207290300370300200241086a41086a2208200241f8096a41086a2209290300370300200220022903f809370308200720062903003703002009200829030037030020042005290300370300200241d8116a41086a2209200241870a6a280000360200200220022903083703f809200220022900ff093703d81120042d0000211120022800fb09210520022d008b0a211220022d008c0a211d20022f008d0a211620022d008f0a211720022f00910a210620022d00930a210720022d00940a211820022f00950a210a20022d00970a210820022f01f809210420022d00fa092119200241d8096a41086a22152009280200360200200220022903d8113703d809200241b00e6a41086a2015280200360200200220022903d8093703b00e20042019411074722104410121090c060b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2204360200200f450d3120022d00082205450d0a20054101460d0720054102470d31200241f8096a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a200241f8096a20042005101e1a200141046a200620056b3602002001200420056a3602002006411f4d0d18200241086a41186a2204200241f8096a41186a2203290300370300200241086a41106a2205200241f8096a41106a2206290300370300200241086a41086a2207200241f8096a41086a2208290300370300200220022903f809370308200620052903003703002008200729030037030020032004290300370300200241d8116a41086a2205200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210720022800fb09210420022d008b0a212b20022d008c0a212020022f008d0a211f20022d008f0a211820022f00910a211720022d00930a211920022d00940a210820022f00950a211620022d00970a211d20022f01f809210320022d00fa092106200241d8096a41086a2005280200360200200220022903d8113703d8092003200641107472210520022902dc09210d20022802d809210f4103211c0c0b0b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2205360200200f450d3020022d00082204450d0b20044101460d0720044102470d33410321060c080b200241003a0008200241086a2004200f4100472205101e1a200141046a2207200f20056b22063602002001200420056a220436020020022d00084108744100200f1b2005724181fe03714101470d2f20024200370308200241086a20042006410820064108491b2203101e1a2007200620036b3602002001200420036a36020041072103200641074d0d2f2002290308210d20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008410321034201210b0c0e0b200241003a0008200241086a2004200f4100472205101e1a200141046a200f20056b22063602002001200420056a2204360200200f450d2e20022d00082205450d0b20054101460d0a20054102470d2e20024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d2e20022802082104200241003a0008200241086a200520074100472206101e1a2008200720066b3602002001200520066a3602002007450d2e2002310008420183210b410321030c0c0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090b410221090b200241870a6a200241b00e6a41086a280200360000200220053600fb09200220123a008b0a2002201d3a008c0a200220163b008d0a200220173a008f0a200220113a00900a200220063b00910a200220073a00930a200220183a00940a2002200a3b00950a200220083a00970a200220022903b00e3700ff09200220043b01f809200220044110763a00fa0920094102460d2b200220022f01f8093b01d609200241940a6a2f0100211720022901fe09210b20022901860a210d200228018e0a212b20024198096a41386a200241d8116a41386a2d00003a000020024198096a41306a200241d8116a41306a29010037030020024198096a41286a200241d8116a41286a29010037030020024198096a41206a200241d8116a41206a29010037030020024198096a41186a200241d8116a41186a29010037030020024198096a41106a200241d8116a41106a29010037030020024198096a41086a200241d8116a41086a29010037030020024188096a41086a200241800b6a41086a280100360200200220022901d81137039809200220022901800b37038809200241c8086a41386a200241086a41386a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41086a200241086a41086a290000370300200241c4086a41026a200241f8096a41026a2d00003a0000200220022900083703c808200220022f00f8093b01c408200241a0086a41186a200241b00e6a41186a290100370300200241a0086a41106a200241b00e6a41106a290100370300200241a0086a41086a200241b00e6a41086a29010037030020024180086a41186a200241d80c6a41186a29010037030020024180086a41106a200241d80c6a41106a29010037030020024180086a41086a200241d80c6a41086a290100370300200220022901b00e3703a008200220022901d80c37038008202b411076211f202b41087621202004418080fc0771411076211c20064180fe03714108762118200a4180fe03714108762119410121030c2e0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c260b200241f8096a2006412020064120491b22056a41004100412020056b2005411f4b1b10171a200241f8096a20042005101e1a200141046a220a200620056b22093602002001200420056a22053602002006411f4d0d0f200241086a41186a2206200241f8096a41186a2204290300370300200241086a41106a2207200241f8096a41106a2208290300370300200241086a41086a2211200241f8096a41086a2212290300370300200220022903f809370308200820072903003703002012201129030037030020042006290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120042d0000210720022800fb09210420022d008b0a212b20022d008c0a212020022f008d0a211f20022d008f0a211820022f00910a211720022d00930a211920022d00940a210820022f00950a211620022d00970a211d20022f01f809211120022d00fa092112200241d8096a41086a2006280200360200200220022903d8113703d809200241003a0008200241086a200520094100472206101e1a200a200920066b3602002001200520066a3602002009450d292011201241107472210520022d0008410171211e20022902dc09210d20022802d809210f4102211c0c030b410221060b0c220b4101211c200110212204450d290b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008200fad4220862004ad84210b410621030c270b200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a200141046a2212200620046b22093602002001200520046a22113602002006411f4d0d0c200241086a41186a2204200241f8096a41186a2203290300370300200241086a41106a2205200241f8096a41106a2206290300370300200241086a41086a2207200241f8096a41086a2208290300370300200220022903f809370308200620052903003703002008200729030037030020032004290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a210420022f01f809211520022d00fa09211a200241d8096a41086a2006280200360200200220022903d8113703d80920024200370308200241086a20112009410820094108491b2203101e1a2012200920036b3602002001201120036a36020041072103200941074d0d242015201a4110747221092002290308210c20022802e009212b20022903d809210d410121060c1f0b20024100360208200241086a20042006410420064104491b2205101e1a200141046a200620056b3602002001200420056a360200200641034d0d2320022802082104410221034200210b0c010b200110212204450d22200220043602d8104200210b20024200370308200241086a20012802002206200141046a22072802002205410820054108491b2203101e1a2007200520036b3602002001200620036a36020041072103200541074d0d0d2002290308210d410121030b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c37038008200b2004ad42188684420886200341ff0171ad84210b410421030b4100211f410021200c210b200241f8096a2005412020054120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a200141046a2212200520046b22093602002001200620046a22043602002005411f4d0d09200241086a41186a2205200241f8096a41186a2203290300370300200241086a41106a2206200241f8096a41106a2207290300370300200241086a41086a2208200241f8096a41086a220a290300370300200220022903f80937030820072006290300370300200a200829030037030020032005290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120032d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a211120022f01f809211520022d00fa09211a200241d8096a41086a2006280200360200200220022903d8113703d80920024200370308200241086a20042009410820094108491b2203101e1a2012200920036b22063602002001200420036a2203360200200941074d0d002002290308210c20024100360208200241086a20032006410420064104491b2204101e1a200141046a200620046b3602002001200320046a360200200641034d0d002015201a4110747221032002280208211220022802e009212b20022903d809210d410521040c190b410721030c1e0b20024100360208200241086a20062005410420054104491b2204101e1a200141046a200520046b3602002001200620046a36020041032104200541034d0d1d0c010b2002410036020841042104200241086a20062005410420054104491b2207101e1a200141046a200520076b3602002001200620076a360200200541034d0d1c0b200228020821050c150b20024100360208200241086a20062005410420054104491b2204101e1a200141046a2208200520046b22073602002001200620046a2206360200200541034d0d1a20022802082112200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20062004101e1a2008200720046b22093602002001200620046a22043602002007411f4d0d06200241086a41186a2206200241f8096a41186a2205290300370300200241086a41106a2207200241f8096a41106a2208290300370300200241086a41086a220a200241f8096a41086a2211290300370300200220022903f809370308200820072903003703002011200a29030037030020052006290300370300200241d8116a41086a2206200241870a6a280000360200200220022903083703f809200220022900ff093703d81120052d0000210820022800fb09210520022d008b0a211820022d008c0a210720022f008d0a211720022d008f0a211920022f00910a211620022d00930a211d20022d00940a211e20022f00950a210a20022d00970a211120022f01f809212420022d00fa092125200241d8096a41086a2006280200360200200220022903d8113703d80920024100360208200241086a20042009410420094104491b2206101e1a200141046a221a200920066b22153602002001200420066a2204360200200941034d0d1a2002350208210b20024100360208200241086a20042015410420154104491b2206101e1a201a201520066b3602002001200420066a360200201541034d0d1a202420254110747221032002350208422086200b84210c20022802e009212b20022903d809210d410221040c140b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c190b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c180b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c170b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c120b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c150b200241d8106a10220c140b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c130b410121110b2002200a36020c20022011360208200241003602100240200a450d00200141046a211d200241106a211241002105410021080340200241003a00d811200241d8116a200620044100472207101e1a201d200420076b22093602002001200620076a2206360200024002402004450d00200841016a210820022d00d81141017121042005200228020c470d01200241086a102320122802002105200228020821110c010b200228020c450d14201110020c140b201120056a20043a00002012200541016a2205360200200921042008200a490d000b200228020821110b2011450d112011410020111b2105200229020c210d20024100360208200241086a20012802002207200141046a22082802002204410420044104491b2206101e1a2008200420066b3602002001200720066a3602000240200441034d0d002002280208212b410121040c0c0b200da7450d11200510020c110b1024000b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300202e202d2900003703002030202f29000037030020322031290000370300200220022900083703f8090c0b0b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c0a0b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a2900003703002007201629000037030020182017290000370300201a2019290000370300200220022900083703f8090c090b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c080b20024100360208200241086a20042006410420064104491b2205101e1a200141046a2208200620056b22073602002001200420056a2205360200200641034d0d0720022802082115200241f8096a2007412020074120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20052004101e1a2008200720046b22063602002001200520046a22253602002007411f4d0d01200241086a41186a221b200241f8096a41186a221a290300370300200241086a41106a2223200241f8096a41106a2224290300370300200241086a41086a2226200241f8096a41086a2227290300370300200220022903f80937030820242023290300370300201a201b29030037030020272026290300370300200220022903083703f80920242d00002108201a2d0000210520022800fb09211c20022800ff09212b20022d00830a211820022d00840a210720022f00850a211720022d00870a211920022f00890a211620022d008b0a211d20022d008c0a211e20022f008d0a210a20022d008f0a211120022f00910a210f20022d00930a211220022d00940a211f20022f00950a212020022d00970a211020022f01f809212a20022d00fa092133200241f8096a200641c000200641c0004922281b22046a4100410041c00020046b2004413f4b1b10171a200241f8096a20252004101e1a200141046a2229200620046b22063602002001202520046a222536020020280d02200241086a41386a2204200241f8096a41386a2228290300370300200241086a41306a222e200241f8096a41306a2221290300370300200241086a41286a2222200241f8096a41286a222c290300370300200241086a41206a222d200241f8096a41206a222f290300370300201b201a2903003703002023202429030037030020262027290300370300200220022903f8093703082024202329030037030020272026290300370300201a201b290300370300202f202d290300370300202c20222903003703002021202e2903003703002028200429030037030020024198116a41086a2204200241870a6a29000037030020024198116a41106a221a2002418f0a6a29000037030020024198116a41186a2224200241f8096a411f6a29000037030020024198116a41206a221b2002419f0a6a29000037030020024198116a41286a2223200241a70a6a29000037030020024198116a41306a2226200241af0a6a29000037030020024198116a41386a2227200241f8096a413f6a2d00003a0000200220022903083703f809200220022900ff093703981120023502f809210c20023201fc09211320023100fe092114200241d8106a41386a20272d00003a0000200241d8106a41306a2026290300370300200241d8106a41286a2023290300370300200241d8106a41206a201b290300370300200241d8106a41186a2024290300370300200241d8106a41106a201a290300370300200241d8106a41086a200429030037030020022002290398113703d810200241f8096a2006412020064120491b22046a41004100412020046b2004411f4b1b10171a200241f8096a20252004101e1a2029200620046b221a3602002001202520046a22243602002006411f4d0d03200241086a41186a2225200241f8096a41186a222e290300370300200241086a41106a221b200241f8096a41106a2221290300370300200241086a41086a2223200241f8096a41086a2222290300370300200220022903f809370308202e2025290300223a3703002021201b290300223b37030020222023290300223c370300200241b8126a41086a2204203c370300200241b8126a41106a2206203b370300200241b8126a41186a2226203a37030020022002290308223a3703b8122002203a3703f809200241d8096a41186a2026290300370300200241d8096a41106a2006290300370300200241d8096a41086a2004290300370300200220022903b8123703d80941002104200241f8096a201a41c000201a41c000491b22066a4100410041c00020066b2006413f4b1b10171a200241f8096a20242006101e1a200141046a201a20066b3602002001202420066a360200201a413f4d0d04202a2033411074722137200c201320144210868442208684210c200241086a41386a2206200241f8096a41386a222c290300370300200241086a41306a221a200241f8096a41306a222d290300370300200241086a41286a2224200241f8096a41286a222f290300370300200241086a41206a2226200241f8096a41206a22302903003703002025202e290300370300201b202129030037030020232022290300370300200220022903f809370308202c20062903002213370300202d201a2903002214370300202f2024290300223a37030020302026290300223b370300202e2025290300223c3703002021201b290300223d37030020222023290300223e370300200241d8116a41086a2227203e370300200241d8116a41106a2228203d370300200241d8116a41186a2229203c370300200241d8116a41206a222a203b370300200241d8116a41286a2233203a370300200241d8116a41306a22312014370300200241d8116a41386a223220133703002002200229030822133703d811200220133703f809200241e0126a41086a200241e7096a28000036020020232027290300370300201b2028290300370300202520292903003703002026202a29030037030020242033290300370300201a203129030037030020062032290300370300200220022900df093703e012200220022903d81137030820022800db09211a20022d00eb09212420022d00ec09212520022f00ed09211b20022d00ef09212320022d00f009212620022f00f109212720022d00f309212820022d00f409212920022f00f509212a20022d00f709213320022f01d809210620022d00da092131202c200241d8106a41386a2d00003a0000202d200241d8106a41306a290300370300202f200241d8106a41286a2903003703002030200241d8106a41206a290300370300202e200241d8106a41186a2903003703002021200241d8106a41106a2903003703002022200241d8106a41086a290300370300200220022903d8103703f809200620314110747221060b20024198116a41386a200241f8096a41386a2d00003a000020024198116a41306a200241f8096a41306a29030037030020024198116a41286a200241f8096a41286a29030037030020024198116a41206a200241f8096a41206a29030037030020024198116a41186a200241f8096a41186a29030037030020024198116a41106a200241f8096a41106a29030037030020024198116a41086a200241f8096a41086a29030037030020024188106a41086a200241e0126a41086a280200360200200220022903f80937039811200220022903e01237038810200241d8116a41386a200241086a41386a290300370300200241d8116a41306a200241086a41306a290300370300200241d8116a41286a200241086a41286a290300370300200241d8116a41206a200241086a41206a290300370300200241d8116a41186a200241086a41186a290300370300200241d8116a41106a200241086a41106a290300370300200241d8116a41086a200241086a41086a29030037030020024184106a41026a200241d8106a41026a2d00003a0000200220022903083703d811200220022f00d8103b018410200241e00f6a41186a20024198106a41186a290300370300200241e00f6a41106a20024198106a41106a290300370300200241e00f6a41086a20024198106a41086a29030037030020022002290398103703e00f200241c00f6a41186a200241b8106a41186a290300370300200241c00f6a41106a200241b8106a41106a290300370300200241c00f6a41086a200241b8106a41086a290300370300200220022903b8103703c00f0c070b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c050b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300201a201b2900003703002024202329000037030020272026290000370300200220022900083703f8090c040b200241f8096a41186a200241086a41186a290000370300200241f8096a41106a200241086a41106a290000370300200241f8096a41086a200241086a41086a290000370300200220022900083703f8090c030b200241f8096a41386a200241086a41386a290000370300200241f8096a41306a200241086a41306a290000370300200241f8096a41286a200241086a41286a290000370300200241f8096a41206a200241086a41206a290000370300202e20252900003703002021201b29000037030020222023290000370300200220022900083703f8090c020b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c808200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c370380082005ad421886200341ffffff0771ad84420886200441ff0171ad84210b202b411076211f202b4108762120410521030c060b20024198096a41086a200241d8116a41086a29030037030020024198096a41106a200241d8116a41106a29030037030020024198096a41186a200241d8116a41186a29030037030020024198096a41206a200241d8116a41206a29030037030020024198096a41286a200241d8116a41286a29030037030020024198096a41306a200241d8116a41306a29030037030020024198096a41386a200241d8116a41386a2d00003a0000200220022f0198113b01d609200220022903d8113703980920024188096a41086a200241800b6a41086a280200360200200241c8086a41086a200241086a41086a290000370300200241c8086a41106a200241086a41106a290000370300200241c8086a41186a200241086a41186a290000370300200241c8086a41206a200241086a41206a290000370300200241c8086a41286a200241086a41286a290000370300200241c8086a41306a200241086a41306a290000370300200241c8086a41386a200241086a41386a290000370300200220022903800b37038809200220022900083703c80841022103200241c4086a41026a200241f8096a41026a2d00003a0000200241a0086a41186a200241b00e6a41186a290300370300200241a0086a41106a200241b00e6a41106a290300370300200241a0086a41086a200241b00e6a41086a29030037030020024180086a41186a200241d80c6a41186a29030037030020024180086a41106a200241d80c6a41106a29030037030020024180086a41086a200241d80c6a41086a290300370300200220022f00f8093b01c408200220022903b00e3703a008200220022903d80c370380082005ad421886200941ffffff0771ad84420886200641ff0171ad84210b202b411076211f202b4108762120200441ff017121110c050b410221040b200241f8096a41386a222e20024198116a41386a2d00003a0000200241f8096a41306a222120024198116a41306a290300370300200241f8096a41286a222220024198116a41286a290300370300200241f8096a41206a222c20024198116a41206a290300370300200241f8096a41186a222d20024198116a41186a290300370300200241f8096a41106a222f20024198116a41106a290300370300200241f8096a41086a223020024198116a41086a290300370300200241e0126a41086a223120024188106a41086a28020036020020022002290398113703f80920022002290388103703e012200241086a41386a2232200241d8116a41386a290300370300200241086a41306a2234200241d8116a41306a290300370300200241086a41286a2235200241d8116a41286a290300370300200241086a41206a2236200241d8116a41206a290300370300200241086a41186a2238200241d8116a41186a290300370300200241086a41106a2239200241d8116a41106a290300370300200241086a41086a223f200241d8116a41086a290300370300200241dc126a41026a20024184106a41026a2d00003a0000200220022903d811370308200220022f0184103b01dc12200241b8126a41186a2240200241e00f6a41186a290300370300200241b8126a41106a2241200241e00f6a41106a290300370300200241b8126a41086a2242200241e00f6a41086a29030037030020024198126a41186a2243200241c00f6a41186a29030037030020024198126a41106a2244200241c00f6a41106a29030037030020024198126a41086a2245200241c00f6a41086a290300370300200220022903e00f3703b812200220022903c00f370398120240024020044102470d004102210441024102470d010c020b200241800f6a41386a202e2d00003a0000200241800f6a41306a2021290300370300200241800f6a41286a2022290300370300200241800f6a41206a202c290300370300200241800f6a41186a202d290300370300200241800f6a41106a202f290300370300200241800f6a41086a2030290300370300200241f00e6a41086a2031280200360200200220022903f8093703800f200220022903e0123703f00e200241b00e6a41386a2032290300370300200241b00e6a41306a2034290300370300200241b00e6a41286a2035290300370300200241b00e6a41206a2036290300370300200241b00e6a41186a2038290300370300200241b00e6a41106a2039290300370300200241b00e6a41086a203f290300370300200241ac0e6a41026a200241dc126a41026a2d00003a0000200220022903083703b00e200220022f01dc123b01ac0e200241880e6a41186a2040290300370300200241880e6a41106a2041290300370300200241880e6a41086a2042290300370300200220022903b8123703880e200241e80d6a41186a2043290300370300200241e80d6a41106a2044290300370300200241e80d6a41086a204529030037030020022002290398123703e80d200c420886201041ff0171ad84210c2020411074201f41ff017141087472201241ff0171722112200f411074200541ff017141087472201141ff017172211120044102460d010b20024198116a41386a200241800f6a41386a2d00003a000020024198116a41306a200241800f6a41306a29030037030020024198116a41286a200241800f6a41286a29030037030020024198116a41206a200241800f6a41206a29030037030020024198116a41186a200241800f6a41186a29030037030020024198116a41106a200241800f6a41106a29030037030020024198116a41086a200241800f6a41086a29030037030020024188106a41086a200241f00e6a41086a280200360200200220022903800f37039811200220022903f00e37038810200241d8116a41386a200241b00e6a41386a290300370300200241d8116a41306a200241b00e6a41306a290300370300200241d8116a41286a200241b00e6a41286a290300370300200241d8116a41206a200241b00e6a41206a290300370300200241d8116a41186a200241b00e6a41186a290300370300200241d8116a41106a200241b00e6a41106a290300370300200241d8116a41086a200241b00e6a41086a29030037030020024184106a41026a200241ac0e6a41026a2d00003a0000200220022903b00e3703d811200220022f01ac0e3b018410200241e00f6a41186a200241880e6a41186a290300370300200241e00f6a41106a200241880e6a41106a290300370300200241e00f6a41086a200241880e6a41086a290300370300200220022903880e3703e00f200241c00f6a41186a200241e80d6a41186a290300370300200241c00f6a41106a200241e80d6a41106a290300370300200241c00f6a41086a200241e80d6a41086a290300370300200220022903e80d3703c00f201cad421886203741ffffff0771ad84420886210d0c010b410321040b200241f8096a41386a220520024198116a41386a2d00003a0000200241f8096a41306a221c20024198116a41306a290300370300200241f8096a41286a220f20024198116a41286a290300370300200241f8096a41206a221f20024198116a41206a290300370300200241f8096a41186a222020024198116a41186a290300370300200241f8096a41106a221020024198116a41106a290300370300200241f8096a41086a20024198116a41086a290300370300200241e0126a41086a20024188106a41086a28020036020020022002290398113703f80920022002290388103703e012200241086a41386a222e200241d8116a41386a290300370300200241086a41306a2221200241d8116a41306a290300370300200241086a41286a2222200241d8116a41286a290300370300200241086a41206a222c200241d8116a41206a290300370300200241086a41186a222d200241d8116a41186a290300370300200241086a41106a222f200241d8116a41106a290300370300200241086a41086a200241d8116a41086a290300370300200241dc126a41026a223020024184106a41026a2d00003a0000200220022903d811370308200220022f0184103b01dc12200241b8126a41186a2231200241e00f6a41186a290300370300200241b8126a41106a2232200241e00f6a41106a290300370300200241b8126a41086a200241e00f6a41086a29030037030020024198126a41186a2234200241c00f6a41186a29030037030020024198126a41106a2235200241c00f6a41106a29030037030020024198126a41086a200241c00f6a41086a290300370300200220022903e00f3703b812200220022903c00f37039812024020044103460d00200241a80d6a41386a20052d00003a0000200241a80d6a41306a201c290300370300200241a80d6a41286a200f290300370300200241a80d6a41206a201f290300370300200241a80d6a41186a2020290300370300200241a80d6a41106a2010290300370300200241a80d6a41086a200241f8096a41086a290300370300200241980d6a41086a200241e0126a41086a280200360200200220022903f8093703a80d200220022903e0123703980d200241d80c6a41386a202e290300370300200241d80c6a41306a2021290300370300200241d80c6a41286a2022290300370300200241d80c6a41206a202c290300370300200241d80c6a41186a202d290300370300200241d80c6a41106a202f290300370300200241d80c6a41086a200241086a41086a290300370300200241d40c6a41026a20302d00003a0000200220022903083703d80c200220022f01dc123b01d40c200241b00c6a41186a2031290300370300200241b00c6a41106a2032290300370300200241b00c6a41086a200241b8126a41086a290300370300200220022903b8123703b00c200241900c6a41186a2034290300370300200241900c6a41106a2035290300370300200241900c6a41086a20024198126a41086a29030037030020022002290398123703900c200421090b20094103460d0020024198096a41086a200241a80d6a41086a29030037030020024198096a41106a200241a80d6a41106a29030037030020024198096a41186a200241a80d6a41186a29030037030020024198096a41206a200241a80d6a41206a29030037030020024198096a41286a200241a80d6a41286a29030037030020024198096a41306a200241a80d6a41306a29030037030020024198096a41386a200241a80d6a41386a2d00003a0000200220022f018e0c3b01d609200220022903a80d3703980920024188096a41086a200241980d6a41086a280200360200200241c8086a41086a200241d80c6a41086a290300370300200241c8086a41106a200241d80c6a41106a290300370300200241c8086a41186a200241d80c6a41186a290300370300200241c8086a41206a200241d80c6a41206a290300370300200241c8086a41286a200241d80c6a41286a290300370300200241c8086a41306a200241d80c6a41306a290300370300200241c8086a41386a200241d80c6a41386a290300370300200220022903980d37038809200220022903d80c3703c808200241c4086a41026a200241d40c6a41026a2d00003a0000200241a0086a41186a200241b00c6a41186a290300370300200241a0086a41106a200241b00c6a41106a290300370300200241a0086a41086a200241b00c6a41086a29030037030020024180086a41186a200241900c6a41186a29030037030020024180086a41106a200241900c6a41106a29030037030020024180086a41086a200241900c6a41086a290300370300200220022f01d40c3b01c408200220022903b00c3703a008200220022903900c37038008202b411076211f202b4108762120200d200941ff0171ad84210d410021030c010b0c020b0b0b200241d00b6a41086a220f20024198096a41086a290300370300200241d00b6a41106a221020024198096a41106a290300370300200241d00b6a41186a222e20024198096a41186a290300370300200241d00b6a41206a222120024198096a41206a290300370300200241d00b6a41286a222220024198096a41286a290300370300200241d00b6a41306a222c20024198096a41306a290300370300200241d00b6a41386a222d20024198096a41386a2d00003a0000200220022f01d6093b018e0c20022002290398093703d00b200241c00b6a41086a222f20024188096a41086a280200360200200241800b6a41086a2230200241c8086a41086a290300370300200241800b6a41106a2231200241c8086a41106a290300370300200241800b6a41186a2232200241c8086a41186a290300370300200241800b6a41206a2234200241c8086a41206a290300370300200241800b6a41286a2235200241c8086a41286a290300370300200241800b6a41306a2236200241c8086a41306a290300370300200241800b6a41386a2238200241c8086a41386a29030037030020022002290388093703c00b200220022903c8083703800b200241fc0a6a41026a2239200241c4086a41026a2d00003a0000200241d80a6a41186a223f200241a0086a41186a290300370300200241d80a6a41106a2240200241a0086a41106a290300370300200241d80a6a41086a2241200241a0086a41086a290300370300200241b80a6a41186a224220024180086a41186a290300370300200241b80a6a41106a224320024180086a41106a290300370300200241b80a6a41086a224420024180086a41086a290300370300200220022f01c4083b01fc0a200220022903a0083703d80a20022002290380083703b80a4107210420034107460d00200241d80c6a41086a200f290300370300200241d80c6a41106a2010290300370300200241d80c6a41186a202e290300370300200241d80c6a41206a2021290300370300200241d80c6a41286a2022290300370300200241d80c6a41306a202c290300370300200241d80c6a41386a202d2d00003a0000200220022f018e0c3b01c00f200220022903d00b3703d80c200241b8126a41086a202f280200360200200241d8116a41086a2030290300370300200241d8116a41106a2031290300370300200241d8116a41186a2032290300370300200241d8116a41206a2034290300370300200241d8116a41286a2035290300370300200241d8116a41306a2036290300370300200241d8116a41386a2038290300370300200220022903c00b3703b812200220022903800b3703d81120024198126a41026a20392d00003a000020024198116a41186a203f29030037030020024198116a41106a204029030037030020024198116a41086a2041290300370300200241800f6a41186a2042290300370300200241800f6a41106a2043290300370300200241800f6a41086a2044290300370300200220022f01fc0a3b019812200220022903d80a37039811200220022903b80a3703800f200241a80d6a41186a200241c0076a41186a290300370300200241a80d6a41106a200241c0076a41106a290300370300200241a80d6a41086a200241c0076a41086a290300370300200220022903c0073703a80d201f411074202041ff017141087472202b41ff017172210f200321040c010b0b200241b00e6a41086a222b200241d80c6a41086a290300370300200241b00e6a41106a221f200241d80c6a41106a290300370300200241b00e6a41186a2220200241d80c6a41186a290300370300200241b00e6a41206a2210200241d80c6a41206a290300370300200241b00e6a41286a222e200241d80c6a41286a290300370300200241b00e6a41306a2221200241d80c6a41306a290300370300200241b00e6a41386a2222200241d80c6a41386a2d00003a0000200220022f01c00f3b01e00f200220022903d80c3703b00e200241d00b6a41086a222c200241b8126a41086a280200360200200241086a41086a222d200241d8116a41086a290300370300200241086a41106a222f200241d8116a41106a290300370300200241086a41186a2230200241d8116a41186a290300370300200241086a41206a2231200241d8116a41206a290300370300200241086a41286a2232200241d8116a41286a290300370300200241086a41306a2234200241d8116a41306a290300370300200241086a41386a2235200241d8116a41386a290300370300200220022903b8123703d00b200220022903d81137030820024198096a41026a223620024198126a41026a2d00003a0000200241800b6a41186a223820024198116a41186a290300370300200241800b6a41106a223920024198116a41106a290300370300200241800b6a41086a223f20024198116a41086a290300370300200241f8096a41186a2240200241800f6a41186a290300370300200241f8096a41106a2241200241800f6a41106a290300370300200241f8096a41086a2242200241800f6a41086a290300370300200220022f0198123b01980920022002290398113703800b200220022903800f3703f809200241c8086a41186a2243200241a80d6a41186a290300370300200241c8086a41106a2244200241a80d6a41106a290300370300200241c8086a41086a2245200241a80d6a41086a290300370300200220022903a80d3703c80841072103024020044107460d0020024180076a41086a202b29030037030020024180076a41106a201f29030037030020024180076a41186a202029030037030020024180076a41206a201029030037030020024180076a41286a202e29030037030020024180076a41306a202129030037030020024180076a41386a20222d00003a0000200220022f01e00f3b01be07200220022903b00e37038007200241f0066a41086a202c280200360200200241b0066a41086a202d290300370300200241b0066a41106a202f290300370300200241b0066a41186a2030290300370300200241b0066a41206a2031290300370300200241b0066a41286a2032290300370300200241b0066a41306a2034290300370300200241b0066a41386a2035290300370300200220022903d00b3703f006200220022903083703b006200241ac066a41026a20362d00003a000020024188066a41186a203829030037030020024188066a41106a203929030037030020024188066a41086a203f290300370300200241e8056a41186a2040290300370300200241e8056a41106a2041290300370300200241e8056a41086a2042290300370300200220022f0198093b01ac06200220022903800b37038806200220022903f8093703e805200241c8056a41186a2043290300370300200241c8056a41106a2044290300370300200241c8056a41086a2045290300370300200220022903c8083703c805200421030b024020034107470d00200041073a0008200241f0126a24000f0b20024197036a20054110763a000020024195036a20053b000020024191036a20093a000020024192036a20022f01be073b010020024194036a201c3a000020024188036a41106a2209200b37030020024188036a41186a200d37030020024188036a41206a200f360200200241ac036a20183a0000200241ad036a20073a0000200241ae036a20173b010020024188036a41286a20193a0000200241b1036a20083a0000200241b2036a20163b0100200241b4036a201d3a0000200241b5036a201e3a0000200241b6036a200a3b0100200220033a0090032002200e37038803200241bc036a201236020020024188036a41306a201136020020024188036a41386a200c37030020024188036a41c0006a200229038007370300200241d0036a20024180076a41086a290300370300200241d8036a20024180076a41106a290300370300200241e0036a20024180076a41186a290300370300200241e8036a20024180076a41206a290300370300200241f0036a20024180076a41286a290300370300200241f8036a20024180076a41306a29030037030020024180046a20024180076a41386a2d00003a000020024183046a20064110763a000020024181046a20063b000020024184046a201a36020020024194046a20243a000020024195046a20253a000020024196046a201b3b010020024198046a20233a000020024199046a20263a00002002419a046a20273b01002002419c046a20283a00002002419d046a20293a00002002419e046a202a3b0100200241a0046a20333a000020024190046a200241f0066a41086a28020036020020024188046a20022903f006370300200241d9046a200241b0066a41386a290300370000200241d1046a200241b0066a41306a290300370000200241c9046a200241b0066a41286a290300370000200241c1046a200241b0066a41206a290300370000200241b9046a200241b0066a41186a290300370000200241b1046a200241b0066a41106a290300370000200241a9046a200241b0066a41086a290300370000200241a1046a20022903b006370000200241e3046a200241ae066a2d00003a0000200241e1046a20022f01ac063b0000200241e4046a201536020020024180056a20024188066a41186a290300370300200241f8046a20024188066a41106a290300370300200241f0046a20024188066a41086a290300370300200241e8046a200229038806370300200241a0056a200241e8056a41186a29030037030020024198056a200241e8056a41106a29030037030020024190056a200241e8056a41086a29030037030020024188056a20022903e805370300200241c0056a200241c8056a41186a290300370300200241b8056a200241c8056a41106a290300370300200241b0056a200241c8056a41086a290300370300200220022903c8053703a80520012802002105200241f8096a200141046a2206280200220441c000200441c000491b22036a4100410041c00020036b2003413f4b1b10171a200241f8096a20052003101e1a2006200420036b3602002001200520036a36020002402004413f4d0d00200241086a41386a2209200241f8096a41386a2201290300370300200241086a41306a220a200241f8096a41306a2203290300370300200241086a41286a2211200241f8096a41286a2204290300370300200241086a41206a2212200241f8096a41206a2205290300370300200241086a41186a221d200241f8096a41186a2206290300370300200241086a41106a2216200241f8096a41106a2207290300370300200241086a41086a2217200241f8096a41086a2208290300370300200220022903f80937030820012009290300220b3703002003200a290300220c37030020042011290300220d37030020052012290300220e3703002006201d290300221337030020072016290300221437030020082017290300223a370300200241d8116a41086a2209203a370300200241d8116a41106a220a2014370300200241d8116a41186a22112013370300200241d8116a41206a2212200e370300200241d8116a41286a221d200d370300200241d8116a41306a2216200c370300200241d8116a41386a2217200b37030020022002290308220b3703d8112002200b3703f809200241b00e6a41386a22182017290300370300200241b00e6a41306a22172016290300370300200241b00e6a41286a2216201d290300370300200241b00e6a41206a221d2012290300370300200241b00e6a41186a22122011290300370300200241b00e6a41106a2211200a290300370300200241b00e6a41086a220a2009290300370300200220022903d8113703b00e20012018290300220b37030020032017290300220c37030020042016290300220d3703002005201d290300220e3703002006201229030022133703002007201129030022143703002008200a290300223a370300200241d80c6a41086a2201203a370300200241d80c6a41106a22032014370300200241d80c6a41186a22042013370300200241d80c6a41206a2205200e370300200241d80c6a41286a2206200d370300200241d80c6a41306a2207200c370300200241d80c6a41386a2208200b370300200220022903b00e220b3703d80c2002200b3703f809200241086a20024188036a41c002101e1a20024180036a2008290300370300200241f8026a2007290300370300200241f0026a2006290300370300200241e8026a2005290300370300200241e0026a2004290300370300200241d8026a2003290300370300200241d0026a2001290300370300200220022903d80c3703c8022000200241086a418003101e1a200241f0126a24000f0b200241f8096a41386a2201200241086a41386a290000370300200241f8096a41306a2203200241086a41306a290000370300200241f8096a41286a2204200241086a41286a290000370300200241f8096a41206a2205200241086a41206a290000370300200241f8096a41186a2206200241086a41186a290000370300200241f8096a41106a2207200241086a41106a290000370300200241f8096a41086a2208200241086a41086a290000370300200220022900083703f8092001200241b00e6a41386a2900003703002003200241b00e6a41306a2900003703002004200241b00e6a41286a2900003703002005200241b00e6a41206a2900003703002006200241b00e6a41186a2900003703002007200241b00e6a41106a2900003703002008200241b00e6a41086a290000370300200220022900b00e3703f809200041073a0008024020024188036a41086a2d00002201411d74411d75417f4a0d000240024020014104460d0020014105470d0120024198036a2d00004101470d02200241a0036a280200450d022002419c036a2802001002200241f0126a24000f0b20024198036a2d00004101470d012002419c036a1025200241f0126a24000f0b20024194036a2d00004101470d0020091025200241f0126a24000f0b200241f0126a24000bd81a05077f017e027f017e017f230041c0016b22012400200141003a00a001200141a0016a20002802002202200028020422034100472204101e1a2000200320046b22053602042000200220046a220236020002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402003450d004106210420012d00a001220341074b0d19024020030e080004021b1b050603000b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1920012d00a0012205450d0820054101470d19200141003602a001200141a0016a20032006410420064104491b2205101e1a200041046a200620056b3602002000200320056a360200200641034d0d1920012802a0012207ad42187e2208422088a70d152008a72203417f4c0d142003450d112003100122090d120c1b0b410621040c180b200141003a00a001200141a0016a200220054100472203101e1a41042109200041046a200520036b22063602002000200220036a22033602002005450d1720012d00a001220541034b0d17024020050e04000a0b0c000b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1720012903a0012108410121090c0b0b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1620012d00a0012205450d0320054101470d16200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1620012903a00121084202210b0c040b200141003a00a001200141a0016a200220054100472203101e1a200041046a200520036b22063602002000200220036a22033602002005450d1520012d00a0012205450d054202210b20054101460d060c160b200141a0016a200010a00120012903a001220ba741ff01714103460d1520014180016a41086a200141a0016a41086a29020037030020014180016a41106a200141a0016a41106a290200370300200120012902a001370380012001200b370348410321040c150b200141003a00a001200141a0016a200220054100472206101e1a200041046a200520066b22033602002000200220066a220236020002402005450d004105210520012d00a001220641034b0d11024020060e04000c0a0b000b200141003602a001200141a0016a20022003410420034104491b2206101e1a200041046a200320066b3602002000200220066a360200200341034d0d1120012802a0012100410121050c130b410521050c100b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d1220012903a00121084201210b0b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120012903a001370380012001200b37024c410521040c120b200141a0016a2000101f20012802a0012209450d1020012902a4012108410121000c0a0b200142003703a001200141a0016a200320064108200641084922021b2205101e1a200041046a200620056b3602002000200320056a36020020020d0f20012903a00121084201210b0b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120012903a001370380012001200b37024c410121040c0f0b200142003703a001200141a0016a20032006410820064108491b2205101e1a200041046a200620056b3602002000200320056a360200200641074d0d0d20012903a0012108410221090c010b200141003602a001200141a0016a20032006410420064104491b2205101e1a200041046a200620056b3602002000200320056a36020041032109200641034d0d0c20012802a00121020b20014180016a41086a200141a0016a41086a29030037030020014180016a41106a200141a0016a41106a290300370300200120023602502001200936024c200120012903a00137038001410221040c0c0b200142003703a001200141a0016a20022003410820034108491b2206101e1a200041046a200320066b3602002000200220066a360200200341074d0d0720012903a0012108410321050c080b200142003703a001200141a0016a20022003410820034108491b2206101e1a200041046a200320066b3602002000200220066a360200200341074d0d0620012903a0012108410421050c080b200141a0016a2003412020034120491b22066a41004100412020066b2006411f4b1b10171a200141a0016a20022006101e1a200041046a200320066b3602002000200220066a36020002402003411f4d0d0020014180016a41186a2200200141a0016a41186a220329030037030020014180016a41106a2205200141a0016a41106a220229030037030020014180016a41086a2206200141a0016a41086a2209290300370300200120012903a0013703800120032000290300370300200220052903003703002009200629030037030020012001290380013703a00141022105200141fc006a41026a220320012d00a2013a0000200141e8006a41086a2202200141b7016a290000370300200141e8006a41106a2206200141a0016a411f6a2d00003a0000200120012f01a0013b017c200120012900af0137036820012800a301210020012900a7012108200141e4006a41026a20032d00003a0000200141c8006a41086a2002290300370300200141c8006a41106a20062d00003a0000200120012f017c3b0164200120012903683703480c080b200141a0016a41186a20014180016a41186a290000370300200141a0016a41106a20014180016a41106a290000370300200141a0016a41086a20014180016a41086a29000037030020012001290080013703a0010c050b410421090b2001200736024c20012009360248410021032001410036025002402007450d00200141d0006a210c41002102034020014180016a2000101f024002402001280280012206450d002001290284012108200141a0016a2000101f024020012802a001220a450d00200241016a210220012902a401210b2003200128024c470d02200141c8006a1076200c2802002103200128024821090c020b2008a7450d00200610020b2001280248210502402003450d00200341186c21032005210003400240200041046a280200450d00200028020010020b0240200041106a280200450d002000410c6a28020010020b200041186a2100200341686a22030d000b0b200128024c450d09200510020c090b2009200341186c6a22052008370204200520063602002005410c6a200a360200200541106a200b370200200c200341016a220336020020022007490d000b200128024821090b2009450d06200129024c2108410221000b20014180016a41086a200141a0016a41086a29020037030020014180016a41106a200141a0016a41106a29020037030020012000360248200120012902a00137038001200120084220862009ad8437024c20084220882108410021040c060b1061000b1060000b0b0b20014180016a41026a2203200141e4006a41026a2d00003a0000200141a0016a41086a2202200141c8006a41086a290300370300200141a0016a41106a2206200141c8006a41106a290300370300200120012f01643b018001200120012903483703a00120054105460d00200141c4006a41026a220420032d00003a0000200141286a41086a22032002290300370300200141286a41106a22022006290300370300200120012f0180013b0144200120012903a00137032820014180016a41086a200329030037030020014180016a41106a2002290300370300200120053a004c20012000360250200120012f01443b004d200120042d00003a004f2001200129032837038001410421040c010b0b200141c4006a41026a220020012d004f3a0000200141286a41086a220520014180016a41086a290300370300200141286a41106a220220014180016a41106a290300370300200120012f004d3b014420012001290380013703282001280250210620012d004c21092001280248210a41062103024020044106460d00200141246a41026a20002d00003a0000200141086a41086a2005290300370300200141086a41106a2002290300370300200120012f01443b012420012001290328370308200421030b024020034106470d00200141c0016a240041000f0b20014180016a41026a2204200141246a41026a2d00003a0000200141a0016a41086a2205200141086a41086a290300370300200141a0016a41106a2202200141086a41106a290300370300200120012f01243b018001200120012903083703a001413010012200450d002000200a36020420002003360200200020093a0008200020012f0180013b00092000200636000c20002008370210200020012903a0013702182000410b6a20042d00003a0000200041206a2005290300370200200041286a2002290300370200200141c0016a240020000f0b101c000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a1022200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b106e000b05001041000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a1025200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020b890403037f017e027f230041206b22022400200241003602082002420137030020024100410410272002280200200228020822036a41003600002002200341046a220336020820022003412010272002280200200228020822046a220320012900a002370000200341186a200141b8026a290000370000200341106a200141b0026a290000370000200341086a200141a8026a2900003700002002200441206a22033602082001290300210520022003410810272002280200200228020822036a20053700002002200341086a2206360208200241106a200141086a1028200228021021042002200620022802182203102720022003200228020822066a2207360208200620022802006a20042003101e1a02402002280214450d00200410020b2002200741c0001027200241086a22032003280200220441c0006a22063602002004200228020022076a220320012900c002370000200341086a200141c8026a290000370000200341106a200141d0026a290000370000200341186a200141d8026a290000370000200341206a200141e0026a290000370000200341286a200141e8026a290000370000200341306a200141f0026a290000370000200341386a200141f8026a2900003700000240200641034d0d002000200229030037020020072004413c6a360000200041086a200241086a280200360200200241206a24000f0b410420061029000ba10101027f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d0141000d01200341017422044100200220011b2201200420014b1b22014100480d01024002402003450d0020002802002104200110012202450d042002200420012003200320014b1b101e1a200410020c010b200110012202450d030b20002002360200200041046a20013602000b0f0b1041000b101c000bfb2602077f017e230041306b22022400200241003602082002420137030002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020012d0000417f6a220341054b0d0002400240024002400240024020030e06000402030105000b2002107e2002280200200241086a22032802006a41013a00002003200328020041016a2204360200200241003602282002420137032020012d0001450d16200241206a107e2002280220200241206a41086a220528020022066a41003a00002005200641016a2206360200200241206a20064120102720052005280200220741206a22063602002007200228022022086a2205200141026a290000370000200541086a2001410a6a290000370000200541106a200141126a290000370000200541186a2001411a6a29000037000020022802242101200220042006102720032003280200220520066a360200200520022802006a20082006101e1a2001450d14200810020c140b2002107e2002280200200241086a22032802006a41063a00002003200328020041016a3602002002410036021820024201370310200141086a2d0000417f6a220341044b0d16024020030e05001210110f000b200241106a107e2002280210200241186a22032802006a41003a00002003200328020041016a2208360200200241206a2001410c6a10b80120022802202106200241106a200820022802282205102720032005200328020022086a360200200820022802106a20062005101e1a02402002280224450d00200610020b200141186a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000c120b2002107e2002280200200241086a22032802006a41033a00002003200328020041016a3602002002410036022820024201370320200141086a2903004200510d16200241206a107e2002280220200241206a41086a220528020022066a41003a00002005200641016a2206360200200141106a2903002109200241206a20064108102720052005280200220641086a22013602002006200228022022056a200937000020022802242106200220032802002001102720032003280200220820016a360200200820022802006a20052001101e1a2006450d12200510020c120b2002107e2002280200200241086a22032802006a41053a00002003200328020041016a3602002002410036021820024201370310200141086a2d000022034103714101460d0520034102460d0320034103470d16200241106a107e2002280210200241186a220528020022036a41023a00002005200341016a22033602002001410c6a2802002106200241106a20034104102720052005280200220341046a2208360200200320022802106a2006360000200241106a20084101102720052005280200220641016a22033602002006200228021022056a200141096a2d00003a00000c060b2002107e2002280200200241086a22032802006a41023a00002003200328020041016a22063602002002410036022820024201370320200141086a2d000022054103714101460d0620054103460d0320054102470d16200241206a107e20022802202205200241286a220328020022016a41013a00002003200141016a22013602000c070b2002107e2002280200200241086a22032802006a41073a00002003200328020041016a22063602002002410036021820024201370310200141046a2d000022034103714101460d0820034102460d0720034103470d16200241106a107e2002280210200241106a41086a220528020022036a41023a00002005200341016a2203360200200241106a20034120102720052005280200220841206a22033602002008200228021022056a2208200141056a290000370000200841086a2001410d6a290000370000200841106a200141156a290000370000200841186a2001411d6a2900003700000c090b2002107e2002280200200241086a22032802006a41003a00002003200328020041016a3602002002410036022820024201370320200141106a2d00004102460d16200241206a107e2002280220200241206a41086a220328020022056a41003a00002003200541016a2207360200412010012203450d0f200341186a2206200141f0016a290000370000200341106a2208200141e8016a290000370000200341086a2204200141e0016a2900003700002003200141d8016a290000370000200141086a290300210941c00010012205450d0f20052003290000370000200541186a2006290000370000200541106a2008290000370000200541086a2004290000370000200310022005200937002041800110012203450d0f20032005290000370000200341386a2206200541386a290000370000200341306a2208200541306a290000370000200341286a2204200541286a290000370000200341206a200541206a290000370000200341186a200541186a290000370000200341106a200541106a290000370000200341086a200541086a29000037000020051002200341c0006a20014190026a290000370000200620014188026a290000370000200820014180026a2900003700002004200141f8016a29000037000020014191016a2105200141f1006a2108200141316a2106200141116a210402400240200141106a2d0000450d00200341c8006a41123a00002003200141d4016a2802003600492003200429000037004d200341d5006a200441086a290000370000200341dd006a200441106a290000370000200341e5006a200441186a29000037000041800210012201450d1120012003418001101e210120031002200141a5016a200641386a2900003700002001419d016a200641306a29000037000020014195016a200641286a2900003700002001418d016a200641206a29000037000020014185016a200641186a290000370000200141fd006a200641106a290000370000200141f5006a200641086a2900003700002001200629000037006d200120082900003700ad01200141b5016a200841086a290000370000200141bd016a200841106a290000370000200141c5016a200841186a29000037000041800410012206450d1120062001418002101e21032001100220034185026a200541386a290000370000200341fd016a200541306a290000370000200341f5016a200541286a290000370000200341ed016a200541206a290000370000200341e5016a200541186a290000370000200341dd016a200541106a290000370000200341d5016a200541086a290000370000200320052900003700cd010c010b200341c8006a41113a00002003200141d4016a2802003600492003200429000037004d200341d5006a200441086a290000370000200341dd006a200441106a290000370000200341e5006a200441186a29000037000041800210012201450d1020012003418001101e210120031002200141a5016a200641386a2900003700002001419d016a200641306a29000037000020014195016a200641286a2900003700002001418d016a200641206a29000037000020014185016a200641186a290000370000200141fd006a200641106a290000370000200141f5006a200641086a2900003700002001200629000037006d200120082900003700ad01200141b5016a200841086a290000370000200141bd016a200841106a290000370000200141c5016a200841186a29000037000041800410012206450d1020062001418002101e21032001100220034185026a200541386a290000370000200341fd016a200541306a290000370000200341f5016a200541286a290000370000200341ed016a200541206a290000370000200341e5016a200541186a290000370000200341dd016a200541106a290000370000200341d5016a200541086a290000370000200320052900003700cd010b200241206a2007418d021027200241206a41086a220120012802002203418d026a22013602002003200228022022056a2006418d02101e1a20061002200228022421062002200241086a22032802002001102720032003280200220820016a360200200820022802006a20052001101e1a2006450d0e200510020c0e0b200241106a107e2002280210200241186a220528020022036a41013a00002005200341016a22033602002001410c6a2802002101200241106a20034104102720052005280200220641046a22033602002006200228021022056a20013600000c020b200241206a107e20022802202205200241286a220328020022016a41023a00002003200141016a22013602000c030b200241106a107e2002280210200241106a41086a220328020022056a41003a00002003200541016a2208360200200241206a2001410c6a28020010d80120022802202106200241106a200820022802282205102720032005200328020022086a2204360200200820022802106a20062005101e1a02402002280224450d00200610020b200141106a2903002109200241106a200441081027200241106a41086a22012001280200220141086a22033602002001200228021022056a20093700000b200228021421062002200241086a22012802002003102720012001280200220820036a360200200820022802006a20052003101e1a2006450d0a200510020c0a0b200241206a107e2002280220200241206a41086a220628020022056a41003a00002006200541016a2205360200200241206a2005412010272002280220200628020022086a2205200141096a290000370000200541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002006200841206a2205360200200141306a2903002109200241206a20054108102720022802202205200628020022016a20093700002006200141086a2201360200200328020021060b200228022421032002200620011027200241086a22062006280200220620016a360200200620022802006a20052001101e1a2003450d08200510020c080b200241106a107e2002280210200241106a41086a220628020022036a41013a00002006200341016a2203360200200241106a20034120102720062006280200220341206a2205360200200320022802106a2203200141056a290000370000200341086a2001410d6a290000370000200341106a200141156a290000370000200341186a2001411d6a290000370000200241106a20054101102720022802102205200628020022036a200141256a2d00003a00002006200341016a2203360200200241086a28020021060c010b200241106a107e2002280210200241106a41086a220528020022036a41003a00002005200341016a2203360200200241206a200141086a28020010d80120022802202108200241106a200320022802282201102720052001200528020022046a22033602002004200228021022056a20082001101e1a2002280224450d00200810020b200228021421012002200620031027200241086a22062006280200220620036a360200200620022802006a20052003101e1a2001450d05200510020c050b200241106a107e2002280210200241106a41086a22032802006a41043a00002003200328020041016a2205360200200241106a20054120102720032003280200220541206a2206360200200520022802106a220541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002005200141096a290000370000200141306a2903002109200241106a20064108102720032003280200220541086a360200200520022802106a20093700002001412c6a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000c030b200241106a107e2002280210200241186a22032802006a41023a00002003200328020041016a22053602002001410c6a2802002101200241106a20054104102720032003280200220541046a360200200520022802106a20013600000c020b200241106a107e2002280210200241186a22032802006a41033a00002003200328020041016a22053602002001410c6a2802002101200241106a20054104102720032003280200220541046a360200200520022802106a20013600000c010b200241106a107e2002280210200241106a41086a22032802006a41013a00002003200328020041016a22053602002001412c6a2802002106200241106a20054104102720032003280200220541046a360200200520022802106a2006360000200241106a20032802004120102720032003280200220541206a2206360200200520022802106a220541186a200141216a290000370000200541106a200141196a290000370000200541086a200141116a2900003700002005200141096a290000370000200141306a2802002105200241106a20064104102720032003280200220641046a360200200620022802106a2005360000200141346a2802002101200241106a20032802004104102720032003280200220541046a360200200520022802106a20013600000b20022802142106200228021021052002200241086a2201280200200241106a41086a2802002203102720012003200128020022086a360200200820022802006a20052003101e1a2006450d00200510020b20002002290300370200200041086a200241086a280200360200200241306a24000f0b101c000b41ec30103b000b419435103b000b41ec34103b000b41ac3f103b000b41943b103b000b41843e103b000b41ecc100103b000b08004194321054000b4b01017f02402002417f4c0d00024002402002450d002002100122030d01101c000b410121030b200320012002101e21012000200236020420002001360200200020023602080f0b102b000b05001041000ba10c03037f027e0c7f23004180016b22002400200041e0006a41086a220142003703002000420037036041c8084107200041e0006a1003200041306a41086a200129030037030020002000290360370330024002400240200041306a411041d02d410041001000417f460d002000420037036002400240200041306a4110200041e0006a41084100100041016a41084d0d002000200029036042017c370340200041e0006a41086a220242003703002000420037036041c8084107200041e0006a1003200041306a41086a2201200229030037030020002000290360370330200041306a4110200041c0006a41081004200142003703002000420037033041dd084107200041306a1003200041106a41086a2001290300370300200020002903303703100240200041106a411041d02d410041001000417f460d0020004200370360200041106a4110200041e0006a41084100100041016a41084d0d0220002903602103200041306a41086a220142003703002000420037033041dd084107200041306a1003200041e0006a41086a200129030037030020002000290330370360200041e0006a411010054201a74101470d050c040b4200a74101460d030c040b41c1214133102d000b41c1214133102d000b41f4214122102d000b102e210420002003370340200041e0006a41086a220142003703002000420037036041cf084107200041e0006a1003200041306a41086a2202200129030037030020002000290360370330200041306a4110200041c0006a4108100420002004370340200142003703002000420037036041d6084107200041e0006a10032002200129030037030020002000290360370330200041306a4110200041c0006a410810040b2000102f2000280200210502400240024020002802082201450d002001410574210620052107410021080340410810012201450d022000200136026020004208370264200041e0006a410041081027200041e0006a41086a22012001280200220241086a360200200220002802606a42f3cacdd3e38d9eba3a370000200041c0006a41086a2202200128020036020020002000290360370340412010012209450d022000200936026020004220370264200041e0006a41004120102720012001280200220a41206a2209360200200a2000280260220b6a220a2007290000370000200a41086a200741086a290000370000200a41106a200741106a290000370000200a41186a200741186a2900003700002000280264210c200041c0006a2002280200200910272000280240220a2002280200220d6a200b2009101e1a2002200d20096a220d3602000240200c450d00200b10020b2000280244210c200041306a41086a2209420037030020004200370330200a200d200041306a1003200041106a41086a220b20092903003703002000200029033037031002400240200041106a411041d02d410041001000417f460d00200041e0006a41186a220e4200370300200041e0006a41106a220f42003703002001420037030020004200370360200041106a4110200041e0006a4120410010002210417f460d052010411f4d0d05200041c0006a41186a200e290300370300200041c0006a41106a200f29030037030020022001290300370300200020002903603703402009420037030020004200370330200a200d200041306a10032001200929030037030020002000290330370360200041e0006a41101005410121090c010b410021090b200041106a41186a220d200041c0006a41186a290300370300200041106a41106a220e200041c0006a41106a290300370300200b2002290300370300200020002903403703100240200c450d00200a10020b02402009450d00200041e0006a41186a200d290300370300200041e0006a41106a200e2903003703002001200b29030037030020002000290310370360200041c0006a10302000280240220920022802001031210102402000280244450d00200910020b200120084d0d00200041c0006a20081032200028024022012002280200200041e0006a412010042000280244450d00200110020b200741206a2107200841016a2108200641606a22060d000b0b02402000280204450d00200510020b20004180016a24000f0b101c000b41c1214133102d000b080041b4321054000b9f0102027f017e230041206b22002400200041106a41086a220142003703002000420037031041d12d4107200041106a1003200041086a20012903003703002000200029031037030002402000411041d02d410041001000417f460d0020004200370310024020004110200041106a41084100100041016a41084d0d0020002903102102200041206a240020020f0b41c1214133102d000b41f4214122102d000bab0101027f230041306b22012400200141206a41086a220242003703002001420037032041e4084107200141206a1003200141086a200229030037030020012001290320370300024002402001411041d02d410041001000417f460d002001421037021420012001360210200141206a200141106a103a20012802202202450d012000200129022437020420002002360200200141306a24000f0b41f4214122102d000b41c1214133102d000bd60101047f230041206b220124000240410610012202450d002001200236021020014206370214200141106a4100410610272001280210200128021822036a220441002800c12d360000200141086a2202200341066a2203360200200441046a41002f00c52d3b0000200120012903103703002001200336021820012002280200410310272000200129030037020020022002280200220341036a2204360200200320012802006a220241002f00ee2e3b0000200041086a2004360200200241026a41002d00f02e3a0000200141206a24000f0b101c000b6001027f230041106b2202240041002103024002402000200141d02d410041001000417f460d002002410036020c200020012002410c6a41044100100041016a41044d0d01200228020c21030b200241106a240020030f0b41eb1a4133102d000bc30101047f230041206b220224000240410610012203450d002002200336021020024206370214200241106a4100410610272002280210200228021822046a220541002800c12d360000200241086a2203200441066a2204360200200541046a41002f00c52d3b00002002200229031037030020022004360218200220032802004104102720032003280200220441046a36020020002002290300370200200420022802006a2001360000200041086a2003280200360200200241206a24000f0b101c000b810301047f230041306b220224000240024002400240024002400240200128020022032001280204460d002001200341186a36020020032802082201417f4c0d06200328020021042001450d012001100122050d020c030b20004100360200200241306a24000f0b410121050b200220013602242002200536022020024100360228200241206a41002001102720022002280228220520016a360228200520022802206a20042001101e1a200241106a20022802283602002002200229032037030820032802142201417f4c0d03200328020c21032001450d012001100122040d020b101c000b410121040b200220013602242002200436022020024100360228200241206a41002001102720022002280228220420016a360228200420022802206a20032001101e1a200241146a220141086a200228022836020020012002290320370200200041106a200241086a41106a290300370200200041086a200241086a41086a29030037020020002002290308370200200241306a24000f0b1019000bd55a09017f017e017f017e067f017e177f047e027f230041f0026b220024001035102e2101200041c8026a41086a22024200370300200042003703c802418a264107200041c8026a100320004198026a41086a2002290300370300200020002903c802370398020240024002400240024002400240024002400240024002400240024020004198026a411041d02d410041001000417f460d00200042003703680240024020004198026a4110200041e8006a41084100100041016a41084d0d00200029036822034200510d0320012003824200520d0a200041f8016a103620002802f80121080240024002402000280280022209450d00200041e8006a2008280230103720002802702207450d072008200941d8006c6a2104200841d8006a2102200041f8006a35020021032000290368210a02402000280274450d00200710020b20022004460d01200a20037e2103200941d8006c41a87f6a210b41002105200041f0006a210c200041f8006a210d200041f4006a210e41012104200821060340200041e8006a200241306a2802001037200c2802002207450d052000290368200d3502007e210a0240200e280200450d00200710020b2003200a2003200a5622071b21032005200420071b21052006200220071b2106200441016a2104200241d8006a2102200b41a87f6a220b0d000b20060d022009450d00200941d8006c210420082102034020021038200241d8006a2102200441a87f6a22040d000b0b20002802fc01450d0c200810020c0c0b410021050b200920054d0d06200041e8006a2008200541d8006c6a220241d800101e1a200220082009417f6a220441d8006c6a220741d80010391a2007200041e8006a41d800101e2102200041f8016a41086a2004360200200041e8006a41086a22042002410c6a290200370300200041e8006a41106a2207200241146a290200370300200041e8006a41186a22052002411c6a290200370300200041e8006a41206a2206200241246a290200370300200041e8006a41286a220b2002412c6a280200360200200020022902043703682002280200220c4106460d07200041c0016a41086a220d2004290300370300200041c0016a41106a22042007290300370300200041c0016a41186a22072005290300370300200041c0016a41206a22052006290300370300200041c0016a41286a2206200b280200360200200020002903683703c001200241046a28022c2102200041386a41286a2006280200360200200041386a41206a2005290300370300200041386a41186a2007290300370300200041386a41106a2004290300370300200041386a41086a200d290300370300200020002903c001370338410810012204450d0b200020043602682000420837026c200041e8006a4100410810272000280268200028027022046a42e4cab5d3c3ac99b83a3700002000200441086a360270200041c0016a41086a2000280270360200200020002903683703c001410410012204450d0b200020043602682000420437026c200041e8006a41004104102720002802682207200028027022046a20023600002000200441046a2202360270200028026c2105200041c0016a20002802c8012002102720002802c001220420002802c80122066a20072002101e1a2000200620026a22023602c80102402005450d00200710020b20002802c401210620004198026a41086a2207420037030020004200370398022004200220004198026a1003200041e8006a41086a20072903003703002000200029039802370368410021070240200041e8006a411041d02d410041001000417f460d002000200041e8006a3602082000411036020c200042003703c00120004100200041e8006a4110200041c0016a41084100100022072007417f461b2207410820074108491b360210200741074d0d0620002903c0012103200041c0016a200041086a103a20002802c0012207450d06200041c0016a41086a280200210520002802c401210b20004198026a41086a220d420037030020004200370398022004200220004198026a1003200041c8026a41086a200d29030037030020002000290398023703c802200041c8026a411010052006450d0a0c090b20060d080c090b41c1214133102d000b4198264132102d000b41f4214122102d000b41c43f103b000b4198264132102d000b41c1214133102d000b41dc3f20052009103c000b41ec3f103b000b200410020b024002402007450d0002402005450d002005410574210420072102034020022003103d200241206a2102200441606a22040d000b0b200041e8006a41086a2202200041f8016a41086a280200360200200020002903f801370368200041e8006a103e20002802682105024020022802002202450d00200241d8006c210420052102034020021038200241d8006a2102200441a87f6a22040d000b0b0240200028026c450d00200510020b200041c8026a41086a22024200370300200042003703c80241f7264107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d0120004200370368024020004198026a4110200041e8006a41084100100041016a41084d0d0020002903682103200041f4006a200041c0006a290300370200200041fc006a200041c8006a29030037020020004184016a200041d0006a2903003702002000418c016a200041d8006a29030037020020004194016a200041e0006a2802003602002000200c3602682000200029033837026c200320017c200041e8006a4100103f200b450d03200710020c030b41c1214133102d000b41ca26412d102d000b41f4214122102d000b200020013703f801200041c8026a41086a22024200370300200042003703c80241fe264107200041c8026a100320004198026a41086a2002290300370300200020002903c80237039802024002400240024020004198026a411041d02d410041001000417f460d00200041003602680240024020004198026a4110200041e8006a41044100100041016a41044d0d0020002802682104200041c8026a41086a22024200370300200042003703c8024185274107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d032000410036026820004198026a4110200041e8006a41044100100041016a41044d0d012000200028026822053602cc02200041003a00d402200020043602c8022000200041f8016a3602d0020240200420054f0d002000200441016a22023602c802200041f0006a210602400340200041e8006a20041040200628020022074106470d01200220054f0d022000200241016a22073602c80220022104200721020c000b0b200041386a41086a2205200041fc006a2206290200370300200041386a41106a220b20004184016a220c290200370300200041386a41186a220d2000418c016a220e290200370300200041386a41206a220820004194016a2209290200370300200041386a41286a220f2000419c016a221028020036020020002000290274370338200041a0016a2d0000211120002903682103200041b8026a41026a221220004198026a41026a2d00003a0000200020002f0098023b01b802200041e8006a410c6a2202200029033837020020062005290300370200200c200b290300370200200e200d290300370200200920082903003702002010200f280200360200200041a7016a20122d00003a00002000200736027020002003370368200020043602a001200020113a00a401200020002f01b8023b00a5010240200320002903f801520d00200041c0016a41306a200241306a280200360200200041c0016a41286a200241286a290200370300200041c0016a41206a200241206a290200370300200041c0016a41186a200241186a290200370300200041c0016a41106a200241106a290200370300200041c0016a41086a200241086a290200370300200020022902003703c00120074106460d010c060b200041c8026a410c6a41013a0000200041e8006a41086a10384106210741064106470d050b4108211341002102410021140c050b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b200041e8006a41306a2202200041c0016a41306a280200360200200041e8006a41286a2204200041c0016a41286a290300370300200041e8006a41206a2205200041c0016a41206a290300370300200041e8006a41186a2206200041c0016a41186a290300370300200041e8006a41106a220b200041c0016a41106a290300370300200041e8006a41086a220c200041c0016a41086a290300370300200020002903c00137036841c00010012213450d0120132007360208201320033703002013200029036837020c201341146a200c2903003702002013411c6a200b290300370200201341246a20062903003702002013412c6a2005290300370200201341346a20042903003702002013413c6a2002280200360200200041086a41086a200041c8026a41086a290300370300200020002903c802370308024020002d00140d0020002802082202200028020c4f0d002000200241016a360208200041f0006a210402400340200041e8006a20021040200428020022074106470d0120002802082202200028020c4f0d022000200241016a3602080c000b0b200041386a41086a2205200041fc006a2206290200370300200041386a41106a220b20004184016a220c290200370300200041386a41186a220d2000418c016a220e290200370300200041386a41206a220820004194016a2209290200370300200041386a41286a220f2000419c016a221028020036020020002000290274370338200041a0016a2d0000211120002903682103200041b8026a41026a221220004198026a41026a2d00003a0000200020002f0098023b01b802200041e8006a410c6a2204200029033837020020062005290300370200200c200b290300370200200e200d290300370200200920082903003702002010200f280200360200200041a7016a20122d00003a00002000200736027020002003370368200020023602a001200020113a00a401200020002f01b8023b00a5010240024020032000280210290300520d00200041c0016a41306a200441306a280200360200200041c0016a41286a200441286a290200370300200041c0016a41206a200441206a290200370300200041c0016a41186a200441186a290200370300200041c0016a41106a200441106a290200370300200041c0016a41086a200441086a290200370300200020042902003703c0014106210b20074106470d010c020b200041086a410c6a41013a0000200041e8006a41086a1038410621074106210b41064106460d010b200041e8006a41086a2106200041a5016a2111200041e8006a410c6a210d410121144101210202400340200041e8006a41306a2205200041c0016a41306a2212280200360200200041e8006a41286a220c200041c0016a41286a221c290300370300200041e8006a41206a2209200041c0016a41206a221e290300370300200041e8006a41186a220f200041c0016a41186a221d290300370300200041e8006a41106a2210200041c0016a41106a22202903003703002006200041c0016a41086a2215290300370300200020002903c001370368024020022014470d00201441016a2204201449221b0d02200e2014410174221f20082004201b1b22082008201f491b2204ad420686220aa7200a422088a7221b1b220e4100480d02201b4100470d02024002402014450d00200e1001221b450d07201b2013200e2014200b74221f201f200e4b1b101e211b20131002201b21130c010b200e10012213450d060b200421140b20132002200b746a22042007360208200420033703002004413c6a2005280200360200200441346a200c2903003702002004412c6a2009290300370200200441246a200f2903003702002004411c6a2010290300370200200441146a20062903003702002004410c6a2000290368370200200241016a2102200041086a410c6a22092d00000d0320002802082205200028020c220c4f0d032000200541016a220436020802400340200041e8006a2005104020062802002207200b470d012004200c4f0d052000200441016a220736020820042105200721040c000b0b200041386a41086a221f200d41086a2204290200370300200041386a41106a2221200d41106a220c290200370300200041386a41186a2219200d41186a220f290200370300200041386a41206a2216200d41206a2210290200370300200041386a41286a221a200d41286a221b2802003602002000200d290200370338200041a0016a22172d000021182000290368210a200041b8026a41026a222720004198026a41026a2d00003a0000200020002f0098023b01b8022006200736020020172005360200200041e8006a413c6a20183a0000200d20002903383702002004201f290300370200200c2021290300370200200f201929030037020020102016290300370200201b201a280200360200201120002f01b8023b0000201141026a20272d00003a00002000200a3703680240200a200041086a41086a280200290300520d002012200d41306a280200360200201c201b290200370300201e2010290200370300201d200f2902003703002020200c290200370300201520042902003703002000200d2902003703c001200a21032007200b470d010c040b200941013a000020061038410621074106200b470d000c030b0b1041000b41012114410121020b201320024106746a21152002450d01200041386a41086a2116200041386a4104722110200041a7026a2117200041f8016a4104722118200041c0016a41186a2119200041c9016a211a200041c0016a41086a2107200041e8006a4104722105200041e8006a41286a211b200041e8006a41206a2112200041e8006a41106a211c2013210f0340200f22022802082111201b200241346a28020036020020122002412c6a290200370300200041e8006a41186a221d200241246a290200370300201c2002411c6a290200370300200041e8006a41086a221e200241146a29020037030020002002410c6a290200370368200241c0006a210f20114106460d0320022802382109200041086a41086a2204201e290300370300200041086a41106a2206201c290300370300200041086a41186a220b201d290300370300200041086a41206a220c2012290300370300200041086a41286a220d201b2802003602002000200029036837030820022d003c211f20102000290308370200201041086a2004290300370200201041106a2006290300370200201041186a200b290300370200201041206a200c290300370200201041286a200d28020036020020002011360238200041f8016a2009104220002802f801212002400240024002400240200041f8016a41086a22212802002202450d002002410574210d420021034200210a20202102034020021043210120021044212220052002290000370000200541086a200241086a290000370000200541106a200241106a290000370000200541186a200241186a29000037000020002009360268410810012204450d07200020043602c001200042083702c401200041c0016a41004108102720072007280200220441086a360200200420002802c0016a42e4cab5d3e3ee9bba3a370000200041c8026a41086a22042007280200360200200020002903c0013703c802200041c0016a200041e8006a104520002802c401210e20002802c001210c200041c8026a200428020020072802002206102720002802c802220b200428020022086a200c2006101e1a2004200820066a22083602000240200e450d00200c10020b20002802cc02210620044200370300200042003703c802200b2008200041c8026a100320004198026a41086a2004290300370300200020002903c8023703980202400240024020004198026a411041d02d410041001000417f470d004102210420060d010c020b200041003a00c00120004198026a4110200041c0016a41014100100041016a41014d0d0520002d00c00121042006450d010b200b10020b200441ff01714102460d02200241206a21024200202220017c2201200441017122041b200a7c210a2001420020041b20037c2103200d41606a220d0d000b20002802fc01450d040c030b4200210a4200210320002802fc010d020c030b41f90941e000102d000b41c1214133102d000b202010020b0240200041c8026a41086a22064200370300200042003703c80241f9204107200041c8026a100320004198026a41086a220b2006290300370300200020002903c802370398020240024002400240024020004198026a411041d02d410041001000417f460d0020004200370368024020004198026a4110200041e8006a41084100100041016a41084d0d0020002903682101200910460240200a20037c22224202882223500d0020232022510d004100210402400340200441026a21022022200441046a413e71ad882223500d012002210420232022520d000b0b20222002413e71ad88420052ad212302402002450d0003402023420186222320234201842223202320237e202241002002417e6a2204200420024b1b2202413f71ad88561b212320020d000b0b20014202882222500d040c030b2022420052ad21232001420288222250450d020c030b41c1214133102d000b41f4214122102d000b20222001510d004100210402400340200441026a21022001200441046a413e71ad882222500d012002210420222001520d000b0b20012002413e71ad88420052ad212202402002450d0003402022420186222220224201842222202220227e200141002002417e6a2204200420024b1b2202413f71ad88561b212220020d000b0b2023500d020c010b2001420052ad21222023500d010b02400240024002400240201f41037122024101460d0020024102470d012003200a580d050c040b2022500d01200a202280222420032023802225540d0303402023210120252024540d05200a202282212320032001822224500d052023500d042022202380212520222103202421222001210a2001202480222420255a0d000c040b0b2022500d01200a202380222420032022802225540d0203402023210120252024540d04200a200182212520032022822223500d042025500d03202220238021242022210a20012103202521222024200120258022255a0d000c030b0b419c31103b000b419c31103b000b200041c0016a41286a200041386a41286a290300370300200041c0016a41206a200041386a41206a2903003703002019200041386a41186a290300370300200041c0016a41106a220c200041386a41106a29030037030020072016290300370300200020002903383703c00102400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002802c001220e417f6a220241044b0d000240024002400240024020020e050004020301000b200728020022024101460d0720024102470d13102c0c210b200c2903002103200728020022024101460d0420024102470d132000200337036820064200370300200042003703c80241e122410a200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c200b200020002902c40122033703f8012003422088a721022003a72204410371220c4101460d04200c4102470d1320021046200441ff01714101470d1f201810220c1f0b20004194026a41026a220d201a41026a2d00003a00002021201941086a290300370300200041f8016a41106a2208201941106a2903003703002000201a2f00003b019402200020192903003703f80120072d0000410771417f6a220241034b0d13200c2903002103200041c0016a410c6a2802002104024020020e04000a0709000b2000200436026820064200370300200042003703c802419b164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410410040c1a0b2007280200410771417f6a220241034b0d13200c2903002103024020020e04000b070a000b2000200337036820064200370300200042003703c80241cf1d4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c1d0b200c2802002111200041c0016a410c6a280200211e2007280200210820002802c401410371221d4101460d03201d4102470d1302402011450d002008201141186c22046a210d2008210203402002280200200241086a2802002002410c6a280200200241146a2802001004200241186a2202200d470d000b2011450d002008210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b0240201e450d00200810020b41002104201d4101470d194100210441000d19201e450d1920081002200e41077122024103470d1a0c1b0b2000200337036820064200370300200042003703c802418d23410b200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c1b0b102e210a20064200370300200042003703c80241f7264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d122000420037036820004198026a4110200041e8006a41084100100041016a41084d0d0b20002903682101201b200241286a2903003703002012200241206a290300370300201d200241186a290300370300201c200241106a290300370300201e200241086a290300370300200020022903003703682001200a7c200041e8006a2003420888a7103f200210020c1a0b2000200c29030037036820064200370300200042003703c80241dd084107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c190b41942f4105200820111004201e450d18200810020c180b2000200337036820064200370300200042003703c80241a2164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c130b2000200041c0016a410c6a28020036026820064200370300200042003703c80241de1d4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410410040c160b2000200337036820064200370300200042003703c80241a9164107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c110b20004198026a41036a200436000020004198026a41076a2003370000201720002903f80137000020004198026a41026a200d2d00003a0000201741086a2021290300370000201741106a20082d00003a0000200020002f0194023b019802200041e8006a1047200028026c2126200028026821270240201e2802002202450d00200241286c220241b07f6a2104200241586a210d202721020340200241086a2903002103200241106a290300210a200241186a2903002101200229030021222012200241206a290300370300201d2001370300201c200a370300201e200337030020002022370368200041e8006a20004198026a412010060d04200241286a2102200441586a2104200d41586a220d4158470d000b0b41002102410821112026450d03202710024100210d0c0f0b1048102c0c130b2000200337036820064200370300200042003703c80241d21e4107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a410810040c120b200041c8026a41206a22202012290300370300200041c8026a41186a221f201d290300370300200041c8026a41106a2221201c2903003703002006201e290300370300200020002903683703c802412810012211450d15201120002903c802370300201141206a2020290300370300201141186a201f290300370300201141106a2021290300370300201141086a2006290300370300200020113602b80220004281808080103702bc02200d450d01200241286a21024101210d03402012200241206a290300370300201d200241186a290300370300201c200241106a290300370300201e200241086a290300370300200020022903003703680240200041e8006a20004198026a41201006450d0020202012290300370300201f201d2903003703002021201c2903003703002006201e290300370300200020002903683703c80220122020290300370300201d201f290300370300201c2021290300370300201e2006290300370300200020002903c8023703680240200d20002802bc02470d00200041b8026a200d4101104920002802b80221110b2011200d41286c6a22082000290368370300200841206a2012290300370300200841186a201d290300370300200841106a201c290300370300200841086a201e290300370300200041b8026a41086a200d41016a220d3602000b02402004450d00200241286a2102200441586a21040c010b0b2026450d0b0c0a0b4100210d0c0b0b4101210d20260d080c090b41c1214133102d000b418431103b000b419c3e103b000b419cc000103b000b41ac35103b000b41f43b103b000b419cc200103b000b41f4214122102d000b202710020b20002802bc0221020b201e200d3602002000200236026c20002011360268200041e8006a104a2002450d00201110020b410121040b200e41077122024103460d010b20020d012004450d0120002802c4012202450d01024020024101470d00200041c0016a410c6a280200450d02200728020010020c020b2007280200210d0240200c2802002202450d00200241186c2104200d210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b200041c0016a410c6a280200450d01200d10020c010b41000d0020002d00c40141ff01714101470d002007104b0b2000200941016a36026820064200370300200042003703c80241fe264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a41041004200f2015470d020c010b2000200941016a36026820064200370300200042003703c80241fe264107200041c8026a1003200b2006290300370300200020002903c8023703980220004198026a4110200041e8006a41041004024002400240201141077122024103460d0020020d02200028023c2202450d0220024101470d01200041386a410c6a280200450d0220162802001002200f2015470d040c030b20002d003c4101470d0120161022200f2015470d030c020b201628020021060240200041386a41106a2802002202450d00200241186c21042006210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200441686a22040d000b0b200041386a410c6a280200450d00200610020b200f2015470d010b0b2015220f2015460d040c030b101c000b2013210f0b200f2015460d010b200041e8006a41086a211c200041e8006a410c6a2102200041e8006a41306a2105200041e8006a41286a2106200041e8006a41206a210b200041e8006a41186a210c200041e8006a41106a210d0340200f41086a2802002104200f29030021032005200f413c6a2802003602002006200f41346a290200370300200b200f412c6a290200370300200c200f41246a290200370300200d200f411c6a290200370300200041e8006a41086a2207200f41146a2902003703002000200f410c6a29020037036820044106460d01200041c0016a41306a220e2005280200360200200041c0016a41286a22082006290300370300200041c0016a41206a2209200b290300370300200041c0016a41186a2210200c290300370300200041c0016a41106a2211200d290300370300200041c0016a41086a22122007290300370300200020002903683703c00120072004360200200220002903c001370200200241086a2012290300370200200241106a2011290300370200200241186a2010290300370200200241206a2009290300370200200241286a2008290300370200200241306a200e28020036020020002003370368201c1038200f41c0006a220f2015470d000b0b02402014450d00201310020b102e2101200041e8006a41086a220242003703002000420037036841ba1d4107200041e8006a1003200041c8026a41086a22042002290300370300200020002903683703c802420021030240024002400240024002400240024002400240200041c8026a411041d02d410041001000417f460d0020004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d01200029036821030b200242003703002000420037036841c11d4107200041e8006a100320042002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0320004200370368024002400240200041c8026a4110200041e8006a41084100100041016a41084d0d002000290368210a200041e8006a41086a220242003703002000420037036841cf084107200041e8006a1003200041c8026a41086a2002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0720004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d012000290368200a7e22224200510d084200210a0240200120037d2022824200520d0010480b102e2103200041e8006a41086a220242003703002000420037036841d6084107200041e8006a1003200041c8026a41086a22042002290300370300200020002903683703c80202400240200041c8026a411041d02d410041001000417f460d0020004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d06200029036821014201210a0c010b0b200242003703002000420037036841cf084107200041e8006a100320042002290300370300200020002903683703c802200041c8026a411041d02d410041001000417f460d0920004200370368200041c8026a4110200041e8006a41084100100041016a41084d0d02200029036822224200510d0a0240200342002001200a501b7d2022824200520d00102c0b200041c8026a41086a22024200370300200042003703c80241ad0b4107200041c8026a100320004198026a41086a2002290300370300200020002903c8023703980220004198026a411041d02d410041001000417f460d05200041003a006820004198026a4110200041e8006a41014100100041016a41014d0d0b20002d00682102200041c8026a41086a22044200370300200042003703c80241ad0b4107200041c8026a1003200041e8006a41086a2004290300370300200020002903c802370368200041e8006a411010052002450d05200041f0026a24000f0b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c432103b000b41f4214122102d000b41f4214122102d000b41ac3b103b000b41f4214122102d000b41b431103b000b41c1214133102d000bdd91010b017f017e017f017e057f017e047f017e187f027e027f230041f0026b22002400102e2101200041286a41086a220242003703002000420037032841b0164107200041286a1003200041086a41086a200229030037030020002000290328370308024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041086a411041d02d410041001000417f460d00200042003703900202400240200041086a411020004190026a41084100100041016a41084d0d0020002903900222034200510d0320012003824200520d1d200041286a41086a2202420037030020004200370328419b164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d052000410036029002200041086a411020004190026a41044100100041016a41044d0d012000280290022202450d1d200041e0016a1047200041286a41086a220442003703002000420037032841b00f4107200041286a1003200041086a41086a200429030037030020002000290328370308410021040240200041086a411041d02d410041001000417f460d002000200041086a360290012000411036029401200042003703900220004100200041086a411020004190026a41084100100022042004417f461b2204410820044108491b220d36029801200441074d0d05200029039002210e200041003602900220004198016a4100200041086a411020004190026a4104200d100022042004417f461b2204410420044104491b200d6a360200200441034d0d05200028029002210420004190026a20004190016a103a200028029002220f450d0520002802e801220d20046a2000290294022203422088a76b211002402003a7450d00200f10020b20102002490d080c070b102e210e20002802e801220d20024f0d060c070b41c1214133102d000b41c1214133102d000b41f4214122102d000b41ac39103b000b41c1214133102d000b41f4214122102d000b0240200420024f0d00200d200420026b6a2202200d4f0d0820002802e001200241286c6a290320210e0c010b200041286a41086a220242003703002000420037032841a9164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d082000420037039002200041086a411020004190026a41084100100041016a41084d0d01200029039002200e7c210e0b200041286a41086a220242003703002000420037032841b0164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d03200042003703900202400240200041086a411020004190026a41084100100041016a41084d0d0020002903900222034200510d06200e20037c427f7c220e200e2003827d2103024020002802e401450d0020002802e00110020b20032001520d17200041e8006a1047200041286a41086a2202420037030020004200370328419b164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d072000410036029002200041086a411020004190026a41044100100041016a41044d0d012000280290022115102e21030240024020002802702214450d002000280268220241206a2903002003520d0020004190026a41186a2204200241186a29000037030020004190026a41106a220d200241106a29000037030020004190026a41086a2210200241086a290000370300200020022900003703900241201001220f450d12200241286a2102200f200029039002370000200f41186a2004290300370000200f41106a200d290300370000200f41086a20102903003700002000200f3602e00120004281808080103702e401412021104101210d0240201441286c41586a2211450d000340200241206a2903002003520d01200041c8006a41186a200241186a2204290000370300200041c8006a41106a200241106a2216290000370300200041c8006a41086a200241086a22172900003703002000200229000037034820004190016a41186a2218200429000037030020004190016a41106a2219201629000037030020004190016a41086a2216201729000037030020002002290000370390010240200d20002802e401470d00200041e0016a200d410110860120002802e001210f0b200241286a2102200f20106a2204200029039001370000200441186a2018290300370000200441106a2019290300370000200441086a2016290300370000200041e0016a41086a200d41016a220d360200201041206a2110201141586a22110d000b0b20002802e40121022014200d6b2015490d010c160b410021024101210f4100210d201441006b20154f0d150b200041286a41086a220442003703002000420037032841a2164107200041286a1003200041086a41086a200429030037030020002000290328370308200041086a411041d02d410041001000417f460d0a2000420037039002200041086a411020004190026a41084100100041016a41084d0d03200029039002210e20004190026a41106a2002360200200041a4026a200d3602002000200d20146b20156a2219360298022000200e20037c2203370390022000200f36029c02200041003602e801200042013703e001200041e0016a41004108102720002802e00120002802e80122046a20033700002000200441086a22043602e801200041e0016a20044104102720002802e00120002802e80122046a20193600002000200441046a22103602e80120004190016a2000419c026a10a201200028029001210d200041e0016a2010200028029801220410272000200420002802e80122116a22163602e801201120002802e00122106a200d2004101e1a0240200028029401450d00200d10020b200041286a41086a220442003703002000420037032841b00f4107200041286a1003200041086a41086a200429030037030020002000290328370308200041086a4110201020161004024020002802e401450d00201010020b02402002450d00200f10020b41082118200041286a41086a220242003703002000420037032841c50f4107200041286a1003200041086a41086a200229030037030020002000290328370308410021140240024002400240200041086a411041d02d410041001000417f460d0020004210370294012000200041086a3602900120004190026a20004190016a103a2000280290022215450d1341082118200028029402211b20004190026a41086a2802002202450d0120024105744105752214ad4203862203a722044100480d122003422088a74100470d12200410012218450d152002410574220d41606a410576211020182104201521020340200420021043200210447c370300200441086a2104200241206a2102200d41606a220d0d000b201041016a21020c030b410121154100211b0c010b410021140b410021020b2000410036029802200042013703900220004190026a41004104102720002802900220002802980222046a20023600002000200441046a3602980220004190016a41086a2204200028029802360200200020002903900237039001024002402002450d002002410374210f2018210d0340200d2903002103410810012202450d152000200236029002200042083702940220004190026a41004108102720004190026a41086a22022002280200221141086a2202360200201120002802900222106a2003370000200028029402211120004190016a2004280200200210272000280290012217200428020022166a20102002101e1a2004201620026a220236020002402011450d00201010020b200d41086a210d200f41786a220f0d000c020b0b200028029801210220002802900121170b2000280294012104200041286a41086a220d4200370300200042003703284181114107200041286a1003200041086a41086a200d29030037030020002000290328370308200041086a411020172002100402402004450d00201710020b02402014450d00201810020b200041286a41086a220242003703002000420037032841b7164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d0b2000410036029002200041086a411020004190026a41044100100041016a41044d0d042000280290022102200041a8016a4200370300200041a0016a420037030020004198016a42003703002000420037039001200220196a220dad42287e2203422088a70d0c2003a72202417f4c0d0d4108210402402002450d00200210012204450d140b2000200d3602e401200020043602e001200041003602e80120004190026a41186a221020004190016a41186a29030037030020004190026a41106a220f20004190016a41106a29030037030020004190026a41086a20004190016a41086a290300370300200020002903900137039002200041e0016a200d10850120002802e00120002802e801221141286c6a2102024002400240200d4102490d0041012104034020024200370300200241206a2010290300370300200241186a200f290300370300200241106a20004190026a41086a290300370300200241086a200029039002370300200241286a2102200441016a2204200d490d000b201120046a417f6a21110c010b200d450d010b200220002903900237030820024200370300200241106a20004198026a290300370300200241186a20004190026a41106a290300370300200241206a20004190026a41186a290300370300201141016a21110b200041e0016a41086a2202201136020020004190026a41086a2002280200360200200020002903e0013703900220004190026a10b7010240200028029402450d0020002802900210020b201b450d15201510020c150b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41f4214122102d000b41c439103b000b41f4214122102d000b41cc362002200d103c000b41f4214122102d000b41f4214122102d000b41f4214122102d000b105e000b105f000b1041000b41c1214133102d000b41d900212a0c070b41d900212a0c060b41d900212a0c050b41d900212a0c040b2002450d00200f1002200028026c0d010c020b200028026c450d010b200028026810020b200041286a41086a220242003703002000420037032841b00f4107200041286a1003200041086a41086a20022903003703002000200029032837030802400240200041086a411041d02d410041001000417f460d002000200041086a360290012000411036029401200042003703900220004100200041086a411020004190026a41084100100022022002417f461b2202410820024108491b220436029801200241074d0d0b2000290390022103200041003602900220004198016a4100200041086a411020004190026a41042004100022022002417f461b22024104200241044922021b20046a36020020020d0b20004190026a20004190016a103a2000280290022205450d0b200028029402210620032001520d01200041286a41086a22024200370300200042003703284181114107200041286a1003200041086a41086a2204200229030037030020002000290328370308200041086a41101005200442003703002000420037030841b00f4107200041086a10032002200429030037030020002000290308370328200041286a411041d02d410041001000417f460d082000200041286a360290012000411036029401200042003703900220004100200041286a411020004190026a41084100100022022002417f461b22024108200241084922041b22023602980120040d09200041003602900220004198016a4100200041286a411020004190026a41042002100022042004417f461b2204410420044104491b20026a360200200441034d0d09200028029002210720004190026a20004190016a103a2000280290022208450d0920002902940221094108210a200041086a41086a220242003703002000420037030841b00f4107200041086a1003200041286a41086a2204200229030037030020002000290308370328200041286a411010052002420037030020004200370308418f114107200041086a100320042002290300370300200020002903083703284100210b02400240200041286a411041d02d410041001000417f460d0020004210370294012000200041286a3602900120004190026a20004190016a10b601200028029002220a450d052000290294022103200041086a41086a2202420037030020004200370308418f114107200041086a1003200041286a41086a200229030037030020002000290308370328200041286a411010052003422088a7210b2003a7210c0c010b4100210c0b102e2103200041286a41086a220242003703002000420037032841a9164107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d072000420037039002200041086a411020004190026a41084100100041016a41084d0d0d200020002903900220037c3703e002200041286a41086a220242003703002000420037032841c6104107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411041d02d410041001000417f460d062000420037039002200041086a411020004190026a41084100100041016a41084d0d0c2009422088a72111200a200b41286c22026a210f02402007450d0020002903900221034100200a6b20026b21042007210d200f210203402002200a460d01200241586a22102903004200510d01200241606a2003103d200441286a210420102102200d417f6a220d0d000b0b20004190026a104720002802980221042000280290022102200028029402210d200041f8016a200f360200200041fc016a41003a000020004180026a20073602002000200d3602e401200020023602e001200020023602e80120002002200441286c6a3602ec01200020113602f0012000200a3602f40120004184026a200041e0026a360200200041003a00880220004190026a200041e0016a10b90102400240024002400240024002400240024002400240024002400240024002400240024002400240024002402000290390024200510d00417f4100200041ec016a280200200041e0016a41086a2802006b41286d2202200041f0016a2802006b2204200420024b1b220241016a220420042002491b2204ad42287e2203422088a70d1b2003a72202417f4c0d1a4108211202402002450d00200210012212450d160b201220004190026a41086a2202290300370300201241206a200241206a290300370300201241186a200241186a290300370300201241106a200241106a290300370300201241086a200241086a290300370300200020123602482000200436024c410121132000410136025020004190016a41286a200041e0016a41286a28020036020020004190016a41206a200041e0016a41206a29030037030020004190016a41186a200041e0016a41186a29030037030020004190016a41106a2214200041e0016a41106a29030037030020004190016a41086a200041e0016a41086a290300370300200020002903e0013703900120004190026a20004190016a10b90102402000290390024201520d0020004190026a41086a21022000419c016a2115412821104101210d0340200041e8006a41206a220f200241206a290300370300200041e8006a41186a2211200241186a290300370300200041e8006a41106a2216200241106a290300370300200041e8006a41086a2217200241086a290300370300200020022903003703680240200d2004470d00200041c8006a2004417f4100201528020020004190016a41086a2802006b41286d221820142802006b2219201920184b1b221841016a221920192018491b1049200028024821120b0240201220106a22042000290368370300200441206a200f290300370300200441186a2011290300370300200441106a2016290300370300200441086a2017290300370300200041c8006a41086a200d41016a220f36020020004190026a20004190016a10b9012000290390024201520d00201041286a2110200028024c2104200f210d0c010b0b200d41016a21130b024020004198016a220428020022022000419c016a280200220d460d0020042002200d20026b41586a41286e41286c6a41286a3602000b0240200028029401450d0020002802900110020b200028024c211a201341144b0d01201341014d0d022013417f6a210f2012201341286c6a41586a211103402013200f2202417f6a220f490d2102402013200f6b220d4102490d002012200241286c6a221041206a22042903002012200f41286c6a220241206a221629030022035a0d0020004190026a41186a2217200241186a221829030037030020004190026a41106a2219200241106a221429030037030020004190026a41086a2215200241086a221b290300370300200020022903003703900220022010290300370300201b201041086a2903003703002014201041106a2903003703002018201041186a290300370300201620042903003703000240200d4103490d00410221042011210203402004200d4f0d290240200241c8006a221029030020035a0d002004417f6a200d4f0d29200241206a2010290300370300200241186a200241c0006a290300370300200241106a200241386a290300370300200241086a200241306a2903003703002002200241286a221029030037030020102102200441016a2204200d490d010c020b0b200221100b2010200029039002370300201041186a2017290300370300201041106a2019290300370300201041086a2015290300370300201020033703200b201141586a2111200f0d000c030b0b0240200041e8016a22042802002202200041ec016a280200220d460d0020042002200d20026b41586a41286e41286c6a41286a3602000b024020002802e401450d0020002802e00110020b4100211a41082112410021130c010b2013410176221cad42287e2203422088a70d192003a72202417f4c0d184108211d02402002450d0020021001221d450d130b4100210420004100360298012000420437039001201241586a211e201241a87f6a211f4104210d20004190016a41086a21202013212103402021211641002121410121100240024002402016417f6a2202450d0002400240024002400240024002402012200241286c6a41206a29030020122016417e6a221041286c6a41206a29030022035a0d00410021112010450d02201f201641286c6a2102034020032002290300220e5a0d02200241586a2102200e21032010417f6a22100d000c030b0b02402010450d00201f201641286c6a210241022110034020032002290300220e540d04200241586a2102200e21032016201041016a2210470d000b41002121201621102004200028029401470d090c080b41022110410021212004200028029401470d080c070b201021110b024020162011490d00201620134b0d140240201620116b22104101762217450d00201e201641286c6a21022012201141286c6a210f034020004190026a41206a2218200f41206a221929030037030020004190026a41186a2214200f41186a221529030037030020004190026a41106a221b200f41106a222129030037030020004190026a41086a2222200f41086a22232903003703002000200f29030037039002200241086a22242903002103200241106a2225290300210e200241186a22262903002127200229030021282019200241206a2229290300370300201520273703002021200e37030020232003370300200f202837030020292018290300370300202620142903003703002025201b290300370300202420222903003703002002200029039002370300200241586a2102200f41286a210f2017417f6a22170d000b0b2011450d030c020b201120161055000b201620106b2211450d010b201041094d0d010b201121212004200028029401470d030c020b201620134b0d0d2012201141286c6a2117034020162011417f6a2221490d0f0240201620216b22104102490d002012201141286c6a221141206a220f2903002012202141286c6a220241206a221829030022035a0d0020004190026a41186a2219200241186a221429030037030020004190026a41106a2215200241106a221b29030037030020004190026a41086a2222200241086a22232903003703002000200229030037039002200220112903003703002023201141086a290300370300201b201141106a2903003703002014201141186a2903003703002018200f290300370300024020104103490d004102210f201721020340200f20104f0d090240200241c8006a221129030020035a0d00200f417f6a20104f0d0b200241206a2011290300370300200241186a200241c0006a290300370300200241106a200241386a290300370300200241086a200241306a2903003703002002200241286a221129030037030020112102200f41016a220f2010490d010c020b0b200221110b2011200029039002370300201141186a2019290300370300201141106a2015290300370300201141086a2022290300370300201120033703200b2021450d01201741586a2117202121112010410a490d000b0b2004200028029401470d010b20004190016a107a20202802002104200028029001210d0b200d20044103746a22022010360204200220213602002020200441016a2204360200024020044102490d00200028029001210d03400240024002400240200d2004417f6a4103746a2202280200450d00200d20044103746a221141746a280200220f200228020422104d0d00200441024d0d05200d2004417d6a22144103746a28020422022010200f6a4d0d01200441034d0d05201141646a2802002002200f6a4d0d010c050b20044103490d0120022802042110200d2004417d6a22144103746a28020421020b20022010490d010b2004417e6a21140b2004201441016a22154d0d06200420144d0d07200d201441037422226a2202280204222320022802006a2202200d201541037422246a2204280200221b490d08200220134b0d092012201b41286c6a22182004280204221941286c22046a210f200241286c210d024002400240024002402002201b6b221120196b220220194f0d00201d200f200241286c2204101e221120046a211020194101480d0120024101480d01201e200d6a210d200f21020340200d200241586a2216201041586a2217201041786a290300200241786a29030054220f1b2204290300370300200d41206a200441206a290300370300200d41186a200441186a290300370300200d41106a200441106a290300370300200d41086a200441086a29030037030020102017200f1b2110201820162002200f1b22024f0d04200d41586a210d2011210420112010490d000c050b0b201d20182004101e220220046a211020194101480d01201120194c0d012012200d6a2116200221042018210203402002200f2004200f41206a290300200441206a2903005422111b220d290300370300200241206a200d41206a290300370300200241186a200d41186a290300370300200241106a200d41106a290300370300200241086a200d41086a2903003703002004200441286a20111b2104200241286a2102200f41286a200f20111b220f20164f0d04201020044b0d000c040b0b200f21020c010b201821020b201d21040b20022004201020046b220d200d4128706b101e1a2020280200220220144d0d0a200028029001220d20226a2204202320196a3602042004201b360200200220154d0d0b200d20246a2204200441086a200220156b41037441786a10391a20202002417f6a2204360200200441014b0d000b0b20210d000b0240200028029401450d0020002802900110020b201c450d00201d10020b2000201a360294022000201236029002200020133602980220004190026a104a0240201a450d00201210020b200041286a41086a2202420037030020004200370328418d104107200041286a1003200041086a41086a2002290300370300200020002903283703084100211102400240200041086a411041d02d410041001000417f460d0020004210370294012000200041086a3602900120004190026a20004190016a103a2000280290022217450d0f20004198026a2802002111200028029402211e0c010b410121174100211e0b200041a8026a4200370300200041a0026a420037030020004198026a420037030020004200370390022011ad2203421b88a70d0b2003420586a72202417f4c0d0c024002402002450d002002100122020d010c120b410121020b200020113602940120002002360290012000410036029801200041c8006a41186a220d20004190026a41186a290300370300200041c8006a41106a220f20004190026a41106a290300370300200041c8006a41086a221620004190026a41086a290300370300200020002903900237034820004190016a41002011108601200028029001221020002802980122244105746a210202400240024020114102490d0041012104034020022000290348370000200241186a200d290300370000200241106a200f290300370000200241086a2016290300370000200241206a2102200441016a22042011490d000b202420046a417f6a21240c010b2011450d010b20022000290348370000200241186a200041c8006a41186a290300370000200241106a200041c8006a41106a290300370000200241086a200041c8006a41086a290300370000202441016a21240b2009a7211f20004190016a41086a22232024360200200a200b41286c6a2118200028029401212941002113410021164100212620070d0f0c0e0b41ccc100200f2010103c000b41dcc100200f417f6a2010103c000b41acc10020152004103c000b41acc10020142004103c000b201b20021055000b200220131029000b41bcc10020142002103c000b41b4c300103b000b20162011417f6a22214f0d010b202120161055000b201620131029000b1066000b1067000b41c1214133102d000b419201212a0c060b4106212a0c050b41d900212a0c040b41d900212a0c030b41d900212a0c020b4128212a0c010b4126212a0b0340024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240202a0e9601080d94010e95010f101112131415161718191a1b1c1d1e292a2b2c88012f3031323334353638393a3b3c3d3e404155565758595b5c5d5e5f8e0160616263646566676c757677787e7f8001810182018301840185018601797a7c7d6d6e6f707172733f748d0168696a6b5a7b87014243900144454748494a4b4c4d4e4f515253549101920150468f019301372d2e1f2021890122238a0124258b0126278c01280001020405060703090a0b0c0c0b2018200a460d9f01418b01212a0c8a020b201841586a2202290300210320004190026a41186a2204201841786a221929030037030020004190026a41106a220d201841706a221429030037030020004190026a41086a220f201841686a22152903003703002000201841606a22182903003703900220004190016a41186a221d201929030037030020004190016a41106a22252014290300370300202320152903003703002000201829030037039001200041c8006a41186a22182004290300370300200041c8006a41106a2219200d290300370300200041c8006a41086a2214200f290300370300200020002903900237034820034200510d9f01418c01212a0c89020b200041e0016a41186a22152018290300370300200041e0016a41106a221b2019290300370300200041e0016a41086a22212014290300370300200020002903483703e0010c87020b2007417f6a210720152018290300370300201b201929030037030020212014290300370300200020002903483703e0014100211620222102418d01212a0c87020b200041e8006a41186a22122015290300370300200041e8006a41106a2220201b290300370300200041e8006a41086a22222021290300370300200020002903e00137036820042012290300370300200d2020290300370300200f202229030037030020002000290368370390022007450d9301418e01212a0c86020b201641ff01710d9901418f01212a0c85020b200a2002460d9b01419001212a0c84020b200241586a222229030021032004200241786a2216290300370300200d200241706a2212290300370300200f200241686a22202903003703002000200241606a220229030037039002201d201629030037030020252012290300370300202320202903003703002000200229030037039001201820042903003703002019200d2903003703002014200f290300370300200020002903900237034820034200520d9c010c9b010b200041286a41186a2004290300370300200041286a41106a200d290300370300200041286a41086a200f29030037030020002000290390023703280c8e010b201341ff01710d9101419301212a0c81020b2018200a460d9101419401212a0c80020b201841586a22022903002103200041e0016a41186a2204201841786a220d290300370300200041e0016a41106a220f201841706a2216290300370300200041e0016a41086a2219201841686a22142903003703002000201841606a22182903003703e00120004190016a41186a200d29030037030020004190016a41106a201629030037030020232014290300370300200020182903003703900120004190026a41186a220d200429030037030020004190026a41106a2204200f29030037030020004190026a41086a220f2019290300370300200020002903e001370390022003500d9101419501212a0cff010b200041286a41186a200d290300370300200041286a41106a2004290300370300200041286a41086a200f290300370300200020002903900237032841002113410021164101212a0cfe010b20004190026a41186a2204200041286a41186a29030037030020004190026a41106a220d200041286a41106a29030037030020004190026a41086a220f200041286a41086a2903003703002000200029032837039002200041e0016a20004190026a10b50120002802e0014101470d8b014103212a0cfd010b200041e0016a41086a280200211820004190016a41186a2219200429030037030020004190016a41106a2214200d2903003703002023200f290300370300200020002903900237039001200041086a41186a22152019290300370300200041086a41106a22192014290300370300200041086a41086a22142023290300370300200020002903900137030820042015290300370300200d2019290300370300200f20142903003703002000200029030837039002202420184d0d8b014105212a0cfc010b201020184105746a2218200029039002370000201841186a2004290300370000201841106a200d290300370000201841086a200f290300370000202641016a212641002107200221184100450d86014106212a0cfb010b4100450d8d014107212a0cfa010b200c450d93014108212a0cf9010b200a10024109212a0cf8010b20244105742221410575221b201141057441057522022002201b4b1b2218450d9201410a212a0cf7010b20172102201021044100210d410b212a0cf6010b20102017460d9201410c212a0cf5010b2002200441201006450d9201410d212a0cf4010b41071001220f450d9201410e212a0cf3010b2000200f36029002200042073702940220004190026a41004107102720004190026a41086a220f200f280200221141076a221936020020112000280290026a221641002800bf1036000020004190016a41086a22112019360200201641046a41002f00c3103b0000201641066a41002d00c5103a0000200020002903900237039001412010012216450d9201410f212a0cf2010b2000201636029002200042203702940220004190026a410041201027200f200f280200221941206a22163602002019200028029002220f6a20024120101e1a200028029402211420004190016a2011280200201610272000280290012219201128020022156a200f2016101e1a2011201520166a22163602002014450d92014110212a0cf1010b200f10024111212a0cf0010b200028029401210f200041286a41086a221142003703002000420037032820192016200041286a1003200041086a41086a201129030037030020002000290328370308200041086a41101005200f450d91014112212a0cef010b201910024113212a0cee010b200241206a2102200441206a2104200d41016a220d2018490d89014114212a0ced010b201020216a21022024210d201b4104490d8f0141fc00212a0cec010b20004190026a41206a2118200041d0026a2119200041f0026a211420004190036a2115200041a8026a210f200041a0026a211120004198026a21162024210d41fd00212a0ceb010b200f420037030020114200370300201642003703002000420037039002201820022204460de10141fe00212a0cea010b200441606a20004190026a412010060de101418001212a0ce9010b200f42003703002011420037030020164200370300200042003703900220192004460de101418101212a0ce8010b200441406a20004190026a412010060de101418301212a0ce7010b200f42003703002011420037030020164200370300200042003703900220142004460de101418401212a0ce6010b200441a07f6a20004190026a412010060de101418601212a0ce5010b200f420037030020114200370300201642003703002000420037039002200441807f6a210220152004460de101418701212a0ce4010b200220004190026a412010060de101418901212a0ce3010b200d417c6a210d200220106b41057541034b0d86014115212a0ce2010b20102002460d86014116212a0ce1010b20004190026a41206a2104200041a8026a210f200041a0026a211120004198026a21164117212a0ce0010b200f42003703002011420037030020164200370300200042003703900220042002460d86014118212a0cdf010b200241606a20004190026a412010060d860141fa00212a0cde010b200d417f6a210d2010200241606a2202470d830141fb00212a0cdd010b4100450d8f01411a212a0cdc010b200d41016a22022024202420024b1b2124411b212a0cdb010b20002029360294012000201036029001200020243602980120004190026a20004190016a10a20120002802980221042000280290022102200041286a41086a220d420037030020004200370328418d104107200041286a1003200041086a41086a200d29030037030020002000290328370308200041086a4110200220041004200028029402450d8e01411c212a0cda010b20021002411d212a0cd9010b2029450d8d01411e212a0cd8010b20101002411f212a0cd7010b2000202636029002200041286a41086a220242003703002000420037032841cd104107200041286a1003200041086a41086a2204200229030037030020002000290328370308200041086a411020004190026a41041004200242003703002000420037032841b70f4107200041286a10032004200229030037030020002000290328370308200041086a411041d02d410041001000417f460d8c014120212a0cd6010b2000410036029002200041086a411020004190026a41044100100041016a41044d0d8c014121212a0cd5010b20002802900241016a21020c8c010b410121024122212a0cd3010b2000200236029002200041286a41086a220242003703002000420037032841b70f4107200041286a1003200041086a41086a200229030037030020002000290328370308200041086a411020004190026a41041004201e450d8b014123212a0cd2010b201710024124212a0cd1010b201f450d8a014125212a0cd0010b200810024126212a0ccf010b2006450d89014127212a0cce010b200510024128212a0ccd010b20004190026a412c6a212520004190026a410472212620004190026a41206a210d20004190016a412c6a2122200041e0016a41086a2123200041e0016a4104722120200041e0016a410c6a21290c88010b20004190026a41286a200041e0016a41286a290300370300200d200041e0016a41206a29030037030020004190026a41186a200041e0016a41186a29030037030020004190026a41106a200041e0016a41106a29030037030020042023290300370300200020002903e0013703900220004190026a410210ba014129212a0ccb010b200041e0026a10bb0120002802e002210241062112200041e0026a41086a2210280200220f450d9001412a212a0cca010b20022903002103200041c8006a41186a2211200241206a290000370300200041c8006a41106a2216200241186a290000370300200041c8006a41086a2217200241106a290000370300200020022900083703484106211220032001520d900141e100212a0cc9010b200f417f6a2218ad42287e2203422088a70db50141e200212a0cc8010b2003a72204417f4c0db50141e400212a0cc7010b2004450db50141e500212a0cc6010b2004100122190daf010cae010b4108211941e600212a0cc4010b20004190026a41086a220441003602002000201836029402200020193602900220004190026a4100200f41286c41586a41286e220f108201200420042802002218200f6a360200200028029002201841286c6a200241286a200f41286c101e1a2023200428020036020020002000290390023703e001200041e0016a10bc0120002802e401450db30141e700212a0cc3010b20002802e001100241e800212a0cc2010b200041e8006a41186a22142011290300370300200041e8006a41106a22152016290300370300200041e8006a41086a221b20172903003703002000200029034837036841071001220f450dac0141e900212a0cc1010b2000200f36029002200042073702940220004190026a41004107102720042004280200220f41076a2218360200200f2000280290026a220f41002800eb2236000020232018360200200f41046a41002f00ef223b0000200f41066a41002d00f1223a000020002000290390023703e00141201001220f450dac0141ea00212a0cc0010b2000200f36029002200042203702940220004190026a41004120102720042004280200221841206a220f360200201820002802900222196a22182000290368370000201841086a201b290300370000201841106a2015290300370000201841186a20142903003700002000280294022115200041e0016a2023280200200f102720002802e0012218202328020022146a2019200f101e1a20232014200f6a22143602002015450db00141eb00212a0cbf010b2019100241ec00212a0cbe010b20002802e401211d200041086a41086a220f42003703002000420037030820182014200041086a1003200041286a41086a2219200f29030037030020002000290308370328200041286a411041d02d410041001000417f460daf0141ed00212a0cbd010b2000421037020c2000200041286a36020820004190026a200041086a10bd0120002802900222124106460daf0141ee00212a0cbc010b200041e0016a41286a202641286a280200360200200041e0016a41206a202641206a290200370300200041e0016a41186a202641186a290200370300200041e0016a41106a202641106a2902003703002023202641086a290200370300200020262902003703e001200f42003703002000420037030820182014200041086a10032019200f29030037030020002000290308370328200041286a411010050caf010b4106211241ef00212a0cba010b20004190026a41286a220f200041e0016a41286a2219280200360200200d200041e0016a41206a221429030037030020004190026a41186a2215200041e0016a41186a221b29030037030020004190026a41106a2221200041e0016a41106a222429030037030020042023290300370300200020002903e00137039002201d450dae0141f000212a0cb9010b2018100241f100212a0cb8010b20124106460dad0141f200212a0cb7010b2019200f2802003602002014200d290300370300201b2015290300370300202420212903003703002023200429030037030020002000290390023703e001200f2019280200360200200d20142903003703002015201b290300370300202120242903003703002004202329030037030020252000290348370200202541086a2017290300370200202541106a2016290300370200202541186a2011290300370200200020002903e0013703900220004190016a20004190026a41cc00101e1a412b212a0cb6010b20002802e402450d7d412c212a0cb5010b20021002412d212a0cb4010b20124106460d7c412e212a0cb3010b2020200029029001370200202041086a20004190016a41086a290200370200202041106a20004190016a41106a290200370200202041186a20004190016a41186a290200370200202041206a20004190016a41206a290200370200202041286a20004190016a41286a280200360200200020123602e001200041e8006a41186a2215202241186a290000370300200041e8006a41106a221b202241106a290000370300200041e8006a41086a2221202241086a29000037030020002022290000370368200041e0026a104720002802e00221242010280200221d41286c2217450d7c412f212a0cb2010b4100211441002119202421020c7c0b4102211120180d82010c81010b200d200229000037000020004190026a41186a201529030037030020004190026a41106a201b29030037030020004190026a41086a2021290300370300200d41086a200241086a290000370000200d41106a200241106a290000370000200d41186a200241186a2900003700002000200029036837039002410910012204450d7c4131212a0caf010b200020043602482000420937024c200041c8006a410041091027200041c8006a41086a22102010280200220441096a220f360200200420002802486a221141002900f922370000200041286a41086a2204200f360200201141086a41002d0081233a000020002000290348370328200041c8006a20004190026a10be01200028024c211820002802482111200041286a20042802002010280200220f102720002802282210200428020022166a2011200f101e1a20042016200f6a22163602002018450d7c4132212a0cae010b201110024133212a0cad010b200028022c2118200041086a41086a220f42003703002000420037030820102016200041086a10032004200f29030037030020002000290308370328200041286a411041d02d410041001000417f460d7b4134212a0cac010b200041003a0048200041286a4110200041c8006a41014100100041016a41014d0d7b4136212a0cab010b20002d00482111200f42003703002000420037030820102016200041086a10032004200f29030037030020002000290308370328200041286a411010052018450d7d4137212a0caa010b201010024138212a0ca9010b201141ff01714102460d7c4139212a0ca8010b201420114101716a211420192011417f734101716a2119413a212a0ca7010b200241286a2102201741586a22170d72413b212a0ca6010b201920146a210220002802e402450d7a413c212a0ca5010b20241002413d212a0ca4010b201d20026b210220124103470d7b41da00212a0ca3010b20002d00e40141ff01714102470d7b41db00212a0ca2010b20190d7e41dc00212a0ca1010b20020d7c41dd00212a0ca0010b202328020010460c790b2014200220196a4d0d7941d000212a0c9e010b410910012204450d810141d100212a0c9d010b2000200436029002200042093702940220004190026a41004109102720004190026a41086a22042004280200221041096a220f36020020102000280290026a2211410029009823370000200041c8006a41086a2210200f360200201141086a41002d00a0233a0000200020002903900237034841201001220f450d810141d200212a0c9c010b2000200f36029002200042203702940220004190026a41004120102720042004280200221141206a220f360200201120002802900222166a22112000290368370000201141086a2021290300370000201141106a201b290300370000201141186a20152903003700002000280294022117200041c8006a2010280200200f102720002802482211201028020022186a2016200f101e1a20102018200f6a220f3602002017450d810141d300212a0c9b010b2016100241d400212a0c9a010b200028024c2110200041286a41086a22164200370300200042003703282011200f200041286a1003200041086a41086a201629030037030020002000290328370308200041086a411010052010450d800141d500212a0c99010b2011100241d600212a0c98010b20022019720d7f41d800212a0c97010b20004190026a41286a200041e0016a41286a290300370300200d200041e0016a41206a29030037030020004190026a41186a200041e0016a41186a29030037030020004190026a41106a200041e0016a41106a29030037030020042023290300370300200020002903e0013703900220004190026a410110ba010c530b201241077122024103460d7341c000212a0c95010b20020d5241c100212a0c94010b20002802e4012202450d5441c200212a0c93010b20024101470d7141cc00212a0c92010b2029280200450d5341cd00212a0c91010b202328020010020c530b4100211941002114410041006a210220002802e4020d660c650b20002d00e4014101470d4d41cf00212a0c8e010b202310bf010c4d0b20232802002110200041e0016a41106a2802002202450d6c41c400212a0c8c010b200241186c21042010210241c500212a0c8b010b200241046a280200450d6c41c600212a0c8a010b2002280200100241c700212a0c89010b200241106a280200450d6b41c800212a0c88010b2002410c6a280200100241c900212a0c87010b200241186a2102200441686a22040d6741ca00212a0c86010b2029280200450d4941cb00212a0c85010b201010020c490b200041f0026a24000f0b200d417f6a210d41010d340c330b200d417f6a210d41010d310c300b200d417e6a210d41010d2e0c2d0b200d417d6a210d41010d2b0c2a0b200d417c6a210d41010d280c270b101c000b41c1214133102d000b1064000b1065000b4187254139102d000b41c1214133102d000b41c1214133102d000b41f316411c102d000b41b43820182024103c000b419201212a0c740b4101212a0c730b4100212a0c720b4102212a0c710b4104212a0c700b4107212a0c6f0b4107212a0c6e0b4107212a0c6d0b418a01212a0c6c0b4107212a0c6b0b4107212a0c6a0b4107212a0c690b4107212a0c680b4107212a0c670b419101212a0c660b4109212a0c650b4114212a0c640b410b212a0c630b4113212a0c620b4113212a0c610b41d900212a0c600b41d900212a0c5f0b4111212a0c5e0b4113212a0c5d0b4115212a0c5c0b41fd00212a0c5b0b41fb00212a0c5a0b4117212a0c590b41fa00212a0c580b4119212a0c570b411b212a0c560b411a212a0c550b411b212a0c540b411a212a0c530b411b212a0c520b411a212a0c510b411b212a0c500b411a212a0c4f0b411b212a0c4e0b411a212a0c4d0b411b212a0c4c0b411d212a0c4b0b411f212a0c4a0b41f900212a0c490b41f800212a0c480b4122212a0c470b4124212a0c460b4126212a0c450b4128212a0c440b4129212a0c430b4129212a0c420b4129212a0c410b4129212a0c400b4129212a0c3f0b4129212a0c3e0b4129212a0c3d0b4129212a0c3c0b4129212a0c3b0b4129212a0c3a0b412b212a0c390b412b212a0c380b412d212a0c370b41e000212a0c360b41df00212a0c350b4130212a0c340b4130212a0c330b41d900212a0c320b4133212a0c310b41de00212a0c300b4135212a0c2f0b4138212a0c2e0b4137212a0c2d0b4138212a0c2c0b413a212a0c2b0b413d212a0c2a0b413d212a0c290b413c212a0c280b413e212a0c270b413e212a0c260b413f212a0c250b413f212a0c240b413f212a0c230b413f212a0c220b41ce00212a0c210b41c300212a0c200b41ca00212a0c1f0b41c500212a0c1e0b41c700212a0c1d0b41c900212a0c1c0b41d900212a0c1b0b41d900212a0c1a0b41d400212a0c190b41d600212a0c180b41d700212a0c170b41d900212a0c160b41e600212a0c150b41d900212a0c140b41d900212a0c130b41f700212a0c120b41e300212a0c110b41f600212a0c100b41e800212a0c0f0b41ec00212a0c0e0b41f500212a0c0d0b41f400212a0c0c0b41ef00212a0c0b0b41f100212a0c0a0b41f300212a0c090b418001212a0c080b41ff00212a0c070b418301212a0c060b418201212a0c050b418601212a0c040b418501212a0c030b418901212a0c020b418801212a0c010b418d01212a0c000b0b41c1214133102d000b1057000b1056000b41f4214122102d000b41f4214122102d000b41be164135102d000b41c1214133102d000b200f20131055000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41dcc1002004417f6a200d103c000b41ccc1002004200d103c000ba50c03047f017e177f23004180026b22012400200141b0016a41086a22024200370300200142003703b0014191264107200141b0016a1003200141086a2002290300370300200120012903b0013703000240024002400240024002402001411041d02d410041001000417f460d002001200136021020014110360214200141003602b0012001410020014110200141b0016a41044100100022022002417f461b2202410420024104491b2203360218200241034d0d0320012802b0012204ad42d8007e2205422088a70d052005a72202417f4c0d042002450d012002100122060d02101c000b200041003602082000420837020020014180026a24000f0b410821060b20012004360224200120063602202001410036022802402004450d0020014180016a41086a210720014180016a4104722108200121094100210a4110210b4100210c0340200141003602b001200141106a41086a220d41002009200b200141b0016a41042003100022022002417f461b2202410420024104491b20036a3602000240024002400240200241034d0d0020012802b001210e200141b0016a200141106a10bd0120012802b0014106460d0020014180016a41286a200141b0016a41286a220f29030037030020014180016a41206a200141b0016a41206a221029030037030020014180016a41186a2211200141b0016a41186a221229030037030020014180016a41106a2213200141b0016a41106a22142903003703002007200141b0016a41086a2215290300370300200120012903b00137038001200141e0016a41186a22164200370300200141e0016a41106a22174200370300200141e0016a41086a22184200370300200142003703e001200d200d28020022024100200128021022092001280214220b200141e0016a41202002100022022002417f461b2202412020024120491b6a220336020002402002411f4d0d00200141306a41186a22022016290300370300200141306a41106a220d2017290300370300200141306a41086a22162018290300370300200120012903e001370330200141d0006a41086a2217200841086a290200370300200141d0006a41106a2218200841106a290200370300200141d0006a41186a2219200841186a290200370300200141d0006a41206a221a200841206a290200370300200141d0006a41286a221b200841286a28020036020020012008290200370350200128028001221c4106460d01200c41016a210c200f201b2802003602002010201a290300370300201220192903003703002014201829030037030020152017290300370300200720162903003703002013200d29030037030020112002290300370300200120012903503703b0012001200129033037038001200a2001280224470d04200141206a1074200141206a41086a280200210a200128022021060c040b0240024020012802800122024103460d0020020d022001280284012202450d0220024101470d012001418c016a280200450d0220014188016a280200100220012802202103200a0d030c040b20012d0084014101470d012007104b20012802202103200a0d020c030b20014188016a2802002103024020014180016a41106a2802002202450d00200241186c21082003210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200841686a22080d000b0b2001418c016a280200450d00200310020b20012802202103200a450d010b200a41d8006c210820032102034020021038200241d8006a2102200841a87f6a22080d000b0b2001280224450d03200310020c030b2006200a41d8006c6a2202201c3602002002411c6a2012290300370200200241146a20142903003702002002410c6a2015290300370200200220012903b001370204200241246a20102903003702002002412c6a200f2802003602002002200e36023020022001290380013702342002413c6a2007290300370200200241c4006a2013290300370200200241cc006a2011290300370200200141206a41086a200a41016a220a360200200c2004490d000b200128022021060b2006450d00200020012902243702042000200636020020014180026a24000f0b41c1214133102d000b1059000b1058000b8d0402057f017e230041c0006b220224000240024002400240410810012203450d002002200336023020024208370234200241306a4100410810272002280230200228023822036a42e4cab5d3c3ac99b83a3700002002200341086a360238200241086a200228023836020020022002290330370300410410012203450d002002200336023020024204370234200241306a41004104102720022802302203200228023822046a20013600002002200441046a220136023820022802342105200220022802082001102720022802002204200228020822066a20032001101e1a2002200620016a220136020802402005450d00200310020b20022802042103200241306a41086a220542003703002002420037033020042001200241306a1003200241086a20052903003703002002200229033037030002402002411041d02d410041001000417f460d002002200236021020024110360214200242003703302002410020024110200241306a41084100100022012001417f461b2201410820014108491b360218200141074d0d0220022903302107200241306a200241106a103a20022802302201450d022002200229023437032020002001360208200020073703002000200229032037020c200041146a200241286a2802003602002003450d040c030b2000410036020820030d020c030b101c000b41c1214133102d000b200410020b200241c0006a24000bda0101027f0240024020002802002201450d0020014103470d0120002d00044101470d01200041086a22012802001038200128020010020f0b20002802042201450d00024020014101470d002000410c6a280200450d01200041086a28020010020f0b0240200041106a2802002202450d00200041086a2802002101200241186c210203400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200241686a22020d000b0b2000410c6a280200450d00200041086a28020010020f0b0b0a00200020012002100b0bc80403067f017e097f230041d0006b220224002002410036023020012001280208220341002001280200220420012802042205200241306a41042003100022032003417f461b2203410420034104491b6a220636020802400240024002400240200341034d0d0020022802302207ad2208421b88a70d042008420586a72203417f4c0d032003450d012003100122090d02101c000b20004100360200200241d0006a24000f0b410121090b20022007360204200220093602002002410036020802402007450d00200241306a41186a210a200241306a41106a210b410021034100210c0340200a4200370300200b4200370300200241306a41086a220d420037030020024200370330200141086a410020042005200241306a412020061000220e200e417f461b220e4120200e4120491b20066a220636020002400240200e411f4d0d00200c41016a210c200241106a41186a220f200a290300370300200241106a41106a2210200b290300370300200241106a41086a2211200d2903003703002002200229033037031020032002280204470d012002107c200241086a2802002103200228020021090c010b2000410036020002402002280204450d00200910020b200241d0006a24000f0b200920034105746a220e2002290310370000200e41186a200f290300370000200e41106a2010290300370000200e41086a2011290300370000200241086a200341016a2203360200200c2007490d000b0b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b1067000b1066000b2c02017f017e230041106b2201240020002902102102200120002902083703002001200237030820011054000b070020001054000bab0303017f017e047f230041306b220224002000104321030240410810012204450d002002200436022020024208370224200241206a4100410810272002280220200228022822046a42f3e885d3a3ac98b63a3700002002200441086a360228200241106a41086a200228022836020020022002290320370310412010012204450d00200320017c21012002200436022020024220370224200241206a41004120102720022802202205200228022822066a22042000290000370000200441086a200041086a290000370000200441106a200041106a290000370000200441186a200041186a2900003700002002200641206a220036022820022802242106200241106a20022802182000102720022802102204200228021822076a20052000101e1a2002200720006a220036021802402006450d00200510020b2002280214210520022001370308200241206a41086a220642003703002002420037032020042000200241206a1003200241106a41086a200629030037030020022002290320370310200241106a4110200241086a4108100402402005450d00200410020b200241306a24000f0b101c000bcb0501097f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002100200241d8006c21050340200141106a41086a2203410036020020014201370310200041306a2802002102200141106a41004104102720032003280200220641046a2207360200200620012802106a2002360000200141206a200010d80120012802202108200141106a2007200141206a41086a22062802002202102720032002200328020022076a2209360200200720012802106a20082002101e1a02402001280224450d00200810020b200141106a20094120102720032003280200220741206a22023602002007200128021022086a220341086a2000413c6a290000370000200341106a200041c4006a290000370000200341186a200041cc006a2900003700002003200041346a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200641003602002001200236022420012003360220200141206a41002002102720062006280200220720026a22033602002007200128022022066a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002207200428020022086a20062003101e1a2004200820036a220336020002402002450d00200610020b200041d8006a2100200541a87f6a22050d000c020b0b20012802082103200128020021070b20012802042100200141206a41086a22024200370300200142003703204191264107200141206a1003200141106a41086a200229030037030020012001290320370310200141106a411020072003100402402000450d00200710020b200141306a24000f0b1019000b101c000be50c03037f017e047f230041a0016b22032400200341086a220442003703002003420037030041852741072003100320034180016a41086a200429030037030020032003290300370380010240024020034180016a411041d02d410041001000417f460d00200341003602400240024020034180016a4110200341c0006a41044100100041016a41044d0d00024020032802402205450d0020032005417f6a104020032802084106460d00200341c0006a41086a2204200341086a290300370300200341c0006a41386a200341386a290300370300200341c0006a41306a200341306a290300370300200341c0006a41286a200341286a290300370300200341c0006a41206a200341206a290300370300200341c0006a41186a200341186a290300370300200341c0006a41106a200341106a290300370300200320032903002206370340024002400240200428020022044103460d0020040d02200341cc006a2802002204450d0220044101470d01200341d4006a280200450d02200341d0006a280200100220062000580d030c070b200341cc006a2d00004101470d01200341d0006a102220062000580d020c060b200341c0006a41106a28020021070240200341c0006a41186a2802002204450d00200441186c21082007210403400240200441046a280200450d00200428020010020b0240200441106a280200450d002004410c6a28020010020b200441186a2104200841686a22080d000b0b200341d4006a280200450d00200710020b20062000560d040b2003200541016a360240200341086a220442003703002003420037030041852741072003100320034180016a41086a22082004290300370300200320032903003703800120034180016a4110200341c0006a41041004200341c0006a41106a200141086a290300370300200341c0006a41186a200141106a290300370300200341c0006a41206a200141186a290300370300200341c0006a41286a200141206a290300370300200341f0006a200141286a29030037030020032000370340200320023a007820032001290300370348410810012201450d01200320013602002003420837020420034100410810272003280200200328020822016a42e4cab5d383cedcb73a3700002003200141086a360208200820032802083602002003200329030037038001410410012201450d01200341c0006a41086a21022003200136020020034204370204200341004104102720032802002204200328020822016a20053600002003200141046a22013602082003280204210820034180016a20032802880120011027200328028001220520032802880122076a20042001101e1a2003200720016a22073602880102402008450d00200410020b200328028401210841002104200341003602980120034201370390012003290340210020034190016a41004108102720032802900120032802980122016a20003700002003200141086a2209360298012003200210d8012003280200210220034190016a20092003280208220110272003200120032802980122096a220a3602980120092003280290016a20022001101e1a02402003280204450d00200210020b02400240200341f8006a2d000022014103714102460d0020014101470d01410121040c010b410221040b20034190016a200a4101102720034190016a41086a22012001280200220241016a2209360200200220032802900122016a20043a0000200341086a2204420037030020034200370300200520072003100320034180016a41086a2004290300370300200320032903003703800120034180016a41102001200910040240200328029401450d00200110020b02402008450d00200510020b024002400240200328024822014103460d0020010d02200341cc006a2802002201450d0220014101470d01200341d4006a280200450d02200341d0006a2802001002200341a0016a24000f0b200341cc006a2d00004101470d01200341d0006a1022200341a0016a24000f0b0240200341c0006a41186a2802002204450d00200341c0006a41106a2802002101200441186c210403400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200441686a22040d000b0b200341d4006a280200450d00200341d0006a28020010020b200341a0016a24000f0b41c1214133102d000b101c000b41f4214122102d000b4184c000103b000b810a03057f017e067f230041c0016b220224000240024002400240410810012203450d002002200336029001200242083702940120024190016a41004108102720022802900120022802980122036a42e4cab5d383cedcb73a3700002002200341086a36029801200241e0006a41086a2002280298013602002002200229039001370360410410012203450d002002200336029001200242043702940120024190016a410041041027200228029001220320022802980122046a20013600002002200441046a2201360298012002280294012105200241e0006a20022802682001102720022802602204200228026822066a20032001101e1a2002200620016a220136026802402005450d00200310020b2002280264210520024190016a41086a2203420037030020024200370390012004200120024190016a1003200241086a41086a20032903003703002002200229039001370308024002400240200241086a411041d02d410041001000417f460d002002200241086a3602182002411036021c200242003703900120024100200241086a411020024190016a41084100100022012001417f461b2201410820014108491b360220200141074d0d06200229039001210720024190016a200241186a10bd012002280290014106460d06200241e0006a41286a20024190016a41286a290300370300200241e0006a41206a20024190016a41206a290300370300200241e0006a41186a20024190016a41186a290300370300200241e0006a41106a20024190016a41106a290300370300200241e0006a41086a20024190016a41086a2903003703002002200229039001370360200241003a0030200241186a41086a2201200128020022012002280218200228021c200241306a41012001100041016a220141014b6a360200024020014102490d0020022d0030220141034f0d00200241386a2206200241ec006a290200370300200241c0006a2208200241e0006a41146a290200370300200241c8006a2209200241e0006a411c6a290200370300200241d0006a220a200241e0006a41246a290200370300200241d8006a220b200241e0006a412c6a2802003602002002200229026437033020022802602103200241286a41066a220c200241e0006a41066a2d00003a0000200241286a41046a220d200241e0006a41046a2f00003b01002002200228006036022820034106460d0720002003360208200020073703002000200229033037020c20002002280228360039200041386a20013a0000200041146a20062903003702002000411c6a2008290300370200200041246a20092903003702002000412c6a200a290300370200200041346a200b2802003602002000413d6a200d2f01003b00002000413f6a200c2d00003a000020050d020c030b200228026022010d0420022802642201450d0620014101460d05200241e8006a28020021030240200241e0006a41106a2802002201450d00200141186c21002003210103400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200041686a22000d000b0b200241ec006a280200450d06200310020c060b200041063602082005450d010b200410020b200241c0016a24000f0b101c000b20014103470d0120022d00644101470d01200241e8006a104b41c1214133102d000b200241ec006a280200450d00200241e8006a280200100241c1214133102d000b41c1214133102d000b080041fc31103b000b960201057f230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42e4cab5d3e38e9db93a3700002002200341086a360218200241086a200228021836020020022002290310370300410410012203450d002002200336021020024204370214200241106a41004104102720022802102203200228021822046a20013600002002200441046a220136021820022802142105200220022802082001102720022802002204200228020822066a20032001101e1a2002200620016a220136020802402005450d00200310020b2002280204210320002004200110da0102402003450d00200410020b200241206a24000f0b101c000bc70302057f017e230041206b220124000240410810012202450d002001200236021020014208370214200141106a4100410810272001280210200128021822026a42f3e885d3a3ac98b63a3700002001200241086a360218200141086a200128021836020020012001290310370300412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bc70302057f017e230041206b220124000240410810012202450d002001200236021020014208370214200141106a4100410810272001280210200128021822026a42f3e885d3c3cdd8b73a3700002001200241086a360218200141086a200128021836020020012001290310370300412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bb80201047f230041206b2202240020024100360208200242013703002001280200210320024100410410272002280200200228020822046a20033600002002200441046a2203360208200220034120102720022802002204200228020822056a22032001290004370000200341086a2001410c6a290000370000200341106a200141146a290000370000200341186a2001411c6a2900003700002002200541206a220136020802402001417f4c0d00024002402001450d002001100122030d01101c000b410121030b200220013602142002200336021020024100360218200241106a41002001102720022002280218220320016a360218200320022802106a20042001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200410020b200241206a24000f0b1019000bc808010d7f230041d0006b220124000240410810012202450d00200120023602082001420837020c200141086a4100410810272001280208200128021022026a42e4cab5d383cedcb73a3700002001200241086a360210200141c0006a41086a200128021036020020012001290308370340410410012202450d00200120023602082001420437020c200141086a41004104102720012802082203200128021022026a20003600002001200241046a2202360210200128020c2104200141c0006a20012802482002102720012802402205200128024822066a20032002101e1a2001200620026a220236024802402004450d00200310020b20012802442103200141c0006a41086a220442003703002001420037034020052002200141c0006a1003200141306a41086a200429030037030020012001290340370330200141306a4110100502402003450d00200510020b410810012202450d00200120023602082001420837020c200141086a4100410810272001280208200128021022026a42e4cab5d3e38e9db93a3700002001200241086a360210200141c0006a41086a200128021036020020012001290308370340410410012202450d00200120023602082001420437020c200141086a41004104102720012802082203200128021022026a20003600002001200241046a2202360210200128020c2104200141c0006a20012802482002102720012802402205200128024822066a20032002101e1a2001200620026a220236024802402004450d00200310020b20012802442103200141c0006a41086a220442003703002001420037034020052002200141c0006a1003200141306a41086a200429030037030020012001290340370330200141306a4110100502402003450d00200510020b200141086a20001042200128020c210720012802082108024020012802102202450d0020024105742109200141086a410472210420082102034020042002290000370000200441186a200241186a290000370000200441106a200241106a290000370000200441086a200241086a29000037000020012000360208410810012203450d022001200336024020014208370244200141c0006a410041081027200141c0006a41086a22032003280200220541086a360200200520012802406a42e4cab5d3e3ee9bba3a370000200141306a41086a2205200328020036020020012001290340370330200141c0006a200141086a10452001280244210a2001280240210b200141306a20052802002003280200220610272001280230220c2005280200220d6a200b2006101e1a2005200d20066a22063602000240200a450d00200b10020b2001280234210b2003420037030020014200370340200c2006200141c0006a10032005200329030037030020012001290340370330200141306a411010050240200b450d00200c10020b200241206a2102200941606a22090d000b0b02402007450d00200810020b200141d0006a24000f0b101c000b810604047f017e097f037e230041e0006b22012400200141c0006a41086a220242003703002001420037034041c7114107200141c0006a1003200141086a2002290300370300200120012903403703000240024002400240024002402001411041d02d410041001000417f460d0020014100360240410020014110200141c0006a41044100100022022002417f461b220341034d0d0320012802402204ad42287e2205422088a70d042005a72202417f4c0d052002450d012002100122060d02101c000b2000410036020820004208370200200141e0006a24000f0b410821060b200120043602142001200636021020014100360218024002402004450d002003410420034104491b2107200141c0006a41186a2108200141c0006a41086a2109410021034100210a034020084200370300200141c0006a41106a220b42003703002009420037030020014200370340410020014110200141c0006a41202007100022022002417f461b2202411f4d0d02200141206a41186a220c2008290300370300200141206a41106a220d200b290300370300200141206a41086a220e20092903003703002001200129034037032020014200370340410020014110200141c0006a41082002412020024120491b20076a2207100022022002417f461b220241074d0d02200a41016a210a2002410820024108491b2102200129034021052008200c290300370300200b200d2903003703002009200e29030037030020012001290320370340024020032001280214470d00200141106a1078200141106a41086a2802002103200128021021060b200220076a21072006200341286c6a220220012903403703002009290300210f200b29030021102008290300211120022005370320200241186a2011370300200241106a2010370300200241086a200f370300200141106a41086a200341016a2203360200200a2004490d000b200128021021060b2006450d012000200129021437020420002006360200200141e0006a24000f0b2001280214450d00200610020b41c1214133102d000b1056000b1057000bf81505037f017e087f017e047f230041f0006b22002400200041086a41086a220142003703002000420037030841c81d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350024002400240024002400240200041d0006a411041d02d410041001000417f460d00200042003703080240024002400240200041d0006a4110200041086a41084100100041016a41084d0d002000200029030842017c370340200041086a41086a220142003703002000420037030841c81d4107200041086a1003200041d0006a41086a2202200129030037030020002000290308370350200041d0006a4110200041c0006a41081004200142003703002000420037030841cf1d4107200041086a100320022001290300370300200020002903083703500240200041d0006a411041d02d410041001000417f460d0020004200370308200041d0006a4110200041086a41084100100041016a41084d0d02200020002903082203370330200041086a41086a220142003703002000420037030841c11d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350200041d0006a411041d02d410041001000417f460d0920004200370308200041d0006a4110200041086a41084100100041016a41084d0d0320032000290308510d0020002003370340200041086a41086a220142003703002000420037030841c11d4107200041086a1003200041d0006a41086a2202200129030037030020002000290308370350200041d0006a4110200041c0006a410810042000102e370340200142003703002000420037030841ba1d4107200041086a10032002200129030037030020002000290308370350200041d0006a4110200041c0006a410810040b200041086a41086a220142003703002000420037030841d61d4108200041086a1003200041d0006a41086a2001290300370300200020002903083703504100210102400240200041d0006a411041d02d410041001000417f460d00200042103702442000200041d0006a360240200041086a200041c0006a103a20002802082204450d0b200041106a2802002101200028020c21050c010b41012104410021050b2000410036024820004208370340200041c0006a20014105742206410575108501200028024821022000280240210702402006450d002007200241286c6a21012002200641606a4105766a2108200421020340200041086a41186a2209200241186a290000370300200041086a41106a220a200241106a290000370300200041086a41086a220b200241086a29000037030020002002290000370308200041086a10432103200041086a1044210c200041d0006a41186a220d2009290300370300200041d0006a41106a2209200a290300370300200041d0006a41086a220a200b290300370300200020002903083703502001200c20037c370300200141206a200d290300370300200141186a2009290300370300200141106a200a290300370300200141086a2000290350370300200141286a2101200241206a2102200641606a22060d000b200841016a21020b02402005450d00200410020b200041c0006a41086a20023602002000280244210820072002410041202002676b10c401200041086a41086a220142003703002000420037030841de1d4107200041086a1003200041d0006a41086a200129030037030020002000290308370350200041d0006a411041d02d410041001000417f460d0520004100360208200041d0006a4110200041086a41044100100041016a41044d0d032000280208210b2000410036024820004201370340200041c0006a4100200241286c220941286d2201200b2001200b491b1086012000280248210a2000280240210e0240200b450d00200e200a4105746a2102200041086a41086a21062007210103402009450d01200041086a41206a200141206a290300370300200041086a41186a200141186a290300370300200041086a41106a200141106a2903003703002006200141086a290300370300200041d0006a41086a220d200641086a290000370300200041d0006a41106a2204200641106a290000370300200041d0006a41186a2205200641186a2900003703002000200129030037030820002006290000370350200241186a2005290300370000200241106a2004290300370000200241086a200d29030037000020022000290350370000200941586a2109200a41016a210a200241206a2102200141286a2101200b417f6a220b0d000b0b02402008450d00200710020b200041c8006a200a360200200aad2203421b88a70d062003420586a72201417f4c0d072000280244210f024002402001450d002001100122010d01101c000b410121010b2000200a36020c2000200136020820004100360210200041086a4100200a108601200020002802102201200a6a360210200028020820014105746a200e200a4105742202101e1a200041306a41086a200028021036020020002000290308370330200041c0006a200041306a10a2012000280248210620002802402101200041086a41086a220942003703002000420037030841e4084107200041086a1003200041d0006a41086a200929030037030020002000290308370350200041d0006a411020012006100402402000280244450d00200110020b02402000280234450d00200028023010020b410021062000410036024820004201370340200041c0006a4100200241057510860120002802482101200028024021100240200a4105742209450d00200041086a41186a220a200e41186a290000370300200041086a41106a220b200e41106a290000370300200041086a41086a220d200e41086a2900003703002000200e290000370308200141016a2104200e41206a2102200941606a2109201020014105746a210102400340200041d0006a41186a2205200a290300370300200041d0006a41106a2207200b290300370300200041d0006a41086a2208200d29030037030020002000290308370350200141186a2005290300370000200141106a2007290300370000200141086a2008290300370000200120002903503700002009450d01200a200241186a290000370300200b200241106a290000370300200d200241086a29000037030020002002290000370308200441016a2104200241206a2102200941606a2109200141206a21010c000b0b200421010b200041c0006a41086a20013602002000280244210d02402001450d002001410574210241002106200041086a41086a210a201021010340200041086a2006103220002802082209200a2802002001412010040240200028020c450d00200910020b200141206a2101200641016a2106200241606a22020d000b0b200041086a10302000280208220120002802101031210b0240200028020c450d00200110020b0240200b20064d0d00200041106a210a200621010340200041086a103020002802082202200a280200103121090240200028020c450d00200210020b200141016a21020240200920014d0d00200041086a2001103220002802082201200a2802001005200028020c450d00200110020b20022101200b2002470d000b0b200041086a103020002802102102200028020821012000200636025020012002200041d0006a410410040240200028020c450d00200110020b0240200d450d00201010020b0240200f450d00200e10020b200041f0006a24000f0b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b1066000b1067000b41f4214122102d000b41c1214133102d000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341286c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000bf40403067f017e027f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a2203410036020020014201370310200141106a41004120102720032003280200220241206a2206360200200220012802106a220241186a200041186a290000370000200241106a200041106a290000370000200241086a200041086a29000037000020022000290000370000200041206a2903002107200141106a20064108102720032003280200220641086a22023602002006200128021022086a20073700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220641003602002001200236022420012003360220200141206a41002002102720062006280200220920026a22033602002009200128022022066a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20062003101e1a2004200820036a220336020002402002450d00200610020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a220042003703002001420037032041c7114107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000be60101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a104b200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020bd60403047f017e087f230041c0006b2203240020024103742104410021050240024002400240024002402002450d0020044103752206ad4202862207a722084100480d042007422088a74100470d04200810012209450d05200120046a220a2001460d010c020b4104210941002106200120046a220a2001470d010b4101210c410021040c010b20024103742108200a41786a210b410021022009210403402004200120026a41046a280200360200200441046a21042008200241086a2202470d000b200b20016b41037641016a21054101210c410021044100210803402001280200210d0240024002402004200822026b200141046a280200220b4f0d002002200b6a22082002490d052004410174220e20082008200e491b220e4100480d052004450d01200e1001220f450d06200f200c200e20042004200e4b1b101e210f200c1002200e2104200f210c0c020b2002200b6a21080c010b200e2104200e1001220c450d040b200c20026a200d200b101e1a200141086a2201200a470d000b0b200341206a41186a22014200370300200341206a41106a22024200370300200341206a41086a2208420037030020034200370320200c20092005200341206a1007200341186a2001290300370300200341106a2002290300370300200341086a20082903003703002003200329032037030002402004450d00200c10020b02402006450d00200910020b20002003290300370000200041186a200341186a290300370000200041106a200341106a290300370000200041086a200341086a290300370000200341c0006a24000f0b1041000b101c000b14002006200710082008ad10092009ad100900000b0b0041e70a4122100800000b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b1050000b05001041000ba60101047f200141086a28020021024104210302400240410410012204450d002004200236000020012802002105024002402002450d00200241046a22032002490d0320034108200341084b1b22034100480d03200310012201450d02200120042003410420034104491b101e1a200410020c010b200421010b200141046a20052002101e1a20002003360204200020013602002000200241046a3602080f0b101c000b1041000b0600200010010b0600200010020b2500200020002000200020002000200028020020002802042000280208200028020c104d000b080041a4321054000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1069000b05001041000b850101057f410421010240024002400240200041046a2802002202450d0020024180808010710d03200028020021012002410674220310012204450d0220042001200320024105742205200520034b1b101e1a20011002200241017421010c010b41800110012204450d010b20002004360200200041046a20013602000f0b101c000b106b000b05001041000b840101057f410421010240024002400240200041046a2802002202450d0020024180066c2201417f4c0d0320002802002103200110012204450d0220042003200120024180036c2205200520014b1b101e1a20031002200241017421010c010b41800c10012204450d010b20002004360200200041046a20013602000f0b101c000b106d000b05001041000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1070000b05001041000b850101057f410421010240024002400240200041046a2802002202450d00200241808080c000710d03200028020021012002410474220310012204450d0220042001200320024103742205200520034b1b101e1a20011002200241017421010c010b412010012204450d010b20002004360200200041046a20013602000f0b101c000b1072000b05001041000b05001041000b840101057f410421010240024002400240200041046a2802002202450d00200241b0016c2201417f4c0d0320002802002103200110012204450d02200420032001200241d8006c2205200520014b1b101e1a20031002200241017421010c010b41e00210012204450d010b20002004360200200041046a20013602000f0b101c000b1075000b05001041000b820101057f410421010240024002400240200041046a2802002202450d00200241306c2201417f4c0d0320002802002103200110012204450d02200420032001200241186c2205200520014b1b101e1a20031002200241017421010c010b41e00010012204450d010b20002004360200200041046a20013602000f0b101c000b1077000b05001041000b830101057f410421010240024002400240200041046a2802002202450d00200241d0006c2201417f4c0d0320002802002103200110012204450d02200420032001200241286c2205200520014b1b101e1a20031002200241017421010c010b41a00110012204450d010b20002004360200200041046a20013602000f0b101c000b1079000b05001041000b850101057f410421010240024002400240200041046a2802002202450d00200241808080c000710d03200028020021012002410474220310012204450d0220042001200320024103742205200520034b1b101e1a20011002200241017421010c010b412010012204450d010b20002004360200200041046a20013602000f0b101c000b107b000b05001041000b850101057f0240024002400240200041046a2802002201450d0020014180808010710d03200028020021022001410674220310012204450d0220042002200320014105742205200520034b1b101e1a20021002200141017421010c010b41800110012204450d01410421010b20002004360200200041046a20013602000f0b101c000b107d000b05001041000b7901047f0240024002400240200041046a2802002201450d002001418080808004710d03200028020021022001410174220310012204450d022004200220032001200120034b1b101e1a200210020c010b410410012204450d01410421030b20002004360200200041046a20033602000f0b101c000b107f000b05001041000b860101057f410421010240024002400240200041046a2802002202450d0020024180808020710d03200028020021012002410574220310012204450d0220042001200320024104742205200520034b1b101e1a20011002200241017421010c010b41c00010012204450d010b20002004360200200041046a20013602000f0b101c000b108101000b05001041000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341286c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad42187e2205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d04200220062001200341186c2203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000ba20103037f017e017f024002400240200041046a280200220220014f0d00200241017422032001200320014b1b2204ad420c7e2205a722014100480d012005422088a74100470d01024002402002450d0020002802002106200110012203450d042003200620012002410c6c2202200220014b1b101e1a200610020c010b200110012203450d030b20002003360200200041046a20043602000b0f0b1041000b101c000ba20103037f017e017f024002400240200041046a280200220220014f0d00200241017422032001200320014b1b2204ad42287e2205a722014100480d012005422088a74100470d01024002402002450d0020002802002106200110012203450d04200320062001200241286c2202200220014b1b101e1a200610020c010b200110012203450d030b20002003360200200041046a20043602000b0f0b1041000b101c000bba0103027f017e017f024002400240200041046a280200220320016b20024f0d00200120026a220220014922010d01200341017422044100200220011b2201200420014b1b2204ad4205862205a722014100480d012005422088a74100470d01024002402003450d0020002802002106200110012202450d0420022006200120034105742203200320014b1b101e1a200610020c010b200110012202450d030b20002002360200200041046a20043602000b0f0b1041000b101c000b0e0002402001450d00200010020b0bc00d010f7f230041e0066b220424000240200128020422052f01be032206410a4b0d00200441a8036a41206a2207200341206a290300370300200441a8036a41186a2208200341186a290300370300200441a8036a41106a2209200341106a290300370300200441a8036a41086a220a200341086a290300370300200420032903003703a8032005200128020c220b4105746a220341e0036a200341c0036a220c2006200b6b41057410391a200341d8036a200241186a290000370000200341d0036a200241106a290000370000200341c8036a200241086a290000370000200c20022900003700002005200b41286c6a220341286a2003200541be036a22052f0100200b6b41286c10391a200341206a2007290300370300200341186a2008290300370300200341106a2009290300370300200341086a200a290300370300200320042903a803370300200520052f010041016a3b0100200441b3036a200141086a280000360000200041003a000020002003360260200041106a200128020c360000200420012900003700ab03200020042900a803370001200041086a200441af036a290000370000200441e0066a24000f0b2001280208210d2001280200210e024041a0061001220b450d00200b200441a8036a41b803101e220b41003b01be03200b41003602b803200b41c0036a200441c8006a41e002101e210f200441286a41186a220c20054198056a290200370300200441286a41106a221020054190056a290200370300200441286a41086a221120054188056a290200370300200441a8036a41086a2206200541f8016a290300370300200441a8036a41106a220720054180026a290300370300200441a8036a41186a220820054188026a290300370300200441a8036a41206a220920054190026a290300370300200420054180056a290200370328200420052903f0013703a803200f200541a0056a200541be036a220a2f010041796a2212410574101e210f200b20054198026a201241286c101e210b200a41063b0100200b20123b01be03200441186a200c290300370300200441106a2010290300370300200441086a201129030037030020042004290328370300200441c8006a41206a2009290300370300200441c8006a41186a2008290300370300200441c8006a41106a2007290300370300200441c8006a41086a2006290300370300200420042903a803370348200441003602242004200b36022002400240200128020c220141064b0d002009200341206a2903003703002008200341186a2903003703002007200341106a2903003703002006200341086a290300370300200420032903003703a803200520014105746a220341e0036a200341c0036a220b200a2f010020016b41057410391a200341d8036a200241186a290000370000200341d0036a200241106a290000370000200341c8036a200241086a290000370000200b20022900003700002005200141286c6a220341286a2003200a2f010020016b41286c10391a200341206a2009290300370300200341186a2008290300370300200341106a2007290300370300200341086a2006290300370300200320042903a803370300200a200a2f010041016a3b01000c010b200c200241186a2900003703002010200241106a2900003703002011200241086a290000370300200420022900003703282009200341206a2903003703002008200341186a2903003703002007200341106a2903003703002006200341086a290300370300200420032903003703a803200f20014105746a41c07e6a200f200141796a22024105746a2203200b2f01be0320026b41057410391a200341186a200c290300370000200341106a2010290300370000200341086a201129030037000020032004290328370000200b200141286c6a220141907e6a200141e87d6a2203200b2f01be0320026b41286c10391a200141887e6a2009290300370300200141807e6a2008290300370300200141f87d6a2007290300370300200141f07d6a2006290300370300200320042903a803370300200b200b2f01be0341016a3b01be030b200041013a000020002004290300370001200041246a200e360000200041286a20053600002000412c6a200d360000200041306a2004290320370300200041386a2004290348370300200041096a200441086a290300370000200041116a200441106a290300370000200041196a200441186a290300370000200041d0006a200441c8006a41186a290300370300200041c8006a200441c8006a41106a290300370300200041c0006a200441c8006a41086a290300370300200041d8006a200441e8006a29030037030020002003360260200441e0066a24000f0b101c000ba108010a7f230041c0026b220424000240200128020422052f018e022206410a4b0d00200441286a41086a2207200241086a28020036020020042002290200370328200441386a41086a2208200341086a280200360200200420032902003703382005200128020c2202410c6c2203410c6a22096a200520036a220a200620026b410c6c10391a200a41086a2007280200360200200a200429032837020020054184016a220620096a200620036a22032005418e026a22052f010020026b410c6c10391a200341086a200828020036020020032004290338370200200520052f010041016a3b0100200128020c210520004100360200200041106a2005360200200020062005410c6c6a360230200020012902003702042000410c6a200141086a280200360200200441c0026a24000f0b2001280208210b2001280200210c024041900210012206450d002006200441386a418802101e220641003b018e022006410036028802200441386a41086a220a200541d0006a280200360200200441286a41086a2207200541d4016a280200360200200420052902483703382004200541cc016a2902003703282006200541d4006a2005418e026a22082f010041796a2209410c6c220d101e22064184016a200541d8016a200d101e210d200841063b0100200620093b018e02200441086a200a28020036020020042004290338370300200441106a41086a200728020036020020042004290328370310200441003602242004200636022002400240200128020c220941064b0d002007200241086a28020036020020042002290200370328200a200341086a2802003602002004200329020037033820052009410c6c2201410c6a22036a200520016a220220082f010020096b410c6c10391a200241086a20072802003602002002200429032837020020054184016a220220036a200220016a220120082f010020096b410c6c10391a200141086a200a28020036020020012004290338370200200820082f010041016a3b01000c010b2007200241086a28020036020020042002290200370328200a200341086a2802003602002004200329020037033820062009410c6c220141b87f6a22026a2006200141ac7f6a22036a220120062f018e02200941796a22086b410c6c10391a200141086a200728020036020020012004290328370200200d20026a200d20036a220120062f018e0220086b410c6c10391a200141086a200a28020036020020012004290338370200200620062f018e0241016a3b018e020b200041013602002000200c36020420002001360230200041086a20053602002000410c6a200b360200200041106a20042903003702002000411c6a2004290310370200200041286a2004290320370200200041186a200441086a280200360200200041246a200441106a41086a280200360200200441c0026a24000f0b101c000bf307010d7f23004180036b220624000240200128020422072f018e02410a4b0d00200641c8006a41086a200241086a28020036020020062002290200370348200641f8006a41086a200341086a280200360200200620032902003703782001200641c8006a200641f8006a2004108b0120004100360200200020012902003702042000410c6a200141086a29020037020020064180036a24000f0b2001280208210820012802002109024041c0021001220a450d004100210b200a200641f8006a418802101e220a41003b018e02200a410036028802200a200629024837029002200a4198026a200641c8006a41086a220c290200370200200a41a0026a200641d8006a290200370200200a41a8026a200641e0006a290200370200200a41b0026a200641e8006a290200370200200a41b8026a200641f0006a290200370200200c200741d0006a28020036020020062007290248370348200641f8006a41086a220d200741d4016a2802003602002006200741cc016a290200370378200a200741d4006a2007418e026a220e2f0100220f41796a2210410c6c2211101e22124184016a200741d8016a2011101e1a20124190026a220a200741ac026a200f417a6a220f410274101e1a200e41063b0100201220103b018e020240200f450d000340200a280200220e200b3b018c02200e201236028802200a41046a210a200b41016a220b200f490d000b0b200641386a41086a220b200c280200360200200641286a41086a220a200d2802003602002006200629034837033820062006290378370328200641086a200b28020036020020062006290338370300200641106a41086a200a28020036020020062006290328370310200620093602242006201236022002400240200128020c220b41064b0d002006200736027c2006200936027820062008360280012006200b36028401200641386a41086a200241086a28020036020020062002290200370338200641c8006a41086a200341086a28020036020020062003290200370348200641f8006a200641386a200641c8006a2004108b010c010b2006201236027c200620093602782006200b41796a360284012006200641206a36028001200641386a41086a200241086a28020036020020062002290200370338200641c8006a41086a200341086a28020036020020062003290200370348200641f8006a200641386a200641c8006a2004108b010b2000200936020420004101360200200041086a20073602002000410c6a2008360200200041106a20062903003702002000411c6a2006290310370200200041286a2006290320370200200041186a200641086a280200360200200041246a200641106a41086a28020036020020064180036a24000f0b101c000b890301077f230041206b22042400200041046a22052802002106200028020c2107200441086a2208200141086a28020036020020042001290200370300200441106a41086a2209200241086a2802003602002004200229020037031020062007410c6c2202410c6a220a6a200620026a220120062f018e0220076b410c6c10391a200141086a20082802003602002001200429030037020020064184016a2201200a6a200120026a220220062f018e0220076b410c6c10391a200241086a200928020036020020022004290310370200200620062f018e0241016a3b018e0220064190026a2206200028020c22074102746a41086a2006200741016a22074102746a220620052802002f018e0220076b41027410391a200620033602000240200028020c220041016a220620052802002f018e0222034b0d0020004102744194026a21000340200641016a22072006490d012005280200220220006a2802002201200236028802200120063b018c02200041046a210020072106200720034d0d000b0b200441206a24000bd40c02117f017e230041c0076b220624000240200128020422072f01be03410a4b0d00200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a29030037030020062003290300370388042001200641f8006a20064188046a2004108d01200041003a0000200041046a20012902003702002000410c6a200141086a290200370200200641c0076a24000f0b2001280208210820012802002109024041d0061001220a450d004100210b200a20064188046a41b803101e220a41003b01be03200a41003602b803200a41c0036a200641f8006a419003101e210c200641286a41186a220d20074198056a290000370300200641286a41106a220e20074190056a290000370300200641286a41086a220f20074188056a290000370300200620074180056a29000037032820064188046a41206a221020074190026a29030037030020064188046a41186a221120074188026a29030037030020064188046a41106a221220074180026a29030037030020064188046a41086a2213200741f8016a290300370300200620072903f00137038804200c200741a0056a200741be036a22142f0100221541796a2216410574101e1a200a20074198026a201641286c101e220c41a0066a220a200741bc066a2015417a6a2215410274101e1a201441063b0100200c20163b01be0302402015450d000340200a2802002216200b3b01bc032016200c3602b803200a41046a210a200b41016a220b2015490d000b0b200641f8006a41206a220b2010290300370300200641f8006a41186a220a2011290300370300200641f8006a41106a22162012290300370300200641f8006a41086a22152013290300370300200641d8006a41086a2210200f290300370300200641d8006a41106a2211200e290300370300200641d8006a41186a2212200d290300370300200620062903880437037820062006290328370358200641086a41186a2012290300370300200641086a41106a2011290300370300200641086a41086a201029030037030020062006290358370308200641286a41206a200b290300370300200d200a290300370300200e2016290300370300200f201529030037030020062006290378370328200620093602542006200c36025002400240200128020c220b41064b0d002006200736025c20062009360258200620083602602006200b360264200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a2903003703002006200329030037038804200641d8006a200641f8006a20064188046a2004108d010c010b2006200c36025c200620093602582006200b41796a3602642006200641d0006a360260200641f8006a41186a200241186a290000370300200641f8006a41106a200241106a290000370300200641f8006a41086a200241086a2900003703002006200229000037037820064188046a41206a200341206a29030037030020064188046a41186a200341186a29030037030020064188046a41106a200341106a29030037030020064188046a41086a200341086a2903003703002006200329030037038804200641d8006a200641f8006a20064188046a2004108d010b20002006290308370001200041246a2009360200200041286a20073602002000412c6a2008360200200041386a2006290328370300200041096a200641086a41086a290300370000200041116a200641086a41106a290300370000200041196a200641086a41186a290300370000200041c0006a200641286a41086a290300370300200041c8006a200641286a41106a290300370300200041d0006a200641286a41186a290300370300200041d8006a200641c8006a29030037030020062903502117200041013a0000200041306a2017370200200641c0076a24000f0b101c000bb804010b7f230041d0006b22042400200041046a22052802002106200028020c2107200441086a41186a2208200141186a290000370300200441086a41106a2209200141106a290000370300200441086a41086a220a200141086a29000037030020042001290000370308200441286a41206a2201200241206a290300370300200441286a41186a220b200241186a290300370300200441286a41106a220c200241106a290300370300200441286a41086a220d200241086a29030037030020042002290300370328200620074105746a220241e0036a200241c0036a220e20062f01be0320076b41057410391a200241d8036a2008290300370000200241d0036a2009290300370000200241c8036a200a290300370000200e20042903083700002006200741286c6a220241286a200220062f01be0320076b41286c10391a200241206a2001290300370300200241186a200b290300370300200241106a200c290300370300200241086a200d29030037030020022004290328370300200620062f01be0341016a3b01be03200641a0066a2206200028020c22024102746a41086a2006200241016a22024102746a220620052802002f01be0320026b41027410391a200620033602000240200028020c220241016a220620052802002f01be0322034b0d00200241027441a4066a21020340200641016a22012006490d012005280200220020026a280200220720003602b803200720063b01bc03200241046a210220012106200120034d0d000b0b200441d0006a24000b8614010e7f230041d0006b220424004100210502404101417f100d2206417f460d002004410036020820044204370300200441386a41ae0d4103102a200441106a41b10d410f102a200441cc006a2207200441106a41086a220528020036020020042004290310370244200441106a41106a2208200441386a41106a22092903003703002005200441386a41086a220a290300370300200420042903383703102004106a2004280204210b2004280200220c2004280208220d4105746a220e2004290310370200200e4100360218200e41086a2005290300370200200e41106a2008290300370200200e411c6a41013602002004200d41016a220d360208200441386a41ae0d4103102a200441106a41c00d410f102a2007200528020036020020042004290310370244200820092903003703002005200a290300370300200420042903383703100240200d200b470d002004106a200441086a280200210d2004280200210c2004280204210b0b200c200d4105746a220e2004290310370200200e4100360218200e41106a2008290300370200200e41086a2005290300370200200e411c6a4102360200200441086a200d41016a220e360200200441386a41ae0d4103102a200441106a41cf0d410c102a2007200528020036020020042004290310370244200820092903003703002005200a290300370300200420042903383703100240200e200b470d002004106a200441086a280200210e2004280204210b2004280200210c0b200c200e4105746a2208200429031037020020084100360218200841106a200441106a41106a220d290300370200200841086a200441106a41086a22052903003702002008411c6a4103360200200441086a2207200e41016a220e360200200441386a41ae0d4103102a200441106a41db0d410a102a200441cc006a2209200528020036020020042004290310370244200d200441386a41106a220a2903003703002005200441386a41086a220f290300370300200420042903383703100240200e200b470d002004106a2007280200210e2004280200210c2004280204210b0b200c200e4105746a2208200429031037020020084100360218200841106a200d290300370200200841086a20052903003702002008411c6a41043602002007200e41016a2208360200200441386a41ae0d4103102a200441106a41e50d4106102a2009200528020036020020042004290310370244200d200a2903003703002005200f2903003703002004200429033837031002402008200b470d002004106a200441086a28020021082004280200210c0b200c20084105746a2205200429031037020020054101360218200541106a200441106a41106a220b290300370200200541086a200441106a41086a2903003702002005411c6a2006360200200441086a200841016a2205360200200b200241086a290000370300200441106a41186a200241106a290000370300200441306a200241186a2900003703002004200336021020042006360214200420022900003703184104210702400240410410012210450d00201020053600000240024002402005450d00200c20054105746a2111200441c0006a210341042107410421080340200441386a200c105120042802382105410121064100210b024020032802002202450d0020024100480d042002210b200210012206450d050b200620052002101e210a0240200428023c450d00200510020b200441386a200c410c6a220f105120042802382109024002400240200b20026b2003280200220d490d002002200d6a2105200b2106200a220e20026a2009200d101e1a200428023c0d010c020b2002200d6a22052002490d05200b4101742206200520052006491b22064100480d0520061001210e0240200b450d00200e450d07200e200a2006200b200b20064b1b101e210b200a1002200b20026a2009200d101e1a200428023c0d010c020b200e450d06200e20026a2009200d101e1a200428023c450d010b200910020b2003410036020020044201370338200c41186a2802002102200441386a104f2004280238220d2003280200220b6a21090240024002400240024002400240024020024101470d00200941023a00002003200b41016a2202360200200c411c6a280200210c200428023c220920026b41034b0d01200241046a220b2002490d0b2009410174220a200b200b200a491b220a4100480d0b200a1001210b2009450d02200b450d0c200b200d200a20092009200a4b1b101e1a200d10020c030b200941013a00002003200b41016a2202360200200c411c6a280200210c200428023c220920026b41034b0d00200241046a220b2002490d0a2009410174220a200b200b200a491b220a4100480d0a200a1001210b2009450d03200b450d0b200b200d200a20092009200a4b1b101e1a200d10020c040b200d210b0c050b200b450d090b2004200a36023c0c020b200b450d070b2004200a36023c0b2004200b3602380b200b20026a200c3600002003200241046a220c360200200428023c210a0240024002400240200620056b200c4f0d002005200c6a22022005490d072006410174220d20022002200d491b22094100480d0720091001210d2006450d01200d450d08200d200e20092006200620094b1b101e2106200e1002200620056a200b200c101e1a200a0d020c030b2005200c6a210220062109200e220d20056a200b200c101e1a200a0d010c020b200d450d06200d20056a200b200c101e1a200a450d010b200b10020b0240024002400240200720086b20024f0d00200820026a22052008490d0720074101742206200520052006491b22064100480d072007450d0120061001220b450d08200b201020062007200720064b1b101e210b2010100220062107200b221020086a200d2002101e1a20090d020c030b200820026a2105201020086a200d2002101e1a20090d010c020b20062107200610012210450d06201020086a200d2002101e1a2009450d010b200d10020b20052108200f41146a220c2011470d000c020b0b410421050b41052000200120102005200441106a100e210202402007450d00201010020b02402002417f460d00410121050240200241eb0d4104200441106a100f2202450d002002417d470d04410021050b200428020021030240200441086a2802002202450d00200241057421062003210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241206a2102200641606a22060d000b0b2004280204450d0420031002200441d0006a240020050f0b200428020021060240200441086a2802002202450d00200241057421052006210203400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241206a2102200541606a22050d000b0b02402004280204450d00200610020b200441d0006a240041000f0b1041000b101c000b41fc3a103b000b200441d0006a240020050bbe0701047f23004190016b220424000240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042103200241146a2802002105200241246a2802002106200441186a4200370300200441106a4200370300200441086a42003703002004420037030002400240024002402001280204220720032004412010102202417e460d0020020d0a200441206a41186a200141206a290000370300200441206a41106a200141186a290000370300200441206a41086a200141106a290000370300200420012900083703202005450d01200441c0006a41186a4200370300200441c0006a41106a4200370300200441c0006a41086a42003703002004420037034020072006200441c0006a412010102202417e460d0320020d0c20012802002101412010012202450d0b2004200236028001200442203702840120044180016a41004120102720042802800120042802880122036a22022004290300370000200441e0006a41086a200341206a2203360200200241086a200441086a290300370000200241106a200441106a290300370000200241186a200441186a29030037000020042004290380013703602004200336028801412010012202450d0b2004200236028001200442203702840120044180016a41004120102720042802800120042802880122036a22022004290340370000200441f0006a41086a200341206a2203360200200241086a200441c0006a41086a290300370000200241106a200441c0006a41106a290300370000200241186a200441c0006a41186a290300370000200420042903800137037020042003360288012001200441206a200441e0006a200441f0006a1094010c020b2000410536020020044190016a24000f0b20012802002101412010012202450d092004200236024020044220370244200441c0006a4100412010272004280240200428024822036a2202200429030037000020044180016a41086a200341206a2203360200200241086a200441086a290300370000200241106a200441106a290300370000200241186a200441186a290300370000200420042903403703800120042003360248200441003602402001200441206a20044180016a200441c0006a1094010b2000410436020020044190016a24000f0b2000410536020020044190016a24000f0b41bc3441004100103c000b41ec3f103b000b41cc3441014101103c000b41ec3f103b000b41dc3441022003103c000b41ec3f103b000b41cc31103b000b101c000b41cc31103b000bc50301027f230041d0006b2204240002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320022802042103200241146a2802002102200441186a4200370300200441106a4200370300200441086a420037030020044200370300024002400240024002402001280204220520032004412010102203417e460d0020030d09200441206a41186a200141206a290000370300200441206a41106a200141186a290000370300200441206a41086a200141106a29000037030020042001290008370320200441c0006a2001280200200441206a2004412010950120042802402201450d0120042802442103200520022001200441c0006a41086a28020010112202417e460d0320020d0a2003450d02200110020c020b20004105360200200441d0006a24000f0b2005200241bd0e412010112202417e460d0220020d090b20004104360200200441d0006a24000f0b2000410536020002402003450d00200110020b200441d0006a24000f0b20004105360200200441d0006a24000f0b419c3441004100103c000b41ec3f103b000b41ac3441014101103c000b41ec3f103b000b41cc31103b000b41e431103b000b41e431103b000b861a05037f017e047f047e027f230041a0076b22042400024002400240024002400240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042105200241146a2802002106200241246a3502002107410021022004410036020820044201370300024002402006450d0020044100200610272004280200200441086a220828020022096a210a024020064101460d00410021020340200a20026a41003a0000200241026a2103200241016a220b210220032006490d000b2009200b6a2109200a200b6a210a0b200a41003a00002008200941016a2202360200200428020021030c010b410121030b024002400240200128020420052003200210102206417e460d0020060d09200441e8036a2002412020024120491b22066a41004100412020066b2006411f4b1b10171a200441e8036a20032006101e1a2002411f4d0d0b200441106a41186a200441e8036a41186a290000370300200441106a41106a200441e8036a41106a290000370300200441106a41086a200441e8036a41086a290000370300200420042900e803370310200441306a41186a200141206a290000370300200441306a41106a200141186a290000370300200441306a41086a200141106a29000037030020042001290008370330200128020022022802002206417f460d0a2002200641016a360000200241046a220a200441306a1096012206450d012006280200450d01200641086a290300210c0c020b200041053602002004280204450d0f0c0e0b2002280210200441306a200241146a280200280214111400210c0b200220022802002206417f6a360000200c2007540d092006450d072002200636000002400240200a200441106a1096012206450d002006280200450d00200641086a290300210d0c010b2002280210200441106a200241146a280200280214111400210d0b20022002280200417f6a360000024002400240410810012206450d00200420063602e803200442083702ec03200441e8036a41004108102720042802e80320042802f00322066a42f3e885d3a3ec9bb73a3700002004200641086a3602f00320044188016a41086a20042802f003360200200420042903e80337038801412010012206450d00200420063602e803200442203702ec03200441e8036a41004120102720042802e803220a20042802f003220b6a22062004290330370000200641086a200441306a41086a290300370000200641106a200441306a41106a290300370000200641186a200441306a41186a2903003700002004200b41206a22063602f00320042802ec03210520044188016a20042802900120061027200428028801220b20042802900122096a200a2006101e1a2004200920066a22063602900102402005450d00200a10020b200428028c01210a4200210e200441e8036a41086a22054200370300200442003703e803200b2006200441e8036a100320044188016a41086a2005290300370300200420042903e80337038801024020044188016a411041d02d410041001000417f460d00200442003703e80320044188016a4110200441e8036a41084100100041016a41084d0d0220042903e803210e0b0240200a450d00200b10020b410810012206450d00200420063602e803200442083702ec03200441e8036a41004108102720042802e80320042802f00322066a42f3e885d3a3ec9bb73a3700002004200641086a3602f00320044188016a41086a20042802f003360200200420042903e80337038801412010012206450d00200420063602e803200442203702ec03200441e8036a41004120102720042802e803220a20042802f003220b6a22062004290310370000200641086a200441106a41086a290300370000200641106a200441106a41106a290300370000200641186a200441106a41186a2903003700002004200b41206a22063602f00320042802ec03210520044188016a20042802900120061027200428028801220b20042802900122096a200a2006101e1a2004200920066a22063602900102402005450d00200a10020b200428028c01210a4200210f200441e8036a41086a22054200370300200442003703e803200b2006200441e8036a100320044188016a41086a2005290300370300200420042903e80337038801024020044188016a411041d02d410041001000417f460d00200442003703e80320044188016a4110200441e8036a41084100100041016a41084d0d0320042903e803210f0b0240200a450d00200b10020b200e200f560d0d200d20077c220e200d580d0e41a00610012206450d002006200441e8036a41b803101e220641003b01be03200641003602b803200641c0036a20044188016a41e002101e1a200441d0006a41086a220a4200370300200441e4006a41c43d360200200420063602542004410036025020042002360260200441d0006a41047221020240200441306a200441106a41201006450d002004417f360250200441e8036a41186a2206200441306a41186a290300370300200441e8036a41106a2209200441306a41106a290300370300200441e8036a41086a200441306a41086a290300370300200420042903303703e803200420023602702004200a2802003602682004200428025436026c20044188016a200441e8006a200441e8036a1097014101210a20044188016a41106a280200210b20044188016a410c6a280200210820044188016a41086a2802002105200428028c01211002402004280288014101470d00200441e8006a41186a2006290300370300200441e8006a41106a2009290300370300200441e8006a41086a200441e8036a41086a290300370300200420042903e8033703684100210a0b41900210012206450d01200c20077d21072006200441e8036a418802101e220641003b018e02200641003602880202400240200a450d0020042006360288012004420037028c012005200b41286c6a2106200441e8036a20044188016a109801200441e8036a1099010c010b20044184046a200441f0006a2903003702002004418c046a200441f8006a29030037020020044194046a20044180016a290300370200200420053602ec03200420103602e803200420083602f0032004200b3602f4032004200441d0006a410c6a3602f803200420042903683702fc03200441a8016a420037030020044100360298012004420037038801200420063602a401200441e8036a20044188016a109a0121060b20064201370300200620073703082004417f360250200441e8036a41186a2206200441106a41186a290300370300200441e8036a41106a2209200441106a41106a290300370300200441e8036a41086a2208200441106a41086a290300370300200420042903103703e803200420023602702004200441d0006a41086a2802003602682004200428025436026c20044188016a200441e8006a200441e8036a1097014101210a20044188016a41106a280200210b20044188016a410c6a280200211020044188016a41086a2802002105200428028c01211102402004280288014101470d00200441e8006a41186a2006290300370300200441e8006a41106a2009290300370300200441e8006a41086a2008290300370300200420042903e8033703684100210a0b41900210012206450d012006200441e8036a418802101e220641003b018e02200641003602880202400240200a450d0020042006360288012004420037028c012005200b41286c6a2106200441e8036a20044188016a109801200441e8036a1099010c010b20044184046a200441f0006a2903003702002004418c046a200441f8006a29030037020020044194046a20044180016a290300370200200420053602ec03200420113602e803200420103602f0032004200b3602f4032004200441d0006a410c6a3602f803200420042903683702fc03200441a8016a420037030020044100360298012004420037038801200420063602a401200441e8036a20044188016a109a0121060b200642013703002006200e370308200441003602500b200441e8036a200441d0006a200441106a109b0102400240024020042802f0032206450d0020042802e803220a2006200441106a200441d0006a108e01450d010b200441d8006a290300210720042802542102024020042802ec03450d0020042802e80310020b2002450d0120012802002106200420073702ec03200420023602e8032006200441e8036a109c010c010b024020042802ec03450d00200a10020b20044188016a41086a200241086a2802003602002004200229020037038801200441e8036a20044188016a109d01200441e8036a109e010b2000410436020020042802040d0f0c100b101c000b41c1214133102d000b41c1214133102d000b41ec3341004100103c000b41ec3f103b000b41fc3341014101103c000b41ec3f103b000b418c3441022003103c000b41ec3f103b000b41cc31103b000b109f01000b41ec3f103b000b418c3c103b000b41a43c103b000b41bc3c103b000b200310020b200441a0076a24000b811a06047f017e047f017e037f057e230022042105200441c0086b4160712204240002400240024002400240024002400240024002400240024002400240024002400240024002402003450d0020022802000d0120034101460d0220022802100d0320034103490d0420022802200d0520022802042106200241146a2802002107200241246a3502002108410021022004410036020820044201370300024002402007450d0020044100200710272004280200200441086a2209280200220a6a210b024020074101460d00410021020340200b20026a41003a0000200241026a2103200241016a220c210220032007490d000b200a200c6a210a200b200c6a210b0b200b41003a00002009200a41016a2202360200200428020021030c010b410121030b024002400240200128020420062003200210102207417e460d0020070d09200441106a41186a200141206a290000370300200441106a41106a200141186a290000370300200441186a200141106a2900003703002004200129000837031020012802002207280200220b417f460d0a2007200b41016a360000200741046a200441106a109601220b450d01200b280200450d01200b41086a290300210d0c020b200041053602002004280204450d140c130b2007280210200441106a200741146a280200280214111400210d0b20072007280200417f6a360000200d2008540d08200441c8046a41186a220b4200370300200441c8046a41106a220c4200370300200441c8046a41086a22014200370300200442003703c80420032002200441c8046a1012200441e8016a41186a2206200b290300370300200441e8016a41106a220a200c290300370300200441e8016a41086a22092001290300370300200420042903c8043703e801200b2006290300370300200c200a29030037030020012009290300370300200420042903e8013703c80441201001220e450d0d2004200e3602e801200442203702ec01200441e8016a41004120102720042802e80120042802f001220f6a220e20042903c80437000020044180086a41086a2210200f41206a220f360200200e41086a2001290300370000200e41106a200c290300370000200e41186a200b290300370000200420042903e801370380082004200f3602f00120044180086a20102802004120102720102010280200220e41206a220f360200200e20042802800822106a220e2004290310370000200e41086a200441106a41086a290300370000200e41106a200441106a41106a290300370000200e41186a200441106a41186a290300370000200b4200370300200c420037030020014200370300200442003703c8042010200f200441c8046a10122006200b290300370300200a200c29030037030020092001290300370300200420042903c8043703e801200441306a41186a2006290300370300200441306a41106a200a290300370300200441306a41086a2009290300370300200420042903e8013703300240200428028408450d00201010020b200441306a200441106a41201006450d1041a0061001220b450d0d200b200441c8046a41b803101e220b41003b01be03200b41003602b803200b41c0036a200441e8016a41e002101e1a2004200b36025020044200370254200441306a200441106a41201006450d09200441a0016a41186a200441306a41186a290300370300200441a0016a41106a200441306a41106a290300370300200441a0016a41086a200441306a41086a290300370300200420042903303703a0012002417f4c0d0a024002402002450d0020021001220b0d010c0f0b4101210b0b200420023602cc042004200b3602c804200441003602d004200441c8046a410020021027200420042802d004220b20026a3602d004200b20042802c8046a20032002101e1a200441e8016a41086a220c20042802d004360200200420042903c8043703e80141900210012202450d0d200441d0006a41086a210b2002200441c8046a418802101e220241003b018e022002410036028802200420083703c801200442013703c001200420023602dc01200420042903e8013703d0012004200c2802003602d801200441c8046a41186a2202200441a0016a41186a290300370300200441c8046a41106a220c200441a0016a41106a290300370300200441c8046a41086a200441a0016a41086a290300370300200420042903a0013703c804200420042802543602b008200420042802503602b4082004200441d0006a3602b808200441e8016a200441b0086a200441c8046a109701200441a0086a41086a200441f4016a290200370300200420042902ec013703a008024020042802e8014101470d0020044180086a41186a2201200229030037030020044180086a41106a2202200c29030037030020044180086a41086a220c200441c8046a41086a2206290300370300200420042903c80437038008200441b0086a41086a200441a0086a41086a220a290300370300200420042903a0083703b0082006200a290300370300200441e4046a200c290300370200200441ec046a2002290300370200200441f4046a20012903003702002004200b3602d804200420042903a0083703c80420042004290380083702dc0420044188026a4200370300200441e8016a41186a20042903d801370300200420042903d0013703f801200420042903c8013703f001200420042903c0013703e801200441c8046a200441e8016a109a011a2004420237036041010d0d0c0c0b200441c8046a41086a200441a0086a41086a290300370300200420042903a0083703c80420042802cc0420042802d40441286c6a22022900102112200220042903d00137001020022900082113200220042903c80137000820022900002114200220042903c0013700002002290020211120024200370020200241186a22022900002115200220042903d8013700002004200b3602d8042004201237037020042013370368200420143703602004201537037820144202520d0b0c0c0b41bc3341004100103c000b41ec3f103b000b41cc3341014101103c000b41ec3f103b000b41dc3341022003103c000b41ec3f103b000b41cc31103b000b109f01000b41943d103b000b41ac3d103b000b1019000b024020042802702202450d002004280274450d00200210020b200420113702ec012004200428027c3602e801200441c8046a200441e8016a109801200441c8046a1099010b200441a0016a41186a220c200441106a41186a290300370300200441a0016a41106a2201200441106a41106a290300370300200441a0016a41086a2206200441106a41086a290300370300200420042903103703a00141900210012202450d002002200441c8046a418802101e220241003b018e0220024100360288022004200d20087d3703c801200442013703c001200441003602d001200420023602dc01200441c8046a41186a200c290300370300200441c8046a41106a2001290300370300200441c8046a41086a2006290300370300200420042903a0013703c804200420042802543602b008200420042802503602b4082004200441d0006a3602b808200441e8016a200441b0086a200441c8046a109701200441a0086a41086a200441f4016a290200370300200420042902ec013703a0080240024020042802e8014101470d0020044180086a41186a2202200441c8046a41186a29030037030020044180086a41106a220c200441c8046a41106a29030037030020044180086a41086a2201200441c8046a41086a2206290300370300200420042903c80437038008200441b0086a41086a200441a0086a41086a220a290300370300200420042903a0083703b0082006200a290300370300200441e4046a2001290300370200200441ec046a200c290300370200200441f4046a20022903003702002004200b3602d804200420042903a0083703c80420042004290380083702dc0420044188026a4200370300200441e8016a41186a20042903d801370300200420042903d0013703f801200420042903c8013703f001200420042903c0013703e801200441c8046a200441e8016a109a011a200442023703800141010d010c030b200441c8046a41086a200441a0086a41086a290300370300200420042903a0083703c80420042802cc0420042802d40441286c6a22022900102111200220042903d00137001020022900082114200220042903c8013700082002290000210d200220042903c0013700002002290020210820024200370020200241186a22022900002112200220042903d8013700002004200b3602d804200420113703900120042014370388012004200d370380012004201237039801200d4202520d020b20042802502202450d030c020b101c000b02402004280290012202450d00200428029401450d00200210020b200420083702ec012004200428029c013602e801200441c8046a200441e8016a109801200441c8046a10990120042802502202450d010b200420042902543702cc04200420023602c8042007200441c8046a109c010b200041043602002004280204450d010b200310020b200524000bd41003027f017e077f230041c0006b22042400024020010d0041d02d2100410021010b20044100360200024002400240024002400240200141034d0d002004200028000022053602002005ad2206421c88a70d012006420486a72207417f4c0d02024002402007450d002007100122080d010c070b410821080b20042005360204200420083602002004410036020802400240024002402005450d002001417c6a2101200041046a2107200441086a2109410021004100210a0340200441003a0030200441306a20072001410047220b101e1a2001450d0320042d0030417f6a220c41034b0d032001200b6b21012007200b6a210702400240024002400240024002400240200c0e0403010400030b20044200370330200441306a20072001410820014108491b220b101e1a200141074d0d0a2007200b6a2107200429033021064103210c0c010b20044200370330200441306a20072001410820014108491b220b101e1a200141074d0d092007200b6a2107200429033021064101210c0b200a41016a210a20002004280204470d040c030b20044100360230200441306a20072001410420014104491b220b101e1a200141034d0d072007200b6a21072004280230210d4100210c0c010b20044100360230200441306a20072001410420014104491b220b101e1a200141034d0d062007200b6a21072004280230210d4102210c0b200a41016a210a20002004280204470d010b200410800120092802002100200428020021080b2001200b6b2101200820004104746a220b200d360204200b200c360200200b41086a20063703002009200041016a2200360200200a2005490d000b20042802042107200428020022080d010c030b41002100410021072008450d020b20042002200820002003110700200441003602182004420137031020042802002101200441106a107e2004280210200428021822006a210a024020014105470d00200a41013a0000200441186a2201200041016a2200360200200441106a20004100102720012802002101200428021021000c070b200a41003a0000200441106a41086a200041016a22003602002004410036022820044201370320200441206a104f2004280220220b2004280228220a6a210c0240024020014104470d00200c41003a0000200441206a41086a200a41016a220a3602000c010b200c41013a0000200441206a41086a200a41016a36020020044100360238200442013703300240024002400240024002400240024002400240024002400240024002400240024002400240200141037122014101460d00024020014102460d0020014103470d02200441086a2903002106200441306a104f20042802302205200441306a41086a220b280200220c6a41043a0000200b200c41016a22013602002004280234220d20016b41074b0d03200141086a220a2001490d1a200d4101742209200a200a2009491b22094100480d1a20091001210a200d450d07200a450d1c200a20052009200d200d20094b1b101e1a200510020c080b20042802042102200441306a104f20042802302205200441386a220b280200220c6a41033a0000200b200c41016a22013602002004280234220d20016b41034b0d03200141046a220a2001490d19200d4101742209200a200a2009491b22094100480d1920091001210a200d450d09200a450d1b200a20052009200d200d20094b1b101e1a200510020c0a0b200441086a2903002106200441306a104f20042802302205200441306a41086a220b280200220c6a41023a0000200b200c41016a22013602002004280234220d20016b41074b0d03200141086a220a2001490d18200d4101742209200a200a2009491b22094100480d1820091001210a200d450d0b200a450d1a200a20052009200d200d20094b1b101e1a200510020c0c0b20042802042102200441306a104f20042802302205200441386a220b280200220c6a41013a0000200b200c41016a22013602002004280234220d20016b41034b0d03200141046a220a2001490d17200d4101742209200a200a2009491b22094100480d1720091001210a200d450d0d200a450d19200a20052009200d200d20094b1b101e1a200510020c0e0b2005210a0c050b2005210a0c070b2005210a0c090b2005210a0c0b0b200a450d140b200420093602342004200a3602300b200b200c41096a360200200a20016a20063700000c090b200a450d110b200420093602342004200a3602300b200b200c41056a360200200a20016a20023600000c060b200a450d0e0b200420093602342004200a3602300b200b200c41096a360200200a20016a20063700000c030b200a450d0b0b200420093602342004200a3602300b200b200c41056a360200200a20016a20023600000b200428023421092004280230210c02400240024002402004280224220d200441206a41086a28020022016b200441306a41086a280200220a4f0d002001200a6a220b2001490d0a200d4101742205200b200b2005491b22054100480d0a200d450d012004280220210220051001220b450d0c200b20022005200d200d20054b1b101e1a200210020c020b2004280220210b0c020b20051001220b450d0a0b200420053602242004200b3602200b200441286a220d2001200a6a360200200b20016a200c200a101e1a02402009450d00200c10020b200d280200210a2004280220210b0b2004280224210c200441106a2000200a1027200441186a22012001280200220d200a6a2201360200200d200428021022006a200b200a101e1a200c450d06200b10020c060b2004280204450d00200428020010020b41af1b41f000102d000b200420002001101e1a41af1b41f000102d000b105a000b105b000b1041000b2000ad4220862001ad84210602402007450d00200810020b200441c0006a240020060f0b101c000ba30501097f230041e0026b220424000240024020002802000d002000417f360000200441306a41186a2205200141186a290000370300200441306a41106a2206200141106a290000370300200441306a41086a2207200141086a290000370300200420012900003703302004200041046a3602182004200041086a28020036021020042000280204360214200441b8026a200441106a200441306a10970141012108200441b8026a41106a2802002109200441c4026a280200210a200441b8026a41086a280200210b20042802bc02210c024020042802b8024101470d00200441106a41186a2005290300370300200441106a41106a2006290300370300200441106a41086a200729030037030020042004290330370310410021080b41900210012201450d012001200441306a418802101e220141003b018e022001410036028802024002402008450d00200420013602b802200442003702bc02200b200941286c6a2101200441306a200441b8026a109801200441306a1099010c010b200441cc006a200441186a290300370200200441d4006a200441206a290300370200200441dc006a200441286a2903003702002004200b3602342004200c3602302004200a3602382004200936023c20042000410c6a36024020042004290310370244200441d8026a4200370300200441003602c802200442003703b802200420013602d402200441306a200441b8026a109a0121010b200441b8026a41086a200241086a280200360200200420022902003703b802200441306a41086a200341086a2802003602002004200329020037033020042001411c6a200441b8026a200441306a10d20102402004280200450d0020042802042201450d00200441086a280200450d00200110020b20004100360000200441e0026a24000f0b10c301000b101c000be60602097f017e230041206b22052400024002400240024020012802002206417f460d002001200641016a360000200141046a20021096012206450d02200628022021072006411c6a28020022082f018e022209450d01410f210a0c030b109f01000b4101210a0c010b4116210a0b034002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200a0e170a090c0d160e0f1314151012110708000102030406050b0b0b20082009410c6c6a210b41002109200821064110210a0c280b20032006280200200641086a280200220c2004200c2004491b1006220d450d174111210a0c270b200d411e76417f73410271417f6a220c450d254112210a0c260b200c4101470d194113210a0c250b200941016a21092006410c6a2206200b470d170c160b4100417f4101200c20044b1b200c2004461b220c0d214114210a0c230b200541013a000c20052d000c4101710d11410d210a0c220b2007450d1e410e210a0c210b2007417f6a2107200820094102746a4190026a28020022082f018e0222090d0e4101210a0c200b200541003a000c20052d000c410171450d140c150b2008418e026a2f010021090c0f0b20002001280210200220032004200141146a28020028020c1113000c190b20082009410c6c6a22064184016a2802002204450d134103210a0c1c0b2006418c016a2802002206417f4c0d134105210a0c1b0b2006450d134106210a0c1a0b2006100122090d13410a210a0c190b101c000b410021090c120b410121094107210a0c160b200520063602142005200936021020054100360218200541106a41002006102720052005280218220c20066a360218200c200528021022096a20042006101e1a2005290214210e4108210a0c150b2000200e370204200020093602004109210a0c140b20012001280200417f6a360000200541206a24000f0b1019000b410f210a0c110b4102210a0c100b4115210a0c0f0b4101210a0c0e0b4100210a0c0d0b4110210a0c0c0b4101210a0c0b0b410d210a0c0a0b4102210a0c090b410c210a0c080b4104210a0c070b410b210a0c060b4107210a0c050b4108210a0c040b4109210a0c030b4116210a0c020b4112210a0c010b4114210a0c000b0bbe0301087f230041106b220224002000280204210302400240200028020022042f01be0322050d00410a21060c010b410421060b037f024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020060e0c050a0800010203040709060b0b0b2003417f6a2103200420054102746a41a0066a28020022042f01be032205450d0b410421060c150b20054105742107200441c0036a210041002105410521060c140b20012000412010062208450d0b410621060c130b4100210920084100480d11410721060c120b200041206a2100200541016a2105200741606a22070d0c410021060c110b200441be036a2f01002105200241003a000c20022d000c410171450d090c0a0b41002109410821060c0f0b200220093a000c20022d000c4101710d0a410221060c0e0b20030d0b0c0a0b200241013a000c20022d000c410171450d03410121060c0c0b200241106a24002004200541286c6a0f0b200241106a240041000f0b410a21060c090b410221060c080b410921060c070b410221060c060b410121060c050b410521060c040b410121060c030b410b21060c020b410321060c010b410821060c000b0bad04010c7f230041106b220324002001280208210420012802002105200141086a2106200141046a210702400240200128020422082f01be0322090d00410a210a0c010b4104210a0b03400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200a0e0c050a0800010203040709060b0b0b20012005417f6a2205360200200620043602002007200820094102746a41a0066a280200220836020020082f01be032209450d0b4104210a0c150b2009410574210b200841c0036a210c410021094105210a0c140b2002200c41201006220d450d0b4106210a0c130b4100210e200d4100480d114107210a0c120b200c41206a210c200941016a2109200b41606a220b0d0c4100210a0c110b200841be036a2f01002109200341003a000c20032d000c410171450d090c0a0b4100210e4108210a0c0f0b2003200e3a000c20032d000c4101710d0a4102210a0c0e0b20050d0b0c0a0b200341013a000c20032d000c410171450d034101210a0c0c0b2000200536020420004100360200200041086a20083602002000410c6a2004360200200041106a2009360200200341106a24000f0b20004201370200200041086a20083602002000410c6a2004360200200041106a2009360200200341106a24000f0b410a210a0c090b4102210a0c080b4109210a0c070b4102210a0c060b4101210a0c050b4105210a0c040b4101210a0c030b410b210a0c020b4103210a0c010b4108210a0c000b0bb20301097f23002102200141046a280200210320012802082104200241306b220241186a2205200128020022063602002002411c6a2207410036020020022003360214200220034100472208360210024002402003450d002003417f6a2101200241106a41047221092006210a03402005200a28029002220a3602002007410036020020022001360214200220014100473602102001417f6a2201417f470d000c020b0b200241106a41047221090b200241086a200941086a28020036020020022009290200370300200241106a41086a220a20063602002002411c6a22054100360200200220033602142002200836021002402003450d002003417f6a21010340200a200620062f018e024102746a4190026a28020022063602002005410036020020022001360214200220014100473602102001417f6a2201417f470d000b0b200241106a41086a28020022012f018e0221062002411c6a280200210a200228021421052000410036020c20002005360210200041146a2001360200200041186a200a3602002000411c6a200636020020002004360220200041086a200241086a280200360200200020022903003702000bf00202067f027e230041206b22012400200141086a200010ca01024020012802082202450d00200141186a2103200141146a2104034020032802002105200428020021060240200128020c450d00200210020b02402006450d002005450d00200610020b200141086a200010ca01200128020822020d000b0b2000280208210320002802002102024002400240024020002802042206280288022205450d00200632018c0221072001200536020c2001200241016a2202360208200120074220862003ad842207370310200610022005450d020c010b2003ad210741002105200610024100450d010b024002402005280288022206450d00200532018c0221082001200636020c2001200241016a36020820012008422086200742ffffffff0f83843703102005100220060d010c020b41002106200510024100450d010b2006210503402006280288022206450d02200510022006210520060d000b0b200141206a24000f0b20051002200141206a24000bcc0b01117f230041c0076b2202240020002802102203200328020041016a360200200241d8006a41086a200041086a29020037030020022000290200370358200241206a41186a22032000412c6a290000370300200241206a41106a2204200041246a290000370300200241206a41086a22052000411c6a29000037030020022000290014370320200241f8006a41206a200141206a290300370300200241f8006a41186a200141186a290300370300200241f8006a41106a200141106a290300370300200241f8006a41086a200141086a2903003703002002200129030037037820024188046a200241d8006a200241206a200241f8006a108801024002400240024002400240024020022d008804450d00200241086a20024191046a290000370300200241106a20024199046a290000370300200241186a200241a1046a2900003703002005200241c8046a2903003703002004200241d0046a2903003703002003200241d8046a290300370300200241206a41206a200241e0046a29030037030020022002290089043703002002200241c0046a290300370320200241bc046a2802002106200241b8046a280200210420022802e804210720024188046a412c6a280200210320024188046a41246a2802002100200241b0046a28020022012802b8032205450d0120012f01bc0321082002200536027c2002200041016a2209360278200220033602800120022008360284014100450d020c030b20024188046a41106a280200210020024188046a41086a2802002101200241c0076a24002001200041286c6a0f0b2002200136027c2002200036027820022003360280012003210941010d010b200241c0046a210020024188046a4101722101200241d4006a210a200241bc046a210b200241b8046a210c200241b4046a210d200241b0046a210e200241ac046a210f0340200241c8006a41086a2003360200200a20083602002002200536024c20022009360248200241d8006a41186a200241186a2203290300370300200241d8006a41106a200241106a2205290300370300200241d8006a41086a200241086a220829030037030020022002290300370358200241f8006a41206a200241206a41206a2209290300370300200241f8006a41186a200241206a41186a2210290300370300200241f8006a41106a200241206a41106a2211290300370300200241f8006a41086a200241206a41086a22122903003703002002200229032037037820024188046a200241c8006a200241d8006a200241f8006a20042006108c0120022d008804450d0302402008200141086a2900003703002005200141106a2900003703002003200141186a2900003703002012200041086a2903003703002011200041106a2903003703002010200041186a2903003703002009200041206a2903003703002002200129000037030020022000290300370320200c2802002104200d2802002103200e28020022082802b8032205450d00200b2802002106200f28020041016a210920082f01bc0321080c010b0b41d00610012200450d030c010b2009210341d00610012200450d020b200020024188046a41b803101e220041003b01be03200041003602b803200041c0036a200241f8006a419003101e2101200020032802003602a006200320003602002003200328020441016a36020420002802a006220341003b01bc03200320003602b803200120002f01be0322034105746a22012002290300370000200141186a200241186a290300370000200141106a200241106a290300370000200141086a200241086a2903003700002000200341286c6a220141106a200241206a41106a290300370300200141086a200241206a41086a29030037030020012002290320370300200141206a200241206a41206a290300370300200141186a200241206a41186a290300370300200041a0066a200341016a22014102746a2004360200200020002f01be0341016a3b01be03200420013b01bc03200420003602b8030b200241c0076a240020070f0b101c000bf10101047f230041106b220324000240024020012802002204417f460d002001200441016a3600000240024002400240200141046a20021096012204450d0020042802102205450d0020042802182202417f4c0d052002450d012002100122040d02101c000b200020012802102002200141146a2802002802101106000c020b410121040b200320023602042003200436020020034100360208200341002002102720032003280208220420026a3602082004200328020022066a20052002101e1a20002003290204370204200020063602000b20012001280200417f6a360000200341106a24000f0b109f01000b1019000b890b07027f017e107f017e047f017e027f230041f0026b22022400024020002802000d002000417f36000020024180016a41086a2203200141086a2802003602002002200129020037038001200220024180016a109d01200241286a41206a200241206a280200360200200241286a41186a200241186a290300370300200241286a41106a200241106a290300370300200241286a41086a200241086a2903003703002002200229030037032820024180016a200241286a10c801024020022903a00122044202510d002000410c6a2105200041046a2106200241f8016a411c6a210720024180016a41146a2108200241bc016a2109200241a0026a410c6a210a20024180016a41286a210b200241b0016a210c200241b4016a210d200241b8016a210e20024180016a41206a210f0340200241e0006a41186a220120024180016a41186a2210290300370300200241e0006a41106a221120024180016a41106a2212290300370300200241e0006a41086a22132003290300370300200241d0006a41086a2214200941086a280200360200200220022903800137036020022009290200370350200b2903002115200c2802002116200d2802002117200e2802002118200241c8016a41086a22192014280200360200200220022903503703c8012010200129030037030020122011290300370300200320132903003703002002200229036037038001200241b8026a41086a220120063602002002200041086a2802003602b802200220062802003602bc02200241f8016a200241b8026a20024180016a1097010240024020022802f8014101470d00200241d8016a41086a22012003290300370300200241d8016a41106a22112012290300370300200241d8016a41186a2213201029030037030020022002290380013703d80120022902fc01211a2003200241f8016a410c6a29020037030020122005360200200820022903d801370200200841086a2001290300370200200841106a2011290300370200200841186a20132903003702002002201a37038001200241f8016a41086a2015370300200241f8016a41106a2016360200200241f8016a41146a2017360200200241f8016a41186a2018360200200720022903c801370200200741086a2019280200360200200220043703f80120024180016a200241f8016a109a011a0c010b200241f8016a41086a2214280200200241f8016a41106a221b28020041286c6a211102402004500d0020112004370300201120153703080b024002402016450d00201141106a211302402011280210221c450d00201341046a280200450d00201c10020b201320173602042013201636020020112018360218410121130c010b410021130b20032019280200360200200220022903c80137038001200241f8016a20024180016a109801200f200241f8016a41206a2802003602002010200241f8016a41186a2903003703002012201b29030037030020032014290300370300200220022903f80137038001200241b8026a20024180016a10ca01024020022802b802450d002011411c6a21100340200241a0026a41106a200241b8026a41106a290300370300200241a0026a41086a22122001290300370300200220022903b8023703a002200241e0026a41086a2012280200360200200220022903a0023703e0022001200a41086a2802003602002002200a2902003703b802200241d0026a2010200241e0026a200241b8026a10d201024020022802d002450d0020022802d4022212450d00200241d0026a41086a280200450d00201210020b200241b8026a20024180016a10ca0120022802b8020d000b0b20024180016a1099012013201645720d002017450d00201610020b20024180016a200241286a10c801200f29030022044202520d000b0b200241286a109e0120004100360000200241f0026a24000f0b10c301000bb20301097f23002102200141046a280200210320012802082104200241306b220241186a2205200128020022063602002002411c6a2207410036020020022003360214200220034100472208360210024002402003450d002003417f6a2101200241106a41047221092006210a03402005200a2802a006220a3602002007410036020020022001360214200220014100473602102001417f6a2201417f470d000c020b0b200241106a41047221090b200241086a200941086a28020036020020022009290200370300200241106a41086a220a20063602002002411c6a22054100360200200220033602142002200836021002402003450d002003417f6a21010340200a200620062f01be034102746a41a0066a28020022063602002005410036020020022001360214200220014100473602102001417f6a2201417f470d000b0b200241106a41086a28020022012f01be0321062002411c6a280200210a200228021421052000410036020c20002005360210200041146a2001360200200041186a200a3602002000411c6a200636020020002004360220200041086a200241086a280200360200200020022903003702000bc70302077f027e23004190016b220124002001200010c801024020012903204202510d00200141c8006a4104722102200141386a2103200141346a2104200141306a2105200141206a21060340200141c8006a41086a200341086a29030037030020012003290300370348024020052802002207450d002004280200450d00200710020b20014180016a41086a200241086a2802003602002001200229020037038001200141d8006a20014180016a109801200141d8006a1099012001200010c80120062903004202520d000b0b20002802082105200028020021070240024002400240200028020422022802b8032203450d0020023201bc032108200120033602042001200741016a2207360200200120084220862005ad842208370308200210022003450d020c010b2005ad210841002103200210024100450d010b0240024020032802b8032202450d0020033201bc032109200120023602042001200741016a36020020012009422086200842ffffffff0f83843703082003100220020d010c020b41002102200310024100450d010b20022103034020022802b8032202450d02200310022002210320020d000b0b20014190016a24000f0b2003100220014190016a24000b080041ec3a1054000b950301067f230041106b22022400200241003a000b2002410b6a20012802002203200128020422044100472205101e1a2001200420056b22063602042001200320056a22053602000240024002400240024002402004450d0020022d000b2204450d0120044101470d022002410036020c2002410c6a20052006410420064104491b2204101e1a200141046a200620046b3602002001200520046a360200200641034d0d03200041046a200228020c360200200041023a0000200241106a24000f0b200041033a0000200241106a24000f0b200110212203450d0320022003360204200141046a22062802002104200241003a000b2002410b6a2001280200220720044100472205101e1a2006200420056b3602002001200720056a3602002004450d0220022d000b220141034f0d02200020013a0001200041013a0000200041046a2003360200200241106a24000f0b200041033a0000200241106a24000f0b200041033a0000200241106a24000f0b200041033a0000200241046a1022200241106a24000f0b200041033a0000200241106a24000bc905020f7f037e23004180016b22022400200241e0006a10302002280260220320022802681031210402402002280264450d00200310020b200241003602082002420137030020024100200410860120022802082105024002402004450d00200228020020054105746a2103200241306a41086a2106200241106a41186a2107200241106a41106a2108410021090340200241306a200910320240024002402002280230220a2006280200220b41d02d410041001000417f470d002007420037030020084200370300200241106a41086a420037030020024200370310200941016a210920022802340d010c020b200241e0006a41186a220c4200370300200241e0006a41106a220d4200370300200241e0006a41086a220e420037030020024200370360200a200b200241e0006a412041001000220b417f460d04200b411f4d0d04200241c0006a41186a220b200c290300370300200241c0006a41106a220f200d290300370300200241c0006a41086a2210200e29030037030020022002290360370340200c200b290300370300200d200f290300370300200e201029030037030020022002290340370360200b200c2903002211370300200f200d29030022123703002010200e2903002213370300200241106a41086a2013370300200820123703002007201137030020022002290360221137034020022011370310200941016a21092002280234450d010b200a10020b20032002290310370000200341186a2007290300370000200341106a2008290300370000200341086a200241106a41086a290300370000200341206a210320092004490d000b200520096a21050b200241086a2005360200200241c0006a41086a200536020020022002290300370340200241e0006a200241c0006a10a2012002350268422086200235026084211102402002280244450d00200228024010020b20024180016a240020110f0b41eb1a4133102d000bee0201077f230041206b22022400200141086a28020021032002410036021820024201370310200241106a4100410410272002280210200228021822046a20033600002002200441046a360218200241086a2205200228021836020020022002290310370300024002402003450d0020012802002101200341057421060340412010012203450d022002200336021020024220370214200241106a410041201027200241106a41086a22032003280200220441206a22033602002004200228021022076a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002280214210420022005280200200310272002280200200528020022086a20072003101e1a2005200820036a36020002402004450d00200710020b200141206a2101200641606a22060d000b0b20002002290300370200200041086a2005280200360200200241206a24000f0b101c000bf80101017f23004180026b22022400024002402001450d00200220003602080c010b200241d02d360208410021010b2002200136020c20024188016a200241086a101d0240200228029001450d00200241106a20024188016a41f800101e1a20024188016a200241106a41f800101e1a20024188016a2002419c016a200241dc016a10a401024020024198016a2802002200450d0020022802900121012000410c6c210003400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b024020024194016a280200450d0020024190016a28020010020b20024180026a240042010f0b4184351054000ba11903017f017e237f230041900d6b220324002003200029030022043703f00c200341106a41086a220042003703002003420037031041d12d4107200341106a1003200341086a220520002903003703002003200329031037030020034110200341f00c6a41081004200042003703002003420037031041d82d4107200341106a10032005200029030037030020032003290310370300200341102001412010040240024002400240410710012200450d002003200036021020034207370214200341106a4100410710272003280210200328021822056a220041002800c72d360000200341f00c6a41086a200541076a2205360200200041046a41002f00cb2d3b0000200041066a41002d00cd2d3a0000200320032903103703f00c20032005360218410810012200450d002003200036021020034208370214200341106a41004108102720032802102205200328021822006a2004427f7c3700002003200041086a220036021820032802142106200341f00c6a20032802f80c2000102720032802f00c220720032802f80c22086a20052000101e1a2003200820006a22003602f80c02402006450d00200510020b20032802f40c2105200341106a41086a220642003703002003420037031020072000200341106a1003200341086a2006290300370300200320032903103703002003411020014120100402402005450d00200710020b200341106a41086a220042003703002003420037031041df2d4107200341106a1003200341086a220120002903003703002003200329031037030020034110200241201004200042003703002003420037031041d12d4107200341106a100320012000290300370300200320032903103703002003411041d02d410041001000417f460d01200342003703100240024020034110200341106a41084100100041016a41084d0d0020032903104200510d04200341106a41086a220042003703002003420037031041d12d4107200341106a1003200341086a2000290300370300200320032903103703002003411041d02d410041001000417f460d052003420037031020034110200341106a41084100100041016a41084d0d012003290310210441002108200341106a410041e00c10171a2004427f7c2104410021094100210a4100210b4100210c4100210d4100210e4100210f410021104100211141002112410021134100211441002115410021164100211741002118410021194100211a4100211b4100211c4100211d4100211e4100211f4100212041002121410021224100212341002124410021254100212641002102410021270340200341f00c6a42002004427f7c2004501b220410a801200341106a202722004103704105746a220141186a200341f00c6a41186a290200370000200141106a200341f00c6a41106a290200370000200141086a200341f00c6a41086a290200370000200120032902f00c370000200041016a21274100210141002107024003402000200041036e2205417d6c6a4102470d01200341106a20016a220041df006a2d000022022000411f6a2d000022067120022006722000413f6a2d000071722108200041de006a2d000022022000411e6a2d000022067120022006722000413e6a2d000071722109200041dd006a2d000022022000411d6a2d000022067120022006722000413d6a2d00007172210a200041dc006a2d000022022000411c6a2d000022067120022006722000413c6a2d00007172210b200041db006a2d000022022000411b6a2d000022067120022006722000413b6a2d00007172210c200041da006a2d000022022000411a6a2d000022067120022006722000413a6a2d00007172210d200041d9006a2d00002202200041196a2d00002206712002200672200041396a2d00007172210e200041d8006a2d00002202200041186a2d00002206712002200672200041386a2d00007172210f200041d7006a2d00002202200041176a2d00002206712002200672200041376a2d000071722110200041d6006a2d00002202200041166a2d00002206712002200672200041366a2d000071722111200041d5006a2d00002202200041156a2d00002206712002200672200041356a2d000071722112200041d4006a2d00002202200041146a2d00002206712002200672200041346a2d000071722113200041d3006a2d00002202200041136a2d00002206712002200672200041336a2d000071722114200041d2006a2d00002202200041126a2d00002206712002200672200041326a2d000071722115200041d1006a2d00002202200041116a2d00002206712002200672200041316a2d000071722116200041d0006a2d00002202200041106a2d00002206712002200672200041306a2d000071722117200041cf006a2d000022022000410f6a2d000022067120022006722000412f6a2d000071722118200041ce006a2d000022022000410e6a2d000022067120022006722000412e6a2d000071722119200041cd006a2d000022022000410d6a2d000022067120022006722000412d6a2d00007172211a200041cc006a2d000022022000410c6a2d000022067120022006722000412c6a2d00007172211b200041cb006a2d000022022000410b6a2d000022067120022006722000412b6a2d00007172211c200041ca006a2d000022022000410a6a2d000022067120022006722000412a6a2d00007172211d200041c9006a2d00002202200041096a2d00002206712002200672200041296a2d00007172211e200041c8006a2d00002202200041086a2d00002206712002200672200041286a2d00007172211f200041c7006a2d00002202200041076a2d00002206712002200672200041276a2d000071722120200041c6006a2d00002202200041066a2d00002206712002200672200041266a2d000071722121200041c5006a2d00002202200041056a2d00002206712002200672200041256a2d000071722122200041c4006a2d00002202200041046a2d00002206712002200672200041246a2d000071722123200041c3006a2d00002202200041036a2d00002206712002200672200041236a2d000071722124200041c2006a2d00002202200041026a2d00002206712002200672200041226a2d000071722125200041c1006a2d00002202200041016a2d00002206712002200672200041216a2d000071722126200041c0006a2d0000220220002d00002206712002200672200041206a2d000071722102200141800c460d01200341106a20012005410574200541036e41e0006c6b6a6a220041e1006a20263a0000200041e0006a20023a0000200041e2006a20253a0000200041e3006a20243a0000200041e4006a20233a0000200041e5006a20223a0000200041e6006a20213a0000200041e7006a20203a0000200041e8006a201f3a0000200041e9006a201e3a0000200041ea006a201d3a0000200041eb006a201c3a0000200041ec006a201b3a0000200041ed006a201a3a0000200041ee006a20193a0000200041ef006a20183a0000200041f0006a20173a0000200041f1006a20163a0000200041f2006a20153a0000200041f4006a20133a0000200041f3006a20143a0000200041f5006a20123a0000200041f6006a20113a0000200041f7006a20103a0000200041f8006a200f3a0000200041f9006a200e3a0000200041fa006a200d3a0000200041fb006a200c3a0000200041fc006a200b3a0000200041fd006a200a3a0000200041fe006a20093a0000200041ff006a20083a0000200141e0006a210120052100200741016a22074111490d000b0b202741d100470d000b200320263a00f10c200320023a00f00c200320253a00f20c200320243a00f30c200320233a00f40c200320223a00f50c200320213a00f60c200320203a00f70c2003201f3a00f80c2003201e3a00f90c2003201d3a00fa0c2003201c3a00fb0c2003201b3a00fc0c2003201a3a00fd0c200320193a00fe0c200320183a00ff0c200320173a00800d200320163a00810d200320153a00820d200320133a00840d200320143a00830d200320123a00850d200320113a00860d200320103a00870d2003200f3a00880d2003200e3a00890d2003200d3a008a0d2003200c3a008b0d2003200b3a008c0d2003200a3a008d0d200320093a008e0d200320083a008f0d200341106a41086a220042003703002003420037031041e62d4107200341106a1003200341086a220120002903003703002003200329031037030020034110200341f00c6a41201004200341003602f00c200042003703002003420037031041ed2d4107200341106a1003200120002903003703002003200329031037030020034110200341f00c6a41041004200341900d6a24000f0b41c1214133102d000b41c1214133102d000b101c000b41f4214122102d000b4184c200103b000b41f4214122102d000ba80601057f230041d0096b22022400024002402001450d00200220003602080c010b200241d02d360208410021010b2002200136020c200241a0066a200241086a10200240024020022d00a8064107460d00200241106a200241a0066a418003101e1a20024190036a200241106a418003101e1a20024190066a20024190036a1026200241a0066a41086a22014200370300200242003703a00641ed2d4107200241a0066a1003200241b0096a41086a2001290300370300200220022903a0063703b009200241b0096a411041d02d410041001000417f460d01200241003602a00602400240200241b0096a4110200241a0066a41044100100041016a41044d0d0020022802a0062103200241a0096a41086a20024190066a41086a28020036020020022002290390063703a009410710012201450d01200220013602a006200242073702a406200241a0066a41004107102720022802a00620022802a80622006a220141002800e02e360000200241b0096a41086a200041076a2200360200200141046a41002f00e42e3b0000200141066a41002d00e62e3a0000200220022903a0063703b009200220003602a806410410012201450d01200220013602a006200242043702a406200241a0066a41004104102720022802a006220020022802a80622016a20033600002002200141046a22013602a80620022802a4062104200241b0096a20022802b8092001102720022802b009220320022802b80922056a20002001101e1a2002200520016a22053602b80902402004450d00200010020b20022802b4092100200241c0096a200241a0096a105120022802c809210420022802c0092101200241a0066a41086a22064200370300200242003703a00620032005200241a0066a1003200241b0096a41086a2006290300370300200220022903a0063703b009200241b0096a4110200120041004024020022802c409450d00200110020b02402000450d00200310020b024020022802a409450d0020022802a00910020b200241a0066a20024190036a418003101e1a200241a0066a10a601200241d0096a240042010f0b41c1214133102d000b101c000b4184351054000b41f4214122102d000bec0e04037f017e037f017e230041a0086b2201240020014180036a2000418003101e1a200141386a4200370300200141306a4200370300200141286a4200370300200141206a4200370300200141186a4200370300200141106a4200370300200141086a42003703002001420037030002400240024002400240200141c0056a200141c0001006450d00200141a0056a21000c010b20014188066a41186a420037030020014188066a41106a420037030020014188066a41086a42003703002001420037038806200141a0056a220020014188066a41201006450d010b2001410036029006200142013703880620014188066a41004120102720012802880620012802900622026a22032000290000370000200341186a200041186a290000370000200341106a200041106a290000370000200341086a200041086a2900003700002001200241206a220036029006200129038003210420014188066a20004108102720012802880620012802900622006a20043700002001200041086a220236029006200120014180036a41086a10282001280200210320014188066a20022001280208220010272001200020012802900622056a220636029006200520012802880622026a20032000101e1a02402001280204450d00200310020b200128028c06210020022006200141c0056a200141a0056a1015210302402000450d00200210020b200120014180036a418003101e1a20030d010c020b200120014180036a418003101e1a0c010b41bc3a103b000b20014180036a2001418003101e1a200141186a4200370300200141106a4200370300200141086a420037030020014200370300024002400240024002400240024002400240200141a0056a2200200141201006450d00200010c001200129038003520d06200010c0012104410710012203450d04200120033602002001420737020420014100410710272001280200200128020822026a220341002800d92e36000020014188066a41086a200241076a2202360200200341046a41002f00dd2e3b0000200341066a41002d00df2e3a0000200120012903003703880620012002360208412010012203450d04200442017c21042001200336020020014220370204200141004120102720012802002202200128020822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002001200541206a22033602082001280204210620014188066a20012802900620031027200128028806220520012802900622076a20022003101e1a2001200720036a22073602900602402006450d00200210020b200128028c0621022001200437038006200141086a2203420037030020014200370300200520072001100320014188066a41086a22062003290300370300200120012903003703880620014188066a411020014180066a4108100402402002450d00200510020b200010432104200342003703002001420037030041bf2041072001100320062003290300370300200120012903003703880620014188066a411041d02d410041001000417f460d072001420037030020014188066a4110200141084100100041016a41084d0d02200420012903002208540d08410810012203450d04200120033602002001420837020420014100410810272001280200200128020822036a42f3e885d3a3ac98b63a3700002001200341086a36020820014188066a41086a20012802083602002001200129030037038806412010012203450d04200420087d21042001200336020020014220370204200141004120102720012802002202200128020822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002001200541206a22003602082001280204210320014188066a20012802900620001027200128028806220520012802900622066a20022000101e1a2001200620006a22003602900602402003450d00200210020b200128028c0621022001200437038006200141086a2203420037030020014200370300200520002001100320014188066a41086a2003290300370300200120012903003703880620014188066a411020014180066a4108100420014188066a2103200121002002450d01200510020c010b2001210020014188066a21030b200120014180036a41c002101e22014188066a200141086a419802101e1a20014188066a200141a0026a10c101200041086a220242003700002000420037000041ed2d410720001003200341086a2002290000370000200320002900003700002003411041d02d410041001000417f460d032001410036020020034110200141044100100041016a41044d0d012001200128020041016a36028006200041086a220242003700002000420037000041ed2d410720001003200341086a2002290000370000200320002900003700002003411020014180066a41041004200141a0086a24000f0b41c1214133102d000b41c1214133102d000b101c000b41f4214122102d000b41d43a103b000b41f4214122102d000b41fc3c103b000bc51505047f017e027f017e027f23004190096b22022400024002402001450d00200220003602000c010b200241d02d360200410021010b20022001360204200241f0056a2002101d20024180066a280200210320022802fc05210420022802f805210520022903f0052106200241f8016a20024184066a41e400101e1a024002400240024002400240024002402005450d00200241f0006a200241f8016a41e400101e1a200241f8046a200241f0006a41e400101e1a200241003602f005200241f0056a2002280200220720022802042201410420014104491b2200101e1a2002200120006b3602042002200720006a3602000240200141034d0d0020022802f0052208ad4280037e2209422088a70d082009a72201417f4c0d07024002402001450d002001100122070d01101c000b410821070b2002200836020c20022007360208410021012002410036021002402008450d00200241f0056a41086a210a410021000340200241f0056a2002102002400240200a2d00004107460d00200041016a2100200241f8016a200241f0056a418003101e1a2001200228020c470d01200241086a106c200241086a41086a2802002101200228020821070c010b02402001450d0020014180036c2100200741186a210103400240200141706a2d00002208411d74411d75417f4a0d000240024020084105460d0020084104470d01200141786a2d00004101470d022001417c6a220828020010382008280200100220014180036a2101200041807d6a22000d030c040b200141786a2d00004101470d012001280200450d012001417c6a280200100220014180036a2101200041807d6a22000d020c030b200141746a2d00004101470d00200141786a220828020010382008280200100220014180036a2101200041807d6a22000d010c020b20014180036a2101200041807d6a22000d000b0b200228020c450d03200710020c030b200720014180036c6a200241f8016a418003101e1a200241086a41086a200141016a220136020020002008490d000b0b2007450d00200229020c2109200241f0056a200241f8046a41e400101e1a2005450d01200241086a200241f0056a41e400101e1a200241fc006a200436020020024180016a2003360200200220053602782002200637037020024184016a200241086a41e400101e2101200241ec016a2009370200200220073602e801200241f0006a2001200241c4016a220310a40120022903702206500d06200241f0056a2006427f7c10a801200241f0056a2001412010060d06200241e8016a2802002100200241f0016a28020021012002410036028005200242043703f804200241f8046a20014180036c22084180036d108401200228028005210720022802f8042105024002402001450d0020052007410c6c6a21010340200241f0056a2000102620022802f005450d0220004180036a2100200241f8016a41086a220a200241f0056a41086a280200360200200220022903f0053703f801200141086a200a280200360200200120022903f801370200200741016a21072001410c6a2101200841807d6a22080d000b0b200241003602f0050b20024180056a200736020020022802fc042108200241f8016a200520052007410c6c6a10a901200241f0056a20022802f8012201200228028002104c024020022802fc01450d00200110020b02402007450d002007410c6c21002005210103400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b02402008450d00200510020b02402003200241f0056a41201006450d0041d90a410e1008200341201013200241f0056a412010130b200241c4016a200241f0056a412010060d05200241ec016a2802002104200241f0006a41f8006a2802002105200241f0016a280200210a200241f8046a200241f0006a41f800101e1a2005200a4180036c6a210720052101200a450d03200241f0056a41096a2108200521010340200141086a2d0000210020012903002106200241f8016a200141096a41f702101e1a20004107460d03200241f0056a41086a20003a0000200220063703f0052008200241f8016a41f702101e1a200241f0056a10a60120014180036a22012007470d000c050b0b02402003450d002003410c6c21012005210203400240200241046a280200450d00200228020010020b2002410c6a2102200141746a22010d000b0b2004450d00200510020b4184351054000b20014180036a21010b20012007460d002005200a4180036c6a210803402001220041086a2d000022074107460d0120004180036a210102402007411d74411d75417f4a0d00200041146a2800002103200041106a280000210a02400240200741077122074105460d0020074104470d01200a41ff01714101470d02200310382003100220082001470d030c040b200a41ff01714101470d01200041186a280000450d012003100220082001470d020c030b2000410c6a2d000041ff01714101470d00200a1038200a100220082001470d010c020b20082001470d000b0b02402004450d00200510020b1034200241f0056a41086a22014200370300200242003703f00541e72e4107200241f0056a1003200241f8016a41086a2001290300370300200220022903f0053703f8014100210b02400240024002400240200241f8016a411041d02d410041001000417f460d00200242103702f4082002200241f8016a3602f008200241f0056a200241f0086a101620022802f0052204450d02200241f8056a280200210820022802f405210b0c010b41042104410021080b4100210a02400240024002400240024020024188056a2802002008470d000240024002402008450d0020024180056a280200210141002107200421000340200141086a280200220a200041086a280200470d0202402001280200220520002802002203460d0020052003200a10060d040b2001410c6a21012000410c6a2100200741016a22072008490d000b4101210a20080d040c060b4101210a200b0d060c070b20042008410c6c6a21074100210a0c030b4100210a0b2008450d020b20042008410c6c6a21070b2004210103402001410c6a21000240200141046a280200450d00200128020010020b2000210120072000470d000b0b200b450d010b200410020b200a450d01200241f0056a10aa0120022802f8052107024020024180066a2802002201450d002001410c6c21002007210103400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b0240200241fc056a280200450d00200710020b200241f8016a41186a22014200370300200241f8016a41106a22004200370300200241f8016a41086a22074200370300200242003703f801200241f8016a1014200241f0086a41186a2001290300370300200241f0086a41106a2000290300370300200241f0086a41086a2007290300370300200220022903f8013703f0080240200241ac056a2201200241f0086a41201006450d0041d90a410e1008200141201013200241f0086a412010130b2001200241f0086a412010060d02024020024188056a2802002200450d0020024180056a28020021012000410c6c210003400240200141046a280200450d00200128020010020b2001410c6a2101200041746a22000d000b0b024020024184056a280200450d0020024180056a28020010020b20024190096a240042010f0b41c1214133102d000b418c3a103b000b41a43a103b000b41f439103b000b41dc39103b000b105d000b105c000b8b0401067f230041306b22022400024002400240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800c72d360000200241086a200441076a2204360200200341046a41002f00cb2d3b0000200341066a41002d00cd2d3a00002002200229031037030020022004360218410810012203450d002002200336021020024208370214200241106a41004108102720022802102204200228021822036a20013700002002200341086a220336021820022802142105200220022802082003102720022802002206200228020822076a20042003101e1a2002200720036a220736020802402005450d00200410020b20022802042104200241106a41086a220342003703002002420037031020062007200241106a1003200241086a2003290300370300200220022903103703002002411041d02d410041001000417f460d02200241286a4200370300200241106a41106a4200370300200342003703002002420037031020024110200241106a4120410010002203417f460d012003411f4d0d0120002002290310370000200041186a200241106a41186a290300370000200041106a200241106a41106a290300370000200041086a200241106a41086a29030037000002402004450d00200610020b200241306a24000f0b101c000b41c1214133102d000b41f4214122102d000bc50103037f017e027f4100210302400240024002400240200220016b2204450d002004410c6d2205ad4203862206a722044100480d032006422088a74100470d03200410012207450d0420012002470d010c020b410421074100210520012002460d010b4100210320072104034020012802002108200441046a200141086a28020036020020042008360200200441086a2104200341016a21032001410c6a22012002470d000b0b2000200536020420002007360200200020033602080f0b1041000b101c000be40703037f027e057f23004180016b22012400200141e0006a41086a220242003703002001420037036041e62d4107200141e0006a1003200141c0006a41086a2203200229030037030020012001290360370340200141c0006a41101005200242003703002001420037036041ed2d4107200141e0006a10032003200229030037030020012001290360370340200141c0006a41101005200342003703002001420037034041d12d4107200141c0006a100320022003290300370300200120012903403703600240024002400240200141e0006a411041d02d410041001000417f460d0020014200370340200141e0006a4110200141c0006a41084100100041016a41084d0d0220012903402104200141c0006a41086a220242003703002001420037034041d12d4107200141c0006a1003200141e0006a41086a200229030037030020012001290340370360200141e0006a411010054201a7450d010c030b4200a70d020b41f4214122102d000b41c1214133102d000b200141d82d10d901200141c0006a41086a220242003703002001420037034041e72e4107200141c0006a1003200141e0006a41086a20022903003703002001200129034037036041002102024002400240200141e0006a411041d02d410041001000417f460d00200142103702242001200141e0006a360220200141c0006a200141206a101620012802402203450d0220012902442105200141c0006a41086a220242003703002001420037034041e72e4107200141c0006a1003200141e0006a41086a200229030037030020012001290340370360200141e0006a411010052005422088a721022005a721060c010b41042103410021060b200141206a41df2d10d901200141e0006a41186a22074200370300200141e0006a41106a22084200370300200141e0006a41086a2209420037030020014200370360200141e0006a1014200141c0006a41186a220a2007290300370300200141c0006a41106a22072008290300370300200141c0006a41086a2208200929030037030020012001290360370340200020043703002000412c6a200141186a290300370000200041246a200141106a2903003700002000411c6a200141086a29030037000020002001290300370014200020012903403700342000413c6a2008290300370000200041c4006a2007290300370000200041cc006a200a290300370000200020033602082000410c6a2006360200200041106a2002360200200041ec006a200141206a41186a290300370000200041e4006a200141206a41106a290300370000200041dc006a200141206a41086a2903003700002000200129032037005420014180016a24000f0b41c1214133102d000bda10040d7f017e017f017e230041d0016b220224001034200241b0016a41086a22034200370300200242003703b00141ed2d4107200241b0016a1003200241a0016a41086a2003290300370300200220022903b0013703a0010240200241a0016a411041d02d410041001000417f460d00200241003602080240200241a0016a4110200241086a41044100100041016a41044d0d0020022802082104200241003602c801200242043703c001200241c0016a200410840120022802c801210520022802c00121060240024002400240024002402004450d0020062005410c6c6a2107410021080340410710012203450d02200220033602082002420737020c200241086a410041071027200241086a41086a22032003280200220941076a220a360200200920022802086a220b41002800e02e36000020024180016a41086a2209200a360200200b41046a41002f00e42e3b0000200b41066a41002d00e62e3a0000200220022903083703800141041001220b450d022002200b3602082002420437020c200241086a41004104102720032003280200220a41046a220b360200200a2002280208220c6a2008360000200228020c210d20024180016a2009280200200b1027200228028001220a2009280200220e6a200c200b101e1a2009200e200b6a220e3602000240200d450d00200c10020b200228028401210d200241a0016a41086a220b4200370300200242003703a001200a200e200241a0016a10032003200b290300370300200220022903a001370308200241086a411041d02d410041001000417f460d0420024100360280014100200241086a411020024180016a41044100100022032003417f461b220c41034d0d062002280280012203417f4c0d03024002402003450d00200310012209450d0420094100200310171a0c010b410121090b20034100200241086a411020092003200c4104200c4104491b1000220c200c417f461b4b0d052009450d06200841016a21082003ad220f422086200f84210f200b4200370300200242003703a001200a200e200241a0016a1003200241b0016a41086a200b290300370300200220022903a0013703b001200241b0016a411010050240200d450d00200a10020b20072009360200200741046a200f3702002007410c6a210720082004490d000b200520086a21050b200241c8016a200536020020022802c4012108200241086a200620062005410c6c6a10a90120024180016a200228020822032002280210104c0240200228020c450d00200310020b02402005450d002005410c6c21092006210303400240200341046a280200450d00200328020010020b2003410c6a2103200941746a22090d000b0b02402008450d00200610020b200241086a41186a20024180016a41186a290300370300200241086a41106a220920024180016a41106a290300370300200241086a41086a20024180016a41086a22072903003703002002200229038001370308200241b0016a41086a22044200370300200242003703b00141df2d4107200241b0016a1003200241a0016a41086a22082004290300370300200220022903b0013703a001200241a0016a4110200241086a41201004200241086a10aa01200241003602c801200242013703c001200241c0016a41004120102720022802c00120022802c801220b6a2203200229021c370000200341086a200241246a290200370000200341106a2002412c6a290200370000200341186a200241346a2902003700002002200b41206a22033602c8012002290308210f200241c0016a20034108102720022802c00120022802c80122036a200f3700002002200341086a22033602c801200241c0016a20034120102720022802c00120022802c801220b6a2203200229023c370000200341086a200241c4006a290200370000200341106a200241cc006a290200370000200341186a200241d4006a2902003700002002200b41206a22033602c801200241c0016a20034120102720022802c00120022802c801220b6a2203200229025c370000200341086a200241e4006a290200370000200341106a200241ec006a290200370000200341186a200241f4006a2902003700002002200b41206a22103602c801200928020021052002410036028801200242013703800120024180016a41004104102720022802800120022802880122036a20053600002002200341046a36028801200820022802880136020020022002290380013703a00120022802102106024002402005450d002005410c6c210c2006210b0340200241b0016a200b105120042802002203417f4c0d0420022802b001210a024002402003450d002003100122090d010c050b410121090b200741003602002002200336028401200220093602800120024180016a41002003102720072007280200220d20036a2209360200200d200228028001220e6a200a2003101e1a2002280284012103024020022802b401450d00200a10020b200241a0016a20082802002009102720022802a001220d2008280200220a6a200e2009101e1a2008200a20096a220936020002402003450d00200e10020b200b410c6a210b200c41746a220c0d000c020b0b20022802a801210920022802a001210d0b20022802a4012103200241c0016a201020091027200220022802c801220820096a22073602c801200820022802c001220b6a200d2009101e1a02402003450d00200d10020b2007ad422086210f200bad211102402005450d002005410c6c21092006210303400240200341046a280200450d00200328020010020b2003410c6a2103200941746a22090d000b0b200f201184210f0240200241146a280200450d00200610020b200241d0016a2400200f0f0b101c000b1019000b41f4214122102d000b200910020b41c1214133102d000b41c1214133102d000b41f4214122102d000b810101047f230041106b220224002002102f2002280208210302402002280204450d00200228020010020b0240410410012204450d002002200436020020024204370204200241004104102720022802002204200228020822056a20033600002002200541046a2203360208200241106a24002003ad4220862004ad840f0b101c000b4802017f017e230041206b220224002002102f200241106a200210a2012002350218422086200235021084210302402002280204450d00200228020010020b200241206a240020030ba56d09047f027e047f017e0b7f017e027f017e0c7f230041a0016b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d0000417f6a220341044b0d000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020030e050004020301000b200041106a2802002104200241186a41086a2000410c6a2802003602002002200041046a290200370318200241e8006a41086a220342003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a2205200329030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d38200342003703002002420037036841b70f4107200241e8006a10032005200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d0420024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d4320022802782004470d050c590b200041246a2802002104200041286a290300210c200241c0006a200041196a290000370300200241286a41106a200041116a290000370300200241286a41086a200041096a29000037030020022000290001370328200241e8006a41086a220342003703002002420037036841b70f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358410021030240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d42200228027821030b20032004470d36200241e8006a41086a220342003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d352002200241d8006a3602682002411036026c2002420037037820024100200241d8006a4110200241f8006a41084100100022032003417f461b22034108200341084922041b220336027020040d3e20024100360278200241f0006a4100200241d8006a4110200241f8006a41042003100022042004417f461b22044104200441044922041b20036a36020020040d3e200241f8006a200241e8006a103a2002280278220d450d3e200241f8006a41086a280200210e200228027c210f200241e8006a41086a22034200370300200242003703684181114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d34200241003602784100200241d8006a4110200241f8006a41044100100022032003417f461b220441034d0d4a20022802782209ad2206421d88a70d332006420386a72203417f4c0d322003450d052003100122100d060c5a0b200041046a2802002103200241e8006a41086a220442003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d30200110af01450d2f200241e8006a41086a220442003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d392002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782204450d2e20024180016a280200220520034d0d39200228027c21080240200420034105746a22092001460d0020092001412010060d1c0b2002200836027c20022004360278200220053602800120012003200241f8006a10b001200241e8006a41086a220342003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2d20024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d472002290378210620012001104422072006200720072006561b22067d10b101200110432107410810012203450d59200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241286a41086a20022802800136020020022002290378370328412010012203450d59200720067c2106200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241286a20022802302003102720022802282205200228023022016a20042003101e1a2002200120036a220336023002402008450d00200410020b200228022c210820022006370378200241e8006a41086a220442003703002002420037036820052003200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a41081004410121042008450d58200510020c580b200041046a2802002103410710012204450d58200220043602782002420737027c200241f8006a410041071027200228027820022802800122056a220441002800bf10360000200241286a41086a200541076a2205360200200441046a41002f00c3103b0000200441066a41002d00c5103a0000200220022903783703282002200536028001412010012204450d58200220043602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200841206a220436028001200228027c2109200241286a200228023020041027200228022822082002280230220a6a20052004101e1a2002200a20046a220436023002402009450d00200510020b200228022c2105200241e8006a41086a220942003703002002420037036820082004200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a4110200241f8006a410041001000210402402005450d00200810020b2004417f470d2b200241e8006a41086a220442003703002002420037036841c6104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2a20024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d452001200229037810b201450d29200241e8006a41086a220442003703002002420037036841cd104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358410021050240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d3f200228027821050b200241e8006a41086a2204420037030020024200370368418d104107200241e8006a1003200241d8006a41086a20042903003703002002200229036837035841002109200241d8006a411041d02d410041001000417f460d052002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782208450d1920024180016a2802002104200228027c210920052003470d4e0c4d0b2000412c6a2802002103200041286a2802002111200041246a2802002112200241c0006a200041196a290000370300200241286a41106a200041116a290000370300200241286a41086a200041096a29000037030020022000290001370328200241e8006a41086a220442003703002002420037036841b00f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a410041001000417f470d27200241086a200110b30120022802084101470d262002200241286a10b3012002280200450d252002280204210e200241e8006a41086a220442003703002002420037036841b70f4107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358410021040240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d3d200228027821040b20042003470d24200241e8006a41086a22044200370300200242003703684186104107200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a411041d02d410041001000417f460d2320024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d41200e200320022802786b4f0d22200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d3a2002421037026c2002200241d8006a360268200241f8006a200241e8006a103a20022802782213450d2120024180016a280200221420124d0d3a200228027c21150240201320124105746a22032001460d0020032001412010060d3b0b201420114d0d360240201320114105746a2203200241286a460d002003200241286a412010060d370b200241c8006a200241286a10b4012002280250210320022802482105200241e8006a41086a2204420037030020024200370368418d104107200241e8006a1003200241d8006a41086a20042903003703002002200229036837035841002116200241d8006a411041d02d410041001000417f460d052002421037026c2002200241d8006a360268200241f8006a200241e8006a103a20022802782217450d17200228027c211620024180016a28020041057441057522042003200320044b1b22080d060c070b41002004460d540b41dc351054000b410821100b2002200936027c20022010360278200241003602800102402009450d002004410420044104491b210441002103410021050340200242003703684100200241d8006a4110200241e8006a41082004100022082008417f461b220841074d0d442008410820084108491b2108200541016a21052002290368210602402003200228027c470d00200241f8006a1071200241f8006a41086a2802002103200228027821100b200820046a2104201020034103746a2006370300200241f8006a41086a200341016a220336020020052009490d000b200228027821100b2010450d43200229027c2118200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a20032903003703002002200229036837035841002119200241d8006a411041d02d410041001000417f460d042002421037026c2002200241d8006a360268200241f8006a200241e8006a103a2002280278221a450d1220024180016a280200210b200228027c21190c050b410121084100210420052003460d470c480b4101211741002003200341004b1b2208450d010b4100210420024190016a210920024188016a210a20024180016a210b2017210303400240200520046a2d0000450d0020094200370300200a4200370300200b420037030020024200370378200241f8006a2003460d002003200241f8006a41201006450d00200241f8006a200310b50120022802784101470d3b200228027c200e4d0d050b200341206a2103200441016a22042008490d000b0b410021032016450d430c420b4101211a4100210b0b200241e8006a41086a22034200370300200242003703684188114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d1620024200370378200241d8006a4110200241f8006a41084100100041016a41084d0d392002290378210620011043200110447c2006200bad7e221b540d15200241e8006a41086a2203420037030020024200370368418f114107200241e8006a1003200241d8006a41086a200329030037030020022002290368370358200241d8006a411041d02d410041001000417f460d142002421037026c2002200241d8006a360268200241f8006a200241e8006a10b60120022802782217450d1320024180016a280200221c450d122017290300200c5a0d11200228027c211d200241f8006a104720022802782209200228028001221141286c22056a210a41002103200921040240024002400240200541286d4104490d0020092105410021030340200241286a20052204460d0220032004200241286a4120100622054100476a21032005450d02200441286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200541286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200541286a2205200241286a460d0220032005200241286a4120100622084100476a21032008450d02200a200541286a22056b41286d41034b0d000b200441a0016a21040b02402004200a460d002009201141286c6a21080340200241286a2004460d0220032004200241286a4120100622054100476a21032005450d022008200441286a2204470d000b0b41000d010c020b4101450d010b2003200e4f0d0c0b0240200228027c450d00200910020b200241f8006a200241286a10b50120022802784101470d10024002402018421d88a74103752203200b4105744105752204200420034b1b2208450d0020024180016a2802002109200228027c210a4200210741002104201a210320102105034020052903002106200241106a200310b301200441016a21040240024020022802104101470d002002280214200a490d00200241f8006a200310b4010240200241f8006a41086a28020020094d0d002002280278220e20096a2d0000210b0240200228027c450d00200e10020b200b41ff01710d020c010b200228027c450d00200228027810020b420021060b200341206a2103200541086a2105200620077c210720042008490d000c020b0b420021070b2017201c41286c22056a21042017210302400240200541286d4104490d00200241206a2105200241786a2108200241506a2109200241a87f6a210a20172103034020052003460d02200341086a200241286a41201006450d0220082003460d02200341306a200241286a41201006450d0220092003460d02200341d8006a200241286a41201006450d02200a2003460d0220034180016a200241286a41201006450d022004200341a0016a22036b41286d41034b0d000b0b024020032004460d002017201c41286c6a2105200241206a2104034020042003460d02200341086a200241286a41201006450d022005200341286a2203470d000b0b2007200c520d00200241f8006a41186a2203200241286a41186a290300370300200241f8006a41106a2204200241286a41106a290300370300200241f8006a41086a2205200241286a41086a290300370300200220022903283703782017200c370300201741206a2003290300370300201741186a2004290300370300201741106a200529030037030020172002290378370308201c41144b0d02201c41014d0d03201c417f6a21092017201c41286c6a41586a210e0340201c20092203417f6a2209490d2d0240201c20096b22084102490d002017200341286c6a22052903002017200941286c6a220b29030022065a0d00200b2005290300370300200b2903082107200b41086a200541086a290300370300200241f8006a41186a2211200b41206a2203290300370300200241f8006a41106a2212200b41186a2204290300370300200241f8006a41086a2213200b41106a22012903003703002001200541106a2903003703002004200541186a2903003703002003200541206a2903003703002002200737037841012101024020084103490d0041012104200e21030340200441016a220120084f0d340240200341286a220529030020065a0d00200420084f0d34200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032005290300370300200441026a210a2001210420052103200a2008490d010c020b0b20042101200321050b20052006370300200b200141286c6a22032002290378370308200341206a2011290300370300200341186a2012290300370300200341106a20132903003703000b200e41586a210e20090d000c040b0b200110432106410810012203450d4d200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241e8006a41086a20022802800136020020022002290378370368412010012203450d4d2006201b20062006201b561b220c7d2107200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241e8006a20022802702003102720022802682205200228027022096a20042003101e1a2002200920036a220336027002402008450d00200410020b200228026c210420022007370378200241e8006a41086a220842003703002002420037036820052003200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a4110200241f8006a4108100402402004450d00200510020b0240201b2006580d002001200110442206201b200c7d2207200620062007561b7d10b1010b0240201d450d00201710020b02402019450d00201a10020b2018a7450d3f0c3e0b4101210320160d3f0c400b201c410176221ead42287e2206422088a70d082006a72203417f4c0d074108211f02402003450d0020031001221f450d4c0b410021042002410036027020024204370368201741586a2120201741887f6a212141042105200241e8006a41086a2115201c211603402016210e410021164101210802400240024002400240024002400240200e417f6a2203450d0002400240024002400240024002402017200341286c6a2903002017200e417e6a220841286c6a29030022065a0d00410021092008450d022021200e41286c6a210303402006200329030022075a0d02200341586a2103200721062008417f6a22080d000c030b0b02402008450d002021200e41286c6a2103410221080340200620032903002207540d04200341586a210320072106200e200841016a2208470d000b41002116200e21082004200228026c470d0e0c0d0b41022108410021162004200228026c470d0d0c0c0b200821090b200e2009490d02200e201c4b0d090240200e20096b2208410176220a450d002020200e41286c6a21032017200941286c6a21010340200241f8006a41206a220b200141206a2211290300370300200241f8006a41186a2212200141186a2213290300370300200241f8006a41106a2214200141106a2216290300370300200241f8006a41086a2222200141086a222329030037030020022001290300370378200341086a22242903002106200341106a22252903002107200341186a2226290300211b2003290300210c2011200341206a22272903003703002013201b37030020162007370300202320063703002001200c3703002027200b29030037030020262012290300370300202520142903003703002024202229030037030020032002290378370300200341586a2103200141286a2101200a417f6a220a0d000b0b2009450d010c030b200e20086b22090d020b200921160c020b2009200e1055000b0240200841094b0d00200e201c4b0d042017200941286c6a21120340200e2009417f6a2216490d060240200e20166b22084102490d002017200941286c6a22092903002017201641286c6a221129030022065a0d002011200929030037030020112903082107201141086a200941086a290300370300200241f8006a41186a2213201141206a2203290300370300200241f8006a41106a2214201141186a2201290300370300200241f8006a41086a2222201141106a220a290300370300200a200941106a2903003703002001200941186a2903003703002003200941206a290300370300200220073703784101210a024020084103490d0041012101201221030340200141016a220a20084f0d060240200341286a220929030020065a0d00200120084f0d08200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032009290300370300200141026a210b200a210120092103200b2008490d010c020b0b2001210a200321090b200920063703002011200a41286c6a22032002290378370308200341206a2013290300370300200341186a2014290300370300200341106a20222903003703000b2016450d02201241586a2112201621092008410a490d000c020b0b200921162004200228026c470d070c060b2004200228026c460d050c060b41ccc100200141016a2008103c000b41dcc10020012008103c000b200e2009417f6a22164f0d010b2016200e1055000b200e201c1029000b200241e8006a107a20152802002104200228026821050b200520044103746a22032008360204200320163602002015200441016a2204360200024020044102490d00200228026821050340024002400240024020052004417f6a4103746a2203280200450d00200520044103746a220941746a2802002201200328020422084d0d00200441024d0d0520052004417d6a22124103746a2802042203200820016a4d0d01200441034d0d05200941646a280200200320016a4d0d010c050b20044103490d012003280204210820052004417d6a22124103746a28020421030b20032008490d010b2004417e6a21120b2004201241016a22134d0d04200420124d0d052005201241037422226a2203280204222320032802006a22032005201341037422246a22042802002214490d062003201c4b0d072017201441286c6a220e2004280204221141286c22046a2108200341286c210502400240024002400240200320146b220920116b220320114f0d00201f2008200341286c2204101e220b20046a210120114101480d0120034101480d01202020056a21052008210303402005200341586a2208200141586a22092009290300200829030054220a1b2204290300370300200541206a200441206a290300370300200541186a200441186a290300370300200541106a200441106a290300370300200541086a200441086a29030037030020012009200a1b2101200e20082003200a1b22034f0d04200541586a2105200b2104200b2001490d000c050b0b201f200e2004101e220320046a210120114101480d01200920114c0d01201720056a210a20032104200e21030340200320082004200829030020042903005422091b2205290300370300200341206a200541206a290300370300200341186a200541186a290300370300200341106a200541106a290300370300200341086a200541086a2903003703002004200441286a20091b2104200341286a2103200841286a200820091b2208200a4f0d04200120044b0d000c040b0b200821030c010b200e21030b201f21040b20032004200120046b220520054128706b101e1a2015280200220320124d0d082002280268220520226a2204202320116a36020420042014360200200320134d0d09200520246a2204200441086a200320136b41037441786a10391a20152003417f6a2204360200200441014b0d000b0b20160d000b0240200228026c450d00200228026810020b201e450d00201f10020b2002201d36027c200220173602782002201c36028001200241f8006a10b7010240201d450d00201710020b02402019450d00201a10020b2018a70d3b0c3c0b41acc10020132004103c000b41acc10020122004103c000b201420031055000b2003201c1029000b41bcc10020122003103c000b41b4c300103b000b105f000b105e000b418439103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41d437103b000b41ce114123102d000b41ec38103b000b41cc3641004100103c000b41c1214133102d000b4196114131102d000b41d438103b000b41f4214122102d000b41c1214133102d000b41b436103b000b41f4214122102d000b419c36103b000b41da0f412c102d000b418436103b000b41ec35103b000b418438103b000b41f4214122102d000b41ec37103b000b41f4214122102d000b41c1214133102d000b41a437103b000b418c37103b000b1063000b1062000b41f4214122102d000b41d410412d102d000b41c4381054000b41c435103b000b2009201c1055000b41f436103b000b41bc37103b000b41dcc10020042008103c000b41ccc100200441016a2008103c000b41dc36103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b419410412b102d000b41c1214133102d000b41ac35103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b200228027c450d00201010020b41c1214133102d000b201010020b200f450d09200d10020c090b201710020b0240200228024c450d00200510020b2002201536027c2002201336027820022014360280012001200241286a20031b2012201120031b200241f8006a10b001200241e8006a41086a220442003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a2004290300370300200220022903683703580240200241d8006a411041d02d410041001000417f460d00200242003703780240200241d8006a4110200241f8006a41084100100041016a41084d0d002002290378210602402003450d0020012001104422072006200720072006561b7d10b1010c0a0b200241286a200241286a104422072006200720072006561b22067d10b101200110432107410810012203450d0d200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241e8006a41086a20022802800136020020022002290378370368412010012203450d0d200720067c2106200220033602782002422037027c200241f8006a4100412010272002280278220420022802800122056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220336028001200228027c2108200241e8006a20022802702003102720022802682205200228027022016a20042003101e1a2002200120036a220336027002402008450d00200410020b200228026c210420022006370378200241e8006a41086a220842003703002002420037036820052003200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a4110200241f8006a410810042004450d09200510020c090b41c1214133102d000b41f4214122102d000b20042003460d010b200420034d0d0120024190016a420037030020024188016a420037030020024180016a420037030020024200370378200820034105746a220a200241f8006a460d00200a200241f8006a412010060d010b2002200936024c20022008360248200220043602500240024020042003470d00200241f8006a41186a2204200141186a290000370300200241f8006a41106a220b200141106a290000370300200241f8006a41086a220e200141086a290000370300200220012900003703782003210a20032009460d010c040b200241f8006a41186a2209200141186a290000370300200241f8006a41106a220a200141106a290000370300200241f8006a41086a220b200141086a29000037030020022001290000370378200420034d0d02200820034105746a22042002290378370000200441186a2009290300370000200441106a200a290300370000200441086a200b2903003700000c040b200241c8006a107c200241c8006a41086a280200210a200228024821080c020b419c38103b000b41b43820032004103c000b200e2903002106200b29030021072004290300211b2008200a4105746a22042002290378370000200441186a201b370000200441106a2007370000200441086a2006370000200241c8006a41086a200a41016a3602000b200241286a41086a200241c8006a41086a28020036020020022002290348370328200241f8006a200241286a10a201200228028001210820022802782104200241e8006a41086a2209420037030020024200370368418d104107200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a41102004200810040240200228027c450d00200410020b0240200228022c450d00200228022810020b2002200541016a360278200241e8006a41086a220442003703002002420037036841cd104107200241e8006a1003200241d8006a41086a2205200429030037030020022002290368370358200241d8006a4110200241f8006a41041004200442003703002002420037036841b70f4107200241e8006a10032005200429030037030020022002290368370358410021050240200241d8006a411041d02d410041001000417f460d0020024100360278200241d8006a4110200241f8006a41044100100041016a41044d0d02200228027821050b410710012204450d04200220043602782002420737027c200241f8006a410041071027200228027820022802800122086a220441002800bf10360000200241286a41086a200841076a2208360200200441046a41002f00c3103b0000200441066a41002d00c5103a0000200220022903783703282002200836028001412010012204450d04200220043602782002422037027c200241f8006a4100412010272002280278220820022802800122096a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200941206a220436028001200228027c2109200241286a200228023020041027200228022822012002280230220a6a20082004101e1a2002200a20046a220a36023002402009450d00200810020b200228022c2108200241003602800120024201370378200241f8006a410041041027200228027820022802800122046a20053600002002200441046a220436028001200241f8006a2004410410272002280278220420022802800122056a20033600002002200541046a220336028001200241e8006a41086a22054200370300200242003703682001200a200241e8006a1003200241d8006a41086a200529030037030020022002290368370358200241d8006a41102004200310040240200228027c450d00200410020b2008450d00200110020b410121040c020b41c1214133102d000b0240200110af010d00200241e8006a41086a220342003703002002420037036841be0f4107200241e8006a1003200241d8006a41086a2003290300370300200220022903683703580240024002400240200241d8006a411041d02d410041001000417f460d00200242003703780240200241d8006a4110200241f8006a41084100100041016a41084d0d00200229037821062001104322072006540d02410810012203450d07200220033602782002420837027c200241f8006a410041081027200228027820022802800122036a42f3e885d3a3ac98b63a3700002002200341086a36028001200241286a41086a20022802800136020020022002290378370328412010012203450d07200720067d2107200220033602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200841206a220336028001200228027c2109200241286a200228023020031027200228022822082002280230220a6a20052003101e1a2002200a20036a220336023002402009450d00200510020b200228022c210520022007370378200241e8006a41086a220942003703002002420037036820082003200241e8006a1003200241d8006a41086a200929030037030020022002290368370358200241d8006a4110200241f8006a4108100402402005450d00200810020b20012001104420067c10b101200241e8006a41086a220342003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a20032903003703002002200229036837035802400240200241d8006a411041d02d410041001000417f460d002002421037022c2002200241d8006a360228200241f8006a200241286a103a20022802782208450d052002200229027c220637022c20022008360228200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241f8006a21032006422088a722052006a7460d010c060b2002410036023020024201370328200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241f8006a21030b200241286a107c200241306a2802002105200228022821080c040b41c1214133102d000b41f4214122102d000b41ec3d103b000b41c1214133102d000b20032900002106200241286a41086a2209200541016a360200200820054105746a22052006370000200541186a200341186a290000370000200541106a200341106a290000370000200541086a200341086a290000370000200241c8006a41086a200928020036020020022002290328370348200241f8006a200241c8006a10a201200228028001210520022802782103200241e8006a41086a220842003703002002420037036841c50f4107200241e8006a1003200241d8006a41086a200829030037030020022002290368370358200241d8006a41102003200510040240200228027c450d00200310020b200228024c450d00200228024810020b200241f8006a41186a200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a29000037030020022001290000370378200241c8006a41086a200241186a41086a28020036020020022002290318370348410710012203450d01200220033602282002420737022c200241286a4100410710272002280228200228023022056a220341002800cc0f360000200241e8006a41086a200541076a2205360200200341046a41002f00d00f3b0000200341066a41002d00d20f3a00002002200229032837036820022005360230412010012203450d01200220033602282002422037022c200241286a41004120102720022802282205200228023022086a22032002290378370000200341086a200241f8006a41086a290300370000200341106a200241f8006a41106a290300370000200341186a200241f8006a41186a2903003700002002200841206a2203360230200228022c2109200241e8006a200228027020031027200228026822082002280270220a6a20052003101e1a2002200a20036a220a36027002402009450d00200510020b200228026c2105200241286a200241c8006a10b8012002280230210920022802282103200241e8006a41086a220b4200370300200242003703682008200a200241e8006a1003200241d8006a41086a200b29030037030020022002290368370358200241d8006a41102003200910040240200228022c450d00200310020b02402005450d00200810020b0240200228024c450d00200228024810020b410710012203450d01200220033602782002420737027c200241f8006a410041071027200228027820022802800122056a220341002800d30f360000200241286a41086a200541076a2205360200200341046a41002f00d70f3b0000200341066a41002d00d90f3a0000200220022903783703282002200536028001412010012203450d01200220033602782002422037027c200241f8006a4100412010272002280278220520022802800122086a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200841206a220336028001200228027c2101200241286a20022802302003102720022802282208200228023022096a20052003101e1a2002200920036a220336023002402001450d00200510020b200228022c210520022004360278200241e8006a41086a220442003703002002420037036820082003200241e8006a1003200241d8006a41086a200429030037030020022002290368370358200241d8006a4110200241f8006a4104100402402005450d00200810020b410021040b0240024020002d000022034107714101460d0020034105460d0120034102460d0120034101470d01200041086a280200450d01200041046a2802001002200241a0016a24000f0b2004450d00200041086a280200450d00200041046a28020010020b200241a0016a24000f0b101c000ba90301057f230041206b220124000240410710012202450d002001200236021020014207370214200141106a4100410710272001280210200128021822036a220241002800d30f360000200141086a200341076a2203360200200241046a41002f00d70f3b0000200241066a41002d00d90f3a00002001200129031037030020012003360218412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b20012802042103200141106a41086a220442003703002001420037031020022000200141106a1003200141086a20042903003703002001200129031037030020014110200141106a410041001000210002402003450d00200210020b200141206a24002000417f470f0b101c000bc70908057f017e017f027e017f017e017f017e230041d0006b220324000240200241086a2204280200220520014d0d002002280200220620014105746a220141186a2207290000210820062005417f6a22094105746a2205290000210a200541086a2206290000210b200541106a220c290000210d2007200541186a220e290000370000200141106a2207290000210f2007200d370000200141086a2207290000210d2007200b3700002001290000210b2001200a370000200341106a41186a2008370300200341106a41106a200f370300200341106a41086a2201200d370300200e2008370000200c200f3700002006200d3700002005200b3700002003200b37031020042009360200200341086a200936020020032002290200370300200341c0006a200310a2012003280248210220032802402105200142003703002003420037031041c50f4107200341106a1003200341306a41086a200129030037030020032003290310370330200341306a411020052002100402402003280244450d00200510020b02402003280204450d00200328020010020b0240410710012201450d002003200136021020034207370214200341106a4100410710272003280210200328021822056a220141002800cc0f360000200341306a41086a200541076a2205360200200141046a41002f00d00f3b0000200141066a41002d00d20f3a00002003200329031037033020032005360218412010012201450d002003200136021020034220370214200341106a41004120102720032802102205200328021822026a22012000290000370000200141086a200041086a290000370000200141106a200041106a290000370000200141186a200041186a2900003700002003200241206a220136021820032802142109200341306a20032802382001102720032802302202200328023822046a20052001101e1a2003200420016a220136023802402009450d00200510020b20032802342105200341106a41086a220942003703002003420037031020022001200341106a1003200341306a41086a200929030037030020032003290310370330200341306a4110100502402005450d00200210020b410710012201450d002003200136021020034207370214200341106a4100410710272003280210200328021822056a220141002800d30f360000200341306a41086a200541076a2205360200200141046a41002f00d70f3b0000200141066a41002d00d90f3a00002003200329031037033020032005360218412010012201450d002003200136021020034220370214200341106a41004120102720032802102205200328021822026a22012000290000370000200141086a200041086a290000370000200141106a200041106a290000370000200141186a200041186a2900003700002003200241206a220036021820032802142102200341306a20032802382000102720032802302201200328023822096a20052000101e1a2003200920006a220036023802402002450d00200510020b20032802342105200341106a41086a220242003703002003420037031020012000200341106a1003200341306a41086a200229030037030020032003290310370330200341306a4110100502402005450d00200110020b200341d0006a24000f0b101c000b419c3920012005103c000b9a0301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3c3cdd8b73a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220036021802402005450d00200410020b2002280214210420022001370308200241206a41086a220542003703002002420037032020032000200241206a1003200241106a41086a200529030037030020022002290320370310200241106a4110200241086a4108100402402004450d00200310020b200241306a24000f0b101c000bfd0602067f017e230041306b220224000240410810012203450d00200220033602182002420837021c200241186a4100410810272002280218200228022022036a42f3e885d3a3ec9bb73a3700002002200341086a360220200241086a41086a200228022036020020022002290318370308412010012203450d00200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a2203360220200228021c2106200241086a20022802102003102720022802082205200228021022076a20042003101e1a2002200720036a220336021002402006450d00200410020b200228020c210442002108200241186a41086a220642003703002002420037031820052003200241186a1003200241086a41086a20062903003703002002200229031837030802400240200241086a411041d02d410041001000417f460d0020024200370318200241086a4110200241186a41084100100041016a41084d0d01200229031821080b02402004450d00200510020b4100210302402008427f510d002008102e560d002000104322082001540d00410810012203450d02200220033602182002420837021c200241186a4100410810272002280218200228022022036a42f3e885d3a3ac98b63a3700002002200341086a360220200241086a41086a200228022036020020022002290318370308412010012203450d02200820017d2108200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a2200360220200228021c2103200241086a20022802102000102720022802082205200228021022066a20042000101e1a2002200620006a220036021002402003450d00200410020b200228020c210420022008370328200241186a41086a220342003703002002420037031820052000200241186a1003200241086a41086a200329030037030020022002290318370308200241086a4110200241286a41081004410121032004450d00200510020b200241306a240020030f0b41c1214133102d000b101c000bf80301057f230041206b22022400024002400240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800d30f360000200241086a200441076a2204360200200341046a41002f00d70f3b0000200341066a41002d00d90f3a00002002200229031037030020022004360218412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241106a41086a220542003703002002420037031020032001200241106a1003200241086a20052903003703002002200229031037030041002101024002402002411041d02d410041001000417f460d00200241003602104101210120024110200241106a41044100100041016a41044d0d01200228021021052004450d040c030b20040d020c030b41c1214133102d000b101c000b200310020b2000200136020020002005360204200241206a24000b8806010a7f230041306b22022400024002400240024002400240024002400240410710012203450d00200220033602182002420737021c200241186a4100410710272002280218200228022022046a220341002800cc0f360000200241086a41086a200441076a2204360200200341046a41002f00d00f3b0000200341066a41002d00d20f3a00002002200229031837030820022004360220412010012203450d00200220033602182002422037021c200241186a41004120102720022802182204200228022022056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a2201360220200228021c2103200241086a20022802102001102720022802082206200228021022056a20042001101e1a2002200520016a220136021002402003450d00200410020b200228020c2107200241186a41086a220342003703002002420037031820062001200241186a1003200241086a41086a200329030037030020022002290318370308200241086a411041d02d410041001000417f460d01200241003602184100200241086a4110200241186a41044100100022012001417f461b220141034d0d0720022802182208417f4c0d082008450d022008100122090d030b101c000b200041003602082000420137020020070d020c030b410121090b2002200836021c200220093602182002410036022002402008450d002001410420014104491b2103200241206a210a41002101410021040340200241003a002f200241086a41102002412f6a41012003100041016a41014b220b450d04200441016a210420022d002f210502402001200228021c470d00200241186a1023200a2802002101200228021821090b2003200b6a2103200920016a20053a0000200a200141016a220136020020042008490d000b200228021821090b2009450d032000200229021c370204200020093602002007450d010b200610020b200241306a24000f0b200228021c450d00200910020b41c1214133102d000b1024000b990401057f230041206b220224000240410710012203450d002002200336021020024207370214200241106a4100410710272002280210200228021822046a220341002800bf10360000200241086a200441076a2204360200200341046a41002f00c3103b0000200341066a41002d00c5103a00002002200229031037030020022004360218412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241106a41086a220542003703002002420037031020032001200241106a1003200241086a20052903003703002002200229031037030041002101024002402002411041d02d410041001000417f460d002002410036021020024110200241106a41044100100041016a41044d0d01200228021021012002410036021020024110200241106a41044104100041016a41044d0d01200041086a200228021036020020002001360204410121010b2000200136020002402004450d00200310020b200241206a24000f0b41c1214133102d000b101c000b930503067f017e097f230041d0006b220224002002410036023020012001280208220341002001280200220420012802042205200241306a41042003100022032003417f461b2203410420034104491b6a220636020802400240024002400240200341034d0d0020022802302207ad42287e2208422088a70d042008a72203417f4c0d032003450d012003100122090d02101c000b20004100360200200241d0006a24000f0b410821090b20022007360204200220093602002002410036020802402007450d00200241306a41186a210a200241306a41106a210b4100210c4100210d034020024200370330200141086a220e410020042005200241306a41082006100022032003417f461b2203410820034108491b20066a220636020002400240200341074d0d0020022903302108200a4200370300200b4200370300200241306a41086a220f420037030020024200370330200e410020042005200241306a41202006100022032003417f461b2203412020034120491b20066a22063602002003411f4d0d00200d41016a210d200241106a41186a220e200a290300370300200241106a41106a2210200b290300370300200241106a41086a2211200f29030037030020022002290330370310200c2002280204470d0120021068200241086a280200210c200228020021090c010b2000410036020002402002280204450d00200910020b200241d0006a24000f0b2009200c41286c6a2203200837030020032002290310370308200341206a200e290300370300200341186a2010290300370300200341106a2011290300370300200241086a200c41016a220c360200200d2007490d000b0b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b105f000b105e000bf40403057f017e037f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a220341003602002001420137031020002903002106200141106a41004108102720032003280200220241086a2207360200200220012802106a2006370000200141106a20074120102720032003280200220741206a22023602002007200128021022086a220341086a200041106a290000370000200341106a200041186a290000370000200341186a200041206a2900003700002003200041086a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220741003602002001200236022420012003360220200141206a41002002102720072007280200220920026a22033602002009200128022022076a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20072003101e1a2004200820036a220336020002402002450d00200710020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a2200420037030020014200370320418f114107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000bb50201077f230041206b22022400200141086a28020021032002410036021820024201370310200241106a4100410410272002280210200228021822046a20033600002002200441046a360218200241086a2204200228021836020020022002290310370300024002402003450d00200128020021050340410110012201450d022002200136021020024201370214200241106a410041011027200241106a41086a22012001280200220641016a22013602002006200228021022076a20052d00003a00002002280214210620022004280200200110272002280200200428020022086a20072001101e1a2004200820016a36020002402006450d00200710020b200541016a21052003417f6a22030d000b0b20002002290300370200200041086a2004280200360200200241206a24000f0b101c000bd60c03047f047e017f230041f0006b210202400240024002400240024002400240024002400240024002400240024020012d002822034103714101460d0020034102470d01200141206a22032802002204450d0e20032004417f6a3602002001411c6a2d0000450d050c0e0b20012802102204450d01200141106a4100360200024020012802082203200128020c2205460d002004417f7321040340200241c8006a41206a200341206a290300370300200241c8006a41186a200341186a290300370300200241c8006a41106a200341106a290300370300200241c8006a41086a200341086a29030037030020022003290300370348200441016a2204450d072005200341286a2203470d000b200141086a20053602000b200042003703000f0b20012802102204450d01200141106a410036020020012802082203200128020c2205460d022004417f7321040340200241c8006a41206a200341206a290300370300200241c8006a41186a200341186a290300370300200241c8006a41106a200341106a290300370300200241c8006a41086a200341086a29030037030020022003290300370348200441016a2204450d062005200341286a2203470d000b200141086a20053602000c020b20012802082202200128020c460d06200141086a200241286a360200200041286a200241206a290300370300200041206a200241186a290300370300200041186a200241106a290300370300200041106a200241086a29030037030020002002290300370308200042013703000f0b20012802082203200128020c460d00200141086a200341286a360200200241206a200341206a290300370300200241186a200341186a290300370300200241106a200341106a290300370300200241086a200341086a290300370300200220032903003703000c040b200141286a41023a0000200141206a22032802002204450d0820032004417f6a3602002001411c6a2d0000450d050c080b200141186a22042802002203200141146a280200460d082004200341586a220336020020032903004200510d05200241c8006a41206a200341206a2903002206370300200241c8006a41186a200341186a2903002207370300200241c8006a41106a200341106a2903002208370300200241c8006a41086a200341086a2903002209370300200241086a22042008370300200241106a22052007370300200241186a220a20063703002002200329030037034820022009370300200041286a200141246a280200290300370300200041206a200a290300370300200041186a2005290300370300200041106a200429030037030020002002290300370308200042013703000f0b2000200229034837030820004201370300200141086a200341286a360200200041106a200241c8006a41086a290300370300200041186a200241c8006a41106a290300370300200041206a200241c8006a41186a290300370300200041286a200241c8006a41206a2903003703000f0b200141086a200341286a360200200241086a200241c8006a41086a290300370300200241106a200241c8006a41106a290300370300200241186a200241c8006a41186a290300370300200241206a200241c8006a41206a290300370300200220022903483703000b2000200229030037030820004201370300200041106a200241086a290300370300200041186a200241106a290300370300200041206a200241186a290300370300200041286a200241206a2903003703000f0b200042003703000f0b200141186a22042802002203200141146a280200460d022004200341586a220336020020032903004200510d01200241c8006a41206a200341206a2903002206370300200241c8006a41186a200341186a2903002207370300200241c8006a41106a200341106a2903002208370300200241c8006a41086a200341086a2903002209370300200241286a41086a22042008370300200241286a41106a22052007370300200241286a41186a220a20063703002002200329030037034820022009370328200041286a200141246a280200290300370300200041206a200a290300370300200041186a2005290300370300200041106a200429030037030020002002290328370308200042013703000f0b2001411c6a41013a0000200042003703000f0b2001411c6a41013a0000200042003703000f0b200042003703000f0b200042003703000b8c0204017f017e017f017e230041c0006b22022400102e2103200241086a220442003703002002420037030041f726410720021003200241306a41086a2004290300370300200220022903003703300240200241306a411041d02d410041001000417f460d00200242003703000240200241306a4110200241084100100041016a41084d0d0020022903002105200241286a200041286a290300370300200241206a200041206a290300370300200241186a200041186a290300370300200241106a200041106a290300370300200241086a200041086a29030037030020022000290300370300200520037c20022001103f200241c0006a24000f0b41c1214133102d000b41f4214122102d000bba0503047f017e087f230041e0006b22012400200141c0006a41086a220242003703002001420037034041f2224107200141c0006a1003200141086a2002290300370300200120012903403703000240024002402001411041d02d410041001000417f460d00200141003602400240410020014110200141c0006a41044100100022022002417f461b220341034d0d0020012802402204ad42287e2205422088a70d022005a72202417f4c0d03024002402002450d002002100122060d01101c000b410821060b200120043602142001200636021020014100360218024002402004450d002003410420034104491b2107200141c0006a41186a21084100210341002109034020014200370340410020014110200141c0006a41082007100022022002417f461b220241074d0d022001290340210520084200370300200141c0006a41106a220a4200370300200141c0006a41086a220b420037030020014200370340410020014110200141c0006a41202002410820024108491b20076a2207100022022002417f461b2202411f4d0d02200941016a21092002412020024120491b2102200141206a41186a220c2008290300370300200141206a41106a220d200a290300370300200141206a41086a220a200b29030037030020012001290340370320024020032001280214470d00200141106a106f200141106a41086a2802002103200128021021060b200220076a21072006200341286c6a2202200537030020022001290320370308200241206a200c290300370300200241186a200d290300370300200241106a200a290300370300200141106a41086a200341016a220336020020092004490d000b200128021021060b2006450d012000200129021437020420002006360200200141e0006a24000f0b2001280214450d00200610020b41c1214133102d000b41f4214122102d000b1064000b1065000bf40403057f017e037f230041306b22012400200041086a28020021022001410036022820014201370320200141206a4100410410272001280220200128022822036a20023600002001200341046a360228200141086a220420012802283602002001200129032037030002400240024002402002450d0020002802002200200241286c6a21050340200141106a41086a220341003602002001420137031020002903002106200141106a41004108102720032003280200220241086a2207360200200220012802106a2006370000200141106a20074120102720032003280200220741206a22023602002007200128021022086a220341086a200041106a290000370000200341106a200041186a290000370000200341186a200041206a2900003700002003200041086a2900003700002002417f4c0d03024002402002450d002002100122030d010c060b410121030b200141206a41086a220741003602002001200236022420012003360220200141206a41002002102720072007280200220920026a22033602002009200128022022076a20082002101e1a2001280224210202402001280214450d00200810020b200120042802002003102720012802002209200428020022086a20072003101e1a2004200820036a220336020002402002450d00200710020b200041286a22002005470d000c020b0b20012802082103200128020021090b20012802042102200141206a41086a220042003703002001420037032041f2224107200141206a1003200141106a41086a200029030037030020012001290320370310200141106a411020092003100402402002450d00200910020b200141306a24000f0b1019000b101c000b922305077f017e027f017e037f230041b0016b22022400200241003a005020012001280208220320012802002001280204200241d0006a41012003100041016a220341014b6a220436020802400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020034102490d0020022d0050220341074b0d03024020030e080005020404060703000b200241003a0050200141086a20042001280200200141046a280200200241d0006a41012004100041016a220341014b6a220436020020034102490d1e20022d00502203450d0a20034101470d1e200141046a280200210520024100360250200141086a4100200128020022062005200241d0006a41042004100022032003417f461b2207410420074104491b20046a2203360200200741034d0d1e20022802502208ad42187e2209422088a70d202009a72204417f4c0d1f2004450d1b20041001220a0d1c0c210b20004106360200200241b0016a24000f0b200241003a005041042107200141086a200420012802002205200141046a280200220b200241d0006a41012004100041016a220341014b6a220436020020034102490d1020022d0050220341034b0d10024020030e04000e0f10000b20024200370350200141086a41002005200b200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d1020022903502109410121070c0f0b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d0620022d00502203450d0420034101470d0620024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d06200229035021094202210c0c050b20004106360200200241b0016a24000f0b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d0820022d00502203450d0620034101470d08420221090c070b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a220436020020034102490d1120022d00502203450d0820034101470d1120024100360250200141086a410020072005200241d0006a41042004100022012001417f461b2201410420014104491b20046a360200200141034d0d1120022802502103420221090c200b200241003a0050200141086a200420012802002207200141046a2802002205200241d0006a41012004100041016a220341014b6a2204360200024020034102490d004105210320022d0050220b41034b0d1d0240200b0e0400100e0f000b20024100360250200141086a410020072005200241d0006a41042004100022012001417f461b2201410420014104491b20046a360200200141034d0d1d20022802502101410121030c1f0b410521030c1c0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d01200229035021094201210c0b20004105360200200041086a200c370300200041106a2009370300200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b200141046a280200210320024100360250200141086a410020012802002003200241d0006a41042004100022032003417f461b2203410420034104491b20046a2204360200200341034d0d1320022802502203417f4c0d172003450d0e20031001220a450d16200a4100200310171a200141086a28020021040c0f0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b22014108200141084922011b20046a36020020010d012002290350210c420121090b20004101360200200041086a2009370300200041106a200c370300200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b200241d0006a200110bd0120024180016a41086a2203200241dc006a29020037030020024180016a41106a2204200241e4006a29020037030020024180016a41186a2207200241ec006a29020037030020024180016a41206a2205200241f4006a29020037030020024180016a41286a220b200241fc006a2802003602002002200229025437038001200228025022064106460d08200241206a41286a220a200b280200360200200241206a41206a220b2005290300370300200241206a41186a22052007290300370300200241206a41106a22072004290300370300200241206a41086a220420032903003703002002200229038001370320200241d0006a41286a200a280200360200200241d0006a41206a200b290300370300200241d0006a41186a2005290300370300200241d0006a41106a2007290300370300200241d0006a41086a200429030037030020022002290320370350413010012203450d1220032002290350370204200320063602002003410c6a200241d0006a41086a290300370200200341146a200241e0006a2903003702002003411c6a200241e8006a290300370200200341246a200241f0006a2903003702002003412c6a200241f8006a28020036020020022003360208200241003a0050200141086a2204200428020022042001280200200141046a280200200241d0006a41012004100041016a41014b22016a3602002001450d0720022d0050220141034f0d07420121090c170b20024200370350200141086a41002005200b200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0220022903502109410221070c010b20024100360250200141086a41002005200b200241d0006a41042004100022012001417f461b2201410420014104491b20046a36020041032107200141034d0d01200228025021060b20004102360200200041086a20073602002000410c6a2006360200200041106a2009370200200041186a2002290350370300200041206a200241d0006a41086a290300370300200041286a200241d0006a41106a290300370300200241b0016a24000f0b20004106360200200241b0016a24000f0b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0f20022903502109410321030c100b20024200370350200141086a410020072005200241d0006a41082004100022012001417f461b2201410820014108491b20046a360200200141074d0d0e20022903502109410421030c0f0b200241d0006a41186a220b4200370300200241d0006a41106a22064200370300200241d0006a41086a220a420037030020024200370350200141086a410020072005200241d0006a41202004100022012001417f461b2201412020014120491b20046a3602002001411f4d0d0220024180016a41186a2201200b29030037030020024180016a41106a2203200629030037030020024180016a41086a2204200a2903003703002002200229035037038001200b200129030037030020062003290300370300200a20042903003703002002200229038001370350410221032002411c6a41026a220420022d00523a0000200241086a41086a2207200241e7006a290000370300200241086a41106a2205200241d0006a411f6a2d00003a0000200220022f01503b011c2002200229005f3703082002280053210120022900572109200241046a41026a20042d00003a0000200241206a41086a2007290300370300200241206a41106a20052d00003a0000200220022f011c3b0104200220022903083703200c0f0b200241086a10220b20004106360200200241b0016a24000f0b200b20024180016a41186a290000370300200620024180016a41106a290000370300200a20024180016a41086a29000037030020022002290080013703500c0a0b4101210a0b200141086a200341002001280200200141046a280200200a20032004100022012001417f461b2201200120034b1b20046a3602000240200320014d0d00200a10020c040b200a450d032003ad22094220862009842109410121010c020b4104210a0b200220083602542002200a3602502002410036025802402008450d00200141086a21044101210d4100210b03402002410036028001200441002006200520024180016a41042003100022072007417f461b2207410420074104491b20036a220f36020002400240200741034d0d002002280280012203417f4c0d09024002402003450d00200310012207450d0a20074100200310171a0c010b410121070b2004200341002006200520072003200f100022052005417f461b2205200520034b1b200f6a3602000240200320054b0d002007450d012003ad22094220862009842109200141046a220e28020021052004280200210320024100360280012004200341002001280200200520024180016a41042003100022052005417f461b2205410420054104491b6a22063602000240200541034d0d002002280280012203417f4c0d0b024002402003450d00200310012205450d0c20054100200310171a200428020021060c010b410121050b2004200341002001280200200e2802002005200320061000220f200f417f461b220f200f20034b1b20066a36020002402003200f4b0d002005450d012003ad220c422086200c84210c200b2002280254470d04200241d0006a1076200241d0006a41086a280200210b2002280250210a0c040b200510020b2009a7450d010b200710020b200228025021040240200b450d00200b41186c21032004210103400240200141046a280200450d00200128020010020b0240200141106a280200450d002001410c6a28020010020b200141186a2101200341686a22030d000b0b2002280254450d04200410020c040b0240200a200b41186c6a22032009370204200320073602002003410c6a2005360200200341106a200c370200200241d0006a41086a200b41016a220b360200200d20084f0d00200d41016a210d20042802002103200e2802002105200128020021060c010b0b2002280250210a0b200a450d0120022902542109410221010b2000200136020420004100360200200041086a200a3602002000410c6a2009370200200041146a20022902503702002000411c6a200241d0006a41086a290200370200200041246a200241e0006a2902003702002000412c6a200241e8006a280200360200200241b0016a24000f0b20004106360200200241b0016a24000f0b1061000b1060000b101c000b1019000b0b0b200241086a41026a2204200241046a41026a2d00003a0000200241d0006a41086a2207200241206a41086a290300370300200241d0006a41106a2205200241206a41106a290300370300200220022f01043b010820022002290320370350024020034105470d0020004106360200200241b0016a24000f0b2002411c6a41026a220b20042d00003a000020024180016a41086a2204200729030037030020024180016a41106a22072005290300370300200220022f01083b011c2002200229035037038001200041086a20033a0000200041043602002000410c6a2001360000200041106a2009370000200020022f011c3b00092000410b6a200b2d00003a0000200041186a200229038001370000200041206a2004290300370000200041286a2007290300370000200241b0016a24000f0b200041033602002000410c6a2002290250370200200041146a200241d8006a2902003702002000411c6a200241e0006a290200370200200041246a200241e8006a2902003702002000412c6a200241f0006a28020036020020002003ad422086200141ff0171ad42088684200984370204200241b0016a24000be60201047f230041206b22022400200241003602082002420137030020024100412010272002280200200228020822036a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200341206a2204360208200220044120102720022802002203200228020822056a22042001290020370000200441086a200141286a290000370000200441106a200141306a290000370000200441186a200141386a2900003700002002200541206a220136020802402001417f4c0d00024002402001450d002001100122040d01101c000b410121040b200220013602142002200436021020024100360218200241106a41002001102720022002280218220420016a360218200420022802106a20032001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200310020b200241206a24000f0b1019000be70101037f0240024002402000280200220128020022024103460d0020020d0220012802042202450d0220024101470d012001410c6a280200450d02200141086a2802001002200028020010020f0b20012d00044101470d01200141086a10bf01200028020010020f0b0240200141106a2802002203450d00200141086a2802002102200341186c210303400240200241046a280200450d00200228020010020b0240200241106a280200450d002002410c6a28020010020b200241186a2102200341686a22030d000b0b2001410c6a280200450d00200141086a28020010020b200028020010020be00302057f017e230041206b220124000240410710012202450d002001200236021020014207370214200141106a4100410710272001280210200128021822036a220241002800d92e360000200141086a200341076a2203360200200241046a41002f00dd2e3b0000200241066a41002d00df2e3a00002001200129031037030020012003360218412010012202450d002001200236021020014220370214200141106a41004120102720012802102203200128021822046a22022000290000370000200241086a200041086a290000370000200241106a200041106a290000370000200241186a200041186a2900003700002001200441206a220036021820012802142104200120012802082000102720012802002202200128020822056a20032000101e1a2001200520006a220036020802402004450d00200310020b2001280204210342002106200141106a41086a220442003703002001420037031020022000200141106a1003200141086a200429030037030020012001290310370300024002402001411041d02d410041001000417f460d002001420037031020014110200141106a41084100100041016a41084d0d01200129031021060b02402003450d00200210020b200141206a240020060f0b41c1214133102d000b101c000bd14b05067f017e057f047e047f230041a0076b22022400024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d00002203417f6a220441054b0d0002400240024002400240024020040e06000402030105000b200241f8006a41086a22042000410a6a290000370300200241f8006a41106a2205200041126a290000370300200241f8006a41186a22062000411a6a2900003703002002200041026a29000037037820002d0001450d21200241d8036a41186a2006290300370300200241d8036a41106a2005290300370300200241d8036a41086a2004290300370300200220022903783703d803410810012204450d43200220043602582002420837025c200241d8006a4100410810272002280258200228026022046a42f3cacdd3e38d9eba3a3700002002200441086a360260200241206a41086a200228026036020020022002290358370320412010012204450d43200220043602582002422037025c200241d8006a41004120102720022802582205200228026022066a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200641206a2201360260200228025c2106200241206a20022802282001102720022802202204200228022822076a20052001101e1a2002200720016a220136022802402006450d00200510020b20022802242105200241d8006a41086a220642003703002002420037035820042001200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200241d8036a412010042005450d38200410020c380b200241d8036a41286a200041306a290300370300200241d8036a41206a200041286a290300370300200241d8036a41186a200041206a290300370300200241d8036a41106a200041186a290300370300200241d8036a41086a200041106a2903003703002002200041086a2903003703d803200241d8036a200110ae0141002101410121040c400b200041086a2903004200510d20200041106a2903002108200241f0036a4200370300200241d8036a41106a4200370300200241d8036a41086a4200370300200242003703d8030240200241d8036a2001460d002001200241d8036a412010060d270b200241d8006a41086a220142003703002002420037035841ad0b4107200241d8006a1003200241c0006a41086a2204200129030037030020022002290358370340200241c0006a411020024190076a410041001000417f470d21200142003703002002420037035841ed2d4107200241d8006a10032004200129030037030020022002290358370340200241c0006a411041d02d410041001000417f460d22200241003602d803200241c0006a4110200241d8036a41044100100041016a41044d0d1a20022802d8030d23200220083703d803200241d8006a41086a220142003703002002420037035841a90c4107200241d8006a1003200241c0006a41086a2205200129030037030020022002290358370340200241c0006a4110200241d8036a4108100441012104200241013a00d803200142003703002002420037035841ad0b4107200241d8006a10032005200129030037030020022002290358370340200241c0006a4110200241d8036a410110040c370b200241086a2205200041106a2903003703002002200041086a29030037030020022d000022044103714101460d0520044102460d0320044103470d2320022d0001210920022802042105410810012206450d40200220063602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322066a42e4cab5d383cedcb73a3700002002200641086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378410410012206450d40200220063602d803200242043702dc03200241d8036a41004104102720022802d803220720022802e00322066a20053600002002200641046a22063602e00320022802dc03210a200241f8006a200228028001200610272002280278220b200228028001220c6a20072006101e1a2002200c20066a2206360280010240200a450d00200710020b200228027c2107200241d8006a41086a220a420037030020024200370358200b2006200241d8006a1003200241c0006a41086a200a29030037030020022002290358370340200241c0006a411020024190076a410041001000210602402007450d00200b10020b2006417f460d2620011043210820011044420020087d510d27200241e4036a200141086a290000370200200241ec036a200141106a290000370200200241f4036a200141186a290000370200200220053602d803200220012900003702dc03410810012206450d40200220063602782002420837027c200241f8006a410041081027200228027820022802800122066a42e4cab5d3e3ee9bba3a3700002002200641086a36028001200241d8006a41086a220620022802800136020020022002290378370358200241f8006a200241d8036a1045200228027c210c2002280278210b200241d8006a2006280200200228028001220710272002280258220a2006280200220d6a200b2007101e1a2006200d20076a22073602000240200c450d00200b10020b200228025c2106200241d8006a41086a220b420037030020024200370358200a2007200241d8006a1003200241c0006a41086a200b29030037030020022002290358370340200241c0006a411020024190076a410041001000210702402006450d00200a10020b2007417f470d3a20024190076a20051042200241d8036a41186a2207200141186a290000370300200241d8036a41106a220b200141106a290000370300200241d8036a41086a220a200141086a290000370300200220012900003703d8032002280298072206200228029407460d170c390b200241086a2204200041116a290000370300200241106a2205200041196a290000370300200241186a2206200041216a2900003703002002200041096a290000370300200041086a2d000041037122034101460d0520034103460d0320034102470d23200241d8006a41086a220342003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200329030037030020022002290358370340200241c0006a411041d02d410041001000417f460d122002421037027c2002200241c0006a360278200241d8036a200241f8006a103a20022802d8032206450d27200220022902dc0322083702242002200636022020062008422088a7220741057422036a210520034105754104490d06200621040340200120042203460d182003200141201006450d18200341206a22042001460d182004200141201006450d18200441206a22042001460d182004200141201006450d18200441206a22042001460d182004200141201006450d182005200441206a22046b41057541034b0d000b20034180016a22032005470d070c080b200241f8036a200041246a280200360200200241f0036a2000411c6a290200370300200241e8036a200041146a290200370300200241e0036a2000410c6a2902003703002002200041046a2902003703d803200241d8036a200110db014100210541012104410121010c3d0b200041106a2d00004102470d32419cc200103b000b200241d8036a20022802042205103720022802e003450d25200241d8006a41106a2206200241d8036a41106a290300370300200241d8006a41086a200241d8036a41086a290300370300200220022903d8033703582001200229035810b201450d26200241f8006a41186a2207200141186a290000370300200241f8006a41106a200141106a290000370300200241f8006a41086a200141086a2900003703002002200129000037037820062802002201200241e4006a280200460d110c340b200241d8006a41086a220342003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a2003290300370300200220022903583703404100210b200241c0006a411041d02d410041001000417f460d052002421037027c2002200241c0006a360278200241d8036a200241f8006a103a20022802d8032205450d2c2005200241e0036a280200220941057422036a210720022802dc03210b20034105754104490d0620052106410021030340200120062204460d0a2003200420014120100622064100476a21032006450d0a200441206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a200641206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a200641206a22062001460d0a20032006200141201006220a4100476a2103200a450d0a2007200641206a22066b41057541034b0d000b20044180016a22042007470d070c080b20052903002108200220022802042206360220200241d8006a41086a220442003703002002420037035841a2294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340200241c0006a411041d02d410041001000417f460d25200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1420022903d8032008560d262001200810b201450d27200241d8006a41086a220442003703002002420037035841a9294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340410021050240200241c0006a411041d02d410041001000417f460d00200241003602d803200241c0006a4110200241d8036a41044100100041016a41044d0d1820022802d80321050b2002200541016a3602d803200241d8006a41086a220442003703002002420037035841a9294107200241d8006a1003200241c0006a41086a200429030037030020022002290358370340200241c0006a4110200241d8036a41041004412010012204450d3a200241e4036a428180808010370200200141086a2207290000210e200141106a220b290000210f20012900002110200441186a200141186a220a290000370000200441106a200f370000200441086a200e37000020042010370000200220083703d803200220043602e0032005200241d8036a10df01200241d8006a1036200241d8036a200610e001200241f8006a41186a2206200a290000370300200241f8006a41106a200b290000370300200241f8006a41086a20072900003703002002200129000037037820022802602204200228025c460d100c310b200041306a2903002108200241206a41186a2006290300370300200241206a41106a2005290300370300200241206a41086a20042903003703002002200229030037032041d02d200110c60122112008540d2741d02d200241206a10c601210e410810012203450d39200220033602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322036a42f3e885d3a3ec9bb73a3700002002200341086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378412010012203450d39200220033602d803200242203702dc03200241d8036a41004120102720022802d803220420022802e00322056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a22033602e00320022802dc032106200241f8006a200228028001200310272002280278220520022802800122076a20042003101e1a2002200720036a22033602800102402006450d00200410020b200228027c21044200210f200241d8006a41086a220642003703002002420037035820052003200241d8006a1003200241c0006a41086a2006290300370300200220022903583703400240200241c0006a411041d02d410041001000417f460d00200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1520022903d803210f0b02402004450d00200510020b410810012203450d39200220033602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322036a42f3e885d3a3ec9bb73a3700002002200341086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378412010012203450d39200220033602d803200242203702dc03200241d8036a41004120102720022802d803220420022802e00322056a22032002290320370000200341086a200241206a41086a290300370000200341106a200241206a41106a290300370000200341186a200241206a41186a2903003700002002200541206a22033602e00320022802dc032106200241f8006a200228028001200310272002280278220520022802800122076a20042003101e1a2002200720036a22033602800102402006450d00200410020b200228027c210442002110200241d8006a41086a220642003703002002420037035820052003200241d8006a1003200241c0006a41086a2006290300370300200220022903583703400240200241c0006a411041d02d410041001000417f460d00200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d1620022903d80321100b02402004450d00200510020b200f2010560d28200e20087c220f200e580d2941a00610012203450d392003200241d8036a41b803101e220341003b01be03200341003602b803200341c0036a200241f8006a41e002101e1a200241c8006a4200370300200241d4006a41d43c3602002002200336024420024100360240200241d02d360250200241206a2001460d0b2001200241206a41201006450d0b2002417f360240200241d8036a41186a2207200141186a290000370300200241d8036a41106a220b200141106a290000370300200241d8036a41086a220a200141086a290000370300200220012900003703d8032002200241c0006a41047222043602602002200241c0006a41086a2802003602582002200228024436025c200241f8006a200241d8006a200241d8036a10970141012103200241f8006a41106a2802002105200241f8006a410c6a2802002109200241f8006a41086a2802002106200228027c210c024020022802784101470d00200241d8006a41186a2007290300370300200241d8006a41106a200b290300370300200241d8006a41086a200a290300370300200220022903d803370358410021030b41900210012201450d39201120087d21082001200241d8036a418802101e220141003b018e0220014100360288022003450d09200220013602782002420037027c2006200541286c6a2101200241d8036a200241f8006a109801200241d8036a1099010c0a0b200622032005460d010b200620074105746a2104034020012003460d102003200141201006450d102004200341206a2203470d000b0b200241d8036a41186a200141186a290000370300200241d8036a41106a200141106a290000370300200241d8036a41086a200141086a290000370300200220012900003703d803200241d8036a210320072008a7460d0a0c290b41012105410021094100210341000d270c040b41002103200522042007460d010b034020012004460d022003200420014120100622064100476a21032006450d022007200441206a2204470d000b0b4100450d010c240b41010d230b41dc3b103b000b200241f4036a200241e0006a290300370200200241fc036a200241e8006a29030037020020024184046a200241f0006a290300370200200220063602dc032002200c3602d803200220093602e003200220053602e4032002200241c0006a410c6a3602e803200220022903583702ec0320024198016a42003703002002410036028801200242003703782002200136029401200241d8036a200241f8006a109a0121010b20014201370300200120083703082002417f360240200241d8036a41186a2201200241206a41186a290300370300200241d8036a41106a2206200241206a41106a290300370300200241d8036a41086a2207200241206a41086a290300370300200220022903203703d803200220043602602002200241c0006a41086a2802003602582002200228024436025c200241f8006a200241d8006a200241d8036a10970141012103200241f8006a41106a2802002104200241f8006a410c6a280200210b200241f8006a41086a2802002105200228027c210a024020022802784101470d00200241d8006a41186a2001290300370300200241d8006a41106a2006290300370300200241d8006a41086a2007290300370300200220022903d803370358410021030b41900210012201450d2e2001200241d8036a418802101e220141003b018e022001410036028802024002402003450d00200220013602782002420037027c2005200441286c6a2101200241d8036a200241f8006a109801200241d8036a1099010c010b200241f4036a200241e0006a290300370200200241fc036a200241e8006a29030037020020024184046a200241f0006a290300370200200220053602dc032002200a3602d8032002200b3602e003200220043602e4032002200241c0006a410c6a3602e803200220022903583702ec0320024198016a42003703002002410036028801200242003703782002200136029401200241d8036a200241f8006a109a0121010b200142013703002001200f370308200241003602400b200241d8036a200241c0006a200241206a109b010240024020022802e0032201450d0020022802d80322032001200241206a200241c0006a108e01450d010b200241c8006a290300210820022802442101024020022802dc03450d0020022802d80310020b2001450d22200220083702dc03200220013602d80320024190076a200241d8036a10c7010c220b200241c0006a4104722101024020022802dc03450d00200310020b200241f8006a41086a200141086a28020036020020022001290200370378200241d8036a200241f8006a109d01200241d8036a109e010c210b2002410036022820024201370320200241d8036a41186a200141186a290000370300200241d8036a41106a200141106a290000370300200241d8036a41086a200141086a290000370300200220012900003703d803200241d8036a21030b200241206a107c200241286a2802002107200228022021060c1e0b200241e0006a107c200241e8006a28020021010c220b200241d8006a1074200241e0006a28020021040c200b20024190076a107c20024190076a41086a28020021060c210b41c43b103b000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b41c1214133102d000b418431103b000b41dc32103b000b418c33103b000b41f4214122102d000b41a433103b000b419cc000103b000b41f43b103b000b41f432103b000b41fcc000103b000b4194c100103b000b41c1214133102d000b41b0294124102d000b41e4c000103b000b41f4214122102d000b41b4c000103b000b41ccc000103b000b418c3c103b000b41a43c103b000b41bc3c103b000b41c1214133102d000b200241d8036a41186a2206200520034105746a220341186a2207290000370300200241d8036a41106a220a200341106a220c290000370300200241d8036a41086a220d200341086a2212290000370300200220032900003703d80320052009417f6a22094105746a22042900002108200441086a2213290000210e200441106a2214290000210f2007200441186a2215290000370000200c200f3700002012200e37000020032008370000200420022903d8033700002013200d2903003700002014200a290300370000201520062903003700002002200b36027c200220053602782002200936028001200241d8036a200241f8006a10a20120022802e003210420022802d8032103200241d8006a41086a220642003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200320041004024020022802dc03450d00200310020b0240200b450d00200510020b200241d8006a41086a220342003703002002420037035841c81d4107200241d8006a1003200241c0006a41086a20032903003703002002200229035837034002400240200241c0006a411041d02d410041001000417f460d00200242003703d80302400240200241c0006a4110200241d8036a41084100100041016a41084d0d0020022903d8032108200241d8006a41086a220342003703002002420037035841d21e4107200241d8006a1003200241c0006a41086a200329030037030020022002290358370340200241c0006a411041d02d410041001000417f460d03200242003703d803200241c0006a4110200241d8036a41084100100041016a41084d0d01200120022903d80320087c10c5010c050b41c1214133102d000b41c1214133102d000b41f4214122102d000b41f4214122102d000b200341086a2900002108200341106a290000210e200341186a290000210f200620074105746a22042003290000370000200441186a200f370000200441106a200e370000200441086a2008370000200241206a41086a2203200741016a360200200241f8006a41086a200328020036020020022002290320370378200241d8036a200241f8006a10a20120022802e003210420022802d8032103200241d8006a41086a220542003703002002420037035841d61d4108200241d8006a1003200241c0006a41086a200529030037030020022002290358370340200241c0006a4110200320041004024020022802dc03450d00200310020b0240200228027c450d00200228027810020b2001427f10c5010b20002d000021030b410121040b410121010c070b2002280258200441d8006c6a220120022903d8033703002001200536023020012002290378370234200141086a200241d8036a41086a2205290300370300200141106a200241d8036a41106a290300370300200141186a200241d8036a41186a290300370300200141206a200241d8036a41206a290300370300200141286a200241d8036a41286a2903003703002001413c6a200241f8006a41086a290300370200200141c4006a200241f8006a41106a290300370200200141cc006a2006290300370200200241d8006a41086a2201200441016a36020020052001280200360200200220022903583703d803200241d8036a103e20022802d8032106024020052802002201450d00200141d8006c210420062101034020011038200141d8006a2101200441a87f6a22040d000b0b024020022802dc03450d00200610020b200241206a10220c050b200241d8006a41106a2206200141016a360200200241d8006a41086a220b28020020014105746a22012002290378370000200141086a200241f8006a41086a290300370000200141106a200241f8006a41106a290300370000200141186a2007290300370000200241d8036a41106a2006290300370300200241d8036a41086a200b290300370300200220022903583703d8032005200241d8036a10df010c020b20024190076a41086a220c200641016a360200200a2903002108200b290300210e2007290300210f20022802900720064105746a220620022903d803370000200641186a200f370000200641106a200e370000200641086a2008370000200241206a41086a200c2802003602002002200229039007370320410810012206450d06200220063602d803200242083702dc03200241d8036a41004108102720022802d80320022802e00322066a42e4cab5d3e38e9db93a3700002002200641086a3602e003200241f8006a41086a20022802e003360200200220022903d803370378410410012206450d06200220063602d803200242043702dc03200241d8036a41004104102720022802d803220720022802e00322066a20053600002002200641046a22063602e00320022802dc03210a200241f8006a200228028001200610272002280278220b200228028001220c6a20072006101e1a2002200c20066a220c360280010240200a450d00200710020b200228027c2107200241d8036a200241206a10a20120022802e003210a20022802d8032106200241d8006a41086a220d420037030020024200370358200b200c200241d8006a1003200241c0006a41086a200d29030037030020022002290358370340200241c0006a41102006200a1004024020022802dc03450d00200610020b02402007450d00200b10020b2002280224450d00200228022010020b200241e4036a200141086a290000370200200241ec036a200141106a290000370200200241f4036a200141186a290000370200200220053602d803200220012900003702dc03200220093a0020410810012201450d05200220013602782002420837027c200241f8006a410041081027200228027820022802800122016a42e4cab5d3e3ee9bba3a3700002002200141086a36028001200241d8006a41086a220120022802800136020020022002290378370358200241f8006a200241d8036a1045200228027c210b20022802782106200241d8006a200128020020022802800122051027200228025822072001280200220a6a20062005101e1a2001200a20056a22053602000240200b450d00200610020b200228025c2101200241d8006a41086a220642003703002002420037035820072005200241d8006a1003200241c0006a41086a200629030037030020022002290358370340200241c0006a4110200241206a410110042001450d002007100220044101460d010c020b20044101470d010b200241047210220b41012101410021040b410121050b2003411d74411d75417f4a0d0102400240200341077122034104460d0020034105470d012001450d03200041086a2d00004101470d03200041106a280200450d032000410c6a2802001002200241a0076a24000f0b2004450d02200041086a2d00004101470d022000410c6a104b200241a0076a24000f0b2005450d01200041046a2d00004101470d01200041086a104b200241a0076a24000f0b101c000b200241a0076a24000b080041ec3a1054000b080041ec3a1054000bfe2507097f027e0a7f027e067f017e0d7f230041d0026b220424000240024020014115490d0041012105410121060240024002400340200620057121070340024002402003450d0020054101710d012000200110e1012003417f6a21030c010b2000200110e201200441d0026a24000f0b2001410276220641036c2108200641017421094100210a024020014132490d0020082008417f6a220b2000200841286c6a220c41586a290300220d200c290300220e54220a1b220f200841016a200b2008200a1b200d200e200a1b220d200c41286a290300220e5422101b2000200f41286c6a290300200e200d20101b5422111b210820092009417f6a220c2000200941286c6a220b41586a290300220d200b290300220e54220b1b22122009410172220f200c2009200b1b200d200e200b1b220d2000200f41286c6a290300220e54220f1b2000201241286c6a290300200e200d200f1b5422131b210920062006417f6a22142000200641286c6a221241586a290300220d2012290300220e54220c1b2215200641016a20142006200c1b200d200e200c1b220d201241286a290300220e5422121b2000201541286c6a290300200e200d20121b5422141b210641024101200c1b200c20121b20146a200b6a200f6a20136a200a6a20106a20116a210a0b200a2000200641286c6a290300220d2000200941286c6a290300220e54220c6a200d200e200c1b220d2000200841286c6a290300220e54220b6a210a0240024002400240200020092006200c1b221641286c6a290300200e200d200b1b5a0d00200a41016a220a410b4b0d012007200a45714101470d030c020b200820062009200c1b200b1b21162007200a45714101470d020c010b2001417f6a2117024020014101762208450d002000200141286c6a41586a2106200021090340200441a8016a41206a220c200941206a220a290300370300200441a8016a41186a220b200941186a2210290300370300200441a8016a41106a220f200941106a2212290300370300200441a8016a41086a2211200941086a2213290300370300200420092903003703a801200641086a2214290300210d200641106a2215290300210e200641186a221829030021192006290300211a200a200641206a221b290300370300201020193703002012200e3703002013200d3703002009201a370300201b200c2903003703002018200b2903003703002015200f29030037030020142011290300370300200620042903a801370300200941286a2109200641586a21062008417f6a22080d000b0b201720166b211620074101714101470d010b2000200110e3010d070b024002400240024002402002450d00201620014f0d092000201641286c6a22062903002002290300540d00200441a8016a41206a220a200041206a2212290300370300200441a8016a41186a220b200041186a2211290300370300200441a8016a41106a2210200041106a2213290300370300200441a8016a41086a220f200041086a2209290300370300200420002903003703a801200641086a2208290300210d200641106a220c290300210e200641186a221429030021192006290300211a2012200641206a2215290300370300201120193703002013200e3703002009200d3703002000201a3703002015200a2903003703002014200b290300370300200c20102903003703002008200f290300370300200620042903a8013703002000290300210d200441086a41186a221c2012290300370300200441086a41106a221d2011290300370300200441086a41086a221e201329030037030020042009290300370308200041286a21144100210841002001417f6a22094f0d010c020b201620014f0d07200441a8016a41206a2224200041206a2205290300370300200441a8016a41186a2225200041186a2226290300370300200441a8016a41106a2227200041106a2228290300370300200441a8016a41086a2229200041086a222a290300370300200420002903003703a8012000201641286c6a2206290300210d200641086a2209290300210e200641106a22082903002119200641186a220c290300211a2005200641206a220a2903003703002026201a37030020282019370300202a200e3703002000200d370300200a2024290300370300200c20252903003703002008202729030037030020092029290300370300200620042903a8013703002000290300210d200441086a41186a222b2005290300370300200441086a41106a222c2026290300370300200441086a41086a222d20282903003703002004202a2903003703082001417f6a210941002120200041286a2208210602400340200d20062903005a0d01200641286a2106202041016a22202009490d000b0b200921070240200920204d0d002000200141286c6a41586a2106200921070340200d2006290300540d01200641586a21062007417f6a220720204b0d000b0b20072020490d0620092007490d032008200741286c6a210b41800121164100210a410021154100210c4100211441800121172008202041286c6a222e21180340200b20186b220641286e21090240024002400240024002400240200641a7d0004b221f0d00200941807f6a20092015200a492014200c4922087222101b21062010450d012017200620081b21172006201620081b21160b2014200c470d020c010b2006200641017622176b21162014200c470d010b2017450d0141002106200441286a2214210c201821090340200c20063a0000200c200d20092903005a6a210c200941286a2109200641016a22062017490d000b0b2015200a470d020c010b200441286a220c21142015200a470d010b02402016450d00200b41586a210641002109200441a8016a2215210a0340200a20093a0000200a200d2006290300546a210a200641586a2106200941016a22092016490d000c020b0b200441a8016a220a21150b0240200a20156b2206200c20146b2209200920064b1b221b450d00200441a8026a41206a2222201820142d000041286c6a220641206a290300370300200441a8026a41186a221c200641186a290300370300200441a8026a41106a221d200641106a290300370300200441a8026a41086a221e200641086a290300370300200420062903003703a802201820142d000041286c6a2206200b20152d00002210417f7341286c6a2209290300370300200641206a200941206a290300370300200641186a200941186a290300370300200641106a200941106a290300370300200641086a200941086a2903003703000240201b4101460d00410021080340200b2010417f7341807e7241286c6a22092018201420086a41016a2d000041286c6a2206290300370300200941206a200641206a220f290300370300200941186a200641186a2212290300370300200941106a200641106a2211290300370300200941086a200641086a22132903003703002006200b201520086a41016a2d00002210417f7341286c6a2209290300370300200f200941206a2903003703002012200941186a2903003703002011200941106a2903003703002013200941086a290300370300200841026a2106200841016a220f21082006201b490d000b2015200f6a21152014200f6a21140b200920042903a802370300200941206a2022290300370300200941186a201c290300370300200941106a201d290300370300200941086a201e290300370300201541016a2115201441016a21140b2018201741286c6a20182014200c461b2118200b410020166b41286c6a200b2015200a461b210b201f0d000b024002402014200c4f0d00200b41586a2106200c21080340200441a8026a41206a220a20182008417f6a22082d000041286c6a220941206a2210290300370300200441a8026a41186a220f200941186a2212290300370300200441a8026a41106a2211200941106a2213290300370300200441a8026a41086a2215200941086a221b290300370300200420092903003703a802200641086a2216290300210e200641106a22172903002119200641186a221f290300211a200629030021212010200641206a22222903003703002012201a37030020132019370300201b200e370300200920213703002022200a290300370300201f200f2903003703002017201129030037030020162015290300370300200620042903a802370300200641586a210620142008490d000b200b2014200c6b41286c6a21180c010b20182106200a21082015200a4f0d0003402008417f6a22082d00002109200441a8026a41206a220c200641206a2210290300370300200441a8026a41186a220f200641186a2212290300370300200441a8026a41106a2211200641106a2213290300370300200441a8026a41086a2214200641086a221b290300370300200420062903003703a802200b2009417f7341286c6a2209290300210e200941086a22162903002119200941106a2217290300211a200941186a221f29030021212010200941206a2222290300370300201220213703002013201a370300201b20193703002006200e3703002022200c290300370300201f200f2903003703002017201129030037030020162014290300370300200920042903a802370300200641286a210620152008490d000b2018200a20156b41286c6a21180b2000200d3703002005202b2903003703002026202c2903003703002028202d290300370300200020042903083703080240024020012018202e6b41286e20206a22094d0d002024200529030037030020252026290300370300202720282903003703002029202a290300370300200420002903003703a8012000200941286c6a2206290300210d200641086a2208290300210e200641106a220c2903002119200641186a220a290300211a2005200641206a220b2903003703002026201a37030020282019370300202a200e3703002000200d370300200b2024290300370300200a2025290300370300200c202729030037030020082029290300370300200620042903a801370300200120096b2208450d0120082009200920084b1b210c2001410376210a200641286a210b0240024020092008417f6a22014f0d00200020092002200310c40120062102200b21000c010b200b20012006200310c401200921010b200c200a4f2105200720204d2106200141154f0d070c0b0b41b4c20020092001103c000b41c4c200103b000b410021230c010b410621230b03400240024002400240024002400240024002400240024002400240024002400240024020230e0a04080905060001020307070b200a2014200841286c6a220c41206a2215290300370300200b200c41186a22182903003703002010200c41106a221b290300370300200f200c41086a22162903003703002004200c2903003703a801200641086a2217290300210e200641106a221f2903002119200641186a2220290300211a200629030021212015200641206a22222903003703002018201a370300201b20193703002016200e370300200c20213703002022200a2903003703002020200b290300370300201f20102903003703002017200f290300370300200620042903a801370300200841016a22082009417f6a22094f0d0d410621230c100b2014200841286c6a2106410721230c0f0b2006290300200d540d0a410821230c0e0b200641286a2106200841016a22082009490d08410021230c0d0b200820094f0d06410321230c0c0b2000200941286c6a2106410421230c0b0b2006290300200d5a0d09410921230c0a0b200641586a210620082009417f6a2209490d07410121230c090b2000200d3703002012201c2903003703002011201d2903003703002013201e290300370300200020042903083703082001200841016a2206490d01410221230c080b2000200641286c6a2100200120066b220141154f0d090c0e0b200620011055000b410121230c050b410721230c040b410021230c030b410021230c020b410421230c010b410521230c000b0b0b0b200720091029000b202020071055000b41b4c20020162001103c000b41dcc20020162001103c000b20014102490d002000210a410121090340200941016a210c02402000200941286c6a220641586a22082903002006290300220d5a0d00200441086a41186a2210200641206a220b290300370300200441086a41106a220f200641186a2212290300370300200441086a41086a2211200641106a22132903003703002004200629030837030820062008290300370300200641086a200841086a2903003703002013200841106a2903003703002012200841186a290300370300200b200841206a2903003703004100210b0240024002402009417f6a2208450d00200a21060340200641586a2209290300200d5a0d02200641206a200641786a290300370300200641186a200641706a290300370300200641106a200641686a290300370300200641086a200641606a29030037030020062009290300370300200921062008417f6a22080d000b200921060c020b2000200841286c6a21060c010b2008210b0b2006200d3703002000200b41286c6a22062004290308370308200641206a2010290300370300200641186a200f290300370300200641106a20112903003703000b200a41286a210a200c2109200c2001490d000b0b200441d0026a24000b9a0301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3a3ec9bb73a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220036021802402005450d00200410020b2002280214210420022001370308200241206a41086a220542003703002002420037032020032000200241206a1003200241106a41086a200529030037030020022002290320370310200241106a4110200241086a4108100402402004450d00200310020b200241306a24000f0b101c000bc70302057f017e230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42f3e885d3a3ac98b63a3700002002200341086a360218200241086a200228021836020020022002290310370300412010012203450d002002200336021020024220370214200241106a41004120102720022802102204200228021822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136021820022802142105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b2002280204210442002107200241106a41086a220542003703002002420037031020032001200241106a1003200241086a200529030037030020022002290310370300024002402002411041d02d410041001000417f460d002002420037031020024110200241106a41084100100041016a41084d0d01200229031021070b02402004450d00200310020b200241206a240020070f0b41c1214133102d000b101c000ba11105027f017e0e7f017e0b7f230041b0036b2202240020024188016a41086a2203200141086a2802003602002002200129020037038801200241086a20024188016a109d01200241306a41206a200241086a41206a280200360200200241306a41186a200241086a41186a290300370300200241306a41106a200241086a41106a290300370300200241306a41086a200241086a41086a2903003703002002200229030837033020024188016a200241306a10c8010240024020022903a80122044202510d00200241f0016a4104722105200241c0016a210620024188016a41206a2107200241b0016a2108200241b8016a2109200241bc016a210a20024194016a210b2002419c016a210c200241ac016a210d0340200241e8006a41186a220120024188016a41186a220e290300370300200241e8006a41106a220f20024188016a41106a2210290300370300200241e8006a41086a22112003290300370300200241d8006a41086a2212200641086a2903003703002002200229038801370368200220062903003703582008290300211320092802002114200a2802002115200241d0016a41186a22162001290300370300200241d0016a41106a2217200f290300370300200241d0016a41086a22182011290300370300200220022903683703d001200241f0016a41086a2012290300370300200220022903583703f001024020044201520d00410810012201450d0320022001360288012002420837028c0120024188016a41004108102720032003280200220141086a36020020012002280288016a42f3e885d3a3ac98b63a370000200241a8026a41086a2201200328020036020020022002290388013703a80241201001220f450d032002200f360288012002422037028c0120024188016a41004120102720032003280200221141206a220f360200201120022802880122126a221120022903d001370000201141086a2018290300370000201141106a2017290300370000201141186a2016290300370000200228028c012119200241a8026a2001280200200f102720022802a80222112001280200221a6a2012200f101e1a2001201a200f6a220f36020002402019450d00201210020b20022802ac022101200220133703880120024190036a41086a2212420037030020024200370390032011200f20024190036a100320024180036a41086a201229030037030020022002290390033703800320024180036a411020024188016a410810042001450d00201110020b024002402014450d00200320022802f0013602002002201536028c012002201436028801200241d0016a20024188016a10c9014101211b2015450d01201410020c010b4100211b0b2003200541086a280200360200200220052902003703880120024180026a20024188016a109801200241a8026a41206a20024180026a41206a280200360200200241a8026a41186a20024180026a41186a290300370300200241a8026a41106a20024180026a41106a290300370300200241a8026a41086a20024180026a41086a29030037030020022002290380023703a80220024188016a200241a8026a10ca010240200228028801450d000340200241d0026a41086a2201200328020036020020022002290388013703d002200b280200211120102802002112200c2802002119200241e0026a41086a220f2001280200360200200220022903d0023703e002024002402011450d00200241f0026a41086a2019360200200220123602f402200220113602f002200e20162903003703002010201729030037030020032018290300370300200720022903e002370200200741086a200f280200360200200220022903d00137038801410810012201450d062002200136029003200242083702940320024190036a41004108102720024190036a41086a22012001280200220f41086a360200200f2002280290036a42f3e885d3b38eddb73a37000020024180036a41086a220f200128020036020020022002290390033703800320024190036a20024188016a10cb01200228029403211c200228029003211a20024180036a200f280200200128020022191027200228028003221d200f280200221e6a201a2019101e1a200f201e20196a221e3602000240201c450d00201a10020b200228028403211a200241a0036a200241f0026a1051200241a0036a41086a280200211c20022802a0032119200142003703002002420037039003201d201e20024190036a1003200f200129030037030020022002290390033703800320024180036a41102019201c1004024020022802a403450d00201910020b0240201a450d00201d10020b0240200d280200450d00200728020010020b2012450d01201110020c010b200720022903e002370200200e20162903003703002010201729030037030020032018290300370300200741086a200f280200360200200220022903d00137038801410810012201450d052002200136029003200242083702940320024190036a41004108102720024190036a41086a22012001280200220f41086a360200200f2002280290036a42f3e885d3b38eddb73a37000020024180036a41086a220f200128020036020020022002290390033703800320024190036a20024188016a10cb01200228029403211a200228029003211220024180036a200f2802002001280200221110272002280280032219200f280200221d6a20122011101e1a200f201d20116a22113602000240201a450d00201210020b20022802840321122001420037030020024200370390032019201120024190036a1003200f200129030037030020022002290390033703800320024180036a4110100502402012450d00201910020b200d280200450d00200728020010020b20024188016a200241a8026a10ca012002280288010d000b0b200241a8026a1099010240201b201445720d002015450d00201410020b20024188016a200241306a10c801200729030022044202520d000b0b200241306a109e01200241b0036a24000f0b101c000bc10b03087f017e027f230041d0016b220224000240024020012802202203450d00200141206a2003417f6a36020020012802082104200128020c2203200128020422052f01be034f0d01200241306a41186a2206200520034105746a220741d8036a290000370300200241306a41106a2208200741d0036a290000370300200241306a41086a2209200741c8036a2900003703002002200741c0036a290000370330200141046a2005360200200141086a20043602002001410c6a200341016a360200200241d0006a41206a22072005200341286c6a220341206a290300370300200241d0006a41186a2205200341186a290300370300200241d0006a41106a2204200341106a290300370300200241d0006a41086a2201200341086a29030037030020022003290300370350200241f8006a41186a2006290300370300200241f8006a41106a2008290300370300200241f8006a41086a2009290300370300200241f8006a41286a2001290300370300200241a8016a2004290300370300200241b0016a2005290300370300200241b8016a20072903003703002002200229033037037820022002290350370398012000200241f8006a41c800101e1a200241d0016a24000f0b20004202370320200241d0016a24000f0b200128020021070240024020052802b8032203450d0020053201bc03210a2002200336027c2002200741016a22073602782002200a4220862004ad84220a370380010c010b2004ad210a410021030b20051002200241106a220820033602002002200736020c02400240200a422088a7220520032f01be034f0d00200241186a2005360200200241146a200a3e020020024100360208200241086a410472210b200241206a21070c010b200241146a2209200a37020020024101360208200aa72104200241086a410472210b200241186a210c2003210503400240024020032802b8032206450d00200741016a210720033201bc034220862004ad84210a200621030c010b2004ad210a410021030b024020051002200820033602002002200736020c0240200a422088a7220520032f01be034f0d00200c20053602002009200aa72204360200200241003602082003210541000d020c010b2009200a370200200aa72104200241013602082003210541010d010b0b200241206a21070b2007200b290200370200200741086a200b41086a290200370200200241306a41086a20022802242206200228022c22084105746a220341c8036a290000370300200241306a41106a200341d0036a290000370300200241306a41186a200341d8036a2900003703002002200341c0036a290000370330200241d0006a41206a2006200841286c6a220341206a290300370300200241d0006a41186a200341186a290300370300200241d0006a41106a200341106a290300370300200241d0006a41086a200341086a290300370300200220032903003703502007280200210920022802282105200241f8006a41086a2204200620084102746a41a4066a280200220736020020024184016a2206200536020020022009417f6a220336027c20022003410047360278024002402003450d002009417e6a2103200241f8006a41047221080340200420072802a0062207360200200620053602002002200336027c200220034100473602782003417f6a2203417f470d000c020b0b200241f8006a41047221080b200120082902003702002001410c6a4100360200200141086a200841086a280200360200200241f8006a41186a200241306a41186a290300370300200241f8006a41106a200241306a41106a290300370300200241f8006a41086a200241306a41086a290300370300200241a0016a200241d0006a41086a290300370300200241a8016a200241d0006a41106a290300370300200241b0016a200241d0006a41186a290300370300200241b8016a200241f0006a2903003703002002200229033037037820022002290350370398012000200241f8006a41c800101e1a200241d0016a24000bb30301057f230041306b220224000240410810012203450d002002200336022020024208370224200241206a4100410810272002280220200228022822036a42f3e885d3b3ec9bb23a3700002002200341086a360228200241106a41086a200228022836020020022002290320370310412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220636021802402005450d00200410020b200228021421042002200110512002280208210120022802002100200241206a41086a220542003703002002420037032020032006200241206a1003200241106a41086a200529030037030020022002290320370310200241106a411020002001100402402002280204450d00200010020b02402004450d00200310020b200241306a24000f0b101c000bba0803057f017e057f230041f0006b220224000240024020012802202203450d00200141206a2003417f6a36020020012802082104200128020c2203200128020422052f018e024f0d01200141046a2005360200200141086a20043602002001410c6a200341016a360200200241086a220620052003410c6c6a220341086a28020036020020022003290200370300200241c8006a41086a22052006280200360200200241dc006a2003418c016a280200360200200020022903002207370200200220034184016a290200370254200041086a2005290300370200200041106a200241c8006a41106a29030037020020022007370348200241f0006a24000f0b20004100360200200241f0006a24000f0b20012802002106024002402005280288022203450d00200532018c0221072002200336024c2002200641016a2206360248200220074220862004ad8422073703500c010b2004ad2107410021030b20051002200241086a2208200336020020022006360204024002402007422088a7220520032f018e024f0d00200241106a20053602002002410c6a20073e02002002410036020020024104722109200241186a21060c010b2002410c6a220a2007370200200241013602002007a7210420024104722109200241106a210b20032105034002400240200328028802220c450d00200641016a2106200332018c024220862004ad842107200c21030c010b2004ad2107410021030b024020051002200820033602002002200636020402402007422088a7220520032f018e024f0d00200b2005360200200a2007a72204360200200241003602002003210541000d020c010b200a20073702002007a72104200241013602002003210541010d010b0b200241186a21060b20062009290200370200200641086a200941086a290200370200200241286a41086a200228021c220c2002280224220a410c6c6a220341086a28020036020020022003290200370328200241386a41086a2003418c016a280200360200200220034184016a2902003703382006280200210820022802202105200241c8006a41086a2204200c200a4102746a4194026a2802002206360200200241c8006a410c6a220c200536020020022008417f6a220336024c20022003410047360248024002402003450d002008417e6a2103200241c8006a4104722108034020042006280290022206360200200c20053602002002200336024c200220034100473602482003417f6a2203417f470d000c020b0b200241c8006a41047221080b200120082902003702002001410c6a4100360200200141086a200841086a280200360200200241c8006a41086a2203200241286a41086a280200360200200241dc006a200241386a41086a28020036020020002002290328220737020020022002290338370254200041086a2003290300370200200041106a200241c8006a41106a29030037020020022007370348200241f0006a24000bda0201057f230041206b22022400200241003602082002420137030020024100412010272002280200200228020822036a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002002200341206a2205360208200241106a200141206a1051200228021021032002200520022802182204102720022004200228020822066a22013602082006200228020022056a20032004101e1a02402002280214450d00200310020b02402001417f4c0d00024002402001450d002001100122040d01101c000b410121040b200220013602142002200436021020024100360218200241106a41002001102720022002280218220420016a360218200420022802106a20052001101e1a200041086a20022802183602002000200229031037020002402002280204450d00200510020b200241206a24000f0b1019000b02000be90502047f017e230041d0006b220524000240024002402004417f4c0d000240024002402004450d002004100122060d010c020b410121060b200520043602042005200636020020054100360208200541002004102720052005280208220620046a360208200620052802006a20032004101e1a200541c0006a41086a2204200528020836020020052005290300370340200541186a200241186a290000370300200541106a200241106a290000370300200541086a200241086a290000370300200541286a20042802003602002005200229000037030020052005290340370320410810012204450d002005200436024020054208370244200541c0006a4100410810272005280240200528024822046a42f3e885d3b38eddb73a3700002005200441086a360248200541306a41086a2204200528024836020020052005290340370330200541c0006a200510cb012005280244210720052802402103200541306a200428020020052802482202102720052802302206200428020022086a20032002101e1a2004200820026a220236020002402007450d00200310020b20052802342103200541c0006a41086a220442003703002005420037034020062002200541c0006a1003200541306a41086a20042903003703002005200529034037033002400240024002400240200541306a411041d02d410041001000417f460d00200541003602404100200541306a4110200541c0006a41044100100022042004417f461b220741034d0d0820052802402204417f4c0d062004450d01200410012202450d0520024100200410171a0c020b2000410036020020030d020c030b410121020b20044100200541306a4110200220042007410420074104491b100022072007417f461b4b0d042002450d0520002004ad2209422086200984370204200020023602002003450d010b200610020b0240200541246a280200450d00200541206a28020010020b200541d0006a24000f0b101c000b1019000b200210020b41c1214133102d000bd50402057f017e230041206b220324000240024002400240410810012204450d002003200436021020034208370214200341106a4100410810272003280210200328021822046a42f3e885d3b3ec9bb23a3700002003200441086a360218200341086a200328021836020020032003290310370300412010012204450d002003200436021020034220370214200341106a41004120102720032802102205200328021822066a22042002290000370000200441086a200241086a290000370000200441106a200241106a290000370000200441186a200241186a2900003700002003200641206a220236021820032802142104200320032802082002102720032802002206200328020822076a20052002101e1a2003200720026a220236020802402004450d00200510020b20032802042105200341106a41086a220442003703002003420037031020062002200341106a1003200341086a200429030037030020032003290310370300024002400240024002402003411041d02d410041001000417f460d0020034100360210410020034110200341106a41044100100022022002417f461b220741034d0d0820032802102202417f4c0d062002450d01200210012204450d0520044100200210171a0c020b200041003602082000420137020020050d020c030b410121040b2002410020034110200420022007410420074104491b100022072007417f461b4b0d042004450d0520002002ad2208422086200884370204200020043602002005450d010b200610020b200341206a24000f0b101c000b1019000b200410020b41c1214133102d000ba90701047f230041f0006b220424000240024002402003280200450d00200441086a200341086a28020036020020042003290200370300200441106a41186a200141186a290000370300200441106a41106a200141106a290000370300200441106a41086a200141086a290000370300200441386a200241086a2802003602002004200129000037031020042002290200370330410810012201450d022004200136025020044208370254200441d0006a4100410810272004280250200428025822016a42f3e885d3b38eddb73a3700002004200141086a360258200441c0006a41086a2201200428025836020020042004290350370340200441d0006a200441106a10cb012004280254210520042802502102200441c0006a200128020020042802582203102720042802402206200128020022076a20022003101e1a2001200720036a220336020002402005450d00200210020b20042802442102200441e0006a200410512004280268210520042802602101200441d0006a41086a220742003703002004420037035020062003200441d0006a1003200441c0006a41086a200729030037030020042004290350370340200441c0006a411020012005100402402004280264450d00200110020b02402002450d00200610020b0240200441346a280200450d00200441306a28020010020b2004280204450d0120042802001002200441f0006a24000f0b200441106a41186a200141186a290000370300200441106a41106a200141106a290000370300200441106a41086a200141086a290000370300200441386a200241086a2802003602002004200129000037031020042002290200370330410810012201450d012004200136025020044208370254200441d0006a4100410810272004280250200428025822016a42f3e885d3b38eddb73a3700002004200141086a360258200441c0006a41086a2201200428025836020020042004290350370340200441d0006a200441106a10cb012004280254210520042802502102200441c0006a200128020020042802582203102720042802402206200128020022076a20022003101e1a2001200720036a220336020002402005450d00200210020b20042802442101200441d0006a41086a220242003703002004420037035020062003200441d0006a1003200441c0006a41086a200229030037030020042004290350370340200441c0006a4110100502402001450d00200610020b200441346a280200450d00200441306a28020010020b200441f0006a24000f0b101c000b1e002001200210c9010240200241046a280200450d00200228020010020b0b9a0301057f230041306b220324000240410810012204450d002003200436022020034208370224200341206a4100410810272003280220200328022822046a42f3e885d3a3ac98b63a3700002003200441086a360228200341106a41086a200328022836020020032003290320370310412010012204450d002003200436022020034220370224200341206a41004120102720032802202205200328022822066a22042001290000370000200441086a200141086a290000370000200441106a200141106a290000370000200441186a200141186a2900003700002003200641206a220136022820032802242106200341106a20032802182001102720032802102204200328021822076a20052001101e1a2003200720016a220136021802402006450d00200510020b2003280214210520032002370308200341206a41086a220642003703002003420037032020042001200341206a1003200341106a41086a200629030037030020032003290320370310200341106a4110200341086a4108100402402005450d00200410020b200341306a24000f0b101c000bf90f020b7f017e230041a0036b220424002001280204210520022802082106200228020421072002280200210802400240200128020022092f018e02220a450d004107210b0c010b4101210b0b03400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200b0e1b0a090b0c0d0708000102030406050e1a0f10141617151819121113130b2009200a410c6c6a210c4100210a200921024108210b0c300b20082002280200200241086a280200220d20062006200d4b1b1006220e450d1b4109210b0c2f0b200e411e76417f73410271417f6a220d450d24410a210b0c2e0b200d4101470d1d410b210b0c2d0b200a41016a210a2002410c6a2202200c470d1b0c1a0b4100417f41012006200d491b2006200d461b220d0d20410c210b0c2b0b200441013a00980120042d0098014101710d154105210b0c2a0b2005450d1d4106210b0c290b2005417f6a21052009200a4102746a4190026a28020022092f018e02220a0d124101210b0c280b200441003a00980120042d009801410171450d180c190b2009418e026a2f0100210a0c130b200141086a2102200aad4220862001ad84210f2007450d184103210b0c250b200810024104210b0c240b20042005360268200420023602782004200936026c2004200f370370200441086a41086a2202200341086a2802003602002004200329020037030820044198016a41086a220a2009200f422088a7410c6c6a2206418c016a220d280000220536020020064184016a2206290000210f20062004290308370000200d2002280200360000200220053602002004200f370398012004200f370308200a20022802003602002004200429030837039801200041013602002000410c6a200a2802003602002000200429039801370204200441a0036a24000f0b200441086a41106a20093602002001200128020841016a3602082004411c6a200aad4220862001ad84220f3702002004200736020c2004200836020820042006ad3703102004200936026c200441003602682004200f3703702004200736024c2004200836024820042006360250200441d8006a41086a200341086a2802003602002004200329020037035820044198016a200441e8006a200441c8006a200441d8006a1089012004280298014101470d1a4110210b0c220b200441286a41086a200441b0016a280200360200200441386a41086a200441bc016a280200360200200420044198016a41106a2903003703282004200441b4016a290200370338200441a4016a2802002102200441c4016a2802002109200441c0016a280200210a200428029c01210520044198016a41086a280200220d280288022206450d1a4111210b0c210b200d2f018c02210d2004200636026c2004200541016a2205360268200420023602702004200d3602744100450d1b4119210b0c200b2005210241c002100122060d1e4118210b0c1f0b101c000b2004200d36026c20042005360268200420023602702002210541010d174112210b0c1d0b200441b4016a210e200441a8016a2108200441e8006a410c6a210c200441c4016a2103200441c0016a21010c180b20032802002109200428029c0141016a2105200d2f018c02210d4113210b0c1b0b200441e8006a41086a2002360200200c200d3602002004200636026c20042005360268200441c8006a41086a200441286a41086a220228020036020020042004290328370348200441d8006a41086a200441386a41086a22062802003602002004200429033837035820044198016a200441e8006a200441c8006a200441d8006a200a2009108a012004280298014101470d114114210b0c1a0b2002200841086a2802003602002006200e41086a280200360200200420082902003703282004200e29020037033820044198016a410c6a28020021022001280200210a20044198016a41086a280200220d2802880222060d164116210b0c190b41c00210012206450d164117210b0c180b200620044198016a418802101e220641003b018e022006410036028802200620042902683702900220064198026a200441e8006a41086a290200370200200641a0026a200441f8006a290200370200200641a8026a20044180016a290200370200200641b0026a20044188016a290200370200200641b8026a20044190016a2902003702002006200228020036029002200220063602002002200228020441016a360204200628029002220241003b018c022002200636028802200620062f018e02220d410c6c6a220220042903283702002002418c016a200441386a41086a280200220536020020024184016a2004290338220f370200200241086a200441286a41086a28020036020020064190026a200d41016a22024102746a200a360200200620062f018e0241016a3b018e0220044198016a41086a2005360200200a20023b018c02200a2006360288022004200f37039801410f210b0c170b20004100360200200441a0036a24000f0b4107210b0c150b4102210b0c140b410d210b0c130b4101210b0c120b4100210b0c110b4108210b0c100b4101210b0c0f0b4105210b0c0e0b4102210b0c0d0b4104210b0c0c0b410e210b0c0b0b410a210b0c0a0b410c210b0c090b410f210b0c080b410f210b0c070b411a210b0c060b4119210b0c050b4112210b0c040b4113210b0c030b4115210b0c020b4118210b0c010b4117210b0c000b0b4501017f230041c0006b22012400200141386a2000410c6a28020036020020012000290204370330200141086a200141306a109d01200141086a109e01200141c0006a24000b7302017f017e024020002802002202417f460d002000200241016a36000002400240200041046a20011096012202450d002002280200450d00200241086a29030021030c010b20002802102001200041146a28020028021411140021030b20002000280200417f6a36000020030f0b109f01000b960501077f230041e0026b22032400200341086a200241086a28020036020020032002290200370300024002400240024020002802000d002000417f360000200341306a41186a2204200141186a290000370300200341306a41106a2205200141106a290000370300200341306a41086a200141086a290000370300200320012900003703302003200041046a3602182003200041086a28020036021020032000280204360214200341b8026a200341106a200341306a10970141012102200341b8026a41106a2802002106200341c4026a2802002107200341b8026a41086a280200210820032802bc022109024020032802b8024101470d00200341106a41186a2004290300370300200341106a41106a2005290300370300200341106a41086a200341306a41086a29030037030020032003290330370310410021020b41900210012201450d012001200341306a418802101e220141003b018e02200141003602880202402002450d00200320013602b802200342003702bc02200341306a200341b8026a109801200341306a1099012008200641286c6a220241106a210120022802102206450d040c030b200341cc006a200341186a290300370200200341d4006a200341206a290300370200200341dc006a200341286a2903003702002003200836023420032009360230200320073602382003200636023c20032000410c6a36024020032003290310370244200341d8026a4200370300200341003602c802200342003703b802200320013602d402200341306a200341b8026a109a01220241106a2101200228021022060d020c030b10c301000b101c000b200241146a280200450d00200610020b20012003290300370200200141086a200341086a28020036020020004100360000200341e0026a24000bab0401097f230041d0026b220324000240024020002802000d002000417f360000200341c8006a41186a2204200141186a290000370300200341c8006a41106a2205200141106a290000370300200341c8006a41086a2206200141086a290000370300200320012900003703482003200041046a3602082003200041086a28020036020020032000280204360204200341206a2003200341c8006a10970141012107200341206a41106a28020021082003412c6a2802002109200341206a41086a280200210a2003280224210b024020032802204101470d00200341186a2004290300370300200341106a2005290300370300200341086a200629030037030020032003290348370300410021070b41900210012201450d012001200341c8006a418802101e220141003b018e022001410036028802024002402007450d002003200136022020034200370224200a200841286c6a2101200341c8006a200341206a109801200341c8006a1099010c010b200341e4006a200341086a290300370200200341ec006a200341106a290300370200200341f4006a200341186a2903003702002003200a36024c2003200b360248200320093602502003200836025420032000410c6a3602582003200329030037025c200341c0006a420037030020034100360230200342003703202003200136023c200341c8006a200341206a109a0121010b200142013703002001200237030820004100360000200341d0026a24000f0b10c301000b101c000bfc0103017f017e047f230041306b2203240020034100360208200342013703002002290300210420034100410810272003280200200328020822056a20043700002003200541086a2206360208200341206a200241086a10a201200328022021052003200620032802282202102720032002200328020822076a22083602082007200328020022066a20052002101e1a02402003280224450d00200510020b200341206a41086a220242003703002003420037032020002001200341206a1003200341106a41086a200229030037030020032003290320370310200341106a411020062008100402402003280204450d00200610020b200341306a24000bfb1903047f017e077f230041d0006b22022400200241003602082002420137030002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001280200417f6a220341044b0d000240024002400240024020030e050004020301000b2002107e2002280200200241086a22032802006a41013a00002003200328020041016a22043602002002410036024820024201370340200141086a28020022054101460d0920054102470d1a200241c0006a107e20022802402205200241c8006a220328020022016a41013a00002003200141016a22013602000c0a0b2002107e2002280200200241086a22032802006a41073a00002003200328020041016a3602002002410036024820024201370340200141086a28020022034101460d0420034102470d1a200241c0006a107e2002280240200241c0006a41086a220328020022056a41013a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c050b2002107e2002280200200241086a22032802006a41053a00002003200328020041016a360200200241003602382002420137033020012d000422034103714101460d0520034102470d1a200241306a107e2002280230200241306a41086a220328020022056a41013a00002003200541016a2205360200200141086a2802002104200241306a20054104102720032003280200220741046a22013602002007200228023022056a20043600000c060b2002107e2002280200200241086a22032802006a41063a00002003200328020041016a3602002002410036024820024201370340200141086a22042d0000417f6a220341034b0d1a024020030e04000d0a0c000b200241c0006a107e2002280240200241c8006a220328020022056a41003a00002003200541016a22053602002001410c6a2802002104200241c0006a20054104102720032003280200220741046a22013602002007200228024022056a20043600000c0d0b2002107e2002280200200241086a22032802006a41023a00002003200328020041016a3602002002410036024820024201370340200141086a280200417f6a220341034b0d1a024020030e04000f0a0e000b200241c0006a107e2002280240200241c0006a41086a220328020022056a41003a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c0f0b2002107e2002280200200241086a22032802006a41003a00002003200328020041016a3602002002410036021820024201370310200128020422034101460d0620034102470d1a200241106a107e2002280210200241106a41086a220328020022056a41013a00002003200541016a2208360200200141106a220328020021052002410036024820024201370340200241c0006a4100410410272002280240200228024822046a20053600002002200441046a360248200241206a41086a220420022802483602002002200229034037032020032802002203450d0f200141086a2802002201200341186c6a21090340200241306a41086a2203410036020020024201370330200241c0006a200110512002280240210a200241306a4100200241c0006a41086a220528020022071027200320072003280200220b6a220c360200200b20022802306a200a2007101e1a02402002280244450d00200a10020b200241c0006a2001410c6a220d10512002280240210a200241306a200c200528020022071027200320072003280200220c6a2201360200200c2002280230220b6a200a2007101e1a02402002280244450d00200a10020b2001417f4c0d14024002402001450d002001100122030d010c170b410121030b200541003602002002200136024420022003360240200241c0006a41002001102720052005280200220720016a22033602002007200228024022056a200b2001101e1a2002280244210102402002280234450d00200b10020b200241206a2004280200200310272002280220220a200428020022076a20052003101e1a2004200720036a220336020002402001450d00200510020b200d410c6a22012009470d000c110b0b200241c0006a107e2002280240200241c0006a41086a220328020022056a41003a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d10200510020c100b200241306a107e2002280230200241306a41086a220328020022056a41003a00002003200541016a2207360200200241c0006a200141086a28020010d80120022802402104200241306a200720022802482205102720032005200328020022076a220a360200200720022802306a20042005101e1a02402002280244450d00200410020b410221030240200141056a2d000022014103714102460d004100210320014101470d00410121030b200241306a200a41011027200241386a22012001280200220441016a22013602002004200228023022056a20033a00000b200228023421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d0e200510020c0e0b200241c0006a107e2002280240200241c0006a41086a220428020022056a41003a00002004200541016a2205360200200141106a2903002106200241c0006a20054108102720022802402205200428020022016a20063700002004200141086a2201360200200328020021040b200228024421032002200420011027200241086a22042004280200220420016a360200200420022802006a20052001101e1a2003450d0c200510020c0c0b200241106a107e2002280210200241106a41086a220328020022056a41003a00002003200541016a2205360200200241c0006a200141086a105120022802402107200241106a2005200228024822041027200320042003280200220a6a2201360200200a200228021022056a20072004101e1a2002280244450d0a200710020c0a0b200241c0006a107e2002280240200241c0006a41086a220328020022056a41023a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c030b200241c0006a107e2002280240200241c8006a220328020022056a41023a00002003200541016a22053602002001410c6a2802002104200241c0006a20054104102720032003280200220741046a22013602002007200228024022056a20043600000c050b200241c0006a107e2002280240200241c0006a41086a220328020022056a41033a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000c010b200241c0006a107e2002280240200241c0006a41086a220328020022016a41013a00002003200141016a2201360200200241c0006a20014120102720032003280200220741206a22013602002007200228024022056a220341086a200441096a290000370000200341106a200441116a290000370000200341186a200441196a290000370000200320042900013700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d06200510020c060b200241c0006a107e20022802402205200241c8006a220328020022016a41033a00002003200141016a22013602000c010b200241c0006a107e2002280240200241c0006a41086a220328020022056a41013a00002003200541016a2205360200200141106a2903002106200241c0006a20054108102720032003280200220441086a22013602002004200228024022056a20063700000b200228024421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d03200510020c030b200228022821032002280220210a0b20022802242104200241106a20082003102720022002280218220720036a22013602182007200228021022056a200a2003101e1a2004450d00200a10020b200228021421042002200241086a22032802002001102720032003280200220720016a360200200720022802006a20052001101e1a2004450d00200510020b20002002290300370200200041086a200241086a280200360200200241d0006a24000f0b1019000b101c000b41ec30103b000b41843e103b000b41ac3f103b000b419435103b000b41943b103b000b41ecc100103b000bc20201027f230041c0006b22022400200241106a41086a220342003703002002420037031020014107200241106a1003200241086a20032903003703002002200229031037030002402002411041d02d410041001000417f460d00200241386a4200370300200241206a41106a4200370300200241206a41086a420037030020024200370320024020024110200241206a4120410010002203417f460d002003411f4d0d0020002002290320370000200041186a200241206a41186a290300370000200041106a200241206a41106a290300370000200041086a200241206a41086a2200290300370000200241106a41086a220342003703002002420037031020014107200241106a10032000200329030037030020022002290310370320200241206a41101005200241c0006a24000f0b41c1214133102d000b41f4214122102d000bb80101027f230041306b22032400200341206a41086a220442003703002003420037032020012002200341206a1003200341086a200429030037030020032003290320370300024002402003411041d02d410041001000417f460d002003421037021420032003360210200341206a200341106a103a20032802202201450d012000200329022437020420002001360200200341306a24000f0b2000410036020820004201370200200341306a24000f0b41c1214133102d000b8d5b05087f037e137f017e017f230041e0016b2202240002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020002d000022034103714101460d00024020034102460d0020034103470d0d200241206a200041196a290000370300200241186a200041116a290000370300200241106a200041096a29000037030020022000290001370308200241386a1047200228023822042002280240220541286c22066a2107200421030240200641286d4104490d00200421060340200120062203460d062003200141201006450d06200341286a22062001460d0a2006200141201006450d0a200641286a22062001460d0b2006200141201006450d0b200641286a22062001460d0c2006200141201006450d0c2007200641286a22066b41286d41034b0d000b200341a0016a21030b024020032007460d002004200541286c6a2106034020012003460d042003200141201006450d042006200341286a2203470d000b0b2004200228023c10870141fc3e103b000b200041216a2d0000210520024198016a41186a200041196a220329000037030020024198016a41106a200041116a220629000037030020024198016a41086a200041096a22042900003703002002200029000137039801200241386a41186a2003290000370300200241386a41106a2006290000370300200241386a41086a2004290000370300200241e0006a200141086a290000370300200241e8006a200141106a290000370300200241f0006a200141186a2900003703002002200029000137033820022001290000370358410910012203450d17200220033602c001200242093702c401200241c0016a41004109102720022802c00120022802c80122066a220441002900f922370000200241086a41086a2203200641096a2206360200200441086a41002d0081233a0000200220022903c001370308200220063602c801200241c0016a200241386a10be0120022802c401210820022802c0012104200241086a200328020020022802c8012206102720022802082207200328020022096a20042006101e1a2003200920066a220636020002402008450d00200410020b200228020c210320024188016a41086a2204420037030020024200370388012007200620024188016a1003200241f8006a41086a20042903003703002002200229038801370378200241f8006a411041d02d410041001000417f460d02200241003a00c001200241f8006a4110200241c0016a41014100100041016a41014d0d1020022d00c00121062003450d160c150b200041046a280200210d102e210a20024188016a41086a22034200370300200242003703880141e122410a20024188016a1003200241f8006a41086a20032903003703002002200229038801370378200241f8006a411041d02d410041001000417f460d0c20024200370338200241f8006a4110200241386a41084100100041016a41084d0d0a2002290338200a7c210a200241386a1047200228023822072002280240220841286c22066a2105200721030240200641286d4104490d00200721030340200120032206460d052006200141201006450d05200641286a2103200641286a22042001460d062004200141201006450d06200641d0006a2103200441286a22042001460d062004200141201006450d06200641f8006a2103200441286a22042001460d062004200141201006450d062005200441286a22036b41286d41034b0d000b200641a0016a21030b4102210420032005460d052007200841286c6a2106034020012003460d052003200141201006450d052006200341286a2203470d000c060b0b200228023c450d120c110b4102210620030d120c130b200228023c0d0f0c100b200621030b200341206a290300200a5621040b200441024720047121030240200228023c450d00200710020b2003450d0720024198016a200d10d80120022802a00121052002280298012107200241386a41186a22034200370300200241386a41106a22064200370300200241386a41086a220442003703002002420037033820072005200241386a1012200241c0016a41186a22052003290300370300200241c0016a41106a22082006290300370300200241c0016a41086a22092004290300370300200220022903383703c0010240200228029c01450d00200710020b200320052903003703002006200829030037030020042009290300370300200220022903c001370338410710012203450d1020022003360298012002420737029c0120024198016a41004107102720022802980120022802a00122066a220341002800eb22360000200241086a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a00002002200229039801370308200220063602a001412010012203450d1020022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241086a20022802102003102720022802082204200228021022056a20062003101e1a2002200520036a220336021002402007450d00200610020b200228020c210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a411020024198016a410041001000210302402006450d00200410020b2003417f470d08200241386a200241c0016a10dc01024020022802402203450d002002290338210b20022802442106102e210c02402006450d00200310020b200c200b540d0b0b200241286a10bb01200241386a41186a2206200241c0016a41186a290300370300200241386a41106a2204200241c0016a41106a290300370300200241386a41086a2207200241c0016a41086a290300370300200220022903c00137033820022802302205200228022c460d030c0b0b200228023c0d0b0c0c0b200228023c0d0a0c0b0b200228023c0d090c0a0b200241286a106f200241286a41086a28020021050c070b41c1214133102d000b419c3e103b000b41f4214122102d000b41b43e103b000b41cc3e103b000b41c1214133102d000b41e43e103b000b200241286a41086a200541016a22153602002002280228220f200541286c6a2203200a37030020032002290338370308200341106a2007290300370300200341186a2004290300370300200341206a2006290300370300024002400240024002400240024002400240024002400240024002400240024002400240201541144b0d00201541014d0d01200f200541286c6a21110340201520052203417f6a2205490d100240201520056b22074102490d00200f200341286c6a2204290300200f200541286c6a220e290300220a5a0d00200e2004290300370300200e290308210b200e41086a200441086a290300370300200241386a41186a2200200e41206a2203290300370300200241386a41106a2212200e41186a2206290300370300200241386a41086a2213200e41106a22082903003703002008200441106a2903003703002006200441186a2903003703002003200441206a2903003703002002200b37033841012108024020074103490d0041012106201121030340200641016a220820074f0d150240200341286a2204290300200a5a0d00200620074f0d15200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032004290300370300200641026a2109200821062004210320092007490d010c020b0b20062108200321040b2004200a370300200e200841286c6a22032002290338370308200341206a2000290300370300200341186a2012290300370300200341106a20132903003703000b201141586a211120050d000c020b0b20154101762216ad42287e220a422088a70d0d200aa72203417f4c0d0c4108211702402003450d00200310012217450d160b41002106200241003602a0012002420437039801200f41586a2118200f41887f6a21194104210420024198016a41086a211a2015211003402010211141002110410121070240024002402011417f6a2203450d000240024002400240024002400240200f200341286c6a290300200f2011417e6a220741286c6a290300220a5a0d00410021082007450d022019201141286c6a21030340200a2003290300220b5a0d02200341586a2103200b210a2007417f6a22070d000c030b0b02402007450d002019201141286c6a2103410221070340200a2003290300220b540d04200341586a2103200b210a2011200741016a2207470d000b41002110201121072006200228029c01470d090c080b41022107410021102006200228029c01470d080c070b200721080b024020112008490d00201120154b0d140240201120086b22074101762209450d002018201141286c6a2103200f200841286c6a21050340200241386a41206a220e200541206a2200290300370300200241386a41186a2212200541186a2213290300370300200241386a41106a2214200541106a2210290300370300200241386a41086a221b200541086a221c29030037030020022005290300370338200341086a221d290300210a200341106a221e290300210b200341186a221f290300210c200329030021202000200341206a22212903003703002013200c3703002010200b370300201c200a370300200520203703002021200e290300370300201f2012290300370300201e2014290300370300201d201b29030037030020032002290338370300200341586a2103200541286a21052009417f6a22090d000b0b2008450d030c020b200820111055000b201120076b2208450d010b200741094d0d010b200821102006200228029c01470d030c020b201120154b0d0d200f200841286c6a2112034020112008417f6a2210490d0f0240201120106b22074102490d00200f200841286c6a2208290300200f201041286c6a2200290300220a5a0d00200020082903003703002000290308210b200041086a200841086a290300370300200241386a41186a2213200041206a2203290300370300200241386a41106a2214200041186a2205290300370300200241386a41086a221b200041106a22092903003703002009200841106a2903003703002005200841186a2903003703002003200841206a2903003703002002200b37033841012109024020074103490d0041012105201221030340200541016a220920074f0d090240200341286a2208290300200a5a0d00200520074f0d0b200341206a200341c8006a290300370300200341186a200341c0006a290300370300200341106a200341386a290300370300200341086a200341306a29030037030020032008290300370300200541026a210e2009210520082103200e2007490d010c020b0b20052109200321080b2008200a3703002000200941286c6a22032002290338370308200341206a2013290300370300200341186a2014290300370300200341106a201b2903003703000b2010450d01201241586a2112201021082007410a490d000b0b2006200228029c01470d010b20024198016a107a201a280200210620022802980121040b200420064103746a2203200736020420032010360200201a200641016a2206360200024020064102490d0020022802980121040340024002400240024020042006417f6a4103746a2203280200450d00200420064103746a220841746a2802002205200328020422074d0d00200641024d0d0520042006417d6a22124103746a2802042203200720056a4d0d01200641034d0d05200841646a280200200320056a4d0d010c050b20064103490d012003280204210720042006417d6a22124103746a28020421030b20032007490d010b2006417e6a21120b2006201241016a22134d0d06200620124d0d0720042012410374221b6a2203280204221c20032802006a220320042013410374221d6a22062802002214490d08200320154b0d09200f201441286c6a22112006280204220041286c22066a2107200341286c210402400240024002400240200320146b220820006b220320004f0d0020172007200341286c2206101e220e20066a210520004101480d0120034101480d01201820046a21042007210303402004200341586a2207200541586a2208200829030020072903005422091b2206290300370300200441206a200641206a290300370300200441186a200641186a290300370300200441106a200641106a290300370300200441086a200641086a2903003703002005200820091b210520112007200320091b22034f0d04200441586a2104200e2106200e2005490d000c050b0b201720112006101e220320066a210520004101480d01200820004c0d01200f20046a210920032106201121030340200320072006200729030020062903005422081b2204290300370300200341206a200441206a290300370300200341186a200441186a290300370300200341106a200441106a290300370300200341086a200441086a2903003703002006200641286a20081b2106200341286a2103200741286a200720081b220720094f0d04200520064b0d000c040b0b200721030c010b201121030b201721060b20032006200520066b220420044128706b101e1a201a280200220320124d0d0a2002280298012204201b6a2206201c20006a36020420062014360200200320134d0d0b2004201d6a2206200641086a200320136b41037441786a10391a201a2003417f6a2206360200200641014b0d000b0b20100d000b0240200228029c01450d0020022802980110020b2016450d00201710020b200241286a10bc0120024198016a41186a200241c0016a41186a29030037030020024198016a41106a200241c0016a41106a29030037030020024198016a41086a200241c0016a41086a290300370300200220022903c00137039801200241386a41286a200d41286a290300370300200241386a41206a200d41206a290300370300200241386a41186a200d41186a290300370300200241386a41106a200d41106a290300370300200241386a41086a200d41086a2903003703002002200d290300370338410710012203450d14200220033602082002420737020c200241086a4100410710272002280208200228021022066a220341002800eb2236000020024188016a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a0000200220022903083703880120022006360210412010012203450d14200220033602082002422037020c200241086a41004120102720022802082206200228021022046a2203200229039801370000200341086a20024198016a41086a290300370000200341106a20024198016a41106a290300370000200341186a20024198016a41186a2903003700002002200441206a2203360210200228020c210720024188016a20022802900120031027200228028801220420022802900122056a20062003101e1a2002200520036a22053602900102402007450d00200610020b200228028c012106200241086a200241386a10d801200228021021072002280208210320024188016a41086a2208420037030020024200370388012004200520024188016a1003200241f8006a41086a20082903003703002002200229038801370378200241f8006a41102003200710040240200228020c450d00200310020b02402006450d00200410020b024002400240200228023822034103460d0020030d02200228023c2203450d0220034101470d01200241c4006a280200450d02200241c0006a28020010020c020b20022d003c4101470d01200241c0006a10bf010c010b0240200241386a41106a2802002206450d00200241c0006a2802002103200641186c210603400240200341046a280200450d00200328020010020b0240200341106a280200450d002003410c6a28020010020b200341186a2103200641686a22060d000b0b200241c4006a280200450d00200241c0006a28020010020b200241386a41186a2206200241c0016a41186a2204290300370300200241386a41106a2207200241c0016a41106a2205290300370300200241386a41086a2208200241c0016a41086a2209290300370300200220022903c001370338412010012203450d14200141086a220e290000210a200141106a2211290000210b2001290000210c200341186a200141186a2200290000370000200341106a200b370000200341086a200a3700002003200c3700002002200336029801200242818080801037029c01200241386a20024198016a10dd01200620042903003703002007200529030037030020082009290300370300200241e0006a200e290000370300200241e8006a2011290000370300200241f0006a2000290000370300200220022903c00137033820022001290000370358200241386a410110de010240200228022c450d00200228022810020b200d1002200241e0016a24000f0b41ccc100200541016a2007103c000b41dcc10020052007103c000b41acc10020132006103c000b41acc10020122006103c000b201420031055000b200320151029000b41bcc10020122003103c000b41b4c300103b000b20112008417f6a22104f0d010b201020111055000b201120151029000b1065000b1064000b200520151055000b41dcc10020062007103c000b41ccc100200641016a2007103c000b200410020b410b10012203450d02200220033602382002420b37023c200241386a4100410b10272002280238200228024022066a220341002900822337000020024198016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a0000200220022903383703980120022006360240412010012203450d02200220033602382002422037023c200241386a41004120102720022802382206200228024022046a22032002290308370000200341086a200241086a41086a290300370000200341106a200241086a41106a290300370000200341186a200241086a41186a2903003700002002200441206a2203360240200228023c210720024198016a20022802a00120031027200228029801220420022802a00122056a20062003101e1a2002200520036a22033602a00102402007450d00200610020b200228029c01210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a411020024198016a410041001000210302402006450d00200410020b02400240024002402003417f460d00200241386a200241086a10dc010240024002400240024020022802402208450d0020022002290244220a37022c20022008360228200aa7210e200a422088a72209450d0120094101470d02410021030c030b410021092002410036023020024201370328410121084100210e0b410021060c020b4100210320092106034020032006410176220720036a2204200820044105746a2001412010062205417f4a1b200420051b2103200620076b220641014b0d000b0b200820034105746a2001412010062206450d032006411f7620036a21060b200241386a41186a200141186a290000370300200241386a41106a200141106a290000370300200241386a41086a200141086a2900003703002002200129000037033820092006490d012009200e470d03200241286a107c200228022821080c030b41943f103b000b419cc300103b000b200310c201000b200820064105746a220341206a2003200920066b41057410391a20032002290338370000200341186a200241386a41186a290300370000200341106a200241386a41106a290300370000200341086a200241386a41086a290300370000200241286a41086a200941016a360200102e210a20024188016a41086a220342003703002002420037038801418d23410b20024188016a1003200241f8006a41086a200329030037030020022002290388013703780240200241f8006a411041d02d410041001000417f460d00200242003703380240200241f8006a4110200241386a41084100100041016a41084d0d002002290338210b200241c8006a200241286a41086a2802003602002002200b200a7c37033820022002290328370340410910012203450d0420022003360298012002420937029c0120024198016a41004109102720022802980120022802a00122036a2206410029009823370000200241c0016a41086a200341096a2203360200200641086a41002d00a0233a000020022002290398013703c001200220033602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290308370000200341086a200241086a41086a290300370000200341106a200241086a41106a290300370000200341186a200241086a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620042003200241386a10d70102402006450d00200410020b0240200241c4006a280200450d00200241c0006a28020010020b200241386a10bb01200228023c210f20022802382110024002400240024020022802402203450d00200341286c41b07f6a2104200241386a41086a2106201021030340200241386a41206a200341206a290300370300200241386a41186a200341186a290300370300200241386a41106a200341106a2903003703002006200341086a29030037030020022003290300370338200241c0016a41186a200641186a290000370300200241c0016a41106a200641106a290000370300200241c0016a41086a200641086a290000370300200220062900003703c001200241c0016a200241086a412010060d02200341286a2103200441586a220441b07f470d000b0b2002410036024020024208370338200f450d0120101002200241386a10bc010c020b20024198016a41206a2206200241386a41206a29030037030020024198016a41186a2207200241386a41186a29030037030020024198016a41106a2205200241386a41106a29030037030020024198016a41086a2208200241386a41086a2903003703002002200229033837039801412810012211450d062011200229039801370300201141206a2006290300370300201141186a2007290300370300201141106a2005290300370300201141086a20082903003703002002201136028801200242818080801037028c01024020044158460d00200341286a2103200241386a41086a21064101210e0340200241386a41206a2205200341206a290300370300200241386a41186a2208200341186a290300370300200241386a41106a2209200341106a2903003703002006200341086a29030037030020022003290300370338200241c0016a41186a200641186a290000370300200241c0016a41106a200641106a290000370300200241c0016a41086a200641086a290000370300200220062900003703c0010240200241c0016a200241086a41201006450d0020024198016a41206a2207200529030037030020024198016a41186a2212200829030037030020024198016a41106a2213200929030037030020024198016a41086a2214200629030037030020022002290338370398012005200729030037030020082012290300370300200920132903003703002006201429030037030020022002290398013703380240200e200228028c01470d0020024188016a200e410110820120022802880121110b2011200e41286c6a22072002290338370300200741206a2005290300370300200741186a2008290300370300200741106a2009290300370300200741086a200629030037030020024188016a41086a200e41016a220e3602000b2004450d01200341286a2103200441586a21040c000b0b0240200f450d00201010020b200241386a41086a20024188016a41086a2802003602002002200229038801370338200228023c2103200241386a10bc012003450d01200228023810020c010b200241386a10bc010b200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a29030037030020022002290308370338410b10012203450d0420022003360298012002420b37029c0120024198016a4100410b102720022802980120022802a00122066a2203410029008223370000200241c0016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a000020022002290398013703c001200220063602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a4110100502402006450d00200410020b200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a29030037030020022002290308370338410710012203450d0420022003360298012002420737029c0120024198016a41004107102720022802980120022802a00122066a220341002800eb22360000200241c0016a41086a200641076a2206360200200341046a41002f00ef223b0000200341066a41002d00f1223a000020022002290398013703c001200220063602a001412010012203450d0420022003360298012002422037029c0120024198016a410041201027200228029801220620022802a00122046a22032002290338370000200341086a200241386a41086a290300370000200341106a200241386a41106a290300370000200341186a200241386a41186a2903003700002002200441206a22033602a001200228029c012107200241c0016a20022802c8012003102720022802c001220420022802c80122056a20062003101e1a2002200520036a22033602c80102402007450d00200610020b20022802c401210620024188016a41086a2207420037030020024200370388012004200320024188016a1003200241f8006a41086a20072903003703002002200229038801370378200241f8006a4110100502402006450d00200410020b200241386a1047200228023c211320022802382112024020022802402203450d00200341286c2109200241d8006a210620122103034020062003290000370000200241386a41186a200241086a41186a290300370300200241386a41106a200241086a41106a290300370300200241386a41086a200241086a41086a290300370300200641086a200341086a290000370000200641106a200341106a290000370000200641186a200341186a29000037000020022002290308370338410910012204450d0620022004360298012002420937029c0120024198016a41004109102720024198016a41086a22072007280200220441096a220536020020042002280298016a220841002900f922370000200241c0016a41086a22042005360200200841086a41002d0081233a000020022002290398013703c00120024198016a200241386a10be01200228029c01210e2002280298012105200241c0016a200428020020072802002207102720022802c0012208200428020022116a20052007101e1a2004201120076a22073602000240200e450d00200510020b20022802c401210420024188016a41086a2205420037030020024200370388012008200720024188016a1003200241f8006a41086a20052903003703002002200229038801370378200241f8006a4110100502402004450d00200810020b200341286a2103200941586a22090d000b0b02402013450d00201210020b20002d00004101470d0a0c090b41c1214133102d000b41f4214122102d000b200710020b200641ff01714102470d04410b10012203450d00200220033602382002420b37023c200241386a4100410b10272002280238200228024022066a2203410029008223370000200241c0016a41086a2006410b6a2206360200200341086a41002f008a233b00002003410a6a41002d008c233a0000200220022903383703c00120022006360240412010012203450d00200220033602382002422037023c200241386a41004120102720022802382206200228024022046a2203200229039801370000200341086a20024198016a41086a290300370000200341106a20024198016a41106a290300370000200341186a20024198016a41186a2903003700002002200441206a2203360240200228023c2107200241c0016a20022802c8012003102720022802c001220420022802c80122086a20062003101e1a2002200820036a22033602c80102402007450d00200610020b20022802c401210720024188016a41086a2206420037030020024200370388012004200320024188016a1003200241f8006a41086a20062903003703002002200229038801370378410021030240200241f8006a411041d02d410041001000417f460d00200242103702c4012002200241f8006a3602c001200241386a200241c0016a103a20022802382206450d022002200229023c220a37020c20022006360208200a422088a72103200aa721092007450d040c030b2002410036021020024201370308410121064100210920070d020c030b101c000b41c1214133102d000b200410020b200241386a41186a2204200141186a290000370300200241386a41106a2207200141106a290000370300200241386a41086a2208200141086a29000037030020022001290000370338024020032009470d00200241086a107c200241086a41086a2802002103200228020821060b2008290300210a2007290300210b2004290300210c200620034105746a22062002290338370000200641186a200c370000200641106a200b370000200641086a200a370000200241086a41086a2206200341016a360200200420024198016a41186a290300370300200720024198016a41106a290300370300200820024198016a41086a2903003703002002200229039801370338200241c0016a41086a2006280200360200200220022903083703c001200241386a200241c0016a10dd010b200241386a41186a20024198016a41186a290300370300200241386a41106a20024198016a41106a290300370300200241386a41086a20024198016a41086a290300370300200241e0006a200141086a290000370300200241e8006a200141106a290000370300200241f0006a200141186a290000370300200220022903980137033820022001290000370358200241386a200541ff017141004710de0120002d00004101470d010b200041046a10bf010b200241e0016a24000bcd0402057f017e230041c0006b220224000240024002400240410910012203450d002002200336023020024209370234200241306a4100410910272002280230200228023822036a2204410029009823370000200241086a200341096a2203360200200441086a41002d00a0233a00002002200229033037030020022003360238412010012203450d002002200336023020024220370234200241306a41004120102720022802302204200228023822056a22032001290000370000200341086a200141086a290000370000200341106a200141106a290000370000200341186a200141186a2900003700002002200541206a220136023820022802342105200220022802082001102720022802002203200228020822066a20042001101e1a2002200620016a220136020802402005450d00200410020b20022802042104200241306a41086a220542003703002002420037033020032001200241306a1003200241086a20052903003703002002200229033037030002402002411041d02d410041001000417f460d002002200236021020024110360214200242003703302002410020024110200241306a41084100100022012001417f461b2201410820014108491b360218200141074d0d0220022903302107200241306a200241106a103a20022802302201450d022002200229023437032020002001360208200020073703002000200229032037020c200041146a200241286a2802003602002004450d040c030b2000410036020820040d020c030b101c000b41c1214133102d000b200310020b200241c0006a24000be20301067f230041306b220224000240410b10012203450d00200220033602202002420b370224200241206a4100410b10272002280220200228022822046a2203410029008223370000200241106a41086a2004410b6a2204360200200341086a41002f008a233b00002003410a6a41002d008c233a00002002200229032037031020022004360228412010012203450d002002200336022020024220370224200241206a41004120102720022802202204200228022822056a22032000290000370000200341086a200041086a290000370000200341106a200041106a290000370000200341186a200041186a2900003700002002200541206a220036022820022802242105200241106a20022802182000102720022802102203200228021822066a20042000101e1a2002200620006a220636021802402005450d00200410020b200228021421042002200110a2012002280208210520022802002100200241206a41086a220742003703002002420037032020032006200241206a1003200241106a41086a200729030037030020022002290320370310200241106a411020002005100402402002280204450d00200010020b02402004450d00200310020b0240200141046a280200450d00200128020010020b200241306a24000f0b101c000bc00201057f230041306b22022400200220013a000f0240410910012201450d002002200136022020024209370224200241206a4100410910272002280220200228022822036a220441002900f922370000200241106a41086a2201200341096a2203360200200441086a41002d0081233a00002002200229032037031020022003360228200241206a200010be012002280224210520022802202103200241106a200128020020022802282200102720022802102204200128020022066a20032000101e1a2001200620006a220036020002402005450d00200310020b20022802142103200241206a41086a220542003703002002420037032020042000200241206a10032001200529030037030020022002290320370310200241106a41102002410f6a4101100402402003450d00200410020b200241306a24000f0b101c000bab0201057f230041206b220224000240410810012203450d002002200336021020024208370214200241106a4100410810272002280210200228021822036a42e4cab5d3c3ac99b83a3700002002200341086a360218200241086a200228021836020020022002290310370300410410012203450d002002200336021020024204370214200241106a41004104102720022802102203200228021822046a20003600002002200441046a220036021820022802142105200220022802082000102720022802002204200228020822066a20032000101e1a2002200620006a220036020802402005450d00200310020b2002280204210320042000200110d70102402003450d00200410020b02402001410c6a280200450d00200128020810020b200241206a24000f0b101c000b9c0b04027f017e027f017e230041d0006b220224000240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002402001280200417f6a220341044b0d000240024002400240024020030e050004020301000b200141086a28020022034101460d0720034102470d16420221040c080b420121040240200141086a28020022034101460d0020034102470d17420221040b20004105360200200041086a2004370300200041106a200141106a290300370300200241d0006a24000f0b20012d000422034103714101460d034102210520034102470d16200141086a28020021030c040b200141086a22052d0000417f6a220341034b0d16024020030e04000c080a000b2001410c6a2802002101410121030c0c0b200141086a280200417f6a220641034b0d1641042103024020060e0400080d0e000b200141106a2903002104410121030c0d0b200128020422034101460d0420034102470d16200141106a2802002205ad42187e2204422088a70d172004a72203417f4c0d18200141086a28020021012003450d0d2003100122060d0e0c100b413010012203450d0f2003200141086a28020010e001200141056a2d00002101410121050b20004103360200200041086a20033602002000200141ff0171410874200572360204200241d0006a24000f0b200141106a2903002107420121040b20004101360200200041106a2007370300200041086a2004370300200241d0006a24000f0b200141106a2802002203417f4c0d14200141086a2802002106410121014101210502402003450d00200310012205450d0c0b2002200336023c2002200536023820024100360240200241386a41002003102720022002280240220520036a360240200520022802386a20062003101e1a200241286a2002280240360200200220022903383703200c0a0b200141106a2903002104410321030c020b200141106a2903002104410221030c050b200141106a2903002104410421030b0c010b41022103200241206a41026a200541036a2d00003a0000200241c0006a200141206a290000370300200241386a41106a200141286a2d00003a0000200220052f00013b01202002200141186a290000370338200141106a29000021042001410c6a28000021010b200020022f01203b000920004104360200200041086a20033a00002000410c6a2001360200200041106a2004370300200041186a20022903383703002000410b6a200241226a2d00003a0000200041206a200241386a41086a290300370300200041286a200241386a41106a290300370300200241d0006a24000f0b2001410c6a2802002105410321030b200041023602002000410c6a2005360200200041086a2003360200200041106a2004370300200241d0006a24000f0b410421060b20022006360208200241003602102002200536020c200241086a4100200341186d10830120022802102103200228020821062002200136021820022001200541186c6a36021c200241386a200241186a103302402002280238450d002006200341186c6a21010340200241206a41106a2205200241386a41106a290300370300200241206a41086a2206200241386a41086a29030037030020022002290338370320200141106a2005290300370200200141086a200629030037020020012002290320370200200341016a2103200141186a2101200241386a200241186a103320022802380d000b0b200241086a41086a2003360200200241206a41086a200336020020022002290308370320410221010b2000200136020420004100360200200041086a2002290320370200200041106a200241206a41086a280200360200200241d0006a24000f0b101c000b41ec30103b000b41843e103b000b41ac3f103b000b419435103b000b41943b103b000b41ecc100103b000b1060000b1061000b1019000b9d08090e7f017e017f017e017f017e017f017e017f230041306b22022400024002400240024020014108490d00200141017641feffffff07712203417f6a220420014f0d032001410d74200173220541117620057322054105742005732206417f2001417f6a677622077122054100200120052001491b6b220520014f0d01200241086a41206a22082000200441286c6a220441206a2209290300370300200241086a41186a220a200441186a220b290300370300200241086a41106a220c200441106a220d290300370300200241086a41086a220e200441086a220f2903003703002000200541286c6a22052903002110200541086a22112903002112200541106a22132903002114200541186a221529030021162009200541206a2217290300370300200b2016370300200d2014370300200f2012370300200429030021122004201037030020022012370308201720082903003703002015200a2903003703002013200c2903003703002011200e29030037030020052002290308370300200320014f0d022006410d7420067322054111762005732205410574200573220620077122054100200120052001491b6b220520014f0d01200241086a41206a22082000200341286c6a220441206a2209290300370300200241086a41186a220a200441186a220b290300370300200241086a41106a220c200441106a220d290300370300200241086a41086a220e200441086a220f2903003703002000200541286c6a22052903002110200541086a22112903002112200541106a22132903002114200541186a221529030021162009200541206a2217290300370300200b2016370300200d2014370300200f2012370300200429030021122004201037030020022012370308201720082903003703002015200a2903003703002013200c2903003703002011200e290300370300200520022903083703002003410172220420014f0d032006410d742006732205411176200573220541057420057320077122054100200120052001491b6b220520014f0d01200241086a41206a22032000200441286c6a220141206a2204290300370300200241086a41186a2206200141186a2207290300370300200241086a41106a2208200141106a2209290300370300200241086a41086a220a200141086a220b2903003703002000200541286c6a22002903002110200041086a22052903002112200041106a220c2903002114200041186a220d29030021162004200041206a220e2903003703002007201637030020092014370300200b2012370300200129030021122001201037030020022012370308200e2003290300370300200d2006290300370300200c20082903003703002005200a290300370300200020022903083703000b200241306a24000f0b41b4c20020052001103c000b200321040b41ecc20020042001103c000bd808070d7f017e017f017e017f027e027f230041306b2202240002400240024002400240024020014101762203450d0003402003417f6a2203210403402004410174220d41017221160240200d41026a220d20014f0d00201620014f0d06200d20162000200d41286c6a2903002000201641286c6a290300541b21160b0240201620014f0d00200420014f0d042000201641286c6a220d2903002000200441286c6a22042903005a0d00200241086a41206a2205200441206a2206290300370300200241086a41186a2207200441186a2208290300370300200241086a41106a2209200441106a220a290300370300200241086a41086a220b200441086a220c290300370300200d41086a220e290300210f200d41106a22102903002111200d41186a22122903002113200d29030021142006200d41206a221529030037030020082013370300200a2011370300200c200f3703002004290300210f200420143703002002200f370308201520052903003703002012200729030037030020102009290300370300200e200b290300370300200d2002290308370300201621040c010b0b20030d000b0b024020014102490d002001210503402005417f6a220520014f0d06200241086a41206a2206200041206a220d290300370300200241086a41186a2207200041186a2216290300370300200241086a41106a2208200041106a220a290300370300200241086a41086a2209200041086a220b2903003703002000200541286c6a2204290300210f200441086a220c2903002111200441106a220e2903002113200441186a22102903002114200d200441206a221229030037030020162014370300200a2013370300200b2011370300200029030021112000200f370300200220113703082012200629030037030020102007290300370300200e2008290300370300200c2009290300370300200420022903083703004100210403402004410174220d41017221160240200d41026a220d20054f0d00201620054f0d07200d20162000200d41286c6a2903002000201641286c6a290300541b21160b0240201620054f0d00200420054f0d052000201641286c6a220d2903002000200441286c6a22042903005a0d002006200441206a220a2903003703002007200441186a220b2903003703002008200441106a220c2903003703002009200441086a220e290300370300200d41086a2210290300210f200d41106a22122903002111200d41186a22152903002113200d2903002114200a200d41206a2203290300370300200b2013370300200c2011370300200e200f3703002004290300210f200420143703002002200f37030820032006290300370300201520072903003703002012200829030037030020102009290300370300200d2002290308370300201621040c010b0b200541014b0d000b0b200241306a24000f0b418cc30020042001103c000b418cc30020042005103c000b41fcc20020162001103c000b41fcc20020162005103c000b41b4c20020052001103c000bac0904097f017e0e7f017e230041306b22022400200041286a2103200041887f6a2104200041586a21054100210620014132492107410121080240024002400340024002400240200820014f0d002005200841286c6a210903402009290300200941286a2209290300540d0220092109200841016a22082001490d000b0b410021092008200146220a0d030c010b410121092008200146220a0d020b20070d012008417f6a220a20014f0d022009450d032000200a41286c6a2209290300210b20092000200841286c220c6a220a290300370300200241086a41206a220d200941206a220e290300370300200241086a41186a220f200941186a2210290300370300200241086a41106a2211200941106a2212290300370300200241086a41086a2213200941086a22142903003703002014200a41086a22152903003703002012200a41106a22162903003703002010200a41186a2217290300370300200e200a41206a22182903003703002002200b3703082018200d2903003703002017200f2903003703002016201129030037030020152013290300370300200a2002290308370300024020084102490d0020002008417e6a220d41286c6a22192903002009290300220b5a0d00200920192903003703002009290308211a2014201941086a290300370300200f200e29030037030020112010290300370300201320122903003703002012201941106a2903003703002010201941186a290300370300200e201941206a2903003703002002201a3703084100210e0240200d450d002004200c6a2109024003402009290300200b5a0d01200941286a2009290300370300200941c8006a200941206a290300370300200941c0006a200941186a290300370300200941386a200941106a290300370300200941306a200941086a290300370300200941586a2109200d417f6a220d0d000b200941286a21190c010b200941286a2119200d210e0b2019200b3703002000200e41286c6a22092002290308370308200941206a200f290300370300200941186a2011290300370300200941106a20132903003703000b200641016a21060240200120086b22124102490d00200a290300220b200a2903285a0d00200a200a41286a220d290300370300200a290308211a2015200d41086a290300370300200f201829030037030020112017290300370300201320162903003703002016200d41106a2903003703002017200d41186a2903003703002018200d41206a2903003703002002201a37030841012116024020124103490d002003200c6a21094101210e02400340200b200941286a220d2903005a0d01200941206a200941c8006a290300370300200941186a200941c0006a290300370300200941106a200941386a290300370300200941086a200941306a2903003703002009200d290300370300200e41026a2110200e41016a2216210e200d210920102012490d000c020b0b200e21162009210d0b200d200b370300200a201641286c6a22092002290308370308200941206a200f290300370300200941186a2011290300370300200941106a20132903003703000b20064105490d000b4100210a0b200241306a2400200a0f0b41ecc200200a2001103c000b41b4c20020082001103c000b0bdb3b02004180080bec282f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f73657373696f6e2f7372632f6c69622e72737365733a696e647365733a6c656e7365733a6c6c637365733a6e6c6e7365733a76616c00000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72730000000000000000000000000000617474656d707420746f20646976696465206279207a65726f00000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f616c6c206974656d7320636f6d652066726f6d2060766f74657273603b20666f7220616e206974656d20746f20626520696e2060766f7465727360207468657265206d757374206265206120766f746520726567697374657265643b2071656448617368206e6f7420657175616c52756e74696d65206d656d6f7279206578686175737465642e2041626f7274696e676c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f7774696d3a64696454696d657374616d70206d7573742062652075706461746564206f6e636520696e2074686520626c6f636b2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f74696d657374616d702f7372632f6c69622e727374696d3a76616c54696d657374616d70206d7573742062652066697273742065787472696e73696320696e2074686520626c6f636b54696d657374616d70206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b617373657274696f6e206661696c65643a206175782e69735f656d7074792829656e766578745f7365745f73746f726167656578745f6765745f73746f726167656578745f7472616e736665726578745f6372656174656d656d6f727963616c6c002f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f7374616b696e672f7372632f636f6e74726163742e72730000000000000000000000000000000000000000000000000000000000000000007372632f6c69622e72732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f756e63696c2f7372632f6c69622e7273636f753a6e7874636f753a76636f636f753a76626f636f753a767273636f753a617072636f753a6c616374617267657420666f7220696e616374697669747920636c65616e7570206d75737420626520616374697665636f753a766770636f753a63616e616c6c206974656d7320696e2063616e64696461746573206c697374206172652072656769737465726564636f753a726567636f753a63626f636f753a636e6363616e6e6f742070726573656e74206f757473696465206f662070726573656e746174696f6e20706572696f64636f753a737373636f753a707373636f753a77696e6c6561646572626f617264206d757374206578697374207768696c652070726573656e7420706861736520616374697665636f753a61637470726573656e7465642063616e646964617465206d7573742062652063757272656e7463616e646964617465206d757374206e6f7420666f726d2061206475706c696361746564206d656d62657220696620656c656374656463616e646964617465206e6f7420776f72746879206f66206c6561646572626f61726470726573656e746572206d75737420686176652073756666696369656e7420736c61736861626c652066756e647300000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e7273696e76616c69642063616e64696461746520736c6f7463616e64696461746520686173206e6f7420656e6f7567682066756e64736475706c69636174652063616e646964617465207375626d697373696f6e72657472616374696f6e20696e646578206d69736d6174636872657472616374696f6e20696e64657820696e76616c696463616e6e6f742072657472616374206e6f6e2d766f74657263616e6e6f742072657472616374207768656e2070726573656e74696e676261642074617267657420696e646578626164207265706f7274657220696e64657863616e6e6f74207265617020647572696e67206772616365207065726964766f746520696e646578206e6f742063757272656e74726561706572206d757374206265206120766f74657263616e6e6f74207265617020647572696e672070726573656e746174696f6e20706572696f64617373657274696f6e206661696c65643a202153656c663a3a70726573656e746174696f6e5f6163746976652829636f753a737473636f753a706475636f753a74726d636f753a706572636f753a63636f66696e616c6973652063616e206f6e6c792062652063616c6c656420616674657220612074616c6c7920697320737461727465642e72756e6e6572207570206d757374206265207265676973746572656400617474656d707420746f20646976696465206279207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72730000000000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f53746f7261676520726f6f74206d757374206d6174636820746861742063616c63756c617465642e2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f6578656375746976652f7372632f6c69622e7273617373657274696f6e206661696c65643a206865616465722e6469676573742829203d3d20263c73797374656d3a3a4d6f64756c653c53797374656d3e3e3a3a6469676573742829416c6c207472616e73616374696f6e732073686f756c6420686176652074686520636f7272656374206e6f6e6365416c6c207472616e73616374696f6e732073686f756c642062652070726f7065726c79207369676e65645472616e73616374696f6e207472696520726f6f74206d7573742062652076616c69642e506172656e7420686173682073686f756c642062652076616c69642e7374726f616765206973206e6f74206e756c6c2c207468657265666f7265206d75737420626520612076616c696420747970656c6962636f72652f726573756c742e727373657269616c697a656420617267732073686f756c642062652070726f7669646564206279207468652072756e74696d653b0a090909636f72726563746c792073657269616c697a656420646174612073686f756c6420626520646573657269616c697a61626c653b0a0909097165642f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652d73616e64626f782f7372632f2e2e2f776974686f75745f7374642e72732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f7374616b696e672f7372632f6c69622e72737374613a6c65637374613a7370657374613a6572617374613a6e73657374613a77696c3a7374613a7661630000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e72737374613a6c6f63617373657274696f6e206661696c65643a20746f5f62616c616e6365202b2076616c7565203e20746f5f62616c616e6365617373657274696f6e206661696c65643a203c426f6e646167653c543e3e3a3a676574287472616e736163746f7229203c3d203c426f6e646167653c543e3e3a3a676574286465737429617373657274696f6e206661696c65643a2066726f6d5f62616c616e6365203e3d2076616c756543616e6e6f7420756e7374616b65206966206e6f7420616c7265616479207374616b65642e43616e6e6f74207374616b6520696620616c7265616479207374616b65642e7374613a666565617474656d707420746f207472616e7361637420776974686f757420656e6f7567682066756e647320746f20706179206665657374613a746f74617373657274696f6e206661696c65643a20266465737420213d207472616e736163746f72617373657274696f6e206661696c65643a2062203e3d2076616c756573746f72616765206973206e6f74206e756c6c2c207468657265666f7265206d75737420626520612076616c6964207479706552657175697265642076616c756573206d75737420626520696e2073746f726167652f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f756e63696c2f7372632f766f74696e672e7273636f763a706572696f64636f763a70726f636f763a707273636f763a766f74653a636f763a766f746572733a636f763a636f6f6c6f6666636f763a7665746f3a70726f706f73616c206d75737420657869737420746f206265207665746f65646f6e6c7920636f756e63696c6c6f7273206d6179207665746f20636f756e63696c2070726f706f73616c73617373657274696f6e206661696c65643a202153656c663a3a69735f7665746f6564282670726f706f73616c5f68617368294e6f206475706c69636174652070726f706f73616c7320616c6c6f776564617373657274696f6e206661696c65643a2053656c663a3a77696c6c5f7374696c6c5f62655f636f756e63696c6c6f725f6174286175782e7265665f696e746f28292c2065787069727929616c6c207175657565642070726f706f73616c20686173686573206d7573742068617665206173736f6369617465642070726f706f73616c732f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f64656d6f63726163792f7372632f6c69622e727364656d3a6c617564656d3a707562416c6c2063757272656e74207075626c69632070726f706f73616c73206861766520616e20616d6f756e74206c6f636b65646465706f7369746f727320616c7761797320657869737420666f722063757272656e742070726f706f73616c7364656d3a70657264656d3a6e787464656d3a72636f43616e6e6f7420696e6a6563742061207265666572656e64756d207468617420656e6473206561726c696572207468616e2070726563656564696e67207265666572656e64756d63616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e7273002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e72730000000000000000000000000000617474656d707420746f2063616c63756c617465207468652072656d61696e646572207769746820612064697669736f72206f66207a65726f000000000000002f636865636b6f75742f7372632f6c6962636f72652f6f70732f61726974682e727364656d3a6d696e64656d3a70706363616e206f6e6c79207365636f6e6420616e206578697374696e672070726f706f73616c7472616e736163746f72206d75737420686176652062616c616e636520746f207369676e616c20617070726f76616c2e766f746520676976656e20666f7220696e76616c6964207265666572656e64756d2e617373657274696f6e206661696c65643a203c7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e646564286175782e7265665f696e746f28292c206465706f7369742e3029617373657274696f6e206661696c65643a203c7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e646564286175782e7265665f696e746f28292c2076616c756529617373657274696f6e206661696c65643a2076616c7565203e3d2053656c663a3a6d696e696d756d5f6465706f736974282900000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e727300000000000000000000000000002f636865636b6f75742f7372632f6c6962616c6c6f632f736c6963652e7273696e7465726e616c206572726f723a20656e746572656420756e726561636861626c6520636f64652f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f636f6e73656e7375732f7372632f6c69622e72733a617574683a7379733a6f6c640000007379733a6e756d7379733a7068617379733a7478727379733a726e647379733a787469426c6f636b206e756d626572206d6179206e65766572206265207a65726f2f55736572732f726f626572742f70726f6a656374732f6574682f706f6c6b61646f742f7375627374726174652f72756e74696d652f73797374656d2f7372632f6c69622e72737379733a6e6f6e7379733a7874647379733a6469676c656e5f5f5068616e746f6d4974656d2073686f756c64206e6576657220626520757365642e3a636f6465000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f736f72742e7273617373657274696f6e206661696c65643a206d6964203c3d206c656e6c6962636f72652f736c6963652f6d6f642e7273000000000000000000000000002f636865636b6f75742f7372632f6c6962636f72652f736c6963652f6d6f642e7273617373657274696f6e206661696c65643a20696e646578203c3d206c656e6c6962616c6c6f632f7665632e7273617373657274696f6e206661696c65643a20696e646578203c206c656e0041ec300be0124f1600002800000000040000480000003300000001000000711700002300000000040000480000003300000001000000a0040000190000007004000022000000c50100002d000000c00400003900000070040000220000001a0200002d0000004f160000280000001f0e0000530000006f000000090000004f160000280000001f0e00005300000078000000090000009c050000110000008905000013000000e502000005000000df17000014000000d008000005000000df17000014000000d608000005000000fe130000110000009203000005000000b40500002b000000df0500004a0000004b000000030000007117000023000000df0500004a0000002b000000010000008e06000020000000df0500004a00000041000000030000005e06000030000000df0500004a0000004200000003000000300600002e000000df0500004a0000004300000003000000f00600004d0000008700000012000000f00600004d0000008800000012000000f00600004d000000890000000f000000f00600004d0000007000000019000000f00600004d0000007100000019000000f00600004d000000720000000f000000f00600004d0000005e00000016000000f00600004d0000005f00000012000000f00600004d0000003d00000016000000f00600004d0000003e00000018000000f00600004d0000003f000000130000004f16000028000000df0500004a0000002b000000010000005e0700000a000000a8000000020000004f1600002800000068070000480000006500000001000000711700002300000068070000480000006500000001000000ed0a00002e0000006807000048000000e3000000030000006807000048000000e400000003000000c70a0000260000006807000048000000f800000003000000b10a0000160000006807000048000000f9000000030000009b0a0000160000006807000048000000fb000000030000007d0a00001e0000006807000048000000fc000000030000008009000022000000200900000a0000006b0a000012000000680700004800000000010000030000005b0a000010000000680700004800000001010000030000003d0a00001e00000068070000480000001b01000003000000250a00001800000068070000480000001c010000030000000d0a00001800000068070000480000001f01000003000000f40900001900000068070000480000002001000003000000d60900001e00000068070000480000002901000003000000b80900001e00000068070000480000002a01000003000000a20900001600000068070000480000002f010000030000008009000022000000260900000e000000680700004800000044010000030000004a0900002e00000068070000480000004a01000003000000270900002300000068070000480000004d01000003000000f1080000360000006807000048000000500100000400000080090000220000003c02000023000000e00b000039000000b00b0000220000001a0200002d000000900b000019000000b00b000022000000c50100002d0000004f0d00001c000000410c00004a00000050000000030000002b0d000024000000410c00004a00000058000000030000008b0c000048000000410c00004a0000009c00000003000000190c000028000000410c00004a000000a400000003000000010d00002a000000410c00004a000000850000000e000000d30c00002e000000410c00004a0000008b000000040000009e0d000011000000b1030000050000004f160000280000001f0e00005300000008010000090000004f16000028000000720e0000480000005b00000001000000f00e000039000000300f0000220000001a0200002d000000201000001f000000720e000048000000c800000003000000fb0f000025000000720e000048000000d6000000040000007117000023000000720e0000480000005b00000001000000d40f000027000000720e00004800000030020000030000008a0f00004a000000720e0000480000003302000003000000590f000031000000720e00004800000034020000030000000600000000000000010000000700000008000000090000000a0000000b0000000c0000000d0000004610000033000000720e0000480000005702000003000000d40f000027000000720e00004800000016020000030000008010000025000000720e00004800000022020000030000000e00000018000000040000000f000000100000001100000012000000130000001400000015000000a51000001c000000720e00004800000015010000030000004f16000028000000161100004b0000001b000000010000007117000023000000161100004b0000001b000000010000003c1200004b000000161100004b0000004e000000030000001e1200001e000000161100004b0000005200000003000000ec11000032000000161100004b0000005300000003000000c11100002b000000161100004b0000006900000003000000a111000020000000161100004b0000006a000000030000004f16000028000000c01200004a0000003900000001000000401400003900000080140000220000001a0200002d00000010140000220000003c02000023000000d31300002b000000fe130000110000004f010000150000008c13000047000000c01200004a000000d9000000040000007117000023000000c01200004a0000003900000001000000c615000032000000c01200004a0000009300000003000000781500004e000000c01200004a00000094000000030000002615000052000000c01200004a000000a2000000030000000415000022000000c01200004a000000ac00000004000000d414000030000000c01200004a000000af000000040000000016000022000000200900000a0000000016000022000000260900000e000000301600001f000000b20200001e000000301600001f000000b5020000360000004f16000028000000771600004a0000003b00000001000000f41600001e00000012170000470000007d000000030000007117000023000000771600004a0000003b0000000100000000180000220000003d02000023000000c31700001c000000df17000014000000cc0100000d000000a017000023000000910200001d00000000180000220000003c02000023000000a017000023000000a70000003a000000a017000023000000ae00000030000000221800001e000000401800000f00000047030000090000004f1800001d000000401800000f0000006f03000009000000000c076c696e6b696e670302cc3b00ff8401046e616d6501f68401e40100146578745f6765745f73746f726167655f696e746f010a6578745f6d616c6c6f6302086578745f66726565030c6578745f74776f785f313238040f6578745f7365745f73746f7261676505116578745f636c6561725f73746f72616765060a6578745f6d656d636d7007186578745f656e756d6572617465645f747269655f726f6f74080e6578745f7072696e745f75746638090d6578745f7072696e745f6e756d0a0a6578745f6d656d6370790b0b6578745f6d656d6d6f76650c0a6578745f6d656d7365740d166578745f73616e64626f785f6d656d6f72795f6e65770e176578745f73616e64626f785f696e7374616e74696174650f126578745f73616e64626f785f696e766f6b6510166578745f73616e64626f785f6d656d6f72795f67657411166578745f73616e64626f785f6d656d6f72795f736574120e6578745f626c616b65325f323536130d6578745f7072696e745f68657814106578745f73746f726167655f726f6f7415126578745f656432353531395f76657269667916773c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a4469676573743c4974656d3e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a686366613333306530633737643531613517066d656d73657418393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a6838313936363666396265663463633931194b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68646339636565313232303362623835621a4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68353632363038323130343238623465631b4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68653335663962326562366332393066621c24616c6c6f633a3a616c6c6f633a3a6f6f6d3a3a68613732396634666436376436376633391d8b013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a4865616465723c4e756d6265722c20486173682c204469676573744974656d3e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a68306561356233376164373865313636341e066d656d6370791f573c616c6c6f633a3a7665633a3a5665633c75383e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a683135633166653139313338396266313020a0013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a556e636865636b656445787472696e7369633c4163636f756e7449642c20496e6465782c2043616c6c2c205369676e61747572653e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a686666343637646332363738333264373321583c616c6c6f633a3a626f7865643a3a426f783c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a683733356130396161356431326165663322345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e3138363723393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a6835646661343736643064326634353464244b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6831623238376135353263616531393734252b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a683461653631636530366535663831633126a0013c7375627374726174655f72756e74696d655f7072696d6974697665733a3a67656e657269633a3a556e636865636b656445787472696e7369633c4163636f756e7449642c20496e6465782c2043616c6c2c205369676e61747572653e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6862346461326637656565363934383334273a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a6861623665336266623631626431356231285a3c706f6c6b61646f745f72756e74696d653a3a43616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a68393931323239363862316130396334322934636f72653a3a736c6963653a3a736c6963655f696e6465785f6c656e5f6661696c3a3a68363938393263393438396363616162622a363c5420617320636f72653a3a636f6e766572743a3a496e746f3c553e3e3a3a696e746f3a3a68353666353936643634373237343833632b8d015f5a4e34395f244c5424616c6c6f632e2e7261775f7665632e2e526177566563244c54245424432424753230244124475424244754243131616c6c6f636174655f696e32385f24753762242475376224636c6f737572652475376424247537642431376838343739373131363565646633646537452e6c6c766d2e3632303339333138363734383337373033382c493c7375627374726174655f72756e74696d655f73657373696f6e3a3a4d6f64756c653c543e3e3a3a726f746174655f73657373696f6e3a3a68663938353764613535613230616562632d2e636f72653a3a6f7074696f6e3a3a6578706563745f6661696c65643a3a68653163323536643932353565393632662e463c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a626c6f636b5f6e756d6265723a3a68313635316433343866326134346235372f527375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a726571756972653a3a6861313164373161613165393864646363304b3c54206173207375627374726174655f636f6465633a3a6b657965647665633a3a4b657965645665633e3a3a746f5f6b657965645f7665633a3a6866346339626432626430633262303964314f7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a756e6861736865643a3a6765745f6f725f64656661756c743a3a6837623835343430353965333637333638324b3c54206173207375627374726174655f636f6465633a3a6b657965647665633a3a4b657965645665633e3a3a746f5f6b657965645f7665633a3a686466633130663239626637643964313133523c636f72653a3a697465723a3a436c6f6e65643c493e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a683032316562386262636530636661323334583c28412c204229206173207375627374726174655f72756e74696d655f7072696d6974697665733a3a7472616974733a3a45786563757461626c653e3a3a657865637574653a3a6863373034616135306561623165643139359f017375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a3c696d706c207375627374726174655f72756e74696d655f7072696d6974697665733a3a7472616974733a3a45786563757461626c6520666f72207375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a657865637574653a3a683730353563353930613161356165386336597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a686432656434346461383333643033393337473c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a6465706f7369745f6f663a3a6864356630353863656136333834623032382b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a683436373662323538363033663731396439076d656d6d6f76653a563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a68653630626561346331643730393736643b29636f72653a3a70616e69636b696e673a3a70616e69633a3a68313137323734323133346465393231303c36636f72653a3a70616e69636b696e673a3a70616e69635f626f756e64735f636865636b3a3a68363630346666363535326232666562323d413c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a726566756e643a3a68633362613564623165383537303661313e86013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a68656161636164343939313263336335363f4e3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a696e6a6563745f7265666572656e64756d3a3a6863653264346134373837396137323635404c3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a7265666572656e64756d5f696e666f3a3a68356430386136656330613537303133384134616c6c6f633a3a7261775f7665633a3a63617061636974795f6f766572666c6f773a3a686334316261316636346437363033373942473c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a766f746572735f666f723a3a686539303831303936616133363162333843473c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a667265655f62616c616e63653a3a6862653837643063316262386365323731444b3c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a72657365727665645f62616c616e63653a3a6865623966656232366134653538343433453e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6835666661663632366231656464306238464d3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a636c6561725f7265666572656e64756d3a3a683065326261346565363332393465346547597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a686364633932303862653939363865303148423c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a6e65775f6572613a3a6834333536343534386630353530373663493a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a68666363653264376532363234386132664a86013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a68383237346662353239326530653935384b345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e313933304c6d3c7375627374726174655f72756e74696d655f696f3a3a426c616b6554776f323536206173207375627374726174655f72756e74696d655f696f3a3a48617368696e673e3a3a656e756d6572617465645f747269655f726f6f743a3a68373531363037396363363934643362344d11727573745f626567696e5f756e77696e644e08727573745f6f6f6d4f393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683934323963666464366239343939316550463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686638333437636630333536663137633751573c616c6c6f633a3a7665633a3a5665633c75383e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a683562613039363631356162393163653352066d616c6c6f63530466726565542d636f72653a3a70616e69636b696e673a3a70616e69635f666d743a3a68343066313034346338363430636537655536636f72653a3a736c6963653a3a736c6963655f696e6465785f6f726465725f6661696c3a3a6838313330343432303532386232613865564b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6832653739643730623164373537336236574b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6834333337316334333361323734393066584b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6835653639393561353131376336316261594b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68393332616436626561643261373838325a4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68643335646131306634323134323937335b4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68306464323861643233626338353865665c4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68323236353666303366323931393738325d4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68626461366634636434623039663433665e4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a68303139363230336638363464396133345f4b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6862396532346165643662353163376566604b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6863613166626538323365653436383431614b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6862323236663235303162633264306264624b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6836333364303435386436356363393863634b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6866616563633135353361633333613835644b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6861356133316562653333306639326635654b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6832376361366365373461626664666264664b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a6836323932333830613439323131383638674b3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a616c6c6f636174655f696e3a3a7b7b636c6f737572657d7d3a3a686163306336633862333061653039663768393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683063653362633633326336616364326169463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68376636633966373761363663373937636a393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68343038373662383637653261396330396b463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68383863616164303861633361623961646c393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68353262366336626163626135633061386d463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68623437366264373632363935623330336e463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68326132353062613265323263336337396f393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683636323532376436666130383237343470463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683365363965636439633766616165306371393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a683764313835303766636661646366353972463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686335663366366638303064303431353273463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683738366438643636323036316564613074393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686261353735613734386133306233306375463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a686532653262373435333764623266386476393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686461363738663731646162613761666577463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683863323961323539383931333766343978393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a686463356361653038383331346337376679463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68326161633766383935303734356563397a393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68646433633635373262343532613031347b463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68626462393236656664376432346539387c393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68653333366232306266663138383930347d463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68346633396332623430636437333963347e393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68653338643736373866303134323236317f463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a68363862383536613030333235623134628001393c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a68656330653961326130616435633466648101463c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a646f75626c653a3a7b7b636c6f737572657d7d3a3a683838636134306365646335303261316282013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683534343836366335623963663730373583013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683734393131616635323537633037393784013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683735663262666638613830643365623985013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a683863616636616537333938376436346386013a3c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e3e3a3a726573657276653a3a68653033623365323432663733346433308701503c616c6c6f633a3a7261775f7665633a3a5261775665633c542c20413e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68393537643736623535353030646266348801c3013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68353731386465393136646662313737328901c3013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4c6561663e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68373463373532366661626363646564358a01c7013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68343437336564333066636136316137308b01cb013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572745f6669743a3a68326333636630383765623331663734338c01c7013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572743a3a68386365653235383631313166343439668d01cb013c616c6c6f633a3a62747265653a3a6e6f64653a3a48616e646c653c616c6c6f633a3a62747265653a3a6e6f64653a3a4e6f64655265663c616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a4d75743c27613e2c204b2c20562c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a496e7465726e616c3e2c20616c6c6f633a3a62747265653a3a6e6f64653a3a6d61726b65723a3a456467653e3e3a3a696e736572745f6669743a3a68663630346163643262623861646636648e013f7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a68666332303937306166616238363265658f01507375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f7365745f73746f726167653a3a68633235623630316631346635383463389001507375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f6765745f73746f726167653a3a683736613962653764306632343937316491014d7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f7472616e736665723a3a683632326464636435333464616431363892014b7375627374726174655f72756e74696d655f7374616b696e673a3a636f6e74726163743a3a657865637574653a3a6578745f6372656174653a3a68396363303263356565333664303032379301417375627374726174655f72756e74696d655f73616e64626f783a3a696d703a3a64697370617463685f7468756e6b3a3a683939386139316165306131663037633594017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f73746f726167653a3a683035373136666235306661623636643395017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f73746f726167653a3a683031326363613031653639396364643996013b3c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e3e3a3a6765743a3a6865383334633533623431306361303264970134616c6c6f633a3a62747265653a3a7365617263683a3a7365617263685f747265653a3a68613435343266643037623530613430349801653c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e20617320636f72653a3a697465723a3a7472616974733a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a68323337613934396465633834333065369901553c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68663765393037343761386636613332309a01453c616c6c6f633a3a62747265653a3a6d61703a3a566163616e74456e7472793c27612c204b2c20563e3e3a3a696e736572743a3a68616639316138373166656365356538369b017c3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f636f64653a3a68636634333438326462356135353864349c01793c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6d657267653a3a68306134623934346339646231343665329d01653c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e20617320636f72653a3a697465723a3a7472616974733a3a496e746f4974657261746f723e3a3a696e746f5f697465723a3a68336331666362643134643933623735619e01553c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a6f70733a3a64726f703a3a44726f703e3a3a64726f703a3a68626262323936373561396334396234399f012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6866313734613335313966343639373764a0016c3c7375627374726174655f72756e74696d655f64656d6f63726163793a3a5072697643616c6c3c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6836313935643931346137663363333636a1010b617574686f726974696573a201563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6834663037313434396230306561366362a30110696e697469616c6973655f626c6f636ba401443c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a696e697469616c6973653a3a6832326337643330356130373863393035a5010f6170706c795f65787472696e736963a601783c7375627374726174655f72756e74696d655f6578656375746976653a3a4578656375746976653c53797374656d2c20426c6f636b2c205061796d656e742c2046696e616c69736174696f6e3e3e3a3a6170706c795f65787472696e7369635f696e6e65723a3a6836303438333536646465653962326663a7010d657865637574655f626c6f636ba801443c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a626c6f636b5f686173683a3a6838333036626630323533366265386266a901523c616c6c6f633a3a7665633a3a5665633c543e20617320616c6c6f633a3a7665633a3a53706563457874656e643c542c20493e3e3a3a66726f6d5f697465723a3a6863383933623037366263653438356361aa01423c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a66696e616c6973653a3a6835643638333133636232646637366465ab010e66696e616c6973655f626c6f636bac010f76616c696461746f725f636f756e74ad010a76616c696461746f7273ae01793c7375627374726174655f72756e74696d655f636f756e63696c3a3a43616c6c3c543e206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6836363435303363376332313138323333af01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a6578697374733a3a6837323366316130366637356338376235b001473c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a72656d6f76655f766f7465723a3a6837326137643235373861356638346333b101563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6830396163353435653961376538333833b2014a3c7375627374726174655f72756e74696d655f7374616b696e673a3a4d6f64756c653c543e3e3a3a6465647563745f756e626f6e6465643a3a6835366234393235363039633261333763b3014c3c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a766f7465725f6c6173745f6163746976653a3a6862336538666236373336303764663063b401473c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a617070726f76616c735f6f663a3a6865333163643561323839663761303839b5014d3c7375627374726174655f72756e74696d655f636f756e63696c3a3a4d6f64756c653c543e3e3a3a63616e6469646174655f7265675f696e666f3a3a6866303561313635613136333135646633b601563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6831613262363530646163366431306537b70186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6866373862303163316265363933623132b801563c616c6c6f633a3a7665633a3a5665633c543e206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6862636662316161343963386239396538b901543c636f72653a3a697465723a3a436861696e3c412c20423e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839313464643736343236613933323338ba01563c7375627374726174655f72756e74696d655f64656d6f63726163793a3a4d6f64756c653c543e3e3a3a696e7465726e616c5f73746172745f7265666572656e64756d3a3a6864663562353935316539353236643238bb01527375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a726571756972653a3a6862646338666238653461356339396261bc0186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6836363231356566633664633732336432bd015e3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a6465636f64653a3a6836636664343364363366653539376139be013e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6834356437316332383730346338366538bf01345f5a4e34636f726533707472313364726f705f696e5f706c61636531376834616536316365303665356638316331452e31383434c001473c7375627374726174655f72756e74696d655f73797374656d3a3a4d6f64756c653c543e3e3a3a6163636f756e745f696e6465783a3a6830663032313835306531326631353532c1016d3c706f6c6b61646f745f72756e74696d653a3a43616c6c206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6862353365306137383562356439313664c2012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6835636361383862626431396436663637c3012e636f72653a3a726573756c743a3a756e777261705f6661696c65643a3a6861636366363539333334346266343932c4012d636f72653a3a736c6963653a3a736f72743a3a726563757273653a3a6865653866663861633636343163366337c501563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6836643335643961613335663530373466c601773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f62616c616e63653a3a6839366364653364613533393430373432c701713c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6d657267653a3a6863386138646538333035626335356661c8015e3c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6839663430373961306139316533623539c901563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6839633838336432616334356335643565ca015e3c616c6c6f633a3a62747265653a3a6d61703a3a496e746f497465723c4b2c20563e20617320636f72653a3a697465723a3a6974657261746f723a3a4974657261746f723e3a3a6e6578743a3a6831353032303864643239373239616232cb013e7375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653a3a656e636f64653a3a6866653733303335653834393636616231cc012b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a6837313232393564313131373938333732cd01773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f73746f726167653a3a6865626533633663393533393837616132ce01743c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f636f64653a3a6837376330653737383334326563333934cf01773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f73746f726167653a3a6862663865653331383633303066393130d001743c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f636f64653a3a6834393266643631333433343565656533d101773c7375627374726174655f72756e74696d655f7374616b696e673a3a4469726563744163636f756e744462206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f62616c616e63653a3a6861303936363266636534323061373632d2013e3c616c6c6f633a3a62747265653a3a6d61703a3a42547265654d61703c4b2c20563e3e3a3a696e736572743a3a6863313238323330343366616132306235d3012b636f72653a3a7074723a3a64726f705f696e5f706c6163653a3a6862623666313834333462363831646364d4017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a6765745f62616c616e63653a3a6864333339636666326536626431326136d5017c3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f636f64653a3a6832353031306366393163383531653633d6017f3c7375627374726174655f72756e74696d655f7374616b696e673a3a4f7665726c61794163636f756e7444623c27612c20543e206173207375627374726174655f72756e74696d655f7374616b696e673a3a4163636f756e7444623c543e3e3a3a7365745f62616c616e63653a3a6835663038363634343266663639663034d70186013c7375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a52756e74696d6553746f72616765206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653e3a3a7075743a3a6833663831363961656164316536306634d8015e3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c206173207375627374726174655f636f6465633a3a736c696361626c653a3a536c696361626c653e3a3a656e636f64653a3a6864323261663136323532663732653865d901587375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a74616b655f6f725f70616e69633a3a6865373635393838373032386265316365da01597375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a67656e657261746f723a3a53746f726167653a3a6765745f6f725f64656661756c743a3a6834623732396637663566373061363932db0181013c7375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a43616c6c3c543e206173207375627374726174655f72756e74696d655f737570706f72743a3a64697370617463683a3a417578446973706174636861626c653e3a3a64697370617463683a3a6830653834363332383930313361343764dc014a3c7375627374726174655f72756e74696d655f636f756e63696c3a3a766f74696e673a3a4d6f64756c653c543e3e3a3a7665746f5f6f663a3a6862306633653061333063356237626537dd01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6834336534383363363337326338613963de01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6866323533306336323935613261646262df01563c55206173207375627374726174655f72756e74696d655f737570706f72743a3a73746f726167653a3a53746f726167654d61703c4b2c20563e3e3a3a696e736572743a3a6863373164346434623063343438383037e0014c3c706f6c6b61646f745f72756e74696d653a3a5072697643616c6c20617320636f72653a3a636c6f6e653a3a436c6f6e653e3a3a636c6f6e653a3a6833623430356561333864626335613735e10134636f72653a3a736c6963653a3a736f72743a3a627265616b5f7061747465726e733a3a6836346333343639613537386236366265e2012e636f72653a3a736c6963653a3a736f72743a3a68656170736f72743a3a6830386534373738303065643562646365e3013c636f72653a3a736c6963653a3a736f72743a3a7061727469616c5f696e73657274696f6e5f736f72743a3a6838643731323265613337623036313336", + "0x0346fb0f1ce64e1a02c4959d38ebad38": "0x00000000" + }}, + "bootNodes": [ + "/ip4/104.211.54.233/tcp/30333/p2p/QmRMGcQh69t8a8YwzHkofVo9SFr7ffggUwhAYjVSTChmrd", + "/ip4/104.211.48.51/tcp/30333/p2p/QmWCnXrhM1in1qPqVT3rDXQEJHedAzbPDMimdjqy2P9fGn", + "/ip4/104.211.48.247/tcp/30333/p2p/QmY33GW69TnTsdQWjAkxJR1GrWTdeV1PmzzcSmUay4HvAB", + "/ip4/40.114.120.164/tcp/30333/p2p/QmWzYU5X1NpFrprD1YZF5Lcj9aE5WF4QEg5FpvQx5XGWG7", + "/ip4/40.117.153.33/tcp/30333/p2p/QmSz8qCADMmi92QB8dTqMPu56JYQQKZBAHz7y8KXjvqcvW" + ], + "telemetryUrl": "wss://telemetry.polkadot.io/submit/" + } From bca51fbbe26a19adf914b6dd7b10d43655de6929 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 23 Aug 2018 14:56:11 +0200 Subject: [PATCH 24/34] ... and syncing again (memory database, on-disk is slow) --- package.json | 2 +- packages/client-db/src/Sync/index.ts | 2 +- packages/client-db/src/Sync/worker/hackEnv.js | 14 ++++++++++ packages/client-db/src/Sync/worker/index.js | 27 +++++++++++++----- packages/client-p2p/package.json | 2 +- packages/client-p2p/src/create/listener.ts | 2 +- packages/client-p2p/src/create/modules.ts | 8 ++++-- packages/client-p2p/src/create/node.ts | 4 ++- packages/client-p2p/src/create/peerBook.ts | 4 ++- packages/client-p2p/src/create/peerInfo.ts | 6 ++-- yarn.lock | 28 +++++++++---------- 11 files changed, 66 insertions(+), 33 deletions(-) create mode 100644 packages/client-db/src/Sync/worker/hackEnv.js diff --git a/package.json b/package.json index 5004bd14..eccbc673 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ }, "devDependencies": { "@polkadot/dev": "^0.20.17", - "@polkadot/ts": "^0.1.13" + "@polkadot/ts": "^0.1.14" } } diff --git a/packages/client-db/src/Sync/index.ts b/packages/client-db/src/Sync/index.ts index 67193e5e..233da2b4 100644 --- a/packages/client-db/src/Sync/index.ts +++ b/packages/client-db/src/Sync/index.ts @@ -142,7 +142,7 @@ export default class SyncDb implements TrieDb { // This _should_ never happen... but... default: - throw new Error(`Unknown worker state waiting for size, ${state[0]}`); + throw new Error(`Unknown worker state waiting for size, command=${state[0]}`); } } diff --git a/packages/client-db/src/Sync/worker/hackEnv.js b/packages/client-db/src/Sync/worker/hackEnv.js new file mode 100644 index 00000000..e331d2c9 --- /dev/null +++ b/packages/client-db/src/Sync/worker/hackEnv.js @@ -0,0 +1,14 @@ +// Copyright 2017-2018 @polkadot/client-db authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +// HACK Under Node workers not all process functions are exposed. Since some are actually +// needed for proper operation on the filesystem, we work around this and add the missing +// operations so we can actually continue + +const isFunction = require('@polkadot/util/is/function').default; + +if (!isFunction(process.umask)) { + // Provide a (hopefully) sane default for the umask (octal) + process.umask = () => 022; +} diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 86dea5aa..e4d9b3f0 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -2,6 +2,11 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. +// HACK Under Node workers not all process functions are exposed. Since some are actually +// needed for proper operation on the filesystem, we work around this and add the missing +// operations so we can actually continue +require('./hackEnv'); + // import { Message } from '../types'; // import { FnMap } from './types; @@ -19,9 +24,11 @@ const { parentPort, threadId, workerData } = require('worker_threads'); const Trie = require('@polkadot/trie-db').default; const encoder = require('@polkadot/trie-db/encoder').default; const isFunction = require('@polkadot/util/is/function').default; +const logger = require('@polkadot/util/logger').default; const { notifyOnDone, notifyOnValue } = require('./notify'); +const l = logger('db/sync/worker'); const handlers = {}; function initDb () { @@ -83,15 +90,21 @@ function initHandlers () { // parentPort.on('message', (message: Message): void => { parentPort.on('message', (message) => { - if (!handlers[threadId]) { - handlers[threadId] = initHandlers(); - } + try { + if (!handlers[threadId]) { + handlers[threadId] = initHandlers(); + } + + const fn = handlers[threadId][message.type]; - const fn = handlers[threadId][message.type]; + if (fn) { + fn(message); + } else { + throw new Error(`Unable to find handler for type=${message.type}`); + } + } catch (error) { + l.error('Sync/worker.js:', error); - if (fn) { - fn(message); - } else { notify(message.state, commands.ERROR); } }); diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index 254b6f8c..a32c8c0c 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -40,10 +40,10 @@ "@polkadot/util": "^0.28.4", "eventemitter3": "^3.1.0", "libp2p": "^0.23.1", + "libp2p-bootstrap": "^0.9.3", "libp2p-kad-dht": "^0.10.1", "libp2p-mdns": "^0.12.0", "libp2p-mplex": "^0.8.0", - "libp2p-railing": "^0.9.2", "libp2p-secio": "^0.10.0", "libp2p-spdy": "^0.12.1", "libp2p-tcp": "^0.12.1", diff --git a/packages/client-p2p/src/create/listener.ts b/packages/client-p2p/src/create/listener.ts index 952ce1d3..67f56d35 100644 --- a/packages/client-p2p/src/create/listener.ts +++ b/packages/client-p2p/src/create/listener.ts @@ -11,7 +11,7 @@ import isIp from '@polkadot/util/is/ip'; import defaults from '../defaults'; export default async function createListener (ip: string = defaults.ADDRESS, port: number = defaults.PORT): Promise { - assert(isIp(ip), `Expected an IP address`); + assert(isIp(ip), `Expected a valid IP address`); const type = isIp(ip, 'v4') ? 'ip4' : 'ip6'; const peerInfo = await promisify(null, PeerInfo.create); diff --git a/packages/client-p2p/src/create/modules.ts b/packages/client-p2p/src/create/modules.ts index 89ccb524..e4c5de6a 100644 --- a/packages/client-p2p/src/create/modules.ts +++ b/packages/client-p2p/src/create/modules.ts @@ -7,7 +7,7 @@ import { P2pNodes } from '../types'; import DHT from 'libp2p-kad-dht'; import mplex from 'libp2p-mplex'; // import Multicast from 'libp2p-mdns'; -import Railing from 'libp2p-railing'; +import Bootstrap from 'libp2p-bootstrap'; import secio from 'libp2p-secio'; import spdy from 'libp2p-spdy'; import TCP from 'libp2p-tcp'; @@ -15,7 +15,9 @@ import PeerInfo from 'peer-info'; // import WS from 'libp2p-websockets'; export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes, nodes: P2pNodes): LibP2p.OptionsModules { - const list = nodes/*.concat(bootNodes)*/.map((node) => node.replace('/p2p/', '/ipfs/')); + const list = nodes.concat(bootNodes).map((node) => + node.replace('/p2p/', '/ipfs/') + ); return { connEncryption: [ @@ -28,7 +30,7 @@ export default function createModules (peerInfo: PeerInfo, bootNodes: P2pNodes, dht: DHT, peerDiscovery: [ // new Multicast(peerInfo), - new Railing({ list }) + new Bootstrap({ list }) ], transport: [ new TCP() diff --git a/packages/client-p2p/src/create/node.ts b/packages/client-p2p/src/create/node.ts index b75a467d..85b828d3 100644 --- a/packages/client-p2p/src/create/node.ts +++ b/packages/client-p2p/src/create/node.ts @@ -26,7 +26,9 @@ export default async function createNode ({ p2p: { address, nodes = [], port } } const peerBook = await createPeerBook([]); const peerInfo = await createListener(address, port); const modules = createModules(peerInfo, bootNodes, nodes); - const addrs = peerInfo.multiaddrs.toArray().map((addr) => addr.toString()); + const addrs = peerInfo.multiaddrs.toArray().map((addr) => + addr.toString() + ); l.log(`creating Libp2p with ${addrs.join(', ')}`); diff --git a/packages/client-p2p/src/create/peerBook.ts b/packages/client-p2p/src/create/peerBook.ts index fff47f96..7ae64c30 100644 --- a/packages/client-p2p/src/create/peerBook.ts +++ b/packages/client-p2p/src/create/peerBook.ts @@ -11,7 +11,9 @@ import createPeerInfo from './peerInfo'; export default async function createPeerBook (peers: P2pNodes = []): Promise { const peerBook = new PeerBook(); const peerInfos = await Promise.all( - peers.map((peer) => createPeerInfo([peer])) + peers.map((peer) => + createPeerInfo([peer]) + ) ); peerInfos.forEach((peerInfo) => { diff --git a/packages/client-p2p/src/create/peerInfo.ts b/packages/client-p2p/src/create/peerInfo.ts index 7d77ff0d..2d4f9d3b 100644 --- a/packages/client-p2p/src/create/peerInfo.ts +++ b/packages/client-p2p/src/create/peerInfo.ts @@ -14,9 +14,9 @@ export default async function createPeerInfo (addresses: P2pNodes): Promise { - peerInfo.multiaddrs.add(address); - }); + addresses.forEach((address) => + peerInfo.multiaddrs.add(address) + ); return peerInfo; } diff --git a/yarn.lock b/yarn.lock index 1f294ed5..f759736b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1372,9 +1372,9 @@ "@polkadot/util-crypto" "^0.28.4" "@polkadot/util-rlp" "^0.28.4" -"@polkadot/ts@^0.1.13": - version "0.1.13" - resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.13.tgz#31540153a5381f1442e3f24f615eefd7442dbeac" +"@polkadot/ts@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.14.tgz#6edc5a17a49ccddf939e26cfaa9da8eb831fbccd" "@polkadot/util-crypto@^0.28.4": version "0.28.4" @@ -5840,6 +5840,17 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libp2p-bootstrap@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/libp2p-bootstrap/-/libp2p-bootstrap-0.9.3.tgz#90d68f890ebdc6aa54e14bb1f257173ad20575f9" + dependencies: + async "^2.6.1" + debug "^3.1.0" + mafmt "^6.0.0" + multiaddr "^5.0.0" + peer-id "~0.10.7" + peer-info "~0.14.1" + libp2p-circuit@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/libp2p-circuit/-/libp2p-circuit-0.2.0.tgz#b7f5bd92e1d8579d9c004abfd5ad762f9caa1bb1" @@ -6016,17 +6027,6 @@ libp2p-ping@~0.8.0: pull-handshake "^1.1.4" pull-stream "^3.6.7" -libp2p-railing@^0.9.2: - version "0.9.2" - resolved "https://registry.yarnpkg.com/libp2p-railing/-/libp2p-railing-0.9.2.tgz#a7c794da30fe6a1c76c468d89a0c461229b22fec" - dependencies: - async "^2.6.1" - debug "^3.1.0" - mafmt "^6.0.0" - multiaddr "^5.0.0" - peer-id "~0.10.7" - peer-info "~0.14.1" - libp2p-record@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/libp2p-record/-/libp2p-record-0.5.1.tgz#dfdec043c67a86bc6bfea6b123a6e603d9fe07e8" From 78a12861b7957ffc470777c743fa428e42e82cab Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 23 Aug 2018 15:08:53 +0200 Subject: [PATCH 25/34] Allow chain bootnode override --- packages/client-p2p/src/create/node.ts | 4 ++-- packages/client-p2p/src/types.d.ts | 1 + packages/client/src/cli/argv/p2p.ts | 7 ++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/client-p2p/src/create/node.ts b/packages/client-p2p/src/create/node.ts index 85b828d3..09e10e4f 100644 --- a/packages/client-p2p/src/create/node.ts +++ b/packages/client-p2p/src/create/node.ts @@ -22,10 +22,10 @@ const config = { } }; -export default async function createNode ({ p2p: { address, nodes = [], port } }: Config, { chain: { bootNodes = [] } }: ChainInterface, l: Logger): Promise { +export default async function createNode ({ p2p: { address, noBootnodes = false, nodes = [], port } }: Config, { chain: { bootNodes = [] } }: ChainInterface, l: Logger): Promise { const peerBook = await createPeerBook([]); const peerInfo = await createListener(address, port); - const modules = createModules(peerInfo, bootNodes, nodes); + const modules = createModules(peerInfo, noBootnodes ? [] : bootNodes, nodes); const addrs = peerInfo.multiaddrs.toArray().map((addr) => addr.toString() ); diff --git a/packages/client-p2p/src/types.d.ts b/packages/client-p2p/src/types.d.ts index a427da0c..60b9490b 100644 --- a/packages/client-p2p/src/types.d.ts +++ b/packages/client-p2p/src/types.d.ts @@ -34,6 +34,7 @@ export type P2pConfig = { clientId: string, maxPeers: number, nodes?: P2pNodes, + noBootnodes: boolean, port: number }; diff --git a/packages/client/src/cli/argv/p2p.ts b/packages/client/src/cli/argv/p2p.ts index d1b2b75c..fdea69c2 100644 --- a/packages/client/src/cli/argv/p2p.ts +++ b/packages/client/src/cli/argv/p2p.ts @@ -19,12 +19,17 @@ export default ({ }, 'p2p-nodes': { default: [], - description: 'Bootnodes to make initial connections to', + description: 'Reserved nodes to make initial connections to', type: 'array' }, 'p2p-port': { default: defaults.PORT, description: 'Sets the peer-to-peer port, 0 for non-listening mode', type: 'number' + }, + 'p2p-no-bootnodes': { + default: false, + description: 'When specified, do not make connections to chain-specific bootnodes', + type: 'boolean' } } as { [index: string]: Options }); From 58e6353d31f0804087720579de3e9a307aa7c381 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 23 Aug 2018 15:56:16 +0200 Subject: [PATCH 26/34] Bump minor (twice for good effect...) --- lerna.json | 3 +-- package.json | 2 +- packages/client-chains/package.json | 12 ++++++------ packages/client-db-chain/package.json | 4 ++-- packages/client-db/package.json | 4 ++-- packages/client-p2p-messages/package.json | 2 +- packages/client-p2p/package.json | 6 +++--- packages/client-rpc-handlers/package.json | 2 +- packages/client-rpc/package.json | 6 +++--- packages/client-runtime/package.json | 4 ++-- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 ++-- packages/client/package.json | 14 +++++++------- yarn.lock | 6 +++--- 14 files changed, 35 insertions(+), 36 deletions(-) diff --git a/lerna.json b/lerna.json index 4554801b..5c70c151 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,4 @@ { - "lerna": "2.5.1", "npmClient": "yarn", "useWorkspaces": true, "command": { @@ -10,5 +9,5 @@ "packages": [ "packages/*" ], - "version": "0.13.8" + "version": "0.15.0" } diff --git a/package.json b/package.json index eccbc673..b408cbff 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "start-rust": "NODE_OPTIONS=--experimental-worker node packages/client/scripts/polkadot.js --db-path ./tmp/start-rust --p2p-nodes /ip4/127.0.0.1/tcp/30333/ipfs/QmXBQmmjNsBLobf5Xx8Kqz7rvUrGgiBLTYm2EmQvcZyrKR --p2p-port 39935 --rpc-port 9935" }, "devDependencies": { - "@polkadot/dev": "^0.20.17", + "@polkadot/dev": "^0.20.18", "@polkadot/ts": "^0.1.14" } } diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index e803671e..cb2fe0da 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-chains", - "version": "0.13.8", + "version": "0.15.0", "description": "Node configuration definitions for specific chains", "main": "index.js", "keywords": [ @@ -34,17 +34,17 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-db-chain": "^0.13.8", - "@polkadot/client-runtime": "^0.13.8", - "@polkadot/client-wasm": "^0.13.8", + "@polkadot/client-db-chain": "^0.15.0", + "@polkadot/client-runtime": "^0.15.0", + "@polkadot/client-wasm": "^0.15.0", "@polkadot/storage": "^0.28.20", "@polkadot/util": "^0.28.4", "@polkadot/util-crypto": "^0.28.4", "@polkadot/util-keyring": "^0.28.4" }, "devDependencies": { - "@polkadot/client": "^0.13.8", - "@polkadot/client-db": "^0.13.8", + "@polkadot/client": "^0.15.0", + "@polkadot/client-db": "^0.15.0", "@polkadot/extrinsics": "^0.28.20", "@polkadot/primitives": "^0.28.20", "@polkadot/storage": "^0.28.20" diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 2d1a2d22..9633036d 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-db-chain", - "version": "0.13.8", + "version": "0.15.0", "description": "Wrapper databases for managing on-chain storage", "main": "index.js", "engines": { @@ -34,7 +34,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-db": "^0.13.8", + "@polkadot/client-db": "^0.15.0", "@polkadot/storage": "^0.28.20", "@polkadot/trie-hash": "^0.28.4", "@polkadot/util": "^0.28.4", diff --git a/packages/client-db/package.json b/packages/client-db/package.json index e6cab334..27f122f8 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-db", - "version": "0.13.8", + "version": "0.15.0", "description": "Database interface layer for network client", "main": "index.js", "engines": { @@ -44,7 +44,7 @@ "rocksdb": "^3.0.1" }, "devDependencies": { - "@polkadot/client": "^0.13.8", + "@polkadot/client": "^0.15.0", "rimraf": "^2.6.2" } } diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index f31a0900..f3b36d3d 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-p2p-messages", - "version": "0.13.8", + "version": "0.15.0", "description": "Network message definitions", "main": "index.js", "engines": { diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index a32c8c0c..8af991ca 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-p2p", - "version": "0.13.8", + "version": "0.15.0", "description": "Interfaces to P2P layers used in the Polkadot network", "main": "index.js", "keywords": [ @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-p2p-messages": "^0.13.8", + "@polkadot/client-p2p-messages": "^0.15.0", "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4", "eventemitter3": "^3.1.0", @@ -54,6 +54,6 @@ "varint": "^5.0.0" }, "devDependencies": { - "@polkadot/client": "^0.13.8" + "@polkadot/client": "^0.15.0" } } diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 7ef6da10..22f84510 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-rpc-handlers", - "version": "0.13.8", + "version": "0.15.0", "description": "Handlers for RPC messages", "main": "index.js", "engines": { diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 26ad3135..8c8b4b8b 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-rpc", - "version": "0.13.8", + "version": "0.15.0", "description": "RPC server for a Polkadot client", "main": "index.js", "keywords": [ @@ -35,11 +35,11 @@ }, "devDependencies": { "@polkadot/api-provider": "^0.28.20", - "@polkadot/client": "^0.13.8" + "@polkadot/client": "^0.15.0" }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-rpc-handlers": "^0.13.8", + "@polkadot/client-rpc-handlers": "^0.15.0", "@polkadot/util": "^0.28.4", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 5ddee3c7..85d54b87 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-runtime", - "version": "0.13.8", + "version": "0.15.0", "description": "Basic execution wrapper interface for WASM programs", "main": "index.js", "engines": { @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-db": "^0.13.8", + "@polkadot/client-db": "^0.15.0", "@polkadot/util": "^0.28.4", "@polkadot/util-crypto": "^0.28.4" } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 0b35198b..b935e2bd 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-telemetry", - "version": "0.13.8", + "version": "0.15.0", "description": "Telementry client", "main": "index.js", "engines": { diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index 07ada711..3c6f8731 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client-wasm", - "version": "0.13.8", + "version": "0.15.0", "description": "WASM compiler & call interface", "main": "index.js", "engines": { @@ -35,7 +35,7 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-runtime": "^0.13.8", + "@polkadot/client-runtime": "^0.15.0", "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4", "@types/webassembly-js-api": "^0.0.1" diff --git a/packages/client/package.json b/packages/client/package.json index 8c59dabb..389d6536 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/client", - "version": "0.13.8", + "version": "0.15.0", "description": "A JavaScript client node for the polkadot network", "main": "polkadot.js", "bin": { @@ -38,12 +38,12 @@ }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/client-chains": "^0.13.8", - "@polkadot/client-db": "^0.13.8", - "@polkadot/client-p2p": "^0.13.8", - "@polkadot/client-rpc": "^0.13.8", - "@polkadot/client-telemetry": "^0.13.8", - "@polkadot/client-wasm": "^0.13.8", + "@polkadot/client-chains": "^0.15.0", + "@polkadot/client-db": "^0.15.0", + "@polkadot/client-p2p": "^0.15.0", + "@polkadot/client-rpc": "^0.15.0", + "@polkadot/client-telemetry": "^0.15.0", + "@polkadot/client-wasm": "^0.15.0", "@polkadot/jsonrpc": "^0.28.20", "@polkadot/primitives": "^0.28.20", "@polkadot/util": "^0.28.4", diff --git a/yarn.lock b/yarn.lock index f759736b..682bd78a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1253,9 +1253,9 @@ isomorphic-fetch "^2.2.1" websocket "^1.0.25" -"@polkadot/dev@^0.20.17": - version "0.20.17" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.17.tgz#30c89e0c2c03402eca3a4da8bb02e3d499849c96" +"@polkadot/dev@^0.20.18": + version "0.20.18" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.18.tgz#fb08df68a53f47cebdd0cea9366c0714b40879a6" dependencies: "@babel/cli" "^7.0.0-rc.1" "@babel/core" "^7.0.0-rc.1" From ef007f35e8bca188bf0e7fbdebbb5753ac05d73d Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 12:11:58 +0200 Subject: [PATCH 27/34] To-disk sync operational via db-diskdown --- package.json | 2 +- packages/client-chains/package.json | 11 +- packages/client-db-chain/package.json | 11 +- packages/client-db/package.json | 15 +- packages/client-db/src/Sync/worker/hackEnv.js | 5 +- packages/client-db/src/Sync/worker/index.js | 18 +- packages/client-db/src/defaults.ts | 2 +- packages/client-p2p-messages/package.json | 7 +- packages/client-p2p/package.json | 7 +- packages/client-p2p/src/sync/index.ts | 4 + packages/client-rpc-handlers/package.json | 7 +- packages/client-rpc/package.json | 7 +- packages/client-runtime/package.json | 9 +- packages/client-telemetry/package.json | 7 +- packages/client-wasm/package.json | 7 +- packages/client/package.json | 7 +- yarn.lock | 370 ++++-------------- 17 files changed, 120 insertions(+), 376 deletions(-) diff --git a/package.json b/package.json index b408cbff..1ff6343e 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ }, "devDependencies": { "@polkadot/dev": "^0.20.18", - "@polkadot/ts": "^0.1.14" + "@polkadot/ts": "^0.1.17" } } diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index cb2fe0da..299c42dd 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -27,20 +27,15 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/client/tree/master/packages/client-chains#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db-chain": "^0.15.0", "@polkadot/client-runtime": "^0.15.0", "@polkadot/client-wasm": "^0.15.0", "@polkadot/storage": "^0.28.20", - "@polkadot/util": "^0.28.4", - "@polkadot/util-crypto": "^0.28.4", - "@polkadot/util-keyring": "^0.28.4" + "@polkadot/util": "^0.28.6", + "@polkadot/util-crypto": "^0.28.6", + "@polkadot/util-keyring": "^0.28.6" }, "devDependencies": { "@polkadot/client": "^0.15.0", diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index 9633036d..f07d3c11 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -27,18 +27,13 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-db-chain#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.15.0", "@polkadot/storage": "^0.28.20", - "@polkadot/trie-hash": "^0.28.4", - "@polkadot/util": "^0.28.4", - "@polkadot/util-crypto": "^0.28.4" + "@polkadot/trie-hash": "^0.28.6", + "@polkadot/util": "^0.28.6", + "@polkadot/util-crypto": "^0.28.6" }, "devDependencies": { "@polkadot/storage": "^0.28.20" diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 27f122f8..7a1fa790 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -28,20 +28,13 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-db#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/trie-db": "^0.28.4", - "@polkadot/util": "^0.28.4", + "@polkadot/db-diskdown": "^0.28.6", + "@polkadot/trie-db": "^0.28.6", + "@polkadot/util": "^0.28.6", "@types/mkdirp": "^0.5.2", - "leveldown": "^4.0.1", - "medeadown": "^1.1.9", - "mkdirp": "^0.5.1", - "rocksdb": "^3.0.1" + "mkdirp": "^0.5.1" }, "devDependencies": { "@polkadot/client": "^0.15.0", diff --git a/packages/client-db/src/Sync/worker/hackEnv.js b/packages/client-db/src/Sync/worker/hackEnv.js index e331d2c9..b464cb13 100644 --- a/packages/client-db/src/Sync/worker/hackEnv.js +++ b/packages/client-db/src/Sync/worker/hackEnv.js @@ -3,12 +3,13 @@ // of the ISC license. See the LICENSE file for details. // HACK Under Node workers not all process functions are exposed. Since some are actually -// needed for proper operation on the filesystem, we work around this and add the missing +// needed for proper operation on some modules, we work around this and add the missing // operations so we can actually continue const isFunction = require('@polkadot/util/is/function').default; +// process.umask is used by mkdirp to set the correct permissions if (!isFunction(process.umask)) { - // Provide a (hopefully) sane default for the umask (octal) + // Provide a sane default for the umask (octal) process.umask = () => 022; } diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index e4d9b3f0..a47f93eb 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -2,9 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -// HACK Under Node workers not all process functions are exposed. Since some are actually -// needed for proper operation on the filesystem, we work around this and add the missing -// operations so we can actually continue +// HACK Under Node workers not all process functions are exposed require('./hackEnv'); // import { Message } from '../types'; @@ -13,10 +11,10 @@ require('./hackEnv'); // FIXME Waiting on native lib support in workers - // https://github.com/nodejs/node/issues/21481 // https://github.com/nodejs/node/issues/21783 -// const leveldb = require('leveldown'); -// const leveldb = require('rocksdb'); -const leveldb = require('medeadown'); -// const leveldb = undefined; +// const diskdown = require('leveldown'); +// const diskdown = require('rocksdb'); +const diskdown = require('@polkadot/db-diskdown').default; +// const diskdown = undefined; const levelup = require('levelup'); const memdown = require('memdown'); @@ -28,12 +26,12 @@ const logger = require('@polkadot/util/logger').default; const { notifyOnDone, notifyOnValue } = require('./notify'); -const l = logger('db/sync/worker'); +const l = logger('sync/worker'); const handlers = {}; function initDb () { - const downdb = isFunction(leveldb) && workerData.type === 'disk' - ? leveldb(workerData.path) + const downdb = isFunction(diskdown) && workerData.type === 'disk' + ? diskdown(workerData.path) : memdown(); return workerData.isTrie diff --git a/packages/client-db/src/defaults.ts b/packages/client-db/src/defaults.ts index 12fd0f1b..b59929b4 100644 --- a/packages/client-db/src/defaults.ts +++ b/packages/client-db/src/defaults.ts @@ -8,7 +8,7 @@ import os from 'os'; import path from 'path'; const PATH = path.join(os.homedir(), '.polkadot-js'); -const TYPE: DbConfig$Type = 'memory'; +const TYPE: DbConfig$Type = 'disk'; export default { PATH, diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index f3b36d3d..9333db1c 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -28,15 +28,10 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-p2p-messages#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/jsonrpc": "^0.28.20", "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.4" + "@polkadot/util": "^0.28.6" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index 8af991ca..a1c0b588 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -28,16 +28,11 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/client/tree/master/packages/client-p2p#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-p2p-messages": "^0.15.0", "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.4", + "@polkadot/util": "^0.28.6", "eventemitter3": "^3.1.0", "libp2p": "^0.23.1", "libp2p-bootstrap": "^0.9.3", diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index d9f6f1cc..547297f7 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -75,6 +75,10 @@ export default class Sync extends EventEmitter implements SyncInterface { // this.l.debug(() => `Importing block #${nextNumber.toString()}`); + if (count && !(count % 8)) { + this.emit('imported'); + } + if (!this.chain.executor.importBlock(encoded)) { break; } diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index 22f84510..a71702ba 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -24,15 +24,10 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-rpc-handlers#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/jsonrpc": "^0.28.20", "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.4" + "@polkadot/util": "^0.28.6" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index 8c8b4b8b..fc0ef476 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -28,11 +28,6 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-rpc#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "devDependencies": { "@polkadot/api-provider": "^0.28.20", "@polkadot/client": "^0.15.0" @@ -40,7 +35,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-rpc-handlers": "^0.15.0", - "@polkadot/util": "^0.28.4", + "@polkadot/util": "^0.28.6", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 85d54b87..41126d67 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -28,15 +28,10 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-runtime#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.15.0", - "@polkadot/util": "^0.28.4", - "@polkadot/util-crypto": "^0.28.4" + "@polkadot/util": "^0.28.6", + "@polkadot/util-crypto": "^0.28.6" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index b935e2bd..214323c1 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -28,14 +28,9 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-telemetry#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/util": "^0.28.4", + "@polkadot/util": "^0.28.6", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index 3c6f8731..ece57d93 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -28,16 +28,11 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-wasm#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-runtime": "^0.15.0", "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.4", + "@polkadot/util": "^0.28.6", "@types/webassembly-js-api": "^0.0.1" } } diff --git a/packages/client/package.json b/packages/client/package.json index 389d6536..4b95c864 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -31,11 +31,6 @@ "url": "https://github.com/polkadot-js/client/issues" }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client#readme", - "scripts": { - "build": "polkadot-dev-build-babel", - "check": "eslint src && flow check", - "test": "echo \"Tests only available from root wrapper\"" - }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-chains": "^0.15.0", @@ -46,7 +41,7 @@ "@polkadot/client-wasm": "^0.15.0", "@polkadot/jsonrpc": "^0.28.20", "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.4", + "@polkadot/util": "^0.28.6", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.1.1", diff --git a/yarn.lock b/yarn.lock index 682bd78a..0ce1a1bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1253,6 +1253,17 @@ isomorphic-fetch "^2.2.1" websocket "^1.0.25" +"@polkadot/db-diskdown@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/db-diskdown/-/db-diskdown-0.28.6.tgz#2cadcec9136ae6bc6a6b09e46e9078aca81b4c62" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.6" + "@types/mkdirp" "^0.5.2" + abstract-leveldown "^5.0.0" + lru_map "^0.3.3" + mkdirp "^0.5.1" + "@polkadot/dev@^0.20.18": version "0.20.18" resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.18.tgz#fb08df68a53f47cebdd0cea9366c0714b40879a6" @@ -1345,15 +1356,15 @@ "@polkadot/util-crypto" "^0.28.4" "@polkadot/util-keyring" "^0.28.4" -"@polkadot/trie-db@^0.28.4": - version "0.28.4" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.4.tgz#bfd44f6ad6d316597107fdcee69f329f3b64836e" +"@polkadot/trie-db@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.6.tgz#3bb6527e4876df4eb05a593d40e2980d555f3a70" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/trie-hash" "^0.28.4" - "@polkadot/util" "^0.28.4" - "@polkadot/util-crypto" "^0.28.4" - "@polkadot/util-rlp" "^0.28.4" + "@polkadot/trie-hash" "^0.28.6" + "@polkadot/util" "^0.28.6" + "@polkadot/util-crypto" "^0.28.6" + "@polkadot/util-rlp" "^0.28.6" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^2.6.1" @@ -1372,9 +1383,18 @@ "@polkadot/util-crypto" "^0.28.4" "@polkadot/util-rlp" "^0.28.4" -"@polkadot/ts@^0.1.14": - version "0.1.14" - resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.14.tgz#6edc5a17a49ccddf939e26cfaa9da8eb831fbccd" +"@polkadot/trie-hash@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.6.tgz#453a9ba01ff8d6a0fc5269f9d6eed81e89c32f73" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.6" + "@polkadot/util-crypto" "^0.28.6" + "@polkadot/util-rlp" "^0.28.6" + +"@polkadot/ts@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.17.tgz#0d85085038ae7e6757e059d07c8e9c54596919b3" "@polkadot/util-crypto@^0.28.4": version "0.28.4" @@ -1387,6 +1407,17 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" +"@polkadot/util-crypto@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.6.tgz#cc985c2d19617b31ab4dcaae674b883e1c7cfcb9" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.6" + blakejs "^1.1.0" + js-sha3 "^0.8.0" + tweetnacl "^1.0.0" + xxhashjs "^0.2.2" + "@polkadot/util-keyring@^0.28.4": version "0.28.4" resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.4.tgz#893e0b4cfd7e8e44a3a21f1aee24394c9a13043c" @@ -1397,6 +1428,16 @@ "@types/bs58" "^3.0.30" bs58 "^4.0.1" +"@polkadot/util-keyring@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.6.tgz#58b3a837c53c9fa7d5b85d158ffbdce9e50d81c8" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.6" + "@polkadot/util-crypto" "^0.28.6" + "@types/bs58" "^3.0.30" + bs58 "^4.0.1" + "@polkadot/util-rlp@^0.28.4": version "0.28.4" resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.4.tgz#11280a2f1b2ac242c4770c8b1988e88a1110e9ce" @@ -1404,6 +1445,13 @@ "@babel/runtime" "^7.0.0-rc.1" "@polkadot/util" "^0.28.4" +"@polkadot/util-rlp@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.6.tgz#5c6304028d0c441bf36813ef98607cdf9db89f2d" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@polkadot/util" "^0.28.6" + "@polkadot/util@^0.28.4": version "0.28.4" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.4.tgz#986e061b305db8cce896649d393d3b799622d178" @@ -1419,6 +1467,21 @@ ip-regex "^3.0.0" moment "^2.22.2" +"@polkadot/util@^0.28.6": + version "0.28.6" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.6.tgz#e4e7f4870dcfb487a312174576ee386e22dd0d6c" + dependencies: + "@babel/runtime" "^7.0.0-rc.1" + "@types/bn.js" "^4.11.1" + "@types/deasync" "^0.1.0" + "@types/ip-regex" "^2.0.0" + "@types/xxhashjs" "^0.1.1" + bn.js "^4.11.8" + chalk "^2.4.1" + deasync "^0.1.13" + ip-regex "^3.0.0" + moment "^2.22.2" + "@sindresorhus/is@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" @@ -1679,12 +1742,6 @@ abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -abstract-leveldown@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" - dependencies: - xtend "~4.0.0" - abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" @@ -1817,10 +1874,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -append-stream@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/append-stream/-/append-stream-1.2.2.tgz#36c6238133ffd4f92d4371782890a412da02df84" - append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -1955,10 +2008,6 @@ async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -async@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - async@^1.4.0, async@~1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -2176,7 +2225,7 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" -bindings@^1.2.1, bindings@~1.3.0: +bindings@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" @@ -2190,13 +2239,6 @@ bip66@^1.1.3: dependencies: safe-buffer "^5.0.1" -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - blakejs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" @@ -2322,29 +2364,10 @@ bser@^2.0.0: dependencies: node-int64 "^0.4.0" -buffer-alloc-unsafe@^1.0.0, buffer-alloc-unsafe@^1.1.0: +buffer-alloc-unsafe@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" -buffer-alloc@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.1: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - buffer-from@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" @@ -3000,12 +3023,6 @@ cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -3183,7 +3200,7 @@ detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" -detect-libc@^1.0.2, detect-libc@^1.0.3: +detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -3385,33 +3402,6 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.45" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.1: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - es6-promise@^4.0.3: version "4.2.4" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" @@ -3422,23 +3412,6 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - escape-html@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -3647,13 +3620,6 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - eventemitter3@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" @@ -3723,10 +3689,6 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expand-template@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd" - expect@^23.5.0: version "23.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-23.5.0.tgz#18999a0eef8f8acf99023fde766d9c323c2562ed" @@ -3802,10 +3764,6 @@ fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" -fast-future@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" - fast-glob@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf" @@ -3987,10 +3945,6 @@ from2@^2.1.0, from2@^2.1.1: inherits "^2.0.1" readable-stream "^2.0.0" -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - fs-extra@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" @@ -4162,10 +4116,6 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -5621,12 +5571,6 @@ k-bucket@^4.0.1: inherits "^2.0.1" randombytes "^2.0.3" -keydir@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/keydir/-/keydir-2.1.1.tgz#a981f3e7f0c3c3751d435720e6ede3be6a25d3b7" - dependencies: - ltgt "^1.0.2" - keygrip@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91" @@ -5806,20 +5750,6 @@ level-ws@0.1.0: readable-stream "^2.2.8" xtend "^4.0.0" -leveldown-open@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/leveldown-open/-/leveldown-open-1.0.3.tgz#8094fbef5b1b8c5252f3239ec14517e9f8665a02" - -leveldown@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-4.0.1.tgz#7bc3df93c9fa574feb39ce45a0c4073aa948cfef" - dependencies: - abstract-leveldown "~5.0.0" - bindings "~1.3.0" - fast-future "~1.0.2" - nan "~2.10.0" - prebuild-install "^4.0.0" - levelup@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.1.1.tgz#c2c0b3be2b4dc316647c53b42e2f559e232d2189" @@ -6325,9 +6255,9 @@ lru-cache@^4.1.2, lru-cache@^4.1.3: pseudomap "^1.0.2" yallist "^2.1.2" -ltgt@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-1.2.0.tgz#617707dc39f38294415e66a02f3c2705ac407866" +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" ltgt@~2.2.0: version "2.2.0" @@ -6420,30 +6350,6 @@ mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" -medea@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/medea/-/medea-1.0.3.tgz#d16365b315ef64d6cc8ecc8ec16db6442ff52583" - dependencies: - append-stream "^1.1.0" - async "^0.9.0" - buffer-crc32 "~0.2.1" - buffer-equal "0.0.1" - es6-map "^0.1.1" - mkdirp "^0.5.0" - monotonic-timestamp "0.0.8" - pidlockfile "^1.1.1" - rimraf "~2.2.2" - run-parallel "^1.0.0" - -medeadown@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/medeadown/-/medeadown-1.1.9.tgz#d41c5672c10402ebf7c7f7e8005105cf8e27935c" - dependencies: - abstract-leveldown "3.0.x" - keydir "^2.1.1" - leveldown-open "^1.0.3" - medea "^1.0.3" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -6673,10 +6579,6 @@ moment@^2.6.0: version "2.19.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.4.tgz#17e5e2c6ead8819c8ecfad83a0acccb312e94682" -monotonic-timestamp@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/monotonic-timestamp/-/monotonic-timestamp-0.0.8.tgz#67987d02a41c15f568b6c0a05885989dd2402ba0" - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -6829,7 +6731,7 @@ nan@^2.0.7, nan@^2.2.1, nan@^2.3.0, nan@^2.3.3: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" -nan@^2.9.2, nan@~2.10.0: +nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" @@ -6870,20 +6772,10 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - nice-try@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" -node-abi@^2.2.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b" - dependencies: - semver "^5.4.1" - node-fetch-npm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" @@ -6982,10 +6874,6 @@ noms@0.0.0: inherits "^2.0.1" readable-stream "~1.0.31" -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -7085,7 +6973,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -7214,7 +7102,7 @@ options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -7523,10 +7411,6 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pidlockfile@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pidlockfile/-/pidlockfile-1.1.1.tgz#d67312fb326deeb45e5419a47c141877bd3cc98c" - pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -7585,26 +7469,6 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" -prebuild-install@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-4.0.0.tgz#206ce8106ce5efa4b6cf062fc8a0a7d93c17f3a8" - dependencies: - detect-libc "^1.0.3" - expand-template "^1.0.2" - github-from-package "0.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - node-abi "^2.2.0" - noop-logger "^0.1.1" - npmlog "^4.0.1" - os-homedir "^1.0.1" - pump "^2.0.1" - rc "^1.1.6" - simple-get "^2.7.0" - tar-fs "^1.13.0" - tunnel-agent "^0.6.0" - which-pm-runs "^1.0.0" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -7792,14 +7656,7 @@ pull-ws@^3.3.1: safe-buffer "^5.1.1" ws "^1.1.0" -pump@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: @@ -7974,7 +7831,7 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.4, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.4, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -8379,10 +8236,6 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2. dependencies: glob "^7.0.5" -rimraf@~2.2.2: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - ripemd160@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -8390,16 +8243,6 @@ ripemd160@^2.0.0: hash-base "^2.0.0" inherits "^2.0.1" -rocksdb@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/rocksdb/-/rocksdb-3.0.1.tgz#87a774ab39b7589ab31b1d8fcf92cfecc0d8ca0f" - dependencies: - abstract-leveldown "~5.0.0" - bindings "~1.3.0" - fast-future "~1.0.2" - nan "~2.10.0" - prebuild-install "^4.0.0" - rsa-pem-to-jwk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz#245e76bdb7e7234cfee7ca032d31b54c38fab98e" @@ -8419,10 +8262,6 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" -run-parallel@^1.0.0: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -8581,18 +8420,6 @@ signed-varint@^2.0.1: dependencies: varint "~5.0.0" -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - sisteransi@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" @@ -8989,15 +8816,6 @@ table@^4.0.3: slice-ansi "1.0.0" string-width "^2.1.1" -tar-fs@^1.13.0: - version "1.16.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" - dependencies: - chownr "^1.0.1" - mkdirp "^0.5.1" - pump "^1.0.0" - tar-stream "^1.1.2" - tar-pack@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" @@ -9011,18 +8829,6 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar-stream@^1.1.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" - dependencies: - bl "^1.0.0" - buffer-alloc "^1.1.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.0" - xtend "^4.0.0" - tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" @@ -9131,10 +8937,6 @@ tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" -to-buffer@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -9660,10 +9462,6 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - which@1, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" From c6701867510e7b8d68b4ca1fa6c23915c8eb445e Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 13:26:18 +0200 Subject: [PATCH 28/34] ... and we can resume sync where we left off --- packages/client-chains/src/index.ts | 78 ++++++++++++++++++++++----- packages/client-p2p/src/sync/index.ts | 4 -- 2 files changed, 66 insertions(+), 16 deletions(-) diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index 969acbdb..3a9f5cfc 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -2,7 +2,9 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. +import { Header } from '@polkadot/primitives/header'; import { Config } from '@polkadot/client/types'; +import { TrieDb } from '@polkadot/client-db/types'; import { BlockDb, StateDb } from '@polkadot/client-db-chain/types'; import { ExecutorInterface } from '@polkadot/client-wasm/types'; import { ChainInterface, ChainGenesis, ChainJson } from './types'; @@ -17,6 +19,7 @@ import createStateDb from '@polkadot/client-db-chain/state'; import createRuntime from '@polkadot/client-runtime/index'; import Executor from '@polkadot/client-wasm/index'; import createBlock from '@polkadot/primitives/create/block'; +import decodeBlock from '@polkadot/primitives/codec/block/decode'; import encodeBlock from '@polkadot/primitives/codec/block/encode'; import encodeHeader from '@polkadot/primitives/codec/header/encode'; import storage from '@polkadot/storage'; @@ -29,6 +32,12 @@ import trieRoot from '@polkadot/trie-hash/root'; import chains from './chains'; +type BlockResult = { + block: Uint8Array, + header: Header, + headerHash: Uint8Array +}; + export default class Chain implements ChainInterface { readonly blocks: BlockDb; readonly chain: ChainJson; @@ -51,7 +60,7 @@ export default class Chain implements ChainInterface { this.blocks = createBlockDb(blockDb); this.state = createStateDb(stateDb); - this.genesis = this.initGenesis(); + this.genesis = this.initGenesis(stateDb); this.executor = new Executor(config, this.blocks, this.state, runtime); } @@ -75,27 +84,72 @@ export default class Chain implements ChainInterface { ); } - private initGenesis () { - this.initGenesisState(); + private initGenesis (stateDb: TrieDb): ChainGenesis { + const bestHash = this.blocks.bestHash.get(); - const genesis = this.initGenesisBlock(); + if (!bestHash || !bestHash.length) { + return this.createGenesis(); + } - this.blocks.bestHash.set(genesis.headerHash); - this.blocks.bestNumber.set(0); - this.blocks.block.set(genesis.block, genesis.headerHash); + const bestBlock = this.getBlock(bestHash); - return genesis; + stateDb.setRoot(bestBlock.header.stateRoot); + + const genesisHash = this.state.system.blockHashAt.get(0); + + if (!genesisHash || !genesisHash.length) { + throw new Error('Unable to retrieve genesis hash, aborting'); + } + + const genesisBlock = this.getBlock(genesisHash); + + return { + ...genesisBlock, + code: this.getCode() + }; } - private initGenesisBlock () { + private getBlock (headerHash: Uint8Array): BlockResult { + const block = this.blocks.block.get(headerHash); + + if (!block || !block.length) { + throw new Error(`Unable to retrieve block ${u8aToHex(headerHash)}`); + } + + const decoded = decodeBlock(block); + + return { + block, + header: decoded.header, + headerHash + }; + } + + private getCode (): Uint8Array { const code = this.state.db.get( key(storage.consensus.public.code)() ); - if (code === null) { + if (!code || !code.length) { throw new Error('Unable to retrieve genesis code'); } + return code; + } + + private createGenesis (): ChainGenesis { + this.createGenesisState(); + + const genesis = this.createGenesisBlock(); + + this.blocks.bestHash.set(genesis.headerHash); + this.blocks.bestNumber.set(0); + this.blocks.block.set(genesis.block, genesis.headerHash); + + return genesis; + } + + private createGenesisBlock (): ChainGenesis { const block = createBlock({ header: { stateRoot: this.state.db.getRoot(), @@ -107,13 +161,13 @@ export default class Chain implements ChainInterface { return { block: encodeBlock(block), - code, + code: this.getCode(), header: block.header, headerHash }; } - private initGenesisState () { + private createGenesisState (): void { const { genesis: { raw } } = this.chain; this.state.db.checkpoint(); diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index 547297f7..d9f6f1cc 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -75,10 +75,6 @@ export default class Sync extends EventEmitter implements SyncInterface { // this.l.debug(() => `Importing block #${nextNumber.toString()}`); - if (count && !(count % 8)) { - this.emit('imported'); - } - if (!this.chain.executor.importBlock(encoded)) { break; } From 53a912ffe45726c70332ea7fbdb408dd8a4145bb Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 14:05:44 +0200 Subject: [PATCH 29/34] Update dependencies, fix test imports, require node 10.7 --- .travis.yml | 2 +- package.json | 2 +- packages/client-chains/package.json | 14 +- packages/client-db-chain/package.json | 10 +- packages/client-db/package.json | 6 +- packages/client-p2p-messages/package.json | 6 +- packages/client-p2p/package.json | 4 +- .../client-p2p/src/create/modules.spec.js | 4 +- packages/client-rpc-handlers/package.json | 6 +- packages/client-rpc/package.json | 4 +- packages/client-runtime/package.json | 4 +- packages/client-telemetry/package.json | 2 +- packages/client-wasm/package.json | 4 +- packages/client/package.json | 6 +- yarn.lock | 194 +++++++----------- 15 files changed, 108 insertions(+), 160 deletions(-) diff --git a/.travis.yml b/.travis.yml index 23c28947..49111074 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - "10.6" + - "10.7" cache: yarn: true directories: diff --git a/package.json b/package.json index 1ff6343e..4e18cc31 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "version": "0.13.8", "private": true, "engines": { - "node": "^10.6.0", + "node": "^10.7.0", "yarn": "^1.3.2" }, "workspaces": [ diff --git a/packages/client-chains/package.json b/packages/client-chains/package.json index 299c42dd..c608fd95 100644 --- a/packages/client-chains/package.json +++ b/packages/client-chains/package.json @@ -32,16 +32,16 @@ "@polkadot/client-db-chain": "^0.15.0", "@polkadot/client-runtime": "^0.15.0", "@polkadot/client-wasm": "^0.15.0", - "@polkadot/storage": "^0.28.20", - "@polkadot/util": "^0.28.6", - "@polkadot/util-crypto": "^0.28.6", - "@polkadot/util-keyring": "^0.28.6" + "@polkadot/storage": "^0.28.22", + "@polkadot/util": "^0.28.7", + "@polkadot/util-crypto": "^0.28.7", + "@polkadot/util-keyring": "^0.28.7" }, "devDependencies": { "@polkadot/client": "^0.15.0", "@polkadot/client-db": "^0.15.0", - "@polkadot/extrinsics": "^0.28.20", - "@polkadot/primitives": "^0.28.20", - "@polkadot/storage": "^0.28.20" + "@polkadot/extrinsics": "^0.28.22", + "@polkadot/primitives": "^0.28.22", + "@polkadot/storage": "^0.28.22" } } diff --git a/packages/client-db-chain/package.json b/packages/client-db-chain/package.json index f07d3c11..c1331309 100644 --- a/packages/client-db-chain/package.json +++ b/packages/client-db-chain/package.json @@ -30,12 +30,12 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.15.0", - "@polkadot/storage": "^0.28.20", - "@polkadot/trie-hash": "^0.28.6", - "@polkadot/util": "^0.28.6", - "@polkadot/util-crypto": "^0.28.6" + "@polkadot/storage": "^0.28.22", + "@polkadot/trie-hash": "^0.28.7", + "@polkadot/util": "^0.28.7", + "@polkadot/util-crypto": "^0.28.7" }, "devDependencies": { - "@polkadot/storage": "^0.28.20" + "@polkadot/storage": "^0.28.22" } } diff --git a/packages/client-db/package.json b/packages/client-db/package.json index 7a1fa790..2071c07c 100644 --- a/packages/client-db/package.json +++ b/packages/client-db/package.json @@ -30,9 +30,9 @@ "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-db#readme", "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/db-diskdown": "^0.28.6", - "@polkadot/trie-db": "^0.28.6", - "@polkadot/util": "^0.28.6", + "@polkadot/db-diskdown": "^0.28.7", + "@polkadot/trie-db": "^0.28.7", + "@polkadot/util": "^0.28.7", "@types/mkdirp": "^0.5.2", "mkdirp": "^0.5.1" }, diff --git a/packages/client-p2p-messages/package.json b/packages/client-p2p-messages/package.json index 9333db1c..b5f1159a 100644 --- a/packages/client-p2p-messages/package.json +++ b/packages/client-p2p-messages/package.json @@ -30,8 +30,8 @@ "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-p2p-messages#readme", "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/jsonrpc": "^0.28.20", - "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.6" + "@polkadot/jsonrpc": "^0.28.22", + "@polkadot/primitives": "^0.28.22", + "@polkadot/util": "^0.28.7" } } diff --git a/packages/client-p2p/package.json b/packages/client-p2p/package.json index a1c0b588..0a362631 100644 --- a/packages/client-p2p/package.json +++ b/packages/client-p2p/package.json @@ -31,8 +31,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-p2p-messages": "^0.15.0", - "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.6", + "@polkadot/primitives": "^0.28.22", + "@polkadot/util": "^0.28.7", "eventemitter3": "^3.1.0", "libp2p": "^0.23.1", "libp2p-bootstrap": "^0.9.3", diff --git a/packages/client-p2p/src/create/modules.spec.js b/packages/client-p2p/src/create/modules.spec.js index 504d92ab..71d45cc4 100644 --- a/packages/client-p2p/src/create/modules.spec.js +++ b/packages/client-p2p/src/create/modules.spec.js @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import Railing from 'libp2p-railing'; +import Bootstrap from 'libp2p-bootstrap'; import PeerInfo from 'peer-info'; import isInstanceOf from '@polkadot/util/is/instanceOf'; @@ -24,7 +24,7 @@ describe.skip('createModules', () => { createConfig( peerInfo, ['/ip4/127.0.0.1/tcp/6677'] ).discovery[1], - Railing + Bootstrap ) ).toEqual(true); }); diff --git a/packages/client-rpc-handlers/package.json b/packages/client-rpc-handlers/package.json index a71702ba..9df134ce 100644 --- a/packages/client-rpc-handlers/package.json +++ b/packages/client-rpc-handlers/package.json @@ -26,8 +26,8 @@ "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-rpc-handlers#readme", "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/jsonrpc": "^0.28.20", - "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.6" + "@polkadot/jsonrpc": "^0.28.22", + "@polkadot/primitives": "^0.28.22", + "@polkadot/util": "^0.28.7" } } diff --git a/packages/client-rpc/package.json b/packages/client-rpc/package.json index fc0ef476..73d4ab68 100644 --- a/packages/client-rpc/package.json +++ b/packages/client-rpc/package.json @@ -29,13 +29,13 @@ }, "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-rpc#readme", "devDependencies": { - "@polkadot/api-provider": "^0.28.20", + "@polkadot/api-provider": "^0.28.22", "@polkadot/client": "^0.15.0" }, "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-rpc-handlers": "^0.15.0", - "@polkadot/util": "^0.28.6", + "@polkadot/util": "^0.28.7", "@types/co-body": "^0.0.3", "@types/koa": "^2.0.46", "@types/koa-route": "^3.2.4", diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 41126d67..1703ab53 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -31,7 +31,7 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-db": "^0.15.0", - "@polkadot/util": "^0.28.6", - "@polkadot/util-crypto": "^0.28.6" + "@polkadot/util": "^0.28.7", + "@polkadot/util-crypto": "^0.28.7" } } diff --git a/packages/client-telemetry/package.json b/packages/client-telemetry/package.json index 214323c1..70b74c62 100644 --- a/packages/client-telemetry/package.json +++ b/packages/client-telemetry/package.json @@ -30,7 +30,7 @@ "homepage": "https://github.com/polkadot-js/client/tree/master/packages/client-telemetry#readme", "dependencies": { "@babel/runtime": "^7.0.0-rc.1", - "@polkadot/util": "^0.28.6", + "@polkadot/util": "^0.28.7", "websocket": "^1.0.26" } } diff --git a/packages/client-wasm/package.json b/packages/client-wasm/package.json index ece57d93..b5c3ae69 100644 --- a/packages/client-wasm/package.json +++ b/packages/client-wasm/package.json @@ -31,8 +31,8 @@ "dependencies": { "@babel/runtime": "^7.0.0-rc.1", "@polkadot/client-runtime": "^0.15.0", - "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.6", + "@polkadot/primitives": "^0.28.22", + "@polkadot/util": "^0.28.7", "@types/webassembly-js-api": "^0.0.1" } } diff --git a/packages/client/package.json b/packages/client/package.json index 4b95c864..a7d825d3 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -39,9 +39,9 @@ "@polkadot/client-rpc": "^0.15.0", "@polkadot/client-telemetry": "^0.15.0", "@polkadot/client-wasm": "^0.15.0", - "@polkadot/jsonrpc": "^0.28.20", - "@polkadot/primitives": "^0.28.20", - "@polkadot/util": "^0.28.6", + "@polkadot/jsonrpc": "^0.28.22", + "@polkadot/primitives": "^0.28.22", + "@polkadot/util": "^0.28.7", "@types/package-json": "^4.0.1", "@types/semver-compare": "^1.0.0", "@types/yargs": "^11.1.1", diff --git a/yarn.lock b/yarn.lock index 0ce1a1bf..b4e7c968 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1239,26 +1239,26 @@ version "1.1.0" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a" -"@polkadot/api-provider@^0.28.20": - version "0.28.20" - resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.20.tgz#a9107c378babf0da2afc7a30983c51c2bcf60f3a" +"@polkadot/api-provider@^0.28.22": + version "0.28.22" + resolved "https://registry.yarnpkg.com/@polkadot/api-provider/-/api-provider-0.28.22.tgz#44bb5ba62f1a3ee3b4808fa6c1b7d4b5cd7c3cdd" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/storage" "^0.28.20" - "@polkadot/util" "^0.28.4" - "@polkadot/util-crypto" "^0.28.4" - "@polkadot/util-keyring" "^0.28.4" + "@polkadot/storage" "^0.28.22" + "@polkadot/util" "^0.28.7" + "@polkadot/util-crypto" "^0.28.7" + "@polkadot/util-keyring" "^0.28.7" "@types/nock" "^9.1.3" eventemitter3 "^3.1.0" isomorphic-fetch "^2.2.1" websocket "^1.0.25" -"@polkadot/db-diskdown@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/db-diskdown/-/db-diskdown-0.28.6.tgz#2cadcec9136ae6bc6a6b09e46e9078aca81b4c62" +"@polkadot/db-diskdown@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/db-diskdown/-/db-diskdown-0.28.7.tgz#48fb54029bbe50b6320c9b89c51e87104a43b1c9" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.6" + "@polkadot/util" "^0.28.7" "@types/mkdirp" "^0.5.2" abstract-leveldown "^5.0.0" lru_map "^0.3.3" @@ -1310,61 +1310,61 @@ typedoc-plugin-markdown "^1.1.13" typescript "^3.0.1" -"@polkadot/extrinsics@^0.28.20": - version "0.28.20" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.20.tgz#2da946077f803a5a9f4b16dc08804ba05ecf2277" +"@polkadot/extrinsics@^0.28.22": + version "0.28.22" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.28.22.tgz#8dfb379947238f7a445ce3ad59dac45c3b8b725c" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/params" "^0.28.20" - "@polkadot/primitives" "^0.28.20" - "@polkadot/util" "^0.28.4" + "@polkadot/params" "^0.28.22" + "@polkadot/primitives" "^0.28.22" + "@polkadot/util" "^0.28.7" -"@polkadot/jsonrpc@^0.28.20": - version "0.28.20" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.20.tgz#08dcf9067a224e30989215da8739dfafc1ed0426" +"@polkadot/jsonrpc@^0.28.22": + version "0.28.22" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.28.22.tgz#1a61fed2138d877c7fa3e96a0154b6385500bd44" dependencies: - "@polkadot/params" "^0.28.20" + "@polkadot/params" "^0.28.22" babel-runtime "^6.26.0" -"@polkadot/params@^0.28.20": - version "0.28.20" - resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.20.tgz#6d4dcbc39422a9bb7472bf796de7352180204196" +"@polkadot/params@^0.28.22": + version "0.28.22" + resolved "https://registry.yarnpkg.com/@polkadot/params/-/params-0.28.22.tgz#831c3c8197270c71e7f38dbb92fdcdf8fd7aa279" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/extrinsics" "^0.28.20" - "@polkadot/params" "^0.28.20" - "@polkadot/primitives" "^0.28.20" - "@polkadot/util" "^0.28.4" - "@polkadot/util-keyring" "^0.28.4" + "@polkadot/extrinsics" "^0.28.22" + "@polkadot/params" "^0.28.22" + "@polkadot/primitives" "^0.28.22" + "@polkadot/util" "^0.28.7" + "@polkadot/util-keyring" "^0.28.7" -"@polkadot/primitives@^0.28.20": - version "0.28.20" - resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.20.tgz#f6c84e2632b206e274d7a524f5a32c1a9fe4e19b" +"@polkadot/primitives@^0.28.22": + version "0.28.22" + resolved "https://registry.yarnpkg.com/@polkadot/primitives/-/primitives-0.28.22.tgz#7cf435efb2ff61ced6ab94408be47cd298bf5ce9" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/trie-hash" "^0.28.4" - "@polkadot/util" "^0.28.4" + "@polkadot/trie-hash" "^0.28.7" + "@polkadot/util" "^0.28.7" -"@polkadot/storage@^0.28.20": - version "0.28.20" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.20.tgz#09cfdde02c09d5fba137f476cd15361342201064" +"@polkadot/storage@^0.28.22": + version "0.28.22" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.28.22.tgz#9f81d33ee6b71f6e6d2d112726cd5e08ed67bd01" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/params" "^0.28.20" - "@polkadot/primitives" "^0.28.20" - "@polkadot/util" "^0.28.4" - "@polkadot/util-crypto" "^0.28.4" - "@polkadot/util-keyring" "^0.28.4" + "@polkadot/params" "^0.28.22" + "@polkadot/primitives" "^0.28.22" + "@polkadot/util" "^0.28.7" + "@polkadot/util-crypto" "^0.28.7" + "@polkadot/util-keyring" "^0.28.7" -"@polkadot/trie-db@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.6.tgz#3bb6527e4876df4eb05a593d40e2980d555f3a70" +"@polkadot/trie-db@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/trie-db/-/trie-db-0.28.7.tgz#e8c53039d4d1fdbdfabca802c2c1d623a5744c17" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/trie-hash" "^0.28.6" - "@polkadot/util" "^0.28.6" - "@polkadot/util-crypto" "^0.28.6" - "@polkadot/util-rlp" "^0.28.6" + "@polkadot/trie-hash" "^0.28.7" + "@polkadot/util" "^0.28.7" + "@polkadot/util-crypto" "^0.28.7" + "@polkadot/util-rlp" "^0.28.7" "@types/async" "^2.0.49" "@types/semaphore" "^1.1.0" async "^2.6.1" @@ -1374,102 +1374,50 @@ memdown "^3.0.0" semaphore ">=1.0.1" -"@polkadot/trie-hash@^0.28.4": - version "0.28.4" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.4.tgz#484182b15660a5301b7b58656fdcac81b349345d" +"@polkadot/trie-hash@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.7.tgz#c1a91b0f2bf6e579c78d108a8e74cc1718464a5e" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.4" - "@polkadot/util-crypto" "^0.28.4" - "@polkadot/util-rlp" "^0.28.4" - -"@polkadot/trie-hash@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/trie-hash/-/trie-hash-0.28.6.tgz#453a9ba01ff8d6a0fc5269f9d6eed81e89c32f73" - dependencies: - "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.6" - "@polkadot/util-crypto" "^0.28.6" - "@polkadot/util-rlp" "^0.28.6" + "@polkadot/util" "^0.28.7" + "@polkadot/util-crypto" "^0.28.7" + "@polkadot/util-rlp" "^0.28.7" "@polkadot/ts@^0.1.17": version "0.1.17" resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.17.tgz#0d85085038ae7e6757e059d07c8e9c54596919b3" -"@polkadot/util-crypto@^0.28.4": - version "0.28.4" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.4.tgz#9c0dd9de1d25d209b6bfe07564c51d486d910e89" +"@polkadot/util-crypto@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.7.tgz#f75f51be7ba27b21ea4d76e5099f894c16111fc8" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.4" + "@polkadot/util" "^0.28.7" blakejs "^1.1.0" js-sha3 "^0.8.0" tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util-crypto@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.28.6.tgz#cc985c2d19617b31ab4dcaae674b883e1c7cfcb9" - dependencies: - "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.6" - blakejs "^1.1.0" - js-sha3 "^0.8.0" - tweetnacl "^1.0.0" - xxhashjs "^0.2.2" - -"@polkadot/util-keyring@^0.28.4": - version "0.28.4" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.4.tgz#893e0b4cfd7e8e44a3a21f1aee24394c9a13043c" - dependencies: - "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.4" - "@polkadot/util-crypto" "^0.28.4" - "@types/bs58" "^3.0.30" - bs58 "^4.0.1" - -"@polkadot/util-keyring@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.6.tgz#58b3a837c53c9fa7d5b85d158ffbdce9e50d81c8" +"@polkadot/util-keyring@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/util-keyring/-/util-keyring-0.28.7.tgz#c82390c18e719e57b4f65295e43fff7d7384519f" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.6" - "@polkadot/util-crypto" "^0.28.6" + "@polkadot/util" "^0.28.7" + "@polkadot/util-crypto" "^0.28.7" "@types/bs58" "^3.0.30" bs58 "^4.0.1" -"@polkadot/util-rlp@^0.28.4": - version "0.28.4" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.4.tgz#11280a2f1b2ac242c4770c8b1988e88a1110e9ce" +"@polkadot/util-rlp@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.7.tgz#58d6661be3e9b4a66570efe5255776859476ab80" dependencies: "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.4" - -"@polkadot/util-rlp@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/util-rlp/-/util-rlp-0.28.6.tgz#5c6304028d0c441bf36813ef98607cdf9db89f2d" - dependencies: - "@babel/runtime" "^7.0.0-rc.1" - "@polkadot/util" "^0.28.6" - -"@polkadot/util@^0.28.4": - version "0.28.4" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.4.tgz#986e061b305db8cce896649d393d3b799622d178" - dependencies: - "@babel/runtime" "^7.0.0-rc.1" - "@types/bn.js" "^4.11.1" - "@types/deasync" "^0.1.0" - "@types/ip-regex" "^2.0.0" - "@types/xxhashjs" "^0.1.1" - bn.js "^4.11.8" - chalk "^2.4.1" - deasync "^0.1.13" - ip-regex "^3.0.0" - moment "^2.22.2" + "@polkadot/util" "^0.28.7" -"@polkadot/util@^0.28.6": - version "0.28.6" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.6.tgz#e4e7f4870dcfb487a312174576ee386e22dd0d6c" +"@polkadot/util@^0.28.7": + version "0.28.7" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.28.7.tgz#abcf4e1735690e6a15a5fe44e5697b2911acf626" dependencies: "@babel/runtime" "^7.0.0-rc.1" "@types/bn.js" "^4.11.1" From 5aa4ecfb35c6c15dcd048f21a6bb817ffc674c31 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 14:58:46 +0200 Subject: [PATCH 30/34] Cleanup (some) CodeClimate issues --- packages/client-db/src/Sync/worker/index.js | 34 ++++------------ .../client-p2p-messages/src/BlockRequest.ts | 21 +++++----- .../client-p2p-messages/src/BlockResponse.ts | 23 ++++++----- packages/client-p2p/src/index.ts | 28 +++++-------- packages/client-p2p/src/peer/index.ts | 40 ++++++++----------- packages/client-p2p/src/sync/index.ts | 4 +- packages/client-wasm/src/index.ts | 5 +-- 7 files changed, 61 insertions(+), 94 deletions(-) diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index a47f93eb..6bdf12b0 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -5,16 +5,12 @@ // HACK Under Node workers not all process functions are exposed require('./hackEnv'); -// import { Message } from '../types'; -// import { FnMap } from './types; - // FIXME Waiting on native lib support in workers - // https://github.com/nodejs/node/issues/21481 // https://github.com/nodejs/node/issues/21783 // const diskdown = require('leveldown'); // const diskdown = require('rocksdb'); const diskdown = require('@polkadot/db-diskdown').default; -// const diskdown = undefined; const levelup = require('levelup'); const memdown = require('memdown'); @@ -43,42 +39,27 @@ function initHandlers () { const db = initDb(); return { - // checkpoint: ({ state }: Message) => checkpoint: ({ state }) => notifyOnDone(state, () => - db.checkpoint() - ), - // commit: ({ state }: Message) => + db.checkpoint()), commit: ({ state }) => notifyOnDone(state, () => - db.commit() - ), - // commit: ({ state }: Message) => + db.commit()), del: ({ key, state }) => notifyOnDone(state, () => - db.del(key) - ), - // get: ({ buffer, key, state }: Message) => + db.del(key)), get: ({ buffer, key, state }) => notifyOnValue(state, buffer, () => - db.get(key) - ), - // put: ({ key, state, value }: Message) => + db.get(key)), put: ({ key, state, value }) => notifyOnDone(state, () => - db.put(key, value) - ), - // revert: ({ state }: Message) => + db.put(key, value)), revert: ({ state }) => notifyOnDone(state, () => - db.revert() - ), - // getRoot ({ buffer, state }: Message) => + db.revert()), getRoot: ({ buffer, state }) => notifyOnValue(state, buffer, async () => - db.root - ), - // setRoot: ({ state, value }: Message) => + db.root), setRoot: ({ state, value }) => notifyOnDone(state, async () => { db.root = value; @@ -86,7 +67,6 @@ function initHandlers () { }; } -// parentPort.on('message', (message: Message): void => { parentPort.on('message', (message) => { try { if (!handlers[threadId]) { diff --git a/packages/client-p2p-messages/src/BlockRequest.ts b/packages/client-p2p-messages/src/BlockRequest.ts index f3a72ca9..8ef7c179 100644 --- a/packages/client-p2p-messages/src/BlockRequest.ts +++ b/packages/client-p2p-messages/src/BlockRequest.ts @@ -46,20 +46,23 @@ export default class BlockRequest extends BaseMessage implements MessageInterfac } encode (): Uint8Array { + const from = isBn(this.from) + ? bnToU8a(this.from, 64, true) + : this.from; + const to = isNull(this.to) + ? new Uint8Array([0]) + : u8aConcat( + new Uint8Array([1]), + this.to + ); + return u8aConcat( super.encode(), bnToU8a(this.id, 64, true), bnToU8a(fromAttrs(this.fields), 8, true), new Uint8Array(isBn(this.from) ? [1] : [0]), - isBn(this.from) - ? bnToU8a(this.from, 64, true) - : this.from, - isNull(this.to) - ? new Uint8Array([0]) - : u8aConcat( - new Uint8Array([1]), - this.to - ), + from, + to, new Uint8Array(this.direction === 'Ascending' ? [0] : [1]), new Uint8Array([1]), bnToU8a(this.max, 32, true) diff --git a/packages/client-p2p-messages/src/BlockResponse.ts b/packages/client-p2p-messages/src/BlockResponse.ts index 884f98d0..f2130434 100644 --- a/packages/client-p2p-messages/src/BlockResponse.ts +++ b/packages/client-p2p-messages/src/BlockResponse.ts @@ -60,16 +60,7 @@ export default class BlockResponse extends BaseMessage implements MessageInterfa const numExt = u8aToBn(u8a.subarray(offset, offset + 4), true).toNumber(); const extrinsics: Array = []; - offset += 4; - - for (let j = 0; j < numExt; j++) { - const length = u8aToBn(u8a.subarray(offset, offset + 4), true).toNumber(); - - extrinsics.push(u8a.slice(offset, offset + 4 + length)); - - offset += 4 + length; - } - + offset = BlockResponse.decodeExtrinsics(u8a, offset + 4, numExt, extrinsics); offset += 3; // skip reciept, queue and justification blocks.push({ @@ -85,4 +76,16 @@ export default class BlockResponse extends BaseMessage implements MessageInterfa blocks }); } + + private static decodeExtrinsics (u8a: Uint8Array, offset: number, count: number, extrinsics: Array): number { + for (let j = 0; j < count; j++) { + const length = u8aToBn(u8a.subarray(offset, offset + 4), true).toNumber(); + + extrinsics.push(u8a.slice(offset, offset + 4 + length)); + + offset += 4 + length; + } + + return offset; + } } diff --git a/packages/client-p2p/src/index.ts b/packages/client-p2p/src/index.ts index a7ad699c..8e1bbc62 100644 --- a/packages/client-p2p/src/index.ts +++ b/packages/client-p2p/src/index.ts @@ -174,29 +174,21 @@ export default class P2p extends EventEmitter implements P2pInterface { const connection = await promisify( this.node, this.node.dialProtocol, peer.peerInfo, '/ipfs/ping/1.0.0' ); - const pushable = PullPushable(); - pull( - pushable, - connection - ); + pull(pushable, connection); // FIXME Once uni-directional pings are available network-wide, properly ping, - // don't just pong - pull( - connection, - pull.drain( - (buffer: Buffer): void => { - this.l.debug(() => ['ping', peer.shortId]); - - pushable.push(buffer); - }, - () => false - ) - ); + // don't just pong. (However the libp2p-ping floods the network as it stands) + pull(connection, pull.drain( + (buffer: Buffer): void => { + this.l.debug(() => ['ping', peer.shortId]); + + pushable.push(buffer); + }, + () => false + )); } catch (error) { - // ignore return false; } diff --git a/packages/client-p2p/src/peer/index.ts b/packages/client-p2p/src/peer/index.ts index 329e6e4f..ee16574f 100644 --- a/packages/client-p2p/src/peer/index.ts +++ b/packages/client-p2p/src/peer/index.ts @@ -55,10 +55,7 @@ export default class Peer extends EventEmitter implements PeerInterface { if (isWritable) { this.pushable = PullPushable(); - pull( - this.pushable, - connection - ); + pull(this.pushable, connection); this.send( new Status({ @@ -86,25 +83,22 @@ export default class Peer extends EventEmitter implements PeerInterface { _receive (connection: LibP2pConnection): boolean { try { - pull( - connection, - pull.drain( - (buffer: Buffer): void => { - // NOTE the actual incoming message has a varint prefixed length, strip this - const length = varint.decode(buffer); - const offset = varint.decode.bytes; - const u8a = bufferToU8a(buffer.slice(offset + 1)); - - // TODO Do we keep this peer or drop it (like Rust does on invalid messages). Additionally, do we _really_ want to throw here? - assert(u8a.length === length - 1, 'Invalid buffer length received'); - - // this.l.debug(() => `received ${u8a.length} bytes, ${u8aToHex(u8a)}`); - - this.emit('message', decodeMessage(u8a)); - }, - () => false - ) - ); + pull(connection, pull.drain( + (buffer: Buffer): void => { + // NOTE the actual incoming message has a varint prefixed length, strip this + const length = varint.decode(buffer); + const offset = varint.decode.bytes; + const u8a = bufferToU8a(buffer.slice(offset + 1)); + + // TODO Do we keep this peer or drop it (like Rust does on invalid messages). Additionally, do we _really_ want to throw here? + assert(u8a.length === length - 1, 'Invalid buffer length received'); + + // this.l.debug(() => `received ${u8a.length} bytes, ${u8aToHex(u8a)}`); + + this.emit('message', decodeMessage(u8a)); + }, + () => false + )); } catch (error) { this.l.error('receive error', error); diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index d9f6f1cc..5d63e203 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -143,9 +143,7 @@ export default class Sync extends EventEmitter implements SyncInterface { const blockNumber = block.header.number.toString(); const hasQueued = !!this.blockQueue[blockNumber]; - if (hasImported && hasQueued) { - // we have it - } else { + if (!hasImported && !hasQueued) { this.blockQueue[blockNumber] = block; count++; diff --git a/packages/client-wasm/src/index.ts b/packages/client-wasm/src/index.ts index 557b7a84..b9db08c4 100644 --- a/packages/client-wasm/src/index.ts +++ b/packages/client-wasm/src/index.ts @@ -125,10 +125,7 @@ export default class Executor implements ExecutorInterface { ); const block = encodeBlock({ extrinsics, - header: { - ...header, - stateRoot - } + header: { ...header, stateRoot } }); this.stateDb.db.revert(); From 145b5474037a46f34d9df1b654d21d7e86c9630b Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 15:06:23 +0200 Subject: [PATCH 31/34] Small (additional) CodeClimate fix --- packages/client-db/src/Sync/worker/index.js | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index 6bdf12b0..a53ca8cf 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -40,26 +40,19 @@ function initHandlers () { return { checkpoint: ({ state }) => - notifyOnDone(state, () => - db.checkpoint()), + notifyOnDone(state, () => db.checkpoint()), commit: ({ state }) => - notifyOnDone(state, () => - db.commit()), + notifyOnDone(state, () => db.commit()), del: ({ key, state }) => - notifyOnDone(state, () => - db.del(key)), + notifyOnDone(state, () => db.del(key)), get: ({ buffer, key, state }) => - notifyOnValue(state, buffer, () => - db.get(key)), + notifyOnValue(state, buffer, () => db.get(key)), put: ({ key, state, value }) => - notifyOnDone(state, () => - db.put(key, value)), + notifyOnDone(state, () => db.put(key, value)), revert: ({ state }) => - notifyOnDone(state, () => - db.revert()), + notifyOnDone(state, () => db.revert()), getRoot: ({ buffer, state }) => - notifyOnValue(state, buffer, async () => - db.root), + notifyOnValue(state, buffer, async () => db.root), setRoot: ({ state, value }) => notifyOnDone(state, async () => { db.root = value; From 3f679eeb0adb803cb618fbf92e8f3e71582dc9df Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 16:21:46 +0200 Subject: [PATCH 32/34] Cleanup Atomics as shared, increase test timeouts --- packages/client-db/src/Sync/index.ts | 13 +++++-------- .../Sync/worker/{notify.d.ts => atomics.d.ts} | 8 ++++++-- .../src/Sync/worker/{notify.js => atomics.js} | 16 ++++++++++++---- packages/client-db/src/Sync/worker/defaults.d.ts | 12 ++++++++++++ packages/client-db/src/Sync/worker/defaults.js | 14 ++++++++++++++ packages/client-db/src/Sync/worker/index.js | 2 +- 6 files changed, 50 insertions(+), 15 deletions(-) rename packages/client-db/src/Sync/worker/{notify.d.ts => atomics.d.ts} (62%) rename packages/client-db/src/Sync/worker/{notify.js => atomics.js} (91%) create mode 100644 packages/client-db/src/Sync/worker/defaults.d.ts create mode 100644 packages/client-db/src/Sync/worker/defaults.js diff --git a/packages/client-db/src/Sync/index.ts b/packages/client-db/src/Sync/index.ts index 233da2b4..28e5d18c 100644 --- a/packages/client-db/src/Sync/index.ts +++ b/packages/client-db/src/Sync/index.ts @@ -7,9 +7,10 @@ import { Message, MessageData, MessageType, MessageTypeRead, MessageTypeWrite } import path from 'path'; import { Worker } from 'worker_threads'; -// import promisify from '@polkadot/util/promisify'; import commands from './worker/commands'; +import defaults from './worker/defaults'; +import atomics from './worker/atomics'; const emptyBuffer = new Uint8Array(); @@ -83,18 +84,14 @@ export default class SyncDb implements TrieDb { type } as Message); - Atomics.wait(state, 0, commands.START, 5000); + atomics.wait(state, commands.START); return state; } // Notifies the worker that it should continue filling the result buffer private _waitOnRead (state: Int32Array): void { - state[0] = commands.FILL; - - // @ts-ignore Node is a bit ahead, still to be renamed - Atomics.notify(state, 0, 1); - Atomics.wait(state, 0, commands.FILL, 5000); + atomics.notify(state, commands.FILL); } // Ok, this is not something that returns a value, just send the message and @@ -110,7 +107,7 @@ export default class SyncDb implements TrieDb { // Sends a message to the worker, reading and returning the actual result private _executeRead (type: MessageTypeRead, key?: Uint8Array, value?: Uint8Array): Uint8Array | null { // The shared data buffer that will be used by the worker to send info back - const shared = new SharedArrayBuffer(4096); + const shared = new SharedArrayBuffer(defaults.SHARED_BUFFER_SIZE); const buffer = new Uint8Array(shared); const state = this._waitOnStart(type, { buffer, diff --git a/packages/client-db/src/Sync/worker/notify.d.ts b/packages/client-db/src/Sync/worker/atomics.d.ts similarity index 62% rename from packages/client-db/src/Sync/worker/notify.d.ts rename to packages/client-db/src/Sync/worker/atomics.d.ts index 5f488b5f..d44efc96 100644 --- a/packages/client-db/src/Sync/worker/notify.d.ts +++ b/packages/client-db/src/Sync/worker/atomics.d.ts @@ -2,9 +2,13 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -declare interface notifiers { +declare type Notifiers = { + notify (state: Int32Array, command: number): void, notifyOnDone (state: Int32Array, fn: () => Promise): Promise, - notifyOnValue (state: Int32Array, buffer: Uint8Array, fn: () => Promise): Promise + notifyOnValue (state: Int32Array, buffer: Uint8Array, fn: () => Promise): Promise, + wait (state: Int32Array, command: number): void } +declare const notifiers: Notifiers; + export = notifiers; diff --git a/packages/client-db/src/Sync/worker/notify.js b/packages/client-db/src/Sync/worker/atomics.js similarity index 91% rename from packages/client-db/src/Sync/worker/notify.js rename to packages/client-db/src/Sync/worker/atomics.js index 54ce735b..f6a592d4 100644 --- a/packages/client-db/src/Sync/worker/notify.js +++ b/packages/client-db/src/Sync/worker/atomics.js @@ -3,11 +3,19 @@ // of the ISC license. See the LICENSE file for details. const commands = require('./commands'); +const defaults = require('./defaults'); const exitCommands = [ commands.END, commands.ERROR ]; +// waits on an value change +function wait (state, command) { + if (!exitCommands.includes(command)) { + Atomics.wait(state, 0, command, defaults.WAIT_TIMEOUT); + } +} + // Sets the state and wakes any Atomics waiting on the current state to change. // If we are not done, assume that we will have to do something afterwards, so // enter a wait period. @@ -17,9 +25,7 @@ function notify (state, command) { Atomics.notify(state, 0, 1); - if (!exitCommands.includes(command)) { - Atomics.wait(state, 0, command, 5000); - } + wait(state, command); } // Waits on a function (returning a promise) to complete. Notify either on end or @@ -74,6 +80,8 @@ async function notifyOnValue (state, buffer, fn) { } module.exports = { + notify, notifyOnDone, - notifyOnValue + notifyOnValue, + wait }; diff --git a/packages/client-db/src/Sync/worker/defaults.d.ts b/packages/client-db/src/Sync/worker/defaults.d.ts new file mode 100644 index 00000000..3d25789a --- /dev/null +++ b/packages/client-db/src/Sync/worker/defaults.d.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2018 @polkadot/client-db authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +declare type Defaults = { + SHARED_BUFFER_SIZE: number, + WAIT_TIMEOUT: number +}; + +declare const defaults: Defaults; + +export = defaults; diff --git a/packages/client-db/src/Sync/worker/defaults.js b/packages/client-db/src/Sync/worker/defaults.js new file mode 100644 index 00000000..c428d5b9 --- /dev/null +++ b/packages/client-db/src/Sync/worker/defaults.js @@ -0,0 +1,14 @@ +// Copyright 2017-2018 @polkadot/client-db authors & contributors +// This software may be modified and distributed under the terms +// of the ISC license. See the LICENSE file for details. + +const SHARED_BUFFER_SIZE = 4096; + +const WAIT_TIMEOUT = process.env.NODE_ENV === 'test' + ? 15000 + : 5000; + +module.exports = { + SHARED_BUFFER_SIZE, + WAIT_TIMEOUT +}; diff --git a/packages/client-db/src/Sync/worker/index.js b/packages/client-db/src/Sync/worker/index.js index a53ca8cf..9afe0ab0 100644 --- a/packages/client-db/src/Sync/worker/index.js +++ b/packages/client-db/src/Sync/worker/index.js @@ -20,7 +20,7 @@ const encoder = require('@polkadot/trie-db/encoder').default; const isFunction = require('@polkadot/util/is/function').default; const logger = require('@polkadot/util/logger').default; -const { notifyOnDone, notifyOnValue } = require('./notify'); +const { notifyOnDone, notifyOnValue } = require('./atomics'); const l = logger('sync/worker'); const handlers = {}; From fee48cc2e6ac0b20592bc89bc5e9d72c776fa3e4 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 16:46:19 +0200 Subject: [PATCH 33/34] Log name, bestNumber & bestHash as startup --- packages/client-chains/src/index.ts | 8 +++++++ .../client-p2p-messages/src/BlockRequest.ts | 24 +++++++++++-------- packages/client-p2p/src/sync/index.ts | 7 +++--- packages/client-telemetry/src/index.ts | 2 +- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index 3a9f5cfc..051323b7 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -27,6 +27,7 @@ import key from '@polkadot/storage/key'; import assert from '@polkadot/util/assert'; import hexToU8a from '@polkadot/util/hex/toU8a'; import u8aToHex from '@polkadot/util/u8a/toHex'; +import logger from '@polkadot/util/logger'; import blake2Asu8a from '@polkadot/util-crypto/blake2/asU8a'; import trieRoot from '@polkadot/trie-hash/root'; @@ -38,6 +39,8 @@ type BlockResult = { headerHash: Uint8Array }; +const l = logger('chain'); + export default class Chain implements ChainInterface { readonly blocks: BlockDb; readonly chain: ChainJson; @@ -62,6 +65,11 @@ export default class Chain implements ChainInterface { this.state = createStateDb(stateDb); this.genesis = this.initGenesis(stateDb); this.executor = new Executor(config, this.blocks, this.state, runtime); + + const bestHash = this.blocks.bestHash.get(); + const bestNumber = this.blocks.bestNumber.get(); + + l.log(`${this.chain.name}, best #${bestNumber.toString()} ${u8aToHex(bestHash)}`); } // TODO We should load chains from json files as well diff --git a/packages/client-p2p-messages/src/BlockRequest.ts b/packages/client-p2p-messages/src/BlockRequest.ts index 8ef7c179..d6e7442c 100644 --- a/packages/client-p2p-messages/src/BlockRequest.ts +++ b/packages/client-p2p-messages/src/BlockRequest.ts @@ -85,20 +85,24 @@ export default class BlockRequest extends BaseMessage implements MessageInterfac const fromTo = u8a[FROM_DATA + fromLength] === 0 ? 0 : 32; const atDirection = FROM_DATA + fromLength + fromTo; const maxOff = atDirection + 1; + const from = fromLength === 16 + ? u8aToBn(u8a.subarray(FROM_DATA, FROM_DATA + fromLength), true) + : u8a.slice(FROM_DATA, FROM_DATA + fromLength); + const to = fromTo === 0 + ? null + : u8a.slice(FROM_DATA + fromLength, atDirection); + const direction = u8a[atDirection] === 0 ? 'Ascending' : 'Descending'; + const max = u8a[maxOff] === 1 + ? u8aToBn(u8a.subarray(maxOff + 1, maxOff + 1 + 32), true).toNumber() + : null; return new BlockRequest({ id: u8aToBn(u8a.subarray(0, FIELD_OFF), true).toNumber(), fields: toAttrs(u8a[FIELD_OFF]), - from: fromLength === 16 - ? u8aToBn(u8a.subarray(FROM_DATA, FROM_DATA + fromLength), true) - : u8a.slice(FROM_DATA, FROM_DATA + fromLength), - to: fromTo === 0 - ? null - : u8a.slice(FROM_DATA + fromLength, atDirection), - direction: u8a[atDirection] === 0 ? 'Ascending' : 'Descending', - max: u8a[maxOff] === 1 - ? u8aToBn(u8a.subarray(maxOff + 1, maxOff + 1 + 32), true).toNumber() - : null + from, + to, + direction, + max }); } } diff --git a/packages/client-p2p/src/sync/index.ts b/packages/client-p2p/src/sync/index.ts index 5d63e203..1fba06e9 100644 --- a/packages/client-p2p/src/sync/index.ts +++ b/packages/client-p2p/src/sync/index.ts @@ -138,12 +138,11 @@ export default class Sync extends EventEmitter implements SyncInterface { for (let i = 0; i < blocks.length; i++) { const block = blocks[i]; - const data = this.chain.blocks.block.get(block.hash); - const hasImported = data.length !== 0; + const dbBlock = this.chain.blocks.block.get(block.hash); const blockNumber = block.header.number.toString(); - const hasQueued = !!this.blockQueue[blockNumber]; + const canQueue = !dbBlock.length && !this.blockQueue[blockNumber]; - if (!hasImported && !hasQueued) { + if (canQueue) { this.blockQueue[blockNumber] = block; count++; diff --git a/packages/client-telemetry/src/index.ts b/packages/client-telemetry/src/index.ts index 102fbbb6..3be24af8 100644 --- a/packages/client-telemetry/src/index.ts +++ b/packages/client-telemetry/src/index.ts @@ -88,8 +88,8 @@ export default class Telemetry implements TelemetryInterface { const bestHash = this.blocks.bestHash.get(); const bestNumber = this.blocks.bestNumber.get(); - this.send(new Connected(this.chain, this.name)); this.send(new Started(bestHash, bestNumber)); + this.send(new Connected(this.chain, this.name)); } private send (message: Base): void { From e8b9e596228fe634caaa20b7cd89863ef885fa26 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 24 Aug 2018 16:49:07 +0200 Subject: [PATCH 34/34] Trim hash on startup display --- packages/client-chains/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client-chains/src/index.ts b/packages/client-chains/src/index.ts index 051323b7..11f8cae7 100644 --- a/packages/client-chains/src/index.ts +++ b/packages/client-chains/src/index.ts @@ -69,7 +69,7 @@ export default class Chain implements ChainInterface { const bestHash = this.blocks.bestHash.get(); const bestNumber = this.blocks.bestNumber.get(); - l.log(`${this.chain.name}, best #${bestNumber.toString()} ${u8aToHex(bestHash)}`); + l.log(`${this.chain.name}, #${bestNumber.toString()}, ${u8aToHex(bestHash, 48)}`); } // TODO We should load chains from json files as well