diff --git a/lib/bcoin/block.js b/lib/bcoin/block.js index 10eb7046..62649e66 100644 --- a/lib/bcoin/block.js +++ b/lib/bcoin/block.js @@ -24,7 +24,9 @@ function Block(data) { bcoin.abstractblock.call(this, data); this.type = 'block'; - this.witness = data.witness || false; + + this._witness = data._witness || false; + this._cost = data._cost || 0; this.txs = data.txs || []; @@ -36,49 +38,45 @@ function Block(data) { return bcoin.tx(data, self, i); }); - - if (this.witness) { - this._wsize = this._raw.length; - this._wraw = this._raw; - this._raw = null; - this._size = 0; - } - - if (!this._raw) - this._raw = this.render(); - - if (!this._size) - this._size = this._raw.length; - - this._cost = data._cost || 0; } utils.inherits(Block, bcoin.abstractblock); Block.prototype.render = function render() { - if (!this._raw) { - this._raw = bcoin.protocol.framer.block(this); - this._size = this._raw.length; + if (this._raw) { + if (!this._witness) + return this._raw; + return bcoin.protocol.framer.block(this); } + + this._raw = bcoin.protocol.framer.block(this); + this._size = this._raw.length; + this._witness = false; + return this._raw; }; Block.prototype.renderWitness = function renderWitness() { - if (!this._wraw) { - this._wraw = bcoin.protocol.framer.witnessBlock(this); - this._wsize = this._wraw.length; + if (this._raw) { + if (this._witness) + return this._raw; + return bcoin.protocol.framer.witnessBlock(this); } - return this._wraw; + + this._raw = bcoin.protocol.framer.witnessBlock(this); + this._size = this._raw.length; + this._witness = true; + + return this._raw; }; -Block.prototype.getBlockSize = function getBlockSize() { +Block.prototype.getSize = function getSize() { return this.render().length; }; -Block.prototype.getBlockCost = function getBlockCost() { +Block.prototype.getCost = function getCost() { if (!this._cost) - this._cost = this.renderWitness()._cost; - + this._cost = this._renderWitness()._cost; return this._cost; }; @@ -125,9 +123,6 @@ Block.prototype.getWitnessRoot = function getWitnessRoot() { Block.prototype.__defineGetter__('witnessRoot', function() { var coinbase, i, commitment, witnessRoot; - if (!block.witness) - return; - if (this._witnessRoot) return this._witnessRoot; diff --git a/lib/bcoin/coin.js b/lib/bcoin/coin.js index 3ab8eb0e..3647db27 100644 --- a/lib/bcoin/coin.js +++ b/lib/bcoin/coin.js @@ -117,6 +117,20 @@ Coin.prototype.__defineGetter__('age', function() { return this.getAge(); }); +Coin.prototype.inspect = function inspect() { + return { + type: this.getType(), + version: this.version, + height: this.height, + value: utils.btc(this.value), + script: bcoin.script.format(this.script), + hash: utils.revHex(this.hash), + index: this.index, + address: this.getAddress(), + spent: this.spent + }; +}; + Coin.prototype.toJSON = function toJSON() { return { version: this.version, diff --git a/lib/bcoin/input.js b/lib/bcoin/input.js index c0368795..be5a548f 100644 --- a/lib/bcoin/input.js +++ b/lib/bcoin/input.js @@ -69,6 +69,39 @@ Input.prototype.getType = function getType() { return type; }; +Input.prototype.getRedeem = function getRedeem() { + var type; + + if (this.isCoinbase()) + return; + + type = this.getType(); + + if (type === 'witnessscripthash') + return bcoin.script.getRedeem(this.witness); + + if (type === 'scripthash') { + redeem = bcoin.script.getRedeem(this.script); + if (script.isWitnessScripthash(redeem)) + return bcoin.script.getRedeem(this.witness); + return redeem; + } +}; + +Input.prototype.getSubtype = function getSubtype() { + var redeem; + + if (this.isCoinbase()) + return; + + redeem = this.getRedeem(); + + if (!redeem) + return; + + return bcoin.script.getOutputType(redeem); +}; + Input.prototype.getAddress = function getAddress() { var address; @@ -190,29 +223,34 @@ Input.prototype.getData = function getData() { }; Input.prototype.inspect = function inspect() { - var data = this.getData(); - var output = this.output - ? this.output.inspect() - : { type: 'unknown', value: '0.0' }; + var redeem = this.getRedeem(); + var output; - output.hash = utils.revHex(this.prevout.hash); - output.index = this.prevout.index; + if (this.output) { + output = this.output.inspect(); + } else { + output = { + type: 'unknown', + version: 1, + height: -1, + value: '0.0', + script: '', + hash: utils.toHex(constants.zeroHash), + index: 0, + spent: false, + address: null + }; + } return { type: this.getType(), - subtype: data.subtype, + subtype: this.getSubtype(), address: this.getAddress(), - keys: data.keys.map(utils.toHex), - hashes: data.hashes.map(utils.toHex), - addresses: data.addresses, - scriptAddress: data.scriptAddress, - signatures: data.signatures.map(utils.toHex), - text: data.text, - locktime: data.locktime, value: utils.btc(output.value), - script: bcoin.script.format(data.script), - redeem: data.redeem ? bcoin.script.format(data.redeem) : null, - sequence: data.sequence, + script: bcoin.script.format(this.script), + witness: bcoin.script.format(this.witness), + redeem: redeem ? bcoin.script.format(redeem) : null, + sequence: this.sequence, output: output }; }; diff --git a/lib/bcoin/merkleblock.js b/lib/bcoin/merkleblock.js index 8256e616..5c1f48d3 100644 --- a/lib/bcoin/merkleblock.js +++ b/lib/bcoin/merkleblock.js @@ -34,12 +34,6 @@ function MerkleBlock(data) { // TXs that will be pushed on this.txs = []; - - if (!this._raw) - this._raw = this.render(); - - if (!this._size) - this._size = this._raw.length; } utils.inherits(MerkleBlock, bcoin.abstractblock); diff --git a/lib/bcoin/mtx.js b/lib/bcoin/mtx.js index 087b5e7d..5a44e741 100644 --- a/lib/bcoin/mtx.js +++ b/lib/bcoin/mtx.js @@ -34,9 +34,11 @@ function MTX(options) { this.index = -1; this._hash = null; + this._whash = null; this._raw = null; this._size = 0; this._offset = 0; + this._cost = 0; this.height = -1; @@ -98,6 +100,10 @@ MTX.prototype.getSize = function getSize() { return this.render().length; }; +MTX.prototype.getCost = function getCost() { + return this.renderWitness()._cost; +}; + MTX.prototype.addInput = function addInput(options, index) { var input, i; @@ -1097,6 +1103,7 @@ MTX.prototype.toJSON = function toJSON() { return { type: 'mtx', hash: utils.revHex(this.hash('hex')), + witnessHash: utils.revHex(this.witnessHash('hex')), height: this.height, block: this.block ? utils.revHex(this.block) : null, ts: this.ts, diff --git a/lib/bcoin/output.js b/lib/bcoin/output.js index 1037c742..cc2affc1 100644 --- a/lib/bcoin/output.js +++ b/lib/bcoin/output.js @@ -124,23 +124,11 @@ Output.prototype.getData = function getData() { }; Output.prototype.inspect = function inspect() { - var data = this.getData(); return { type: this.getType(), - address: this.getAddress(), - keys: data.keys.map(utils.toHex), - hashes: data.hashes.map(utils.toHex), - addresses: data.addresses, - scriptAddress: data.scriptAddress, - m: data.m, - n: data.n, - text: data.text, - locktime: data.locktime, - hash: this.hash ? utils.revHex(this.hash) : undefined, - index: this.index, - height: data.height, - value: utils.btc(data.value), - script: bcoin.script.format(data.script) + value: utils.btc(this.value), + script: bcoin.script.format(this.script), + address: this.getAddress() }; }; diff --git a/lib/bcoin/protocol/constants.js b/lib/bcoin/protocol/constants.js index 597bae9b..d4cc8a85 100644 --- a/lib/bcoin/protocol/constants.js +++ b/lib/bcoin/protocol/constants.js @@ -211,6 +211,7 @@ exports.block = { exports.tx = { version: 1, maxSize: 100000, + maxCost: 400000, minFee: 10000, bareMultisig: true, freeThreshold: exports.coin.muln(144).divn(250), diff --git a/lib/bcoin/protocol/network.js b/lib/bcoin/protocol/network.js index 32518a97..5c4c0f28 100644 --- a/lib/bcoin/protocol/network.js +++ b/lib/bcoin/protocol/network.js @@ -422,7 +422,7 @@ segnet.halvingInterval = 210000; segnet.genesis = { version: 1, hash: utils.revHex( - 'ead13e4b1d0164b21128523156f729373d7a11bc9b6a1ee2e6e883ab9d9a728c' + '0d5b9c518ddf053fcac71730830df4526a9949c08f34acf6a1d30464d22f02aa' ), prevBlock: utils.toHex( [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -432,7 +432,7 @@ segnet.genesis = { merkleRoot: utils.revHex( '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b' ), - ts: 1452368293, + ts: 1452831101, bits: 0x1d00ffff, nonce: 0 }; @@ -457,4 +457,4 @@ segnet.block = { segnet.segwitHeight = 0; -segnet.genesisBlock = '0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4aa5619156ffff001d000000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000'; +segnet.genesisBlock = '0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a7d719856ffff001d000000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000'; diff --git a/lib/bcoin/protocol/parser.js b/lib/bcoin/protocol/parser.js index e988ebf8..6a8c67ce 100644 --- a/lib/bcoin/protocol/parser.js +++ b/lib/bcoin/protocol/parser.js @@ -357,7 +357,6 @@ Parser.parseBlock = function parseBlock(p) { } return { - witness: witness, version: utils.read32(p, 0), prevBlock: p.slice(4, 36), merkleRoot: p.slice(36, 68), @@ -366,6 +365,7 @@ Parser.parseBlock = function parseBlock(p) { nonce: utils.readU32(p, 76), totalTX: totalTX, txs: txs, + _witness: witness, _raw: p, _size: p.length, _cost: cost @@ -587,11 +587,11 @@ Parser.parseTX = function parseTX(p) { off += 4; return { - witness: false, version: version, inputs: txIn, outputs: txOut, locktime: locktime, + _witness: false, _cost: off * 4, _raw: p.length !== off ? p.slice(0, off) : p, _size: off @@ -700,13 +700,13 @@ Parser.parseWitnessTX = function parseWitnessTX(p) { cost += 4 * 4; return { - witness: true, version: version, marker: marker, flag: flag, inputs: txIn, outputs: txOut, locktime: locktime, + _witness: true, _raw: off !== p.length ? p.slice(0, off) : p, _size: off, _cost: cost diff --git a/lib/bcoin/script.js b/lib/bcoin/script.js index a96c28d1..75ab1ff0 100644 --- a/lib/bcoin/script.js +++ b/lib/bcoin/script.js @@ -288,7 +288,7 @@ script.normalize = function normalize(s) { }; script.verify = function verify(input, witness, output, tx, i, flags) { - var copy, res, redeem; + var copy, res, raw, redeem, hadWitness; var stack = []; if (flags == null) @@ -313,10 +313,20 @@ script.verify = function verify(input, witness, output, tx, i, flags) { if (!res || stack.length === 0 || !script.bool(stack.pop())) return false; - if ((flags & constants.flags.VERIFY_WITNESS) && script.isWitnessProgram(output)) { - if (!script.verifyProgram(input, witness, output, tx, i, flags)) + if ((flags & constants.flags.VERIFY_WITNESS) + && script.isWitnessProgram(output)) { + hadWitness = true; + + // Input script must be empty. + if (input.length !== 0) return false; - // TODO: FIX STACK HERE + + // Verify the program in the output script + if (!script.verifyProgram(witness, output, tx, i, flags)) + return false; + + // Force a cleanstack + stack.length = 0; } // If the script is P2SH, execute the real output script @@ -333,12 +343,12 @@ script.verify = function verify(input, witness, output, tx, i, flags) { return false; // Grab the real redeem script - redeem = stack.pop(); + raw = stack.pop(); - if (!Buffer.isBuffer(redeem)) + if (!Buffer.isBuffer(raw)) return false; - redeem = script.decode(redeem); + redeem = script.decode(raw); // Execute the redeem script res = script.execute(redeem, stack, tx, i, flags); @@ -347,9 +357,20 @@ script.verify = function verify(input, witness, output, tx, i, flags) { if (!res || stack.length === 0 || !script.bool(stack.pop())) return false; - if ((flags & constants.flags.VERIFY_WITNESS) && script.isWitnessProgram(redeem)) { - if (!script.verifyProgram(input, witness, redeem, tx, i, flags)) + if ((flags & constants.flags.VERIFY_WITNESS) + && script.isWitnessProgram(redeem)) { + hadWitness = true; + + // Input script must be exactly one push of the redeem script. + if (!(input.length === 1 && utils.isEqual(input[0], raw))) return false; + + // Verify the program in the redeem script + if (!script.verifyProgram(witness, redeem, tx, i, flags)) + return false; + + // Force a cleanstack + stack.length = 0; } } @@ -361,14 +382,21 @@ script.verify = function verify(input, witness, output, tx, i, flags) { return false; } + // If we had a witness but no witness program, fail. + if (flags & constants.flags.VERIFY_WITNESS) { + assert((flags & constants.flags.VERIFY_P2SH) !== 0); + if (!hadWitness && witness.length > 0) + return false; + } + return true; }; -script.verifyProgram = function verifyProgram(input, witness, output, tx, i, flags) { +script.verifyProgram = function verifyProgram(witness, output, tx, i, flags) { var program, witnessScript, script, stack, j; - if (!(flags & constants.flags.VERIFY_WITNESS) || !script.isWitnessProgram(output)) - return true; + assert((flags & constants.flags.VERIFY_WITNESS) !== 0); + assert(script.isWitnessProgram(output)); program = script.getWitnessProgram(output); @@ -395,9 +423,6 @@ script.verifyProgram = function verifyProgram(input, witness, output, tx, i, fla stack = witness.slice(); if (program.type === 'witnesspubkeyhash') { - if (input.length !== 0) - return false; - if (stack.length !== 2) return false; @@ -440,6 +465,10 @@ script.verifyProgram = function verifyProgram(input, witness, output, tx, i, fla if (!res || stack.length === 0 || !script.bool(stack.pop())) return false; + // Witnesses always require cleanstack + if (stack.length !== 0) + return false; + return true; }; @@ -1750,92 +1779,25 @@ script.getUnknownData = function getUnknownData(s) { }; }; -script.getInputKeys = function getInputKeys(s, prev) { - if (prev) { - if (script.isScripthash(prev)) - return script.getOutputKeys(script.getRedeem(s)); - return script.getOutputKeys(prev); - } - - if (script.isScripthashInput(s)) - return script.getOutputKeys(script.getRedeem(s)); - - if (script.isPubkeyhashInput(s)) - return [s[1]]; - - return []; -}; - -script.getOutputKeys = function getOutputKeys(s) { - if (script.isPubkey(s)) - return [s[0]]; - - if (script.isMultisig(s)) - return s.slice(1, -2); - - return []; -}; - -script.getInputKeyHashes = function getInputKeyHashes(s, prev) { - if (prev) { - if (script.isScripthash(prev)) - return script.getOutputKeyHashes(script.getRedeem(s)); - return script.getOuputKeyHashes(prev); - } - - if (script.isScripthashInput(s)) - return script.getOutputKeyHashes(script.getRedeem(s)); - - if (script.isPubkeyhashInput(s)) - return [bcoin.address.hash160(s[1])]; - - return []; -}; - -script.getOuputKeyHashes = function getOuputKeyHashes(s) { - if (script.isPubkey(s)) - return [bcoin.address.hash160(s[0])]; - - if (script.isPubkeyhash(s)) - return [s[2]]; - - if (script.isMultisig(s)) { - return s.slice(1, -2).map(function(key) { - return bcoin.address.hash160(key); - }); - } - - return []; -}; - -script.getInputScripthash = function getInputScripthash(s, prev) { - if (prev) - return script.getOutputScripthash(prev); - - if (script.isScripthashInput(s)) - return bcoin.address.hash160(s[s.length - 1]); -}; - -script.getOutputScripthash = function getOutputScripthash(s) { - if (script.isScripthash(s)) - return s[1]; -}; - -script.getInputAddress = function getInputAddress(s, prev) { +script.getInputAddress = function getInputAddress(s, prev, isWitness) { if (prev) return script.getOutputAddress(prev); if (script.isPubkeyInput(s)) return; - if (script.isPubkeyhashInput(s)) - return bcoin.address.compileData(s[1], 'pubkeyhash'); + if (script.isPubkeyhashInput(s)) { + return bcoin.address.compileData(s[1], + isWitness ? 'witnesspubkeyhash' : 'pubkeyhash'); + } if (script.isMultisigInput(s)) return; - if (script.isScripthashInput(s)) - return bcoin.address.compileData(s[s.length - 1], 'scripthash'); + if (script.isScripthashInput(s)) { + return bcoin.address.compileData(s[s.length - 1], + isWitness ? 'witnessscripthash' : 'scripthash'); + } }; script.getOutputAddress = function getOutputAddress(s) { @@ -1843,7 +1805,7 @@ script.getOutputAddress = function getOutputAddress(s) { if (script.isWitnessProgram(s)) { program = script.getWitnessProgram(s); - if (!program.type || program.type === 'witnessunknown') + if (!program.type || program.type === 'unknown') return; return bcoin.address.compileHash(program.data, program.type); } @@ -1865,43 +1827,6 @@ script.getOutputAddress = function getOutputAddress(s) { return bcoin.address.compileHash(s[1], 'scripthash'); }; -script.getInputMN = function getInputMN(s, prev) { - if (prev) { - if (script.isScripthash(prev)) - return script.getOutputMN(script.getRedeem(s)); - return script.getOuputMN(prev); - } - - if (script.isScripthashInput(s)) - return script.getOutputMN(script.getRedeem(s)); - - return { m: 1, n: 1 }; -}; - -script.getOuputMN = function getOuputMN(s) { - if (script.isMultisig(s)) - return { m: s[0], n: s[s.length - 2] }; - - return { m: 1, n: 1 }; -}; - -script.recoverKey = function recoverKey(sig, msg) { - var key; - - try { - key = bcoin.ecdsa.recoverPubKey(msg, sig.slice(0, -1), 0); - } catch (e) { - return; - } - - return new Buffer(bcoin.ecdsa.keyPair({ pub: key }).getPublic(true, 'array')); -}; - -script.guessKey = function guessKey(sig, prev, tx, i) { - var msg = tx.signatureHash(i, prev, sig[sig.length - 1]); - return script.recoverKey(sig, msg); -}; - script.isPubkey = function isPubkey(s, key) { var res; @@ -2085,7 +2010,7 @@ script.getWitnessProgram = function getWitnessProgram(s) { if (version > 0) { // No interpretation of script (anyone can spend) - type = 'witnessunknown'; + type = 'unknown'; } else if (version === 0 && data.length === 20) { type = 'witnesspubkeyhash'; } else if (version === 0 && data.length === 32) { @@ -2146,28 +2071,14 @@ script.getInputType = function getInputType(s, prev, isWitness) { return type; }; -script.isPubkeyInput = function isPubkeyInput(s, key, tx, index) { +script.isPubkeyInput = function isPubkeyInput(s, key) { if (s.length !== 1) return false; if (!script.isSignature(s[0])) return false; - // Execute the script against our key's - // checksig script to see if this is our input. - // This will only work if the script verifies. - if (key) { - assert(tx); - assert(index != null); - if (!script.verify(s, [key, 'checksig'], tx, index)) - return false; - } - - // if (key) { - // var recovered; - // recovered = script.guessKey(s[0], [key, 'checksig'], tx, index); - // return utils.isEqual(key, recovered || []); - // } + assert(!key); return true; }; @@ -2190,8 +2101,8 @@ script.isPubkeyhashInput = function isPubkeyhashInput(s, key) { return true; }; -script.isMultisigInput = function isMultisigInput(s, keys, tx, index) { - var i, prev; +script.isMultisigInput = function isMultisigInput(s, keys) { + var i; // We need to rule out scripthash because // it may look like multisig. This is @@ -2211,38 +2122,7 @@ script.isMultisigInput = function isMultisigInput(s, keys, tx, index) { return false; } - // Execute the script against our pubkeys' - // redeem script to see if this is our input. - // This will only work if the script verifies. - if (keys) { - assert(keys.length >= 2); - assert(tx); - assert(index != null); - prev = script.createMultisig(keys, s.length - 1, keys.length); - if (!script.verify(s, prev, tx, index)) - return false; - } - - // We can also try to recover the keys from the signatures. - // if (keys) { - // var prev, recovered, j, total; - // recovered = []; - // total = 0; - // for (i = 1; i < s.length; i++) { - // prev = script.createMultisig(keys, s.length - 1, keys.length); - // recovered.push(script.guessKey(s[i], prev, tx, index) || []); - // } - // for (i = 0; i < recovered.length; i++) { - // for (j = 0; j < keys.length; j++) { - // if (utils.isEqual(recovered[i], keys[j])) { - // total++; - // break; - // } - // } - // } - // if (total !== s.length - 1) - // return false; - // } + assert(!keys); return true; }; diff --git a/lib/bcoin/tx.js b/lib/bcoin/tx.js index 4b55127b..a3d7649e 100644 --- a/lib/bcoin/tx.js +++ b/lib/bcoin/tx.js @@ -30,14 +30,14 @@ function TX(data, block, index) { this.ts = data.ts || 0; this.block = data.block || null; this.index = data.index || -1; - this._hash = null; + this._hash = null; + this._whash = null; this._raw = data._raw || null; - this._wraw = data._wraw || null; this._size = data._size || 0; this._offset = data._offset || 0; - - this.witness = data.witness || false; + this._cost = data._cost || 0; + this._witness = data._witness || false; this.height = data.height != null ? data.height : -1; @@ -62,19 +62,6 @@ function TX(data, block, index) { this.setBlock(block, index); } } - - if (this.witness) { - this._wsize = this._raw.length; - this._wraw = this._raw; - this._raw = null; - this._size = 0; - } - - if (!this._raw) - this._raw = this.render(); - - if (!this._size) - this._size = this._raw.length; } TX.prototype.setBlock = function setBlock(block, index) { @@ -103,8 +90,12 @@ TX.prototype.clone = function clone() { // return output; // }); + delete tx._witness; delete tx._raw; delete tx._size; + delete tx._cost; + delete tx._hash; + delete tx._whash; return tx; }; @@ -139,23 +130,47 @@ TX.prototype.hasWitness = function hasWitness() { }; TX.prototype.render = function render() { - if (!this._raw) { - this._raw = bcoin.protocol.framer.tx(this); - this._size = this._raw.length; + if (this._raw) { + if (!this._witness) + return this._raw; + return bcoin.protocol.framer.tx(this); } + + if (this.hasWitness()) + return bcoin.protocol.framer.tx(this); + + this._raw = bcoin.protocol.framer.tx(this); + this._size = this._raw.length; + this._witness = false; + return this._raw; }; TX.prototype.renderWitness = function renderWitness() { - if (!this._wraw) { - this._wraw = bcoin.protocol.framer.witnessTX(this); - this._wsize = this._wraw.length; + if (this._raw) { + if (this._witness) + return this._raw; + return bcoin.protocol.framer.witnessTX(this); } - return this._wraw; + + if (!this.hasWitness()) + return bcoin.protocol.framer.witnessTX(this); + + this._raw = bcoin.protocol.framer.witnessTX(this); + this._size = this._raw.length; + this._witness = true; + + return this._raw; }; TX.prototype.getSize = function getSize() { - return this._size || this.render().length; + return this.render().length; +}; + +TX.prototype.getCost = function getCost() { + if (!this._cost) + this._cost = this.renderWitness()._cost; + return this._cost; }; TX.prototype._inputIndex = function _inputIndex(hash, index) { @@ -266,19 +281,17 @@ TX.prototype.normalizedHash = function normalizedHash(enc, force) { if (this.isCoinbase()) return this.hash(enc); - if (!this._tbsHash || force) { - for (i = 0; i < copy.inputs.length; i++) { - if (!copy.inputs[i].isCoinbase()) - copy.inputs[i].script = []; - } + if (!this._nhash || force) { + for (i = 0; i < copy.inputs.length; i++) + copy.inputs[i].script = []; copy = bcoin.protocol.framer.tx(copy); - this._tbsHash = utils.dsha256(copy); + this._nhash = utils.dsha256(copy); } return enc === 'hex' - ? utils.toHex(this._tbsHash) - : this._tbsHash.slice(); + ? utils.toHex(this._nhash) + : this._nhash.slice(); }; TX.prototype.verify = function verify(index, force, flags) { @@ -363,8 +376,7 @@ TX.prototype.getFunds = function getFunds(side) { return this.getOutputValue(); }; -TX.prototype.testInputs = function testInputs(addressTable, index, collect) { - var inputs = []; +TX.prototype.testInputs = function testInputs(addressTable, index) { var i, input; if (typeof addressTable === 'string') @@ -389,24 +401,14 @@ TX.prototype.testInputs = function testInputs(addressTable, index, collect) { input = this.inputs[i]; - if (input.test(addressTable)) { - if (!collect) - return true; - inputs.push(input); - } + if (input.test(addressTable)) + return true; } - if (!collect) - return false; - - if (inputs.length === 0) - return false; - - return inputs; + return false; }; -TX.prototype.testOutputs = function testOutputs(addressTable, index, collect) { - var outputs = []; +TX.prototype.testOutputs = function testOutputs(addressTable, index) { var i, output; if (typeof addressTable === 'string') @@ -431,20 +433,11 @@ TX.prototype.testOutputs = function testOutputs(addressTable, index, collect) { output = this.outputs[i]; - if (output.test(addressTable)) { - if (!collect) - return true; - outputs.push(output); - } + if (output.test(addressTable)) + return true; } - if (!collect) - return false; - - if (outputs.length === 0) - return false; - - return outputs; + return false; }; TX.prototype.hasPrevout = function hasPrevout() { @@ -871,6 +864,7 @@ TX.prototype.toJSON = function toJSON() { return { type: this.type, hash: utils.revHex(this.hash('hex')), + witnessHash: utils.revHex(this.witnessHash('hex')), height: this.height, block: this.block ? utils.revHex(this.block) : null, ts: this.ts, diff --git a/lib/bcoin/wallet.js b/lib/bcoin/wallet.js index e0ed5927..3820a1d2 100644 --- a/lib/bcoin/wallet.js +++ b/lib/bcoin/wallet.js @@ -493,18 +493,18 @@ Wallet.prototype.getAddress = function getAddress() { Wallet.prototype.ownInput = function ownInput(tx, index) { if (tx instanceof bcoin.input) - return tx.test(this.addressMap) ? [tx] : false; + return tx.test(this.addressMap); this.fillPrevout(tx); - return tx.testInputs(this.addressMap, index, true); + return tx.testInputs(this.addressMap, index); }; Wallet.prototype.ownOutput = function ownOutput(tx, index) { if ((tx instanceof bcoin.output) || (tx instanceof bcoin.coin)) - return tx.test(this.addressMap) ? [tx] : false; + return tx.test(this.addressMap); - return tx.testOutputs(this.addressMap, index, true); + return tx.testOutputs(this.addressMap, index); }; Wallet.prototype.fill = function fill(tx, options) { diff --git a/scripts/gen.js b/scripts/gen.js index 8762c8ef..d30171b6 100644 --- a/scripts/gen.js +++ b/scripts/gen.js @@ -100,7 +100,8 @@ var regtest = createGenesisBlock({ var segnet = createGenesisBlock({ version: 1, - ts: 1452368293, + // ts: 1452368293, + ts: 1452831101, bits: 0x1d00ffff, nonce: 0 }); @@ -109,13 +110,13 @@ utils.print(main); utils.print(testnet); utils.print(regtest); utils.print(segnet); -utils.print('main hash: %s', main.hash); +utils.print('main hash: %s', utils.revHex(main.hash)); utils.print('main raw: %s', utils.toHex(main._raw)); utils.print(''); -utils.print('testnet hash: %s', testnet.hash); +utils.print('testnet hash: %s', utils.revHex(testnet.hash)); utils.print('testnet raw: %s', utils.toHex(testnet._raw)); utils.print(''); -utils.print('regtest hash: %s', regtest.hash); +utils.print('regtest hash: %s', utils.revHex(regtest.hash)); utils.print('regtest raw: %s', utils.toHex(regtest._raw)); -utils.print('segnet hash: %s', segnet.hash); +utils.print('segnet hash: %s', utils.revHex(segnet.hash)); utils.print('segnet raw: %s', utils.toHex(segnet._raw)); diff --git a/test/wallet-test.js b/test/wallet-test.js index 87426abf..ee4592b2 100644 --- a/test/wallet-test.js +++ b/test/wallet-test.js @@ -2,6 +2,7 @@ var assert = require('assert'); var bn = require('bn.js'); var bcoin = require('../'); var constants = bcoin.protocol.constants; +var utils = bcoin.utils; var dummyInput = { prevout: { @@ -52,9 +53,8 @@ describe('Wallet', function() { }); src.addInput(dummyInput); assert(w.ownOutput(src)); - assert.equal(w.ownOutput(src).reduce(function(acc, out) { - return acc.iadd(out.value); - }, new bn(0)).toString(10), 5460 * 2); + assert(w.ownOutput(src.outputs[0])); + assert(!w.ownOutput(src.outputs[1])); var tx = bcoin.mtx() .addInput(src, 0) @@ -87,9 +87,8 @@ describe('Wallet', function() { }); src.addInput(dummyInput); assert(w.ownOutput(src)); - assert.equal(w.ownOutput(src).reduce(function(acc, out) { - return acc.iadd(out.value); - }, new bn(0)).toString(10), 5460 * 2); + assert(w.ownOutput(src.outputs[0])); + assert(!w.ownOutput(src.outputs[1])); var tx = bcoin.mtx() .addInput(src, 0) @@ -387,4 +386,32 @@ describe('Wallet', function() { cb(); }); + + var coinbase = '010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff2c027156266a24aa21a9edb1e139795984903d6629ddedf3763fb9bc582fd68a46b1f8c7c57f9fbcc7fc900101ffffffff02887d102a0100000023210290dd626747729e1cc445cb9a11cfb7e78ea896db9f5c335e6730491d9ee7474dac0000000000000000266a24aa21a9edb1e139795984903d6629ddedf3763fb9bc582fd68a46b1f8c7c57f9fbcc7fc900120000000000000000000000000000000000000000000000000000000000000000000000000'; + var chash = 'ba0cb2bf1aa19e4643208f7b38798a3deaa3320968d2cb1e42c5802a7baaba99'; + var wpkh = '0100000001fc8f4ccd25b285bcae9f305d2ec3feb79a71384bab0303f810b58089b9c6e084000000006a473044022036548e256acfbc6a77f322d32ae0f11cb20a05a240d72550bda9d8cf169b35e90220303ad1a60d8297a12501dbebc46ec39c7652ac3d75ff394b8d4c3cbdaf3279c7012103f85883e08a3581b636bbafee55f337b6bf4467826a280fda5bf0533368e99b73ffffffff0200ba1dd2050000001976a91443cec67a63867420c0c934ffbbf89f14729304f988acf0cbf01907000000160014e7b8143685eb4eb03810c8ffb7c4a74d5f23161c00000000'; + var whash = 'a72943c0131d655ff3d272f202d4f6ad2cf378eba9416c9b8028920d71d8f90a'; + var w2hash = 'c532af06b9a81d9171618fb0b30075ddb3a6fca68c9b89536e6e34b0beddcc23'; + + // https://segnet.smartbit.com.au/tx/c532af06b9a81d9171618fb0b30075ddb3a6fca68c9b89536e6e34b0beddcc23 + var w2pkh = new Buffer(bcoin.fs.readFileSync(__dirname + '/wtx.hex', 'ascii').trim(), 'hex'); + + it('should have a wtxid', function(cb) { + var src = bcoin.mtx({ + outputs: [{ + value: 5460 * 2, + address: bcoin.address.compileData(new Buffer([])) + }] + }); + src.addInput(dummyInput); + console.log(src.toJSON()); + var t = bcoin.protocol.parser.parseWitnessTX(new Buffer(coinbase, 'hex')); + utils.print(t); + var t = new bcoin.tx(bcoin.protocol.parser.parseWitnessTX(new Buffer(w2pkh, 'hex'))); + utils.print(t); + delete t._raw; + delete t._hash; + delete t._whash; + cb(); + }); }); diff --git a/test/wtx.hex b/test/wtx.hex new file mode 100644 index 00000000..722a4e60 --- /dev/null +++ b/test/wtx.hex @@ -0,0 +1,2 @@ + +01000000000105758639e01c9ed6b5da154981068168bc55fae24ca4a3474b86b994730404f71b0000000000ffffffff8e08f2ae45276fb70132275e29556ee181b16ebf8225161872af465e31a998300000000000ffffffffb680de242354a98265128461f2cb5001c05e64e2d118b08c03868b859f280758000000006b483045022100b9c598b62a7133e98c956882b56eb4d8ca6aabfe80140e336d9cb5df008b101402204fb16b8dd602eedd61a43143240b7e8dc7da4ebe9add486f1ec9532a2244cfa301210246afb382a5d5769c173bc88b9d9e97909cee408c04ddc62c91bdf8fa68781ba1ffffffff6186acc1567feb25794411812b1f084201a8eece69a32428e117c2fcd23663620000000000ffffffff4eac6b7560fca8f732123de3a601898a389f0f2a4355c7952eecc52f6138646f0000000000fffffffffdbc07c019a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc119a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc219a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc319a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc419a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc519a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc619a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc719a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc819a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc919a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd019a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd119a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd219a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd319a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd419a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd519a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd619a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd719a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd819a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd919a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe019a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe119a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe219a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe319a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe419a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe519a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe619a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe719a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe819a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe919a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff019a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff119a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff219a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff319a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff419a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff519a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff619a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff719a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff819a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff919a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff19a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f001aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f011aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f021aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f031aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f041aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f051aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f061aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f071aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f081aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f091aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f101aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f111aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f121aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f131aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f141aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f151aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f161aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f171aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f181aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f191aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f201aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f211aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f221aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f231aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f241aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f251aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f261aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f271aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f281aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f291aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f301aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f311aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f321aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f331aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f341aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f351aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f361aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f371aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f381aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f391aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f401aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f411aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f421aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f431aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f441aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f451aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f461aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f471aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f481aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f491aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f501aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f511aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f521aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f531aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f541aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f551aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f561aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f571aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f581aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f591aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f601aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f611aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f621aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f631aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f641aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f651aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f661aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f671aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f681aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f691aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f701aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f711aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f721aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f731aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f741aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f751aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f761aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f771aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f781aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f791aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f801aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f811aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f821aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f831aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f841aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f851aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f861aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f871aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f881aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f891aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f901aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f911aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f921aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f931aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f941aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f951aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f961aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f971aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f981aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f991aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa01aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa11aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa21aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa31aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa41aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa51aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa61aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa71aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa81aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa91aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb01aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb11aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb21aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb31aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb41aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb51aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb61aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb71aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb81aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb91aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc01aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc11aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc21aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc31aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc41aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc51aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc61aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc71aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc81aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc91aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd01aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd11aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd21aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd31aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd41aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd51aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd61aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd71aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd81aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd91aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe01aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe11aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe21aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe31aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe41aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe51aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe61aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe71aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe81aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe91aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff01aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff11aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff21aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff31aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff41aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff51aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff61aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff71aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff81aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff91aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff1aa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f001ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f011ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f021ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f031ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f041ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f051ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f061ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f071ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f081ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f091ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f101ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f111ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f121ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f131ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f141ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f151ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f161ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f171ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f181ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f191ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f201ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f211ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f221ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f231ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f241ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f251ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f261ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f271ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f281ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f291ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f301ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f311ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f321ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f331ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f341ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f351ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f361ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f371ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f381ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f391ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f401ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f411ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f421ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f431ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f441ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f451ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f461ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f471ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f481ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f491ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f501ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f511ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f521ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f531ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f541ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f551ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f561ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f571ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f581ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f591ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f601ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f611ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f621ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f631ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f641ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f651ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f661ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f671ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f681ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f691ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f701ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f711ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f721ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f731ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f741ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f751ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f761ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f771ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f781ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f791ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f801ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f811ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f821ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f831ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f841ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f851ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f861ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f871ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f881ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f891ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f901ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f911ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f921ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f931ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f941ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f951ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f961ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f971ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f981ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f991ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa01ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa11ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa21ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa31ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa41ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa51ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa61ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa71ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa81ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa91ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb01ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb11ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb21ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb31ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb41ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb51ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb61ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb71ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb81ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb91ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc01ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc11ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc21ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc31ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc41ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc51ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc61ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc71ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc81ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc91ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd01ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd11ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd21ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd31ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd41ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd51ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd61ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd71ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd81ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd91ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe01ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe11ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe21ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe31ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe41ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe51ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe61ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe71ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe81ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe91ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff01ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff11ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff21ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff31ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff41ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff51ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff61ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff71ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff81ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff91ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff1ba60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f001ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f011ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f021ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f031ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f041ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f051ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f061ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f071ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f081ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f091ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f101ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f111ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f121ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f131ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f141ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f151ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f161ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f171ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f181ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f191ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f201ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f211ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f221ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f231ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f241ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f251ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f261ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f271ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f281ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f291ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f301ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f311ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f321ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f331ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f341ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f351ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f361ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f371ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f381ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f391ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f401ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f411ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f421ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f431ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f441ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f451ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f461ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f471ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f481ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f491ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f501ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f511ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f521ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f531ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f541ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f551ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f561ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f571ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f581ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f591ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f601ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f611ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f621ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f631ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f641ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f651ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f661ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f671ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f681ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f691ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f701ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f711ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f721ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f731ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f741ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f751ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f761ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f771ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f781ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f791ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f801ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f811ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f821ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f831ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f841ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f851ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f861ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f871ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f881ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f891ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f901ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f911ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f921ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f931ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f941ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f951ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f961ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f971ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f981ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f991ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa01ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa11ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa21ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa31ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa41ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa51ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa61ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa71ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa81ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa91ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb01ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb11ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb21ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb31ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb41ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb51ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb61ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb71ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb81ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb91ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc01ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc11ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc21ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc31ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc41ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc51ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc61ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc71ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc81ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc91ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd01ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd11ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd21ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd31ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd41ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd51ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd61ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd71ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd81ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd91ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe01ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe11ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe21ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe31ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe41ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe51ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe61ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe71ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe81ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe91ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff01ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff11ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff21ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff31ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff41ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff51ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff61ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff71ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff81ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff91ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff1ca60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f001da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f011da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f021da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f031da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f041da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f051da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f061da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f071da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f081da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f091da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f101da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f111da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f121da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f131da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f141da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f151da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f161da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f171da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f181da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f191da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f201da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f211da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f221da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f231da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f241da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f251da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f261da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f271da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f281da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f291da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f301da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f311da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f321da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f331da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f341da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f351da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f361da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f371da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f381da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f391da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f401da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f411da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f421da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f431da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f441da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f451da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f461da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f471da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f481da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f491da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f501da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f511da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f521da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f531da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f541da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f551da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f561da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f571da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f581da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f591da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f601da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f611da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f621da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f631da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f641da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f651da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f661da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f671da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f681da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f691da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f701da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f711da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f721da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f731da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f741da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f751da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f761da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f771da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f781da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f791da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f801da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f811da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f821da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f831da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f841da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f851da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f861da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f871da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f881da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f891da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f901da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f911da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f921da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f931da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f941da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f951da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f961da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f971da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f981da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f991da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa01da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa11da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa21da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa31da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa41da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa51da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa61da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa71da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa81da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa91da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb01da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb11da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb21da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb31da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb41da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb51da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb61da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb71da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb81da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb91da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc01da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc11da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc21da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc31da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc41da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc51da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc61da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc71da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc81da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc91da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd01da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd11da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd21da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd31da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd41da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd51da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd61da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd71da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd81da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd91da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe01da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe11da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe21da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe31da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe41da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe51da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe61da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe71da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe81da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe91da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff01da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff11da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff21da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff31da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff41da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff51da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff61da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff71da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff81da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff91da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff1da60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f001ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f011ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f021ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f031ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f041ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f051ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f061ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f071ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f081ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f091ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f101ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f111ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f121ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f131ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f141ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f151ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f161ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f171ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f181ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f191ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f201ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f211ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f221ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f231ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f241ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f251ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f261ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f271ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f281ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f291ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f301ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f311ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f321ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f331ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f341ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f351ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f361ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f371ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f381ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f391ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f401ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f411ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f421ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f431ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f441ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f451ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f461ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f471ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f481ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f491ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f501ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f511ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f521ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f531ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f541ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f551ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f561ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f571ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f581ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f591ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f601ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f611ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f621ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f631ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f641ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f651ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f661ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f671ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f681ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f691ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f701ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f711ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f721ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f731ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f741ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f751ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f761ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f771ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f781ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f791ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f801ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f811ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f821ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f831ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f841ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f851ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f861ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f871ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f881ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f891ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f901ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f911ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f921ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f931ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f941ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f951ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f961ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f971ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f981ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f991ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa01ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa11ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa21ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa31ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa41ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa51ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa61ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa71ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa81ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa91ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb01ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb11ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb21ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb31ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb41ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb51ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb61ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb71ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb81ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb91ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc01ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc11ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc21ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc31ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc41ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc51ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc61ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc71ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc81ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc91ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd01ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd11ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd21ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd31ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd41ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd51ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd61ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd71ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd81ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd91ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe01ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe11ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe21ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe31ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe41ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe51ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe61ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe71ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe81ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe91ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff01ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff11ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff21ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff31ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff41ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff51ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff61ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff71ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff81ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff91ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff1ea60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f001fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f011fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f021fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f031fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f041fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f051fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f061fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f071fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f081fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f091fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f101fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f111fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f121fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f131fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f141fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f151fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f161fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f171fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f181fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f191fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f201fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f211fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f221fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f231fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f241fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f251fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f261fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f271fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f281fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f291fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f301fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f311fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f321fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f331fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f341fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f351fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f361fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f371fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f381fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f391fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f401fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f411fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f421fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f431fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f441fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f451fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f461fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f471fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f481fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f491fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f501fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f511fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f521fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f531fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f541fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f551fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f561fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f571fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f581fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f591fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f601fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f611fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f621fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f631fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f641fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f651fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f661fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f671fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f681fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f691fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f701fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f711fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f721fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f731fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f741fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f751fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f761fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f771fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f781fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f791fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f801fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f811fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f821fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f831fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f841fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f851fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f861fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f871fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f881fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f891fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f901fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f911fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f921fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f931fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f941fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f951fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f961fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f971fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f981fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f991fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa01fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa11fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa21fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa31fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa41fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa51fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa61fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa71fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa81fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa91fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb01fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb11fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb21fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb31fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb41fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb51fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb61fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb71fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb81fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb91fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc01fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc11fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc21fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc31fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc41fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc51fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc61fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc71fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc81fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc91fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd01fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd11fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd21fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd31fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd41fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd51fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd61fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd71fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd81fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd91fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe01fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe11fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe21fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe31fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe41fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe51fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe61fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe71fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe81fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe91fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff01fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff11fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff21fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff31fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff41fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff51fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff61fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff71fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff81fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff91fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff1fa60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f8f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9a20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9b20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9c20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9d20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9e20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f9f20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fa920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faa20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fab20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fac20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fad20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fae20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60faf20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fb920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fba20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbb20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbc20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbd20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbe20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fbf20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fc920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fca20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcb20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcc20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcd20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fce20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fcf20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fd920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fda20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdb20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdc20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdd20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fde20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fdf20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fe920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fea20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60feb20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fec20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fed20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fee20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fef20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff020a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff120a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff220a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff320a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff420a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff520a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff620a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff720a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff820a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ff920a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffa20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffb20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffc20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffd20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60ffe20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60fff20a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f0f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f1f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f2f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f3f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f4f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f5f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6b21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6c21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6d21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6e21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f6f21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7021a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7121a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7221a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7321a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7421a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7521a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7621a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7721a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7821a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7921a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f7a21a60200000000160014af0c43441decf74cfc1572ac622d960f13d8c60f706aa20a000000001600143ef5ab3a3e3976c0a43831ae73bc48d4a4e0926b02483045022100aafaf192595d702294e6bc39df99afa0b226f8bd62b3ba47d4e414f9d153dcb202202432665875d514fc4cff12156cf9570cdc9ae9e295ecbd8ca508e90502638a8f01210244baf40086479a840fe7f50133c5ac3da9683bf17af3f0aa7cfadaaeba15a09a02483045022100efb2e2f79656933cda5361130238920fd34168c63d609c70cdbc7f05b2331fb802200ee8182293f533431d0293dc1072fb6baa53b8c99ca471ce08b93a744bee189401210202e4e426a9d3fe9e689736df81ce4f9953ecfc4978970f9d422f35cd4101d0d60002483045022100f64642de8f58b4c1ca3b552f6858e655ca1a7801d1109fb08667f344980da3ee02204aa0a4bd3d6014dd8b12386b295c13c1252c15c5816fd02dc804173a54a44e44012102c1919b9a59ed7edf82d9dc6941c0bc78b13e6586d1a176895e181a5b77c832070247304402207c51807aab7d272d8dbe749d3e45b42a0dcecd1c2285512ab095bbaa4e4c17a802201af484192a86901582ed0c4b9fc34f28d74fcfd6bee4acb2f3aa655820a0f1b301210377c6c9511d1d325a4686515dea1a0012ef9f5ff269e8491e45332328ddea19e000000000