diff --git a/.gitignore b/.gitignore index 8a78aba..8f45da0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,6 @@ config/development/mnemonic config/livenet/password config/production/password coverage -src/embarkArtifacts -embarkArtifacts node_modules package-lock.json dist @@ -30,6 +28,7 @@ dist # misc .DS_Store +.env .env.local .env.development.local .env.test.local diff --git a/config/contracts.js b/config/contracts.js index a24088c..d79f396 100644 --- a/config/contracts.js +++ b/config/contracts.js @@ -76,16 +76,16 @@ module.exports = { TestBancorFormula: { deploy: false }, SNT: { instanceOf: 'MiniMeToken', - address: '0x2764b5da3696E3613Ef9864E9B4613f9fA478E75', + address: '0x25B1bD06fBfC2CbDbFc174e10f1B78b1c91cc77B', }, - Discover: { address: '0x3449Eb0705C9f0A77B687E7247c31e4A65f60dD4' }, + Discover: { address: '0xad28BF7423874B678dFAFb526433c62624dcaB45' }, // SNT: { // instanceOf: 'MiniMeToken', // args: [ // '$MiniMeTokenFactory', // '0x0000000000000000000000000000000000000000', // 0, - // 'TestMiniMeToken', + // 'SNTMiniMeToken', // 18, // 'SNT', // true, @@ -115,7 +115,9 @@ module.exports = { // used with "embark run testnet" testnet: { deployment: { - accounts: [{ mnemonic: wallet.mnemonic }], + accounts: [{ + mnemonic: wallet.mnemonic, + }], host: `ropsten.infura.io/v3/8675214b97b44e96b70d05326c61fd6a`, port: false, type: 'rpc', diff --git a/config/development/mnemonic.js b/config/development/mnemonic.js index 9e5716f..050e950 100644 --- a/config/development/mnemonic.js +++ b/config/development/mnemonic.js @@ -1,2 +1,2 @@ module.exports.mnemonic = - 'erupt point century seek certain escape solution flee elegant hard please pen' + '' diff --git a/src/common/clients/endpoints/metadata-client-endpoints.json b/src/common/clients/endpoints/metadata-client-endpoints.json index 5d26d2e..e780e3d 100644 --- a/src/common/clients/endpoints/metadata-client-endpoints.json +++ b/src/common/clients/endpoints/metadata-client-endpoints.json @@ -1,7 +1,7 @@ { - "UPLOAD": "http://localhost:4000/metadata", - "UPDATE": "http://localhost:4000/metadata/update", - "APPROVE": "http://localhost:4000/metadata/approve/email", - "RETRIEVE_METADATA": "http://localhost:4000/metadata", - "RETRIEVE_ALL_METADATA": "http://localhost:4000/metadata/all" + "UPLOAD": "http://dev.dap.ps:8081/metadata", + "UPDATE": "http://dev.dap.ps:8081/metadata/update", + "APPROVE": "http://dev.dap.ps:8081/metadata/approve/email", + "RETRIEVE_METADATA": "http://dev.dap.ps:8081/metadata", + "RETRIEVE_ALL_METADATA": "http://dev.dap.ps:8081/metadata/all" } diff --git a/src/embarkArtifacts/config/blockchain.json b/src/embarkArtifacts/config/blockchain.json new file mode 100644 index 0000000..c095612 --- /dev/null +++ b/src/embarkArtifacts/config/blockchain.json @@ -0,0 +1,7 @@ +{ + "dappConnection": [ + "https://ropsten.infura.io/v3/8675214b97b44e96b70d05326c61fd6a" + ], + "dappAutoEnable": true, + "blockchainClient": "geth" +} diff --git a/src/embarkArtifacts/config/communication.json b/src/embarkArtifacts/config/communication.json new file mode 100644 index 0000000..cc10228 --- /dev/null +++ b/src/embarkArtifacts/config/communication.json @@ -0,0 +1,7 @@ +{ + "connection": { + "host": "localhost", + "port": 8546, + "type": "ws" + } +} diff --git a/src/embarkArtifacts/config/storage.json b/src/embarkArtifacts/config/storage.json new file mode 100644 index 0000000..c360573 --- /dev/null +++ b/src/embarkArtifacts/config/storage.json @@ -0,0 +1,11 @@ +{ + "dappConnection": [ + { + "provider": "ipfs", + "protocol": "https", + "host": "ipfs.infura.io", + "port": 5001, + "getUrl": "https://ipfs.infura.io/ipfs/" + } + ] +} diff --git a/src/embarkArtifacts/contracts/ApproveAndCallFallBack.js b/src/embarkArtifacts/contracts/ApproveAndCallFallBack.js new file mode 100644 index 0000000..7a8f431 --- /dev/null +++ b/src/embarkArtifacts/contracts/ApproveAndCallFallBack.js @@ -0,0 +1,70 @@ +import EmbarkJS from '../embarkjs' +let ApproveAndCallFallBackJSONConfig = { + contract_name: { + className: 'ApproveAndCallFallBack', + args: [], + code: '', + runtimeBytecode: '', + realRuntimeBytecode: '', + linkReferences: {}, + swarmHash: '', + gasEstimates: null, + functionHashes: { + 'receiveApproval(address,uint256,address,bytes)': '8f4ffcb1', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: 'from', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_token', type: 'address' }, + { name: '_data', type: 'bytes' }, + ], + name: 'receiveApproval', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/ApproveAndCallFallBack.sol', + originalFilename: 'contracts/token/ApproveAndCallFallBack.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/ApproveAndCallFallBack.sol', + gas: 'auto', + type: 'file', + deploy: false, + _gasLimit: 6000000, + error: false, + }, + code: '', + runtime_bytecode: '', + real_runtime_bytecode: '', + swarm_hash: '', + gas_estimates: null, + function_hashes: { + 'receiveApproval(address,uint256,address,bytes)': '8f4ffcb1', + }, + abi: [ + { + constant: false, + inputs: [ + { name: 'from', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_token', type: 'address' }, + { name: '_data', type: 'bytes' }, + ], + name: 'receiveApproval', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + ], +} +let ApproveAndCallFallBack = new EmbarkJS.Blockchain.Contract( + ApproveAndCallFallBackJSONConfig, +) +export default ApproveAndCallFallBack diff --git a/src/embarkArtifacts/contracts/BancorFormula.js b/src/embarkArtifacts/contracts/BancorFormula.js new file mode 100644 index 0000000..2a80b0b --- /dev/null +++ b/src/embarkArtifacts/contracts/BancorFormula.js @@ -0,0 +1,84 @@ +import EmbarkJS from '../embarkjs' +let BancorFormulaJSONConfig = { + contract_name: { + deploy: false, + className: 'BancorFormula', + args: [], + code: + '608060405234801561001057600080fd5b506001606060020a641c35fedd1502036020556001605e60020a646c3390ecc902036021556001606160020a640cf801476102036022556001605f60020a6431bdb23e1d02036023556001605b60020a6502fb1d8fe08302036024556001605a60020a6505b771955b3702036025556001605960020a650af67a93bb5102036026556001605860020a6515060c256cb302036027556001605860020a651428a2f98d7302036028556001605660020a654d515663970902036029556001605560020a65944620b0e70f0203602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d556001608360020a03603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e556001608160020a03605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e6607f556035806107c16000396000f3fe6080604052600080fdfea165627a7a72305820501e03daf2ce6c57fb36c5a3b0aa1a8bcbd890b002678de89da6ccb68f2af4540029', + runtimeBytecode: + '6080604052600080fdfea165627a7a72305820501e03daf2ce6c57fb36c5a3b0aa1a8bcbd890b002678de89da6ccb68f2af4540029', + realRuntimeBytecode: '6080604052600080fdfea165627a7a72305820', + linkReferences: {}, + swarmHash: + '501e03daf2ce6c57fb36c5a3b0aa1a8bcbd890b002678de89da6ccb68f2af454', + gasEstimates: { + creation: { + codeDepositCost: '10600', + executionCost: '1921627', + totalCost: '1932227', + }, + internal: { + 'findPositionInMaxExpArray(uint256)': 'infinite', + 'floorLog2(uint256)': 'infinite', + 'generalExp(uint256,uint8)': 'infinite', + 'generalLog(uint256)': 'infinite', + 'optimalExp(uint256)': 'infinite', + 'optimalLog(uint256)': 'infinite', + 'power(uint256,uint256,uint32,uint32)': 'infinite', + }, + }, + functionHashes: {}, + abiDefinition: [ + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/utils/BancorFormula.sol', + originalFilename: 'contracts/utils/BancorFormula.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/utils/BancorFormula.sol', + gas: 'auto', + type: 'file', + _gasLimit: 6000000, + error: false, + }, + code: + '608060405234801561001057600080fd5b506001606060020a641c35fedd1502036020556001605e60020a646c3390ecc902036021556001606160020a640cf801476102036022556001605f60020a6431bdb23e1d02036023556001605b60020a6502fb1d8fe08302036024556001605a60020a6505b771955b3702036025556001605960020a650af67a93bb5102036026556001605860020a6515060c256cb302036027556001605860020a651428a2f98d7302036028556001605660020a654d515663970902036029556001605560020a65944620b0e70f0203602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d556001608360020a03603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e556001608160020a03605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e6607f556035806107c16000396000f3fe6080604052600080fdfea165627a7a72305820501e03daf2ce6c57fb36c5a3b0aa1a8bcbd890b002678de89da6ccb68f2af4540029', + runtime_bytecode: + '6080604052600080fdfea165627a7a72305820501e03daf2ce6c57fb36c5a3b0aa1a8bcbd890b002678de89da6ccb68f2af4540029', + real_runtime_bytecode: '6080604052600080fdfea165627a7a72305820', + swarm_hash: + '501e03daf2ce6c57fb36c5a3b0aa1a8bcbd890b002678de89da6ccb68f2af454', + gas_estimates: { + creation: { + codeDepositCost: '10600', + executionCost: '1921627', + totalCost: '1932227', + }, + internal: { + 'findPositionInMaxExpArray(uint256)': 'infinite', + 'floorLog2(uint256)': 'infinite', + 'generalExp(uint256,uint8)': 'infinite', + 'generalLog(uint256)': 'infinite', + 'optimalExp(uint256)': 'infinite', + 'optimalLog(uint256)': 'infinite', + 'power(uint256,uint256,uint32,uint32)': 'infinite', + }, + }, + function_hashes: {}, + abi: [ + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + ], +} +let BancorFormula = new EmbarkJS.Blockchain.Contract(BancorFormulaJSONConfig) +export default BancorFormula diff --git a/src/embarkArtifacts/contracts/Controlled.js b/src/embarkArtifacts/contracts/Controlled.js new file mode 100644 index 0000000..7dbb2fd --- /dev/null +++ b/src/embarkArtifacts/contracts/Controlled.js @@ -0,0 +1,90 @@ +import EmbarkJS from '../embarkjs' +let ControlledJSONConfig = { + contract_name: { + className: 'Controlled', + args: [], + code: '', + runtimeBytecode: '', + realRuntimeBytecode: '', + linkReferences: {}, + swarmHash: '', + gasEstimates: null, + functionHashes: { + 'changeController(address)': '3cebb823', + 'controller()': 'f77c4791', + }, + abiDefinition: [ + { + constant: false, + inputs: [{ name: '_newController', type: 'address' }], + name: 'changeController', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'controller', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/common/Controlled.sol', + originalFilename: 'contracts/common/Controlled.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/common/Controlled.sol', + gas: 'auto', + type: 'file', + deploy: false, + _gasLimit: 6000000, + error: false, + }, + code: '', + runtime_bytecode: '', + real_runtime_bytecode: '', + swarm_hash: '', + gas_estimates: null, + function_hashes: { + 'changeController(address)': '3cebb823', + 'controller()': 'f77c4791', + }, + abi: [ + { + constant: false, + inputs: [{ name: '_newController', type: 'address' }], + name: 'changeController', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'controller', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + ], +} +let Controlled = new EmbarkJS.Blockchain.Contract(ControlledJSONConfig) +export default Controlled diff --git a/src/embarkArtifacts/contracts/Discover.js b/src/embarkArtifacts/contracts/Discover.js new file mode 100644 index 0000000..7bedd47 --- /dev/null +++ b/src/embarkArtifacts/contracts/Discover.js @@ -0,0 +1,711 @@ +import EmbarkJS from '../embarkjs' +let DiscoverJSONConfig = { + contract_name: { + args: ['$SNT'], + className: 'Discover', + code: + '60806040523480156200001157600080fd5b5060405160208062003a0c833981018060405260208110156200003357600080fd5b50516001606060020a641c35fedd1502036020556001605e60020a646c3390ecc902036021556001606160020a640cf801476102036022556001605f60020a6431bdb23e1d02036023556001605b60020a6502fb1d8fe08302036024556001605a60020a6505b771955b3702036025556001605960020a650af67a93bb5102036026556001605860020a6515060c256cb302036027556001605860020a651428a2f98d7302036028556001605660020a654d515663970902036029556001605560020a65944620b0e70f0203602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d556001608360020a03603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e556001608160020a03605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e6607f5560808054600160a060020a031916600160a060020a0383161790556401959a141e60818190556101246082819055620f42406084819055620008449290916200082f919064010000000062000877810262000f2f1704565b9064010000000062000f9a6200091182021704565b60838190556200086d906064906200082f90604d9064010000000062000f2f6200087782021704565b6085555062000999565b60008215156200088a575060006200090b565b8282028284828115156200089a57fe5b04146200090857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f536166654d617468206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b90505b92915050565b60008082116200098257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f536166654d617468206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b600082848115156200099057fe5b04949350505050565b61306380620009a96000396000f3fe608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636fe39f64116100bf5780639640fe351161008e5780639640fe3514610309578063ac56f70f14610377578063ac76909014610394578063cb2b6d26146103b7578063d3525adf146103d457610133565b80636fe39f641461020e578063753ed1bd146102495780637e38d973146102515780638f4ffcb11461027a57610133565b80632ddbd13a116101065780632ddbd13a146101bd578063313ce567146101c557806357073d4b146101cd5780635ecaa4ff146101fe5780636ac5db191461020657610133565b8063040cf020146101385780631248edd11461015d578063199e1698146101925780632b3df6901461019a575b600080fd5b61015b6004803603604081101561014e57600080fd5b50803590602001356103f7565b005b6101806004803603604081101561017357600080fd5b50803590602001356106ff565b60408051918252519081900360200190f35b6101806108f2565b61015b600480360360408110156101b057600080fd5b50803590602001356108f8565b610180610907565b61018061090d565b6101ea600480360360208110156101e357600080fd5b5035610913565b604080519115158252519081900360200190f35b610180610928565b61018061092f565b61022b6004803603602081101561022457600080fd5b5035610935565b60408051938452602084019290925282820152519081900360600190f35b6101806109d0565b61015b6004803603606081101561026757600080fd5b50803590602081013590604001356109d6565b61015b6004803603608081101561029057600080fd5b600160a060020a0382358116926020810135926040820135909216918101906080810160608201356401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b5090925090506109e7565b6103266004803603602081101561031f57600080fd5b5035610d02565b60408051600160a060020a03909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6101806004803603602081101561038d57600080fd5b5035610d65565b61015b600480360360408110156103aa57600080fd5b5080359060200135610d77565b610180600480360360208110156103cd57600080fd5b5035610d82565b61015b600480360360408110156103ea57600080fd5b5080359060200135610d9b565b600061040283610e51565b8054909150600160a060020a031633146104505760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f0b6037913960400191505060405180910390fd5b60058101548211156104965760405160e560020a62461bcd028152600401808060200182810382526059815260200180612e7f6059913960600191505060405180910390fd5b6000806104b0848460030154610ee190919063ffffffff16565b600384018190556083546084546104f1926104e292916104d6919063ffffffff610f2f16565b9063ffffffff610f9a16565b6084549063ffffffff610ee116565b60048401819055600384015461050c9163ffffffff610f2f16565b6005840181905560845460048501546105289291908190610ff7565b60ff16600281900a8204600686018190556007860154919450919250111561055557600683015460078401555b6000610586846005015461057a86600401548760070154610f2f90919063ffffffff16565b9063ffffffff610f2f16565b905060006105a960845461057a6084548860060154610f2f90919063ffffffff16565b905060006105bd838363ffffffff610f9a16565b60038701549091506105d5908263ffffffff610ee116565b60088701556080548654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b90529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b505115156106bb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc919081900360200190a25050505050505050565b6000610709612d26565b61071284610e51565b60408051610120810182528254600160a060020a031681526001830154602082015260028301549181019190915260038201546060820181905260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260089092015461010082015260855490925090610797908563ffffffff61113516565b11156107d75760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60e081015115156107eb57829150506108ec565b600080600061080786856060015161113590919063ffffffff16565b905060006108296104e26083546104d660845486610f2f90919063ffffffff16565b9050600061083d838363ffffffff610f2f16565b905061084f8160845460845485610ff7565b60e088015160ff9091169650909450600286900a85049060009061087f90849061057a908763ffffffff610f2f16565b60845490915060009061089c9061057a858263ffffffff610f2f16565b905060006108b0838363ffffffff610f9a16565b905060006108c4888363ffffffff610ee116565b90506108de8b610100015182610ee190919063ffffffff16565b9b5050505050505050505050505b92915050565b60855481565b610903338383611180565b5050565b60815481565b60845481565b60886020526000908152604090205460ff1681565b6086545b90565b60835481565b6000806000610942612d26565b61094b85610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290506109c281611549565b935093509350509193909250565b60825481565b6109e23384848461160b565b505050565b608054600160a060020a03848116911614610a4c576040805160e560020a62461bcd02815260206004820152600b60248201527f57726f6e6720746f6b656e000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314610aac576040805160e560020a62461bcd02815260206004820152600d60248201527f57726f6e67206163636f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60c4811115610b05576040805160e560020a62461bcd02815260206004820152600e60248201527f496e636f72726563742064617461000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080610b4a86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1a92505050565b92965090945092509050878214610bab576040805160e560020a62461bcd02815260206004820152600c60248201527f57726f6e6720616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f7e38d973000000000000000000000000000000000000000000000000000000001415610c0357610bfe8984848461160b565b610cf7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167fac769090000000000000000000000000000000000000000000000000000000001415610c5557610bfe898484611a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f2b3df690000000000000000000000000000000000000000000000000000000001415610ca757610bfe898484611180565b6040805160e560020a62461bcd02815260206004820152601560248201527f57726f6e67206d6574686f642073656c6563746f720000000000000000000000604482015290519081900360640190fd5b505050505050505050565b6086805482908110610d1057fe5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154600160a060020a0390971698509496939592949193909289565b60876020526000908152604090205481565b610903338383611a37565b600080610d8e83610e51565b600501549150505b919050565b6000828152608760205260408120546086805491929183908110610dbb57fe5b600091825260209091206009909102018054909150600160a060020a03163314610e195760405160e560020a62461bcd02815260040180806020018281038252602a815260200180612f64602a913960400191505060405180910390fd5b6002810183905560405184907f6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c590600090a250505050565b6000818152608760205260408120546086805482908110610e6e57fe5b90600052602060002090600902019150828260010154141515610edb576040805160e560020a62461bcd02815260206004820152601b60248201527f4572726f72206665746368696e6720636f727265637420646174610000000000604482015290519081900360640190fd5b50919050565b600081831015610f29576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b50900390565b6000821515610f40575060006108ec565b828202828482811515610f4f57fe5b0414610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b9392505050565b6000808211610fe1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b60008284811515610fee57fe5b04949350505050565b6000807002000000000000000000000000000000008610611062576040805160e560020a62461bcd02815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a890281151561107657fe5b04905070015bf0a8b1457695355fb8ac404e7a79e38110156110a25761109b81611e50565b91506110ae565b6110ab81612275565b91505b60008563ffffffff168763ffffffff1684028115156110c957fe5b0490507008000000000000000000000000000000008110156110fc576110ee81612343565b607f9450945050505061112c565b600061110782612750565b905061111f60ff607f8390031660020a83048261281a565b9550935061112c92505050565b94509492505050565b600082820183811015610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b600081116111c25760405160e560020a62461bcd028152600401808060200182810382526029815260200180612e566029913960400191505060405180910390fd5b60006111cd83610e51565b90506085546111e983836003015461113590919063ffffffff16565b11156112295760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60008061124384846003015461113590919063ffffffff16565b60038401819055608354608454611269926104e292916104d6919063ffffffff610f2f16565b6004840181905560038401546112849163ffffffff610f2f16565b6005840181905560845460048501546112a09291908190610ff7565b60ff16600281900a820460068601556005850154600486015460078701549295509293506000926112da9261057a9163ffffffff610f2f16565b905060006112fd60845461057a6084548860060154610f2f90919063ffffffff16565b90506000611311838363ffffffff610f9a16565b6003870154909150611329908263ffffffff610ee116565b6008870155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483015230602483015291518a93929092169163dd62ed3e91604480820192602092909190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b5051101561141f576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038c81166004830152306024830152604482018b9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50511515611504576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2919081900360200190a2505050505050505050565b6000806000806115686064866101000151610f9a90919063ffffffff16565b905060006115938660a001516104d6886080015161057a8a60c0015187610f2f90919063ffffffff16565b905060006115c2826115b68960e001518a60c00151610ee190919063ffffffff16565b9063ffffffff610ee116565b905060006115e18361057a848b60a00151610f9a90919063ffffffff16565b905060006115fa60845483610f9a90919063ffffffff16565b949993985093965091945050505050565b60008381526088602052604090205460ff1615611672576040805160e560020a62461bcd02815260206004820152601b60248201527f596f75206d757374207375626d6974206120756e697175652049440000000000604482015290519081900360640190fd5b600082116116b45760405160e560020a62461bcd028152600401808060200182810382526042815260200180612e146042913960600191505060405180910390fd5b6085548211156116f85760405160e560020a62461bcd028152600401808060200182810382526033815260200180612fc56033913960400191505060405180910390fd5b6086805490819061170c9060018301612d82565b50600060868281548110151561171e57fe5b60009182526020822060099190910201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161781556001810187905560028101859055600381018690556083546084549193508291611787916104e2916104d6908a90610f2f565b6004840181905560038401546117a29163ffffffff610f2f16565b6005840181905560845460048501546117be9291908190610ff7565b60ff16600281900a82046006860155600060078601819055600886018990558981526087602090815260408083208990556088825291829020805460ff1916600117905560805482517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116600483015230602483015293519497509495508a9492169263dd62ed3e926044808201939291829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505110156118f1576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152306024830152604482018a9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b505115156119d6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008830154604080519182525188917f868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c919081900360200190a25050505050505050565b602081015160248201516044830151606490930151919390929190565b6000611a4283610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915060009081908190611ac090611549565b91945092509050848114611b085760405160e560020a62461bcd028152600401808060200182810382526033815260200180612ed86033913960400191505060405180910390fd5b6005840154611b1d908663ffffffff610ee116565b60058501556007840154611b37908363ffffffff61113516565b60078501556008840154611b51908463ffffffff610ee116565b6008850155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015291518893929092169163dd62ed3e91604480820192602092909190829003018186803b158015611bc557600080fd5b505afa158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b50511015611c47576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015260448201899052915191909216916323b872dd9160648083019260209291908290030181600087803b158015611cbc57600080fd5b505af1158015611cd0573d6000803e3d6000fd5b505050506040513d6020811015611ce657600080fd5b50511515611d2c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6080548454604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018990529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6020811015611dc757600080fd5b50511515611e0d576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008840154604080519182525187917fa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528919081900360200190a250505050505050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610611e9f576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611ee8576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611f31576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610611f7a576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd38610611fc3576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a2861061200c576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610612055576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061209d576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106122b75760006122a1607f60020a8504612cbc565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561231757607f5b60008160ff16111561231557607f60020a848002049350700100000000000000000000000000000000841061230c576002938490049360ff600019830116900a91909101905b600019016122c6565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a8282028115156123be57fe5b04905080660c0135dca040000283019250607f60020a8282028115156123e057fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561240257fe5b049050806536e0f639b8000283019250607f60020a82820281151561242357fe5b04905080650618fee9f8000283019250607f60020a82820281151561244457fe5b04905080649c197dcc000283019250607f60020a82820281151561246457fe5b04905080640e30dce4000283019250607f60020a82820281151561248457fe5b0490508064012ebd13000283019250607f60020a8282028115156124a457fe5b049050806317499f000283019250607f60020a8282028115156124c357fe5b049050806301a9d4800283019250607f60020a8282028115156124e257fe5b04905080621c63800283019250607f60020a82820281151561250057fe5b049050806201c6380283019250607f60020a82820281151561251e57fe5b04905080611ab80283019250607f60020a82820281151561253b57fe5b0490508061017c0283019250607f60020a82820281151561255857fe5b0490508060140283019250607f60020a82820281151561257457fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156125d15770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612613577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612654576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612688576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b7001000000000000000000000000000000008516156126c9576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612709576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612747576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f5b8060ff168260010160ff16101561279f576000600260ff8484011604905084600060ff83166080811061278657fe5b01541061279557809250612799565b8091505b50612757565b83600060ff8316608081106127b057fe5b0154106127c0579150610d969050565b83600060ff8416608081106127d157fe5b0154106127e057509050610d96565b60405160e560020a62461bcd028152600401808060200182810382526022815260200180612f426022913960400191505060405180910390fd5b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515612cb057fe5b04010195945050505050565b600080610100831015612ce6575b6001831115612ce157600290920491600101612cca565b6108ec565b60805b60008160ff161115612d1f5760ff811660020a8410612d125760ff811660020a90930492908117905b600260ff90911604612ce9565b5092915050565b610120604051908101604052806000600160a060020a0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156109e2576000838152602090206109e29161092c9160099182028101918502015b80821115612e0f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820155600901612dac565b509056fe596f75206d757374207370656e6420736f6d6520534e5420746f207375626d697420612072616e6b696e6720696e206f7264657220746f2061766f6964207370616d596f75206d7573742073656e6420736f6d6520534e5420696e206f7264657220746f207570766f7465596f752063616e206f6e6c7920776974686472617720612070657263656e74616765206f662074686520534e54207374616b65642c206c657373207768617420796f75206861766520616c7265616479207265636569766564496e636f727265637420616d6f756e743a2076616c69642069666620656666656374206f6e2072616e6b696e672069732031254f6e6c792074686520646576656c6f7065722063616e20776974686472617720534e54207374616b6564206f6e20746869732064617461436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6e4f6e6c792074686520646576656c6f7065722063616e2075706461746520746865206d65746164617461596f752063616e6e6f74207570766f74652062792074686973206d7563682c2074727920776974682061206c6f77657220616d6f756e74596f752063616e6e6f74207374616b65206d6f726520534e54207468616e20746865206365696c696e672064696374617465735472616e73666572206661696c65640000000000000000000000000000000000536166654d617468206661696c65640000000000000000000000000000000000a165627a7a7230582088c0d57abd0b5582d10dd85da06c76f9334584e6eab81d3aa605f38102c397f10029', + runtimeBytecode: + '608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636fe39f64116100bf5780639640fe351161008e5780639640fe3514610309578063ac56f70f14610377578063ac76909014610394578063cb2b6d26146103b7578063d3525adf146103d457610133565b80636fe39f641461020e578063753ed1bd146102495780637e38d973146102515780638f4ffcb11461027a57610133565b80632ddbd13a116101065780632ddbd13a146101bd578063313ce567146101c557806357073d4b146101cd5780635ecaa4ff146101fe5780636ac5db191461020657610133565b8063040cf020146101385780631248edd11461015d578063199e1698146101925780632b3df6901461019a575b600080fd5b61015b6004803603604081101561014e57600080fd5b50803590602001356103f7565b005b6101806004803603604081101561017357600080fd5b50803590602001356106ff565b60408051918252519081900360200190f35b6101806108f2565b61015b600480360360408110156101b057600080fd5b50803590602001356108f8565b610180610907565b61018061090d565b6101ea600480360360208110156101e357600080fd5b5035610913565b604080519115158252519081900360200190f35b610180610928565b61018061092f565b61022b6004803603602081101561022457600080fd5b5035610935565b60408051938452602084019290925282820152519081900360600190f35b6101806109d0565b61015b6004803603606081101561026757600080fd5b50803590602081013590604001356109d6565b61015b6004803603608081101561029057600080fd5b600160a060020a0382358116926020810135926040820135909216918101906080810160608201356401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b5090925090506109e7565b6103266004803603602081101561031f57600080fd5b5035610d02565b60408051600160a060020a03909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6101806004803603602081101561038d57600080fd5b5035610d65565b61015b600480360360408110156103aa57600080fd5b5080359060200135610d77565b610180600480360360208110156103cd57600080fd5b5035610d82565b61015b600480360360408110156103ea57600080fd5b5080359060200135610d9b565b600061040283610e51565b8054909150600160a060020a031633146104505760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f0b6037913960400191505060405180910390fd5b60058101548211156104965760405160e560020a62461bcd028152600401808060200182810382526059815260200180612e7f6059913960600191505060405180910390fd5b6000806104b0848460030154610ee190919063ffffffff16565b600384018190556083546084546104f1926104e292916104d6919063ffffffff610f2f16565b9063ffffffff610f9a16565b6084549063ffffffff610ee116565b60048401819055600384015461050c9163ffffffff610f2f16565b6005840181905560845460048501546105289291908190610ff7565b60ff16600281900a8204600686018190556007860154919450919250111561055557600683015460078401555b6000610586846005015461057a86600401548760070154610f2f90919063ffffffff16565b9063ffffffff610f2f16565b905060006105a960845461057a6084548860060154610f2f90919063ffffffff16565b905060006105bd838363ffffffff610f9a16565b60038701549091506105d5908263ffffffff610ee116565b60088701556080548654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b90529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b505115156106bb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc919081900360200190a25050505050505050565b6000610709612d26565b61071284610e51565b60408051610120810182528254600160a060020a031681526001830154602082015260028301549181019190915260038201546060820181905260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260089092015461010082015260855490925090610797908563ffffffff61113516565b11156107d75760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60e081015115156107eb57829150506108ec565b600080600061080786856060015161113590919063ffffffff16565b905060006108296104e26083546104d660845486610f2f90919063ffffffff16565b9050600061083d838363ffffffff610f2f16565b905061084f8160845460845485610ff7565b60e088015160ff9091169650909450600286900a85049060009061087f90849061057a908763ffffffff610f2f16565b60845490915060009061089c9061057a858263ffffffff610f2f16565b905060006108b0838363ffffffff610f9a16565b905060006108c4888363ffffffff610ee116565b90506108de8b610100015182610ee190919063ffffffff16565b9b5050505050505050505050505b92915050565b60855481565b610903338383611180565b5050565b60815481565b60845481565b60886020526000908152604090205460ff1681565b6086545b90565b60835481565b6000806000610942612d26565b61094b85610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290506109c281611549565b935093509350509193909250565b60825481565b6109e23384848461160b565b505050565b608054600160a060020a03848116911614610a4c576040805160e560020a62461bcd02815260206004820152600b60248201527f57726f6e6720746f6b656e000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314610aac576040805160e560020a62461bcd02815260206004820152600d60248201527f57726f6e67206163636f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60c4811115610b05576040805160e560020a62461bcd02815260206004820152600e60248201527f496e636f72726563742064617461000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080610b4a86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1a92505050565b92965090945092509050878214610bab576040805160e560020a62461bcd02815260206004820152600c60248201527f57726f6e6720616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f7e38d973000000000000000000000000000000000000000000000000000000001415610c0357610bfe8984848461160b565b610cf7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167fac769090000000000000000000000000000000000000000000000000000000001415610c5557610bfe898484611a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f2b3df690000000000000000000000000000000000000000000000000000000001415610ca757610bfe898484611180565b6040805160e560020a62461bcd02815260206004820152601560248201527f57726f6e67206d6574686f642073656c6563746f720000000000000000000000604482015290519081900360640190fd5b505050505050505050565b6086805482908110610d1057fe5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154600160a060020a0390971698509496939592949193909289565b60876020526000908152604090205481565b610903338383611a37565b600080610d8e83610e51565b600501549150505b919050565b6000828152608760205260408120546086805491929183908110610dbb57fe5b600091825260209091206009909102018054909150600160a060020a03163314610e195760405160e560020a62461bcd02815260040180806020018281038252602a815260200180612f64602a913960400191505060405180910390fd5b6002810183905560405184907f6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c590600090a250505050565b6000818152608760205260408120546086805482908110610e6e57fe5b90600052602060002090600902019150828260010154141515610edb576040805160e560020a62461bcd02815260206004820152601b60248201527f4572726f72206665746368696e6720636f727265637420646174610000000000604482015290519081900360640190fd5b50919050565b600081831015610f29576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b50900390565b6000821515610f40575060006108ec565b828202828482811515610f4f57fe5b0414610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b9392505050565b6000808211610fe1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b60008284811515610fee57fe5b04949350505050565b6000807002000000000000000000000000000000008610611062576040805160e560020a62461bcd02815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a890281151561107657fe5b04905070015bf0a8b1457695355fb8ac404e7a79e38110156110a25761109b81611e50565b91506110ae565b6110ab81612275565b91505b60008563ffffffff168763ffffffff1684028115156110c957fe5b0490507008000000000000000000000000000000008110156110fc576110ee81612343565b607f9450945050505061112c565b600061110782612750565b905061111f60ff607f8390031660020a83048261281a565b9550935061112c92505050565b94509492505050565b600082820183811015610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b600081116111c25760405160e560020a62461bcd028152600401808060200182810382526029815260200180612e566029913960400191505060405180910390fd5b60006111cd83610e51565b90506085546111e983836003015461113590919063ffffffff16565b11156112295760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60008061124384846003015461113590919063ffffffff16565b60038401819055608354608454611269926104e292916104d6919063ffffffff610f2f16565b6004840181905560038401546112849163ffffffff610f2f16565b6005840181905560845460048501546112a09291908190610ff7565b60ff16600281900a820460068601556005850154600486015460078701549295509293506000926112da9261057a9163ffffffff610f2f16565b905060006112fd60845461057a6084548860060154610f2f90919063ffffffff16565b90506000611311838363ffffffff610f9a16565b6003870154909150611329908263ffffffff610ee116565b6008870155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483015230602483015291518a93929092169163dd62ed3e91604480820192602092909190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b5051101561141f576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038c81166004830152306024830152604482018b9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50511515611504576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2919081900360200190a2505050505050505050565b6000806000806115686064866101000151610f9a90919063ffffffff16565b905060006115938660a001516104d6886080015161057a8a60c0015187610f2f90919063ffffffff16565b905060006115c2826115b68960e001518a60c00151610ee190919063ffffffff16565b9063ffffffff610ee116565b905060006115e18361057a848b60a00151610f9a90919063ffffffff16565b905060006115fa60845483610f9a90919063ffffffff16565b949993985093965091945050505050565b60008381526088602052604090205460ff1615611672576040805160e560020a62461bcd02815260206004820152601b60248201527f596f75206d757374207375626d6974206120756e697175652049440000000000604482015290519081900360640190fd5b600082116116b45760405160e560020a62461bcd028152600401808060200182810382526042815260200180612e146042913960600191505060405180910390fd5b6085548211156116f85760405160e560020a62461bcd028152600401808060200182810382526033815260200180612fc56033913960400191505060405180910390fd5b6086805490819061170c9060018301612d82565b50600060868281548110151561171e57fe5b60009182526020822060099190910201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161781556001810187905560028101859055600381018690556083546084549193508291611787916104e2916104d6908a90610f2f565b6004840181905560038401546117a29163ffffffff610f2f16565b6005840181905560845460048501546117be9291908190610ff7565b60ff16600281900a82046006860155600060078601819055600886018990558981526087602090815260408083208990556088825291829020805460ff1916600117905560805482517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116600483015230602483015293519497509495508a9492169263dd62ed3e926044808201939291829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505110156118f1576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152306024830152604482018a9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b505115156119d6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008830154604080519182525188917f868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c919081900360200190a25050505050505050565b602081015160248201516044830151606490930151919390929190565b6000611a4283610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915060009081908190611ac090611549565b91945092509050848114611b085760405160e560020a62461bcd028152600401808060200182810382526033815260200180612ed86033913960400191505060405180910390fd5b6005840154611b1d908663ffffffff610ee116565b60058501556007840154611b37908363ffffffff61113516565b60078501556008840154611b51908463ffffffff610ee116565b6008850155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015291518893929092169163dd62ed3e91604480820192602092909190829003018186803b158015611bc557600080fd5b505afa158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b50511015611c47576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015260448201899052915191909216916323b872dd9160648083019260209291908290030181600087803b158015611cbc57600080fd5b505af1158015611cd0573d6000803e3d6000fd5b505050506040513d6020811015611ce657600080fd5b50511515611d2c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6080548454604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018990529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6020811015611dc757600080fd5b50511515611e0d576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008840154604080519182525187917fa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528919081900360200190a250505050505050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610611e9f576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611ee8576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611f31576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610611f7a576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd38610611fc3576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a2861061200c576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610612055576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061209d576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106122b75760006122a1607f60020a8504612cbc565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561231757607f5b60008160ff16111561231557607f60020a848002049350700100000000000000000000000000000000841061230c576002938490049360ff600019830116900a91909101905b600019016122c6565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a8282028115156123be57fe5b04905080660c0135dca040000283019250607f60020a8282028115156123e057fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561240257fe5b049050806536e0f639b8000283019250607f60020a82820281151561242357fe5b04905080650618fee9f8000283019250607f60020a82820281151561244457fe5b04905080649c197dcc000283019250607f60020a82820281151561246457fe5b04905080640e30dce4000283019250607f60020a82820281151561248457fe5b0490508064012ebd13000283019250607f60020a8282028115156124a457fe5b049050806317499f000283019250607f60020a8282028115156124c357fe5b049050806301a9d4800283019250607f60020a8282028115156124e257fe5b04905080621c63800283019250607f60020a82820281151561250057fe5b049050806201c6380283019250607f60020a82820281151561251e57fe5b04905080611ab80283019250607f60020a82820281151561253b57fe5b0490508061017c0283019250607f60020a82820281151561255857fe5b0490508060140283019250607f60020a82820281151561257457fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156125d15770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612613577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612654576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612688576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b7001000000000000000000000000000000008516156126c9576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612709576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612747576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f5b8060ff168260010160ff16101561279f576000600260ff8484011604905084600060ff83166080811061278657fe5b01541061279557809250612799565b8091505b50612757565b83600060ff8316608081106127b057fe5b0154106127c0579150610d969050565b83600060ff8416608081106127d157fe5b0154106127e057509050610d96565b60405160e560020a62461bcd028152600401808060200182810382526022815260200180612f426022913960400191505060405180910390fd5b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515612cb057fe5b04010195945050505050565b600080610100831015612ce6575b6001831115612ce157600290920491600101612cca565b6108ec565b60805b60008160ff161115612d1f5760ff811660020a8410612d125760ff811660020a90930492908117905b600260ff90911604612ce9565b5092915050565b610120604051908101604052806000600160a060020a0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156109e2576000838152602090206109e29161092c9160099182028101918502015b80821115612e0f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820155600901612dac565b509056fe596f75206d757374207370656e6420736f6d6520534e5420746f207375626d697420612072616e6b696e6720696e206f7264657220746f2061766f6964207370616d596f75206d7573742073656e6420736f6d6520534e5420696e206f7264657220746f207570766f7465596f752063616e206f6e6c7920776974686472617720612070657263656e74616765206f662074686520534e54207374616b65642c206c657373207768617420796f75206861766520616c7265616479207265636569766564496e636f727265637420616d6f756e743a2076616c69642069666620656666656374206f6e2072616e6b696e672069732031254f6e6c792074686520646576656c6f7065722063616e20776974686472617720534e54207374616b6564206f6e20746869732064617461436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6e4f6e6c792074686520646576656c6f7065722063616e2075706461746520746865206d65746164617461596f752063616e6e6f74207570766f74652062792074686973206d7563682c2074727920776974682061206c6f77657220616d6f756e74596f752063616e6e6f74207374616b65206d6f726520534e54207468616e20746865206365696c696e672064696374617465735472616e73666572206661696c65640000000000000000000000000000000000536166654d617468206661696c65640000000000000000000000000000000000a165627a7a7230582088c0d57abd0b5582d10dd85da06c76f9334584e6eab81d3aa605f38102c397f10029', + realRuntimeBytecode: + '608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636fe39f64116100bf5780639640fe351161008e5780639640fe3514610309578063ac56f70f14610377578063ac76909014610394578063cb2b6d26146103b7578063d3525adf146103d457610133565b80636fe39f641461020e578063753ed1bd146102495780637e38d973146102515780638f4ffcb11461027a57610133565b80632ddbd13a116101065780632ddbd13a146101bd578063313ce567146101c557806357073d4b146101cd5780635ecaa4ff146101fe5780636ac5db191461020657610133565b8063040cf020146101385780631248edd11461015d578063199e1698146101925780632b3df6901461019a575b600080fd5b61015b6004803603604081101561014e57600080fd5b50803590602001356103f7565b005b6101806004803603604081101561017357600080fd5b50803590602001356106ff565b60408051918252519081900360200190f35b6101806108f2565b61015b600480360360408110156101b057600080fd5b50803590602001356108f8565b610180610907565b61018061090d565b6101ea600480360360208110156101e357600080fd5b5035610913565b604080519115158252519081900360200190f35b610180610928565b61018061092f565b61022b6004803603602081101561022457600080fd5b5035610935565b60408051938452602084019290925282820152519081900360600190f35b6101806109d0565b61015b6004803603606081101561026757600080fd5b50803590602081013590604001356109d6565b61015b6004803603608081101561029057600080fd5b600160a060020a0382358116926020810135926040820135909216918101906080810160608201356401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b5090925090506109e7565b6103266004803603602081101561031f57600080fd5b5035610d02565b60408051600160a060020a03909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6101806004803603602081101561038d57600080fd5b5035610d65565b61015b600480360360408110156103aa57600080fd5b5080359060200135610d77565b610180600480360360208110156103cd57600080fd5b5035610d82565b61015b600480360360408110156103ea57600080fd5b5080359060200135610d9b565b600061040283610e51565b8054909150600160a060020a031633146104505760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f0b6037913960400191505060405180910390fd5b60058101548211156104965760405160e560020a62461bcd028152600401808060200182810382526059815260200180612e7f6059913960600191505060405180910390fd5b6000806104b0848460030154610ee190919063ffffffff16565b600384018190556083546084546104f1926104e292916104d6919063ffffffff610f2f16565b9063ffffffff610f9a16565b6084549063ffffffff610ee116565b60048401819055600384015461050c9163ffffffff610f2f16565b6005840181905560845460048501546105289291908190610ff7565b60ff16600281900a8204600686018190556007860154919450919250111561055557600683015460078401555b6000610586846005015461057a86600401548760070154610f2f90919063ffffffff16565b9063ffffffff610f2f16565b905060006105a960845461057a6084548860060154610f2f90919063ffffffff16565b905060006105bd838363ffffffff610f9a16565b60038701549091506105d5908263ffffffff610ee116565b60088701556080548654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b90529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b505115156106bb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc919081900360200190a25050505050505050565b6000610709612d26565b61071284610e51565b60408051610120810182528254600160a060020a031681526001830154602082015260028301549181019190915260038201546060820181905260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260089092015461010082015260855490925090610797908563ffffffff61113516565b11156107d75760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60e081015115156107eb57829150506108ec565b600080600061080786856060015161113590919063ffffffff16565b905060006108296104e26083546104d660845486610f2f90919063ffffffff16565b9050600061083d838363ffffffff610f2f16565b905061084f8160845460845485610ff7565b60e088015160ff9091169650909450600286900a85049060009061087f90849061057a908763ffffffff610f2f16565b60845490915060009061089c9061057a858263ffffffff610f2f16565b905060006108b0838363ffffffff610f9a16565b905060006108c4888363ffffffff610ee116565b90506108de8b610100015182610ee190919063ffffffff16565b9b5050505050505050505050505b92915050565b60855481565b610903338383611180565b5050565b60815481565b60845481565b60886020526000908152604090205460ff1681565b6086545b90565b60835481565b6000806000610942612d26565b61094b85610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290506109c281611549565b935093509350509193909250565b60825481565b6109e23384848461160b565b505050565b608054600160a060020a03848116911614610a4c576040805160e560020a62461bcd02815260206004820152600b60248201527f57726f6e6720746f6b656e000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314610aac576040805160e560020a62461bcd02815260206004820152600d60248201527f57726f6e67206163636f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60c4811115610b05576040805160e560020a62461bcd02815260206004820152600e60248201527f496e636f72726563742064617461000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080610b4a86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1a92505050565b92965090945092509050878214610bab576040805160e560020a62461bcd02815260206004820152600c60248201527f57726f6e6720616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f7e38d973000000000000000000000000000000000000000000000000000000001415610c0357610bfe8984848461160b565b610cf7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167fac769090000000000000000000000000000000000000000000000000000000001415610c5557610bfe898484611a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f2b3df690000000000000000000000000000000000000000000000000000000001415610ca757610bfe898484611180565b6040805160e560020a62461bcd02815260206004820152601560248201527f57726f6e67206d6574686f642073656c6563746f720000000000000000000000604482015290519081900360640190fd5b505050505050505050565b6086805482908110610d1057fe5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154600160a060020a0390971698509496939592949193909289565b60876020526000908152604090205481565b610903338383611a37565b600080610d8e83610e51565b600501549150505b919050565b6000828152608760205260408120546086805491929183908110610dbb57fe5b600091825260209091206009909102018054909150600160a060020a03163314610e195760405160e560020a62461bcd02815260040180806020018281038252602a815260200180612f64602a913960400191505060405180910390fd5b6002810183905560405184907f6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c590600090a250505050565b6000818152608760205260408120546086805482908110610e6e57fe5b90600052602060002090600902019150828260010154141515610edb576040805160e560020a62461bcd02815260206004820152601b60248201527f4572726f72206665746368696e6720636f727265637420646174610000000000604482015290519081900360640190fd5b50919050565b600081831015610f29576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b50900390565b6000821515610f40575060006108ec565b828202828482811515610f4f57fe5b0414610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b9392505050565b6000808211610fe1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b60008284811515610fee57fe5b04949350505050565b6000807002000000000000000000000000000000008610611062576040805160e560020a62461bcd02815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a890281151561107657fe5b04905070015bf0a8b1457695355fb8ac404e7a79e38110156110a25761109b81611e50565b91506110ae565b6110ab81612275565b91505b60008563ffffffff168763ffffffff1684028115156110c957fe5b0490507008000000000000000000000000000000008110156110fc576110ee81612343565b607f9450945050505061112c565b600061110782612750565b905061111f60ff607f8390031660020a83048261281a565b9550935061112c92505050565b94509492505050565b600082820183811015610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b600081116111c25760405160e560020a62461bcd028152600401808060200182810382526029815260200180612e566029913960400191505060405180910390fd5b60006111cd83610e51565b90506085546111e983836003015461113590919063ffffffff16565b11156112295760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60008061124384846003015461113590919063ffffffff16565b60038401819055608354608454611269926104e292916104d6919063ffffffff610f2f16565b6004840181905560038401546112849163ffffffff610f2f16565b6005840181905560845460048501546112a09291908190610ff7565b60ff16600281900a820460068601556005850154600486015460078701549295509293506000926112da9261057a9163ffffffff610f2f16565b905060006112fd60845461057a6084548860060154610f2f90919063ffffffff16565b90506000611311838363ffffffff610f9a16565b6003870154909150611329908263ffffffff610ee116565b6008870155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483015230602483015291518a93929092169163dd62ed3e91604480820192602092909190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b5051101561141f576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038c81166004830152306024830152604482018b9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50511515611504576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2919081900360200190a2505050505050505050565b6000806000806115686064866101000151610f9a90919063ffffffff16565b905060006115938660a001516104d6886080015161057a8a60c0015187610f2f90919063ffffffff16565b905060006115c2826115b68960e001518a60c00151610ee190919063ffffffff16565b9063ffffffff610ee116565b905060006115e18361057a848b60a00151610f9a90919063ffffffff16565b905060006115fa60845483610f9a90919063ffffffff16565b949993985093965091945050505050565b60008381526088602052604090205460ff1615611672576040805160e560020a62461bcd02815260206004820152601b60248201527f596f75206d757374207375626d6974206120756e697175652049440000000000604482015290519081900360640190fd5b600082116116b45760405160e560020a62461bcd028152600401808060200182810382526042815260200180612e146042913960600191505060405180910390fd5b6085548211156116f85760405160e560020a62461bcd028152600401808060200182810382526033815260200180612fc56033913960400191505060405180910390fd5b6086805490819061170c9060018301612d82565b50600060868281548110151561171e57fe5b60009182526020822060099190910201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161781556001810187905560028101859055600381018690556083546084549193508291611787916104e2916104d6908a90610f2f565b6004840181905560038401546117a29163ffffffff610f2f16565b6005840181905560845460048501546117be9291908190610ff7565b60ff16600281900a82046006860155600060078601819055600886018990558981526087602090815260408083208990556088825291829020805460ff1916600117905560805482517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116600483015230602483015293519497509495508a9492169263dd62ed3e926044808201939291829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505110156118f1576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152306024830152604482018a9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b505115156119d6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008830154604080519182525188917f868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c919081900360200190a25050505050505050565b602081015160248201516044830151606490930151919390929190565b6000611a4283610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915060009081908190611ac090611549565b91945092509050848114611b085760405160e560020a62461bcd028152600401808060200182810382526033815260200180612ed86033913960400191505060405180910390fd5b6005840154611b1d908663ffffffff610ee116565b60058501556007840154611b37908363ffffffff61113516565b60078501556008840154611b51908463ffffffff610ee116565b6008850155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015291518893929092169163dd62ed3e91604480820192602092909190829003018186803b158015611bc557600080fd5b505afa158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b50511015611c47576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015260448201899052915191909216916323b872dd9160648083019260209291908290030181600087803b158015611cbc57600080fd5b505af1158015611cd0573d6000803e3d6000fd5b505050506040513d6020811015611ce657600080fd5b50511515611d2c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6080548454604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018990529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6020811015611dc757600080fd5b50511515611e0d576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008840154604080519182525187917fa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528919081900360200190a250505050505050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610611e9f576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611ee8576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611f31576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610611f7a576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd38610611fc3576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a2861061200c576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610612055576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061209d576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106122b75760006122a1607f60020a8504612cbc565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561231757607f5b60008160ff16111561231557607f60020a848002049350700100000000000000000000000000000000841061230c576002938490049360ff600019830116900a91909101905b600019016122c6565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a8282028115156123be57fe5b04905080660c0135dca040000283019250607f60020a8282028115156123e057fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561240257fe5b049050806536e0f639b8000283019250607f60020a82820281151561242357fe5b04905080650618fee9f8000283019250607f60020a82820281151561244457fe5b04905080649c197dcc000283019250607f60020a82820281151561246457fe5b04905080640e30dce4000283019250607f60020a82820281151561248457fe5b0490508064012ebd13000283019250607f60020a8282028115156124a457fe5b049050806317499f000283019250607f60020a8282028115156124c357fe5b049050806301a9d4800283019250607f60020a8282028115156124e257fe5b04905080621c63800283019250607f60020a82820281151561250057fe5b049050806201c6380283019250607f60020a82820281151561251e57fe5b04905080611ab80283019250607f60020a82820281151561253b57fe5b0490508061017c0283019250607f60020a82820281151561255857fe5b0490508060140283019250607f60020a82820281151561257457fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156125d15770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612613577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612654576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612688576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b7001000000000000000000000000000000008516156126c9576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612709576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612747576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f5b8060ff168260010160ff16101561279f576000600260ff8484011604905084600060ff83166080811061278657fe5b01541061279557809250612799565b8091505b50612757565b83600060ff8316608081106127b057fe5b0154106127c0579150610d969050565b83600060ff8416608081106127d157fe5b0154106127e057509050610d96565b60405160e560020a62461bcd028152600401808060200182810382526022815260200180612f426022913960400191505060405180910390fd5b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515612cb057fe5b04010195945050505050565b600080610100831015612ce6575b6001831115612ce157600290920491600101612cca565b6108ec565b60805b60008160ff161115612d1f5760ff811660020a8410612d125760ff811660020a90930492908117905b600260ff90911604612ce9565b5092915050565b610120604051908101604052806000600160a060020a0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156109e2576000838152602090206109e29161092c9160099182028101918502015b80821115612e0f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820155600901612dac565b509056fe596f75206d757374207370656e6420736f6d6520534e5420746f207375626d697420612072616e6b696e6720696e206f7264657220746f2061766f6964207370616d596f75206d7573742073656e6420736f6d6520534e5420696e206f7264657220746f207570766f7465596f752063616e206f6e6c7920776974686472617720612070657263656e74616765206f662074686520534e54207374616b65642c206c657373207768617420796f75206861766520616c7265616479207265636569766564496e636f727265637420616d6f756e743a2076616c69642069666620656666656374206f6e2072616e6b696e672069732031254f6e6c792074686520646576656c6f7065722063616e20776974686472617720534e54207374616b6564206f6e20746869732064617461436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6e4f6e6c792074686520646576656c6f7065722063616e2075706461746520746865206d65746164617461596f752063616e6e6f74207570766f74652062792074686973206d7563682c2074727920776974682061206c6f77657220616d6f756e74596f752063616e6e6f74207374616b65206d6f726520534e54207468616e20746865206365696c696e672064696374617465735472616e73666572206661696c65640000000000000000000000000000000000536166654d617468206661696c65640000000000000000000000000000000000a165627a7a72305820', + linkReferences: {}, + swarmHash: + '88c0d57abd0b5582d10dd85da06c76f9334584e6eab81d3aa605f38102c397f1', + gasEstimates: { + creation: { + codeDepositCost: '2477400', + executionCost: 'infinite', + totalCost: 'infinite', + }, + external: { + 'ceiling()': '448', + 'createDApp(bytes32,uint256,bytes32)': 'infinite', + 'dapps(uint256)': '2798', + 'decimals()': '448', + 'downvote(bytes32,uint256)': 'infinite', + 'downvoteCost(bytes32)': 'infinite', + 'existingIDs(bytes32)': '590', + 'getDAppsCount()': '493', + 'id2index(bytes32)': '555', + 'max()': '514', + 'receiveApproval(address,uint256,address,bytes)': 'infinite', + 'safeMax()': '471', + 'setMetadata(bytes32,bytes32)': 'infinite', + 'total()': '426', + 'upvote(bytes32,uint256)': 'infinite', + 'upvoteEffect(bytes32,uint256)': 'infinite', + 'withdraw(bytes32,uint256)': 'infinite', + 'withdrawMax(bytes32)': '1398', + }, + internal: { + '_createDApp(address,bytes32,uint256,bytes32)': 'infinite', + '_downvote(address,bytes32,uint256)': 'infinite', + '_downvoteCost(struct Discover.Data memory)': 'infinite', + '_getDAppById(bytes32)': 'infinite', + '_upvote(address,bytes32,uint256)': 'infinite', + 'abiDecodeRegister(bytes memory)': 'infinite', + }, + }, + functionHashes: { + 'ceiling()': '753ed1bd', + 'createDApp(bytes32,uint256,bytes32)': '7e38d973', + 'dapps(uint256)': '9640fe35', + 'decimals()': '313ce567', + 'downvote(bytes32,uint256)': 'ac769090', + 'downvoteCost(bytes32)': '6fe39f64', + 'existingIDs(bytes32)': '57073d4b', + 'getDAppsCount()': '5ecaa4ff', + 'id2index(bytes32)': 'ac56f70f', + 'max()': '6ac5db19', + 'receiveApproval(address,uint256,address,bytes)': '8f4ffcb1', + 'safeMax()': '199e1698', + 'setMetadata(bytes32,bytes32)': 'd3525adf', + 'total()': '2ddbd13a', + 'upvote(bytes32,uint256)': '2b3df690', + 'upvoteEffect(bytes32,uint256)': '1248edd1', + 'withdraw(bytes32,uint256)': '040cf020', + 'withdrawMax(bytes32)': 'cb2b6d26', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'withdraw', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x040cf020', + }, + { + constant: true, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'upvoteEffect', + outputs: [{ name: 'effect', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x1248edd1', + }, + { + constant: true, + inputs: [], + name: 'safeMax', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x199e1698', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'upvote', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x2b3df690', + }, + { + constant: true, + inputs: [], + name: 'total', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x2ddbd13a', + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x313ce567', + }, + { + constant: true, + inputs: [{ name: '', type: 'bytes32' }], + name: 'existingIDs', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x57073d4b', + }, + { + constant: true, + inputs: [], + name: 'getDAppsCount', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x5ecaa4ff', + }, + { + constant: true, + inputs: [], + name: 'max', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x6ac5db19', + }, + { + constant: true, + inputs: [{ name: '_id', type: 'bytes32' }], + name: 'downvoteCost', + outputs: [ + { name: 'b', type: 'uint256' }, + { name: 'vR', type: 'uint256' }, + { name: 'c', type: 'uint256' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x6fe39f64', + }, + { + constant: true, + inputs: [], + name: 'ceiling', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x753ed1bd', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + { name: '_metadata', type: 'bytes32' }, + ], + name: 'createDApp', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x7e38d973', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_token', type: 'address' }, + { name: '_data', type: 'bytes' }, + ], + name: 'receiveApproval', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x8f4ffcb1', + }, + { + constant: true, + inputs: [{ name: '', type: 'uint256' }], + name: 'dapps', + outputs: [ + { name: 'developer', type: 'address' }, + { name: 'id', type: 'bytes32' }, + { name: 'metadata', type: 'bytes32' }, + { name: 'balance', type: 'uint256' }, + { name: 'rate', type: 'uint256' }, + { name: 'available', type: 'uint256' }, + { name: 'votesMinted', type: 'uint256' }, + { name: 'votesCast', type: 'uint256' }, + { name: 'effectiveBalance', type: 'uint256' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x9640fe35', + }, + { + constant: true, + inputs: [{ name: '', type: 'bytes32' }], + name: 'id2index', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xac56f70f', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'downvote', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xac769090', + }, + { + constant: true, + inputs: [{ name: '_id', type: 'bytes32' }], + name: 'withdrawMax', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xcb2b6d26', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_metadata', type: 'bytes32' }, + ], + name: 'setMetadata', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xd3525adf', + }, + { + inputs: [{ name: '_SNT', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + signature: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'DAppCreated', + type: 'event', + signature: + '0x868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'Upvote', + type: 'event', + signature: + '0x967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'Downvote', + type: 'event', + signature: + '0xa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'Withdraw', + type: 'event', + signature: + '0x4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc', + }, + { + anonymous: false, + inputs: [{ indexed: true, name: 'id', type: 'bytes32' }], + name: 'MetadataUpdated', + type: 'event', + signature: + '0x6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c5', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/Discover.sol', + originalFilename: 'contracts/Discover.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/Discover.sol', + gas: 5877072, + gasPrice: '1000000000', + type: 'file', + deploy: true, + _gasLimit: 6000000, + error: false, + deploymentAccount: '0x299C59D7324f34Dc217B951d7340A94D186A6129', + realArgs: ['0x25B1bD06fBfC2CbDbFc174e10f1B78b1c91cc77B'], + deployedAddress: '0xad28BF7423874B678dFAFb526433c62624dcaB45', + transactionHash: + '0xaa1754c81c096946cf693ac35208e53f5d5aa64c3da3fc6c170333dc7d8b3c10', + }, + address: '0xad28BF7423874B678dFAFb526433c62624dcaB45', + code: + '60806040523480156200001157600080fd5b5060405160208062003a0c833981018060405260208110156200003357600080fd5b50516001606060020a641c35fedd1502036020556001605e60020a646c3390ecc902036021556001606160020a640cf801476102036022556001605f60020a6431bdb23e1d02036023556001605b60020a6502fb1d8fe08302036024556001605a60020a6505b771955b3702036025556001605960020a650af67a93bb5102036026556001605860020a6515060c256cb302036027556001605860020a651428a2f98d7302036028556001605660020a654d515663970902036029556001605560020a65944620b0e70f0203602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d556001608360020a03603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e556001608160020a03605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e6607f5560808054600160a060020a031916600160a060020a0383161790556401959a141e60818190556101246082819055620f42406084819055620008449290916200082f919064010000000062000877810262000f2f1704565b9064010000000062000f9a6200091182021704565b60838190556200086d906064906200082f90604d9064010000000062000f2f6200087782021704565b6085555062000999565b60008215156200088a575060006200090b565b8282028284828115156200089a57fe5b04146200090857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f536166654d617468206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b90505b92915050565b60008082116200098257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f536166654d617468206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b600082848115156200099057fe5b04949350505050565b61306380620009a96000396000f3fe608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636fe39f64116100bf5780639640fe351161008e5780639640fe3514610309578063ac56f70f14610377578063ac76909014610394578063cb2b6d26146103b7578063d3525adf146103d457610133565b80636fe39f641461020e578063753ed1bd146102495780637e38d973146102515780638f4ffcb11461027a57610133565b80632ddbd13a116101065780632ddbd13a146101bd578063313ce567146101c557806357073d4b146101cd5780635ecaa4ff146101fe5780636ac5db191461020657610133565b8063040cf020146101385780631248edd11461015d578063199e1698146101925780632b3df6901461019a575b600080fd5b61015b6004803603604081101561014e57600080fd5b50803590602001356103f7565b005b6101806004803603604081101561017357600080fd5b50803590602001356106ff565b60408051918252519081900360200190f35b6101806108f2565b61015b600480360360408110156101b057600080fd5b50803590602001356108f8565b610180610907565b61018061090d565b6101ea600480360360208110156101e357600080fd5b5035610913565b604080519115158252519081900360200190f35b610180610928565b61018061092f565b61022b6004803603602081101561022457600080fd5b5035610935565b60408051938452602084019290925282820152519081900360600190f35b6101806109d0565b61015b6004803603606081101561026757600080fd5b50803590602081013590604001356109d6565b61015b6004803603608081101561029057600080fd5b600160a060020a0382358116926020810135926040820135909216918101906080810160608201356401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b5090925090506109e7565b6103266004803603602081101561031f57600080fd5b5035610d02565b60408051600160a060020a03909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6101806004803603602081101561038d57600080fd5b5035610d65565b61015b600480360360408110156103aa57600080fd5b5080359060200135610d77565b610180600480360360208110156103cd57600080fd5b5035610d82565b61015b600480360360408110156103ea57600080fd5b5080359060200135610d9b565b600061040283610e51565b8054909150600160a060020a031633146104505760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f0b6037913960400191505060405180910390fd5b60058101548211156104965760405160e560020a62461bcd028152600401808060200182810382526059815260200180612e7f6059913960600191505060405180910390fd5b6000806104b0848460030154610ee190919063ffffffff16565b600384018190556083546084546104f1926104e292916104d6919063ffffffff610f2f16565b9063ffffffff610f9a16565b6084549063ffffffff610ee116565b60048401819055600384015461050c9163ffffffff610f2f16565b6005840181905560845460048501546105289291908190610ff7565b60ff16600281900a8204600686018190556007860154919450919250111561055557600683015460078401555b6000610586846005015461057a86600401548760070154610f2f90919063ffffffff16565b9063ffffffff610f2f16565b905060006105a960845461057a6084548860060154610f2f90919063ffffffff16565b905060006105bd838363ffffffff610f9a16565b60038701549091506105d5908263ffffffff610ee116565b60088701556080548654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b90529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b505115156106bb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc919081900360200190a25050505050505050565b6000610709612d26565b61071284610e51565b60408051610120810182528254600160a060020a031681526001830154602082015260028301549181019190915260038201546060820181905260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260089092015461010082015260855490925090610797908563ffffffff61113516565b11156107d75760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60e081015115156107eb57829150506108ec565b600080600061080786856060015161113590919063ffffffff16565b905060006108296104e26083546104d660845486610f2f90919063ffffffff16565b9050600061083d838363ffffffff610f2f16565b905061084f8160845460845485610ff7565b60e088015160ff9091169650909450600286900a85049060009061087f90849061057a908763ffffffff610f2f16565b60845490915060009061089c9061057a858263ffffffff610f2f16565b905060006108b0838363ffffffff610f9a16565b905060006108c4888363ffffffff610ee116565b90506108de8b610100015182610ee190919063ffffffff16565b9b5050505050505050505050505b92915050565b60855481565b610903338383611180565b5050565b60815481565b60845481565b60886020526000908152604090205460ff1681565b6086545b90565b60835481565b6000806000610942612d26565b61094b85610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290506109c281611549565b935093509350509193909250565b60825481565b6109e23384848461160b565b505050565b608054600160a060020a03848116911614610a4c576040805160e560020a62461bcd02815260206004820152600b60248201527f57726f6e6720746f6b656e000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314610aac576040805160e560020a62461bcd02815260206004820152600d60248201527f57726f6e67206163636f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60c4811115610b05576040805160e560020a62461bcd02815260206004820152600e60248201527f496e636f72726563742064617461000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080610b4a86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1a92505050565b92965090945092509050878214610bab576040805160e560020a62461bcd02815260206004820152600c60248201527f57726f6e6720616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f7e38d973000000000000000000000000000000000000000000000000000000001415610c0357610bfe8984848461160b565b610cf7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167fac769090000000000000000000000000000000000000000000000000000000001415610c5557610bfe898484611a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f2b3df690000000000000000000000000000000000000000000000000000000001415610ca757610bfe898484611180565b6040805160e560020a62461bcd02815260206004820152601560248201527f57726f6e67206d6574686f642073656c6563746f720000000000000000000000604482015290519081900360640190fd5b505050505050505050565b6086805482908110610d1057fe5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154600160a060020a0390971698509496939592949193909289565b60876020526000908152604090205481565b610903338383611a37565b600080610d8e83610e51565b600501549150505b919050565b6000828152608760205260408120546086805491929183908110610dbb57fe5b600091825260209091206009909102018054909150600160a060020a03163314610e195760405160e560020a62461bcd02815260040180806020018281038252602a815260200180612f64602a913960400191505060405180910390fd5b6002810183905560405184907f6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c590600090a250505050565b6000818152608760205260408120546086805482908110610e6e57fe5b90600052602060002090600902019150828260010154141515610edb576040805160e560020a62461bcd02815260206004820152601b60248201527f4572726f72206665746368696e6720636f727265637420646174610000000000604482015290519081900360640190fd5b50919050565b600081831015610f29576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b50900390565b6000821515610f40575060006108ec565b828202828482811515610f4f57fe5b0414610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b9392505050565b6000808211610fe1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b60008284811515610fee57fe5b04949350505050565b6000807002000000000000000000000000000000008610611062576040805160e560020a62461bcd02815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a890281151561107657fe5b04905070015bf0a8b1457695355fb8ac404e7a79e38110156110a25761109b81611e50565b91506110ae565b6110ab81612275565b91505b60008563ffffffff168763ffffffff1684028115156110c957fe5b0490507008000000000000000000000000000000008110156110fc576110ee81612343565b607f9450945050505061112c565b600061110782612750565b905061111f60ff607f8390031660020a83048261281a565b9550935061112c92505050565b94509492505050565b600082820183811015610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b600081116111c25760405160e560020a62461bcd028152600401808060200182810382526029815260200180612e566029913960400191505060405180910390fd5b60006111cd83610e51565b90506085546111e983836003015461113590919063ffffffff16565b11156112295760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60008061124384846003015461113590919063ffffffff16565b60038401819055608354608454611269926104e292916104d6919063ffffffff610f2f16565b6004840181905560038401546112849163ffffffff610f2f16565b6005840181905560845460048501546112a09291908190610ff7565b60ff16600281900a820460068601556005850154600486015460078701549295509293506000926112da9261057a9163ffffffff610f2f16565b905060006112fd60845461057a6084548860060154610f2f90919063ffffffff16565b90506000611311838363ffffffff610f9a16565b6003870154909150611329908263ffffffff610ee116565b6008870155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483015230602483015291518a93929092169163dd62ed3e91604480820192602092909190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b5051101561141f576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038c81166004830152306024830152604482018b9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50511515611504576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2919081900360200190a2505050505050505050565b6000806000806115686064866101000151610f9a90919063ffffffff16565b905060006115938660a001516104d6886080015161057a8a60c0015187610f2f90919063ffffffff16565b905060006115c2826115b68960e001518a60c00151610ee190919063ffffffff16565b9063ffffffff610ee116565b905060006115e18361057a848b60a00151610f9a90919063ffffffff16565b905060006115fa60845483610f9a90919063ffffffff16565b949993985093965091945050505050565b60008381526088602052604090205460ff1615611672576040805160e560020a62461bcd02815260206004820152601b60248201527f596f75206d757374207375626d6974206120756e697175652049440000000000604482015290519081900360640190fd5b600082116116b45760405160e560020a62461bcd028152600401808060200182810382526042815260200180612e146042913960600191505060405180910390fd5b6085548211156116f85760405160e560020a62461bcd028152600401808060200182810382526033815260200180612fc56033913960400191505060405180910390fd5b6086805490819061170c9060018301612d82565b50600060868281548110151561171e57fe5b60009182526020822060099190910201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161781556001810187905560028101859055600381018690556083546084549193508291611787916104e2916104d6908a90610f2f565b6004840181905560038401546117a29163ffffffff610f2f16565b6005840181905560845460048501546117be9291908190610ff7565b60ff16600281900a82046006860155600060078601819055600886018990558981526087602090815260408083208990556088825291829020805460ff1916600117905560805482517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116600483015230602483015293519497509495508a9492169263dd62ed3e926044808201939291829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505110156118f1576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152306024830152604482018a9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b505115156119d6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008830154604080519182525188917f868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c919081900360200190a25050505050505050565b602081015160248201516044830151606490930151919390929190565b6000611a4283610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915060009081908190611ac090611549565b91945092509050848114611b085760405160e560020a62461bcd028152600401808060200182810382526033815260200180612ed86033913960400191505060405180910390fd5b6005840154611b1d908663ffffffff610ee116565b60058501556007840154611b37908363ffffffff61113516565b60078501556008840154611b51908463ffffffff610ee116565b6008850155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015291518893929092169163dd62ed3e91604480820192602092909190829003018186803b158015611bc557600080fd5b505afa158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b50511015611c47576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015260448201899052915191909216916323b872dd9160648083019260209291908290030181600087803b158015611cbc57600080fd5b505af1158015611cd0573d6000803e3d6000fd5b505050506040513d6020811015611ce657600080fd5b50511515611d2c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6080548454604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018990529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6020811015611dc757600080fd5b50511515611e0d576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008840154604080519182525187917fa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528919081900360200190a250505050505050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610611e9f576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611ee8576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611f31576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610611f7a576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd38610611fc3576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a2861061200c576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610612055576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061209d576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106122b75760006122a1607f60020a8504612cbc565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561231757607f5b60008160ff16111561231557607f60020a848002049350700100000000000000000000000000000000841061230c576002938490049360ff600019830116900a91909101905b600019016122c6565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a8282028115156123be57fe5b04905080660c0135dca040000283019250607f60020a8282028115156123e057fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561240257fe5b049050806536e0f639b8000283019250607f60020a82820281151561242357fe5b04905080650618fee9f8000283019250607f60020a82820281151561244457fe5b04905080649c197dcc000283019250607f60020a82820281151561246457fe5b04905080640e30dce4000283019250607f60020a82820281151561248457fe5b0490508064012ebd13000283019250607f60020a8282028115156124a457fe5b049050806317499f000283019250607f60020a8282028115156124c357fe5b049050806301a9d4800283019250607f60020a8282028115156124e257fe5b04905080621c63800283019250607f60020a82820281151561250057fe5b049050806201c6380283019250607f60020a82820281151561251e57fe5b04905080611ab80283019250607f60020a82820281151561253b57fe5b0490508061017c0283019250607f60020a82820281151561255857fe5b0490508060140283019250607f60020a82820281151561257457fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156125d15770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612613577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612654576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612688576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b7001000000000000000000000000000000008516156126c9576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612709576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612747576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f5b8060ff168260010160ff16101561279f576000600260ff8484011604905084600060ff83166080811061278657fe5b01541061279557809250612799565b8091505b50612757565b83600060ff8316608081106127b057fe5b0154106127c0579150610d969050565b83600060ff8416608081106127d157fe5b0154106127e057509050610d96565b60405160e560020a62461bcd028152600401808060200182810382526022815260200180612f426022913960400191505060405180910390fd5b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515612cb057fe5b04010195945050505050565b600080610100831015612ce6575b6001831115612ce157600290920491600101612cca565b6108ec565b60805b60008160ff161115612d1f5760ff811660020a8410612d125760ff811660020a90930492908117905b600260ff90911604612ce9565b5092915050565b610120604051908101604052806000600160a060020a0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156109e2576000838152602090206109e29161092c9160099182028101918502015b80821115612e0f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820155600901612dac565b509056fe596f75206d757374207370656e6420736f6d6520534e5420746f207375626d697420612072616e6b696e6720696e206f7264657220746f2061766f6964207370616d596f75206d7573742073656e6420736f6d6520534e5420696e206f7264657220746f207570766f7465596f752063616e206f6e6c7920776974686472617720612070657263656e74616765206f662074686520534e54207374616b65642c206c657373207768617420796f75206861766520616c7265616479207265636569766564496e636f727265637420616d6f756e743a2076616c69642069666620656666656374206f6e2072616e6b696e672069732031254f6e6c792074686520646576656c6f7065722063616e20776974686472617720534e54207374616b6564206f6e20746869732064617461436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6e4f6e6c792074686520646576656c6f7065722063616e2075706461746520746865206d65746164617461596f752063616e6e6f74207570766f74652062792074686973206d7563682c2074727920776974682061206c6f77657220616d6f756e74596f752063616e6e6f74207374616b65206d6f726520534e54207468616e20746865206365696c696e672064696374617465735472616e73666572206661696c65640000000000000000000000000000000000536166654d617468206661696c65640000000000000000000000000000000000a165627a7a7230582088c0d57abd0b5582d10dd85da06c76f9334584e6eab81d3aa605f38102c397f10029', + runtime_bytecode: + '608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636fe39f64116100bf5780639640fe351161008e5780639640fe3514610309578063ac56f70f14610377578063ac76909014610394578063cb2b6d26146103b7578063d3525adf146103d457610133565b80636fe39f641461020e578063753ed1bd146102495780637e38d973146102515780638f4ffcb11461027a57610133565b80632ddbd13a116101065780632ddbd13a146101bd578063313ce567146101c557806357073d4b146101cd5780635ecaa4ff146101fe5780636ac5db191461020657610133565b8063040cf020146101385780631248edd11461015d578063199e1698146101925780632b3df6901461019a575b600080fd5b61015b6004803603604081101561014e57600080fd5b50803590602001356103f7565b005b6101806004803603604081101561017357600080fd5b50803590602001356106ff565b60408051918252519081900360200190f35b6101806108f2565b61015b600480360360408110156101b057600080fd5b50803590602001356108f8565b610180610907565b61018061090d565b6101ea600480360360208110156101e357600080fd5b5035610913565b604080519115158252519081900360200190f35b610180610928565b61018061092f565b61022b6004803603602081101561022457600080fd5b5035610935565b60408051938452602084019290925282820152519081900360600190f35b6101806109d0565b61015b6004803603606081101561026757600080fd5b50803590602081013590604001356109d6565b61015b6004803603608081101561029057600080fd5b600160a060020a0382358116926020810135926040820135909216918101906080810160608201356401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b5090925090506109e7565b6103266004803603602081101561031f57600080fd5b5035610d02565b60408051600160a060020a03909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6101806004803603602081101561038d57600080fd5b5035610d65565b61015b600480360360408110156103aa57600080fd5b5080359060200135610d77565b610180600480360360208110156103cd57600080fd5b5035610d82565b61015b600480360360408110156103ea57600080fd5b5080359060200135610d9b565b600061040283610e51565b8054909150600160a060020a031633146104505760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f0b6037913960400191505060405180910390fd5b60058101548211156104965760405160e560020a62461bcd028152600401808060200182810382526059815260200180612e7f6059913960600191505060405180910390fd5b6000806104b0848460030154610ee190919063ffffffff16565b600384018190556083546084546104f1926104e292916104d6919063ffffffff610f2f16565b9063ffffffff610f9a16565b6084549063ffffffff610ee116565b60048401819055600384015461050c9163ffffffff610f2f16565b6005840181905560845460048501546105289291908190610ff7565b60ff16600281900a8204600686018190556007860154919450919250111561055557600683015460078401555b6000610586846005015461057a86600401548760070154610f2f90919063ffffffff16565b9063ffffffff610f2f16565b905060006105a960845461057a6084548860060154610f2f90919063ffffffff16565b905060006105bd838363ffffffff610f9a16565b60038701549091506105d5908263ffffffff610ee116565b60088701556080548654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b90529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b505115156106bb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc919081900360200190a25050505050505050565b6000610709612d26565b61071284610e51565b60408051610120810182528254600160a060020a031681526001830154602082015260028301549181019190915260038201546060820181905260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260089092015461010082015260855490925090610797908563ffffffff61113516565b11156107d75760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60e081015115156107eb57829150506108ec565b600080600061080786856060015161113590919063ffffffff16565b905060006108296104e26083546104d660845486610f2f90919063ffffffff16565b9050600061083d838363ffffffff610f2f16565b905061084f8160845460845485610ff7565b60e088015160ff9091169650909450600286900a85049060009061087f90849061057a908763ffffffff610f2f16565b60845490915060009061089c9061057a858263ffffffff610f2f16565b905060006108b0838363ffffffff610f9a16565b905060006108c4888363ffffffff610ee116565b90506108de8b610100015182610ee190919063ffffffff16565b9b5050505050505050505050505b92915050565b60855481565b610903338383611180565b5050565b60815481565b60845481565b60886020526000908152604090205460ff1681565b6086545b90565b60835481565b6000806000610942612d26565b61094b85610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290506109c281611549565b935093509350509193909250565b60825481565b6109e23384848461160b565b505050565b608054600160a060020a03848116911614610a4c576040805160e560020a62461bcd02815260206004820152600b60248201527f57726f6e6720746f6b656e000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314610aac576040805160e560020a62461bcd02815260206004820152600d60248201527f57726f6e67206163636f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60c4811115610b05576040805160e560020a62461bcd02815260206004820152600e60248201527f496e636f72726563742064617461000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080610b4a86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1a92505050565b92965090945092509050878214610bab576040805160e560020a62461bcd02815260206004820152600c60248201527f57726f6e6720616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f7e38d973000000000000000000000000000000000000000000000000000000001415610c0357610bfe8984848461160b565b610cf7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167fac769090000000000000000000000000000000000000000000000000000000001415610c5557610bfe898484611a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f2b3df690000000000000000000000000000000000000000000000000000000001415610ca757610bfe898484611180565b6040805160e560020a62461bcd02815260206004820152601560248201527f57726f6e67206d6574686f642073656c6563746f720000000000000000000000604482015290519081900360640190fd5b505050505050505050565b6086805482908110610d1057fe5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154600160a060020a0390971698509496939592949193909289565b60876020526000908152604090205481565b610903338383611a37565b600080610d8e83610e51565b600501549150505b919050565b6000828152608760205260408120546086805491929183908110610dbb57fe5b600091825260209091206009909102018054909150600160a060020a03163314610e195760405160e560020a62461bcd02815260040180806020018281038252602a815260200180612f64602a913960400191505060405180910390fd5b6002810183905560405184907f6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c590600090a250505050565b6000818152608760205260408120546086805482908110610e6e57fe5b90600052602060002090600902019150828260010154141515610edb576040805160e560020a62461bcd02815260206004820152601b60248201527f4572726f72206665746368696e6720636f727265637420646174610000000000604482015290519081900360640190fd5b50919050565b600081831015610f29576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b50900390565b6000821515610f40575060006108ec565b828202828482811515610f4f57fe5b0414610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b9392505050565b6000808211610fe1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b60008284811515610fee57fe5b04949350505050565b6000807002000000000000000000000000000000008610611062576040805160e560020a62461bcd02815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a890281151561107657fe5b04905070015bf0a8b1457695355fb8ac404e7a79e38110156110a25761109b81611e50565b91506110ae565b6110ab81612275565b91505b60008563ffffffff168763ffffffff1684028115156110c957fe5b0490507008000000000000000000000000000000008110156110fc576110ee81612343565b607f9450945050505061112c565b600061110782612750565b905061111f60ff607f8390031660020a83048261281a565b9550935061112c92505050565b94509492505050565b600082820183811015610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b600081116111c25760405160e560020a62461bcd028152600401808060200182810382526029815260200180612e566029913960400191505060405180910390fd5b60006111cd83610e51565b90506085546111e983836003015461113590919063ffffffff16565b11156112295760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60008061124384846003015461113590919063ffffffff16565b60038401819055608354608454611269926104e292916104d6919063ffffffff610f2f16565b6004840181905560038401546112849163ffffffff610f2f16565b6005840181905560845460048501546112a09291908190610ff7565b60ff16600281900a820460068601556005850154600486015460078701549295509293506000926112da9261057a9163ffffffff610f2f16565b905060006112fd60845461057a6084548860060154610f2f90919063ffffffff16565b90506000611311838363ffffffff610f9a16565b6003870154909150611329908263ffffffff610ee116565b6008870155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483015230602483015291518a93929092169163dd62ed3e91604480820192602092909190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b5051101561141f576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038c81166004830152306024830152604482018b9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50511515611504576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2919081900360200190a2505050505050505050565b6000806000806115686064866101000151610f9a90919063ffffffff16565b905060006115938660a001516104d6886080015161057a8a60c0015187610f2f90919063ffffffff16565b905060006115c2826115b68960e001518a60c00151610ee190919063ffffffff16565b9063ffffffff610ee116565b905060006115e18361057a848b60a00151610f9a90919063ffffffff16565b905060006115fa60845483610f9a90919063ffffffff16565b949993985093965091945050505050565b60008381526088602052604090205460ff1615611672576040805160e560020a62461bcd02815260206004820152601b60248201527f596f75206d757374207375626d6974206120756e697175652049440000000000604482015290519081900360640190fd5b600082116116b45760405160e560020a62461bcd028152600401808060200182810382526042815260200180612e146042913960600191505060405180910390fd5b6085548211156116f85760405160e560020a62461bcd028152600401808060200182810382526033815260200180612fc56033913960400191505060405180910390fd5b6086805490819061170c9060018301612d82565b50600060868281548110151561171e57fe5b60009182526020822060099190910201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161781556001810187905560028101859055600381018690556083546084549193508291611787916104e2916104d6908a90610f2f565b6004840181905560038401546117a29163ffffffff610f2f16565b6005840181905560845460048501546117be9291908190610ff7565b60ff16600281900a82046006860155600060078601819055600886018990558981526087602090815260408083208990556088825291829020805460ff1916600117905560805482517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116600483015230602483015293519497509495508a9492169263dd62ed3e926044808201939291829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505110156118f1576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152306024830152604482018a9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b505115156119d6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008830154604080519182525188917f868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c919081900360200190a25050505050505050565b602081015160248201516044830151606490930151919390929190565b6000611a4283610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915060009081908190611ac090611549565b91945092509050848114611b085760405160e560020a62461bcd028152600401808060200182810382526033815260200180612ed86033913960400191505060405180910390fd5b6005840154611b1d908663ffffffff610ee116565b60058501556007840154611b37908363ffffffff61113516565b60078501556008840154611b51908463ffffffff610ee116565b6008850155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015291518893929092169163dd62ed3e91604480820192602092909190829003018186803b158015611bc557600080fd5b505afa158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b50511015611c47576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015260448201899052915191909216916323b872dd9160648083019260209291908290030181600087803b158015611cbc57600080fd5b505af1158015611cd0573d6000803e3d6000fd5b505050506040513d6020811015611ce657600080fd5b50511515611d2c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6080548454604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018990529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6020811015611dc757600080fd5b50511515611e0d576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008840154604080519182525187917fa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528919081900360200190a250505050505050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610611e9f576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611ee8576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611f31576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610611f7a576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd38610611fc3576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a2861061200c576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610612055576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061209d576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106122b75760006122a1607f60020a8504612cbc565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561231757607f5b60008160ff16111561231557607f60020a848002049350700100000000000000000000000000000000841061230c576002938490049360ff600019830116900a91909101905b600019016122c6565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a8282028115156123be57fe5b04905080660c0135dca040000283019250607f60020a8282028115156123e057fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561240257fe5b049050806536e0f639b8000283019250607f60020a82820281151561242357fe5b04905080650618fee9f8000283019250607f60020a82820281151561244457fe5b04905080649c197dcc000283019250607f60020a82820281151561246457fe5b04905080640e30dce4000283019250607f60020a82820281151561248457fe5b0490508064012ebd13000283019250607f60020a8282028115156124a457fe5b049050806317499f000283019250607f60020a8282028115156124c357fe5b049050806301a9d4800283019250607f60020a8282028115156124e257fe5b04905080621c63800283019250607f60020a82820281151561250057fe5b049050806201c6380283019250607f60020a82820281151561251e57fe5b04905080611ab80283019250607f60020a82820281151561253b57fe5b0490508061017c0283019250607f60020a82820281151561255857fe5b0490508060140283019250607f60020a82820281151561257457fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156125d15770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612613577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612654576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612688576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b7001000000000000000000000000000000008516156126c9576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612709576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612747576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f5b8060ff168260010160ff16101561279f576000600260ff8484011604905084600060ff83166080811061278657fe5b01541061279557809250612799565b8091505b50612757565b83600060ff8316608081106127b057fe5b0154106127c0579150610d969050565b83600060ff8416608081106127d157fe5b0154106127e057509050610d96565b60405160e560020a62461bcd028152600401808060200182810382526022815260200180612f426022913960400191505060405180910390fd5b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515612cb057fe5b04010195945050505050565b600080610100831015612ce6575b6001831115612ce157600290920491600101612cca565b6108ec565b60805b60008160ff161115612d1f5760ff811660020a8410612d125760ff811660020a90930492908117905b600260ff90911604612ce9565b5092915050565b610120604051908101604052806000600160a060020a0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156109e2576000838152602090206109e29161092c9160099182028101918502015b80821115612e0f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820155600901612dac565b509056fe596f75206d757374207370656e6420736f6d6520534e5420746f207375626d697420612072616e6b696e6720696e206f7264657220746f2061766f6964207370616d596f75206d7573742073656e6420736f6d6520534e5420696e206f7264657220746f207570766f7465596f752063616e206f6e6c7920776974686472617720612070657263656e74616765206f662074686520534e54207374616b65642c206c657373207768617420796f75206861766520616c7265616479207265636569766564496e636f727265637420616d6f756e743a2076616c69642069666620656666656374206f6e2072616e6b696e672069732031254f6e6c792074686520646576656c6f7065722063616e20776974686472617720534e54207374616b6564206f6e20746869732064617461436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6e4f6e6c792074686520646576656c6f7065722063616e2075706461746520746865206d65746164617461596f752063616e6e6f74207570766f74652062792074686973206d7563682c2074727920776974682061206c6f77657220616d6f756e74596f752063616e6e6f74207374616b65206d6f726520534e54207468616e20746865206365696c696e672064696374617465735472616e73666572206661696c65640000000000000000000000000000000000536166654d617468206661696c65640000000000000000000000000000000000a165627a7a7230582088c0d57abd0b5582d10dd85da06c76f9334584e6eab81d3aa605f38102c397f10029', + real_runtime_bytecode: + '608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636fe39f64116100bf5780639640fe351161008e5780639640fe3514610309578063ac56f70f14610377578063ac76909014610394578063cb2b6d26146103b7578063d3525adf146103d457610133565b80636fe39f641461020e578063753ed1bd146102495780637e38d973146102515780638f4ffcb11461027a57610133565b80632ddbd13a116101065780632ddbd13a146101bd578063313ce567146101c557806357073d4b146101cd5780635ecaa4ff146101fe5780636ac5db191461020657610133565b8063040cf020146101385780631248edd11461015d578063199e1698146101925780632b3df6901461019a575b600080fd5b61015b6004803603604081101561014e57600080fd5b50803590602001356103f7565b005b6101806004803603604081101561017357600080fd5b50803590602001356106ff565b60408051918252519081900360200190f35b6101806108f2565b61015b600480360360408110156101b057600080fd5b50803590602001356108f8565b610180610907565b61018061090d565b6101ea600480360360208110156101e357600080fd5b5035610913565b604080519115158252519081900360200190f35b610180610928565b61018061092f565b61022b6004803603602081101561022457600080fd5b5035610935565b60408051938452602084019290925282820152519081900360600190f35b6101806109d0565b61015b6004803603606081101561026757600080fd5b50803590602081013590604001356109d6565b61015b6004803603608081101561029057600080fd5b600160a060020a0382358116926020810135926040820135909216918101906080810160608201356401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b5090925090506109e7565b6103266004803603602081101561031f57600080fd5b5035610d02565b60408051600160a060020a03909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6101806004803603602081101561038d57600080fd5b5035610d65565b61015b600480360360408110156103aa57600080fd5b5080359060200135610d77565b610180600480360360208110156103cd57600080fd5b5035610d82565b61015b600480360360408110156103ea57600080fd5b5080359060200135610d9b565b600061040283610e51565b8054909150600160a060020a031633146104505760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f0b6037913960400191505060405180910390fd5b60058101548211156104965760405160e560020a62461bcd028152600401808060200182810382526059815260200180612e7f6059913960600191505060405180910390fd5b6000806104b0848460030154610ee190919063ffffffff16565b600384018190556083546084546104f1926104e292916104d6919063ffffffff610f2f16565b9063ffffffff610f9a16565b6084549063ffffffff610ee116565b60048401819055600384015461050c9163ffffffff610f2f16565b6005840181905560845460048501546105289291908190610ff7565b60ff16600281900a8204600686018190556007860154919450919250111561055557600683015460078401555b6000610586846005015461057a86600401548760070154610f2f90919063ffffffff16565b9063ffffffff610f2f16565b905060006105a960845461057a6084548860060154610f2f90919063ffffffff16565b905060006105bd838363ffffffff610f9a16565b60038701549091506105d5908263ffffffff610ee116565b60088701556080548654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018b90529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b505115156106bb576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc919081900360200190a25050505050505050565b6000610709612d26565b61071284610e51565b60408051610120810182528254600160a060020a031681526001830154602082015260028301549181019190915260038201546060820181905260048301546080830152600583015460a0830152600683015460c0830152600783015460e083015260089092015461010082015260855490925090610797908563ffffffff61113516565b11156107d75760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60e081015115156107eb57829150506108ec565b600080600061080786856060015161113590919063ffffffff16565b905060006108296104e26083546104d660845486610f2f90919063ffffffff16565b9050600061083d838363ffffffff610f2f16565b905061084f8160845460845485610ff7565b60e088015160ff9091169650909450600286900a85049060009061087f90849061057a908763ffffffff610f2f16565b60845490915060009061089c9061057a858263ffffffff610f2f16565b905060006108b0838363ffffffff610f9a16565b905060006108c4888363ffffffff610ee116565b90506108de8b610100015182610ee190919063ffffffff16565b9b5050505050505050505050505b92915050565b60855481565b610903338383611180565b5050565b60815481565b60845481565b60886020526000908152604090205460ff1681565b6086545b90565b60835481565b6000806000610942612d26565b61094b85610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290506109c281611549565b935093509350509193909250565b60825481565b6109e23384848461160b565b505050565b608054600160a060020a03848116911614610a4c576040805160e560020a62461bcd02815260206004820152600b60248201527f57726f6e6720746f6b656e000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314610aac576040805160e560020a62461bcd02815260206004820152600d60248201527f57726f6e67206163636f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60c4811115610b05576040805160e560020a62461bcd02815260206004820152600e60248201527f496e636f72726563742064617461000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080610b4a86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1a92505050565b92965090945092509050878214610bab576040805160e560020a62461bcd02815260206004820152600c60248201527f57726f6e6720616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f7e38d973000000000000000000000000000000000000000000000000000000001415610c0357610bfe8984848461160b565b610cf7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167fac769090000000000000000000000000000000000000000000000000000000001415610c5557610bfe898484611a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1984167f2b3df690000000000000000000000000000000000000000000000000000000001415610ca757610bfe898484611180565b6040805160e560020a62461bcd02815260206004820152601560248201527f57726f6e67206d6574686f642073656c6563746f720000000000000000000000604482015290519081900360640190fd5b505050505050505050565b6086805482908110610d1057fe5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154600160a060020a0390971698509496939592949193909289565b60876020526000908152604090205481565b610903338383611a37565b600080610d8e83610e51565b600501549150505b919050565b6000828152608760205260408120546086805491929183908110610dbb57fe5b600091825260209091206009909102018054909150600160a060020a03163314610e195760405160e560020a62461bcd02815260040180806020018281038252602a815260200180612f64602a913960400191505060405180910390fd5b6002810183905560405184907f6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c590600090a250505050565b6000818152608760205260408120546086805482908110610e6e57fe5b90600052602060002090600902019150828260010154141515610edb576040805160e560020a62461bcd02815260206004820152601b60248201527f4572726f72206665746368696e6720636f727265637420646174610000000000604482015290519081900360640190fd5b50919050565b600081831015610f29576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b50900390565b6000821515610f40575060006108ec565b828202828482811515610f4f57fe5b0414610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b9392505050565b6000808211610fe1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b60008284811515610fee57fe5b04949350505050565b6000807002000000000000000000000000000000008610611062576040805160e560020a62461bcd02815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a890281151561107657fe5b04905070015bf0a8b1457695355fb8ac404e7a79e38110156110a25761109b81611e50565b91506110ae565b6110ab81612275565b91505b60008563ffffffff168763ffffffff1684028115156110c957fe5b0490507008000000000000000000000000000000008110156110fc576110ee81612343565b607f9450945050505061112c565b600061110782612750565b905061111f60ff607f8390031660020a83048261281a565b9550935061112c92505050565b94509492505050565b600082820183811015610f93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020613018833981519152604482015290519081900360640190fd5b600081116111c25760405160e560020a62461bcd028152600401808060200182810382526029815260200180612e566029913960400191505060405180910390fd5b60006111cd83610e51565b90506085546111e983836003015461113590919063ffffffff16565b11156112295760405160e560020a62461bcd028152600401808060200182810382526037815260200180612f8e6037913960400191505060405180910390fd5b60008061124384846003015461113590919063ffffffff16565b60038401819055608354608454611269926104e292916104d6919063ffffffff610f2f16565b6004840181905560038401546112849163ffffffff610f2f16565b6005840181905560845460048501546112a09291908190610ff7565b60ff16600281900a820460068601556005850154600486015460078701549295509293506000926112da9261057a9163ffffffff610f2f16565b905060006112fd60845461057a6084548860060154610f2f90919063ffffffff16565b90506000611311838363ffffffff610f9a16565b6003870154909150611329908263ffffffff610ee116565b6008870155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483015230602483015291518a93929092169163dd62ed3e91604480820192602092909190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b5051101561141f576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038c81166004830152306024830152604482018b9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50511515611504576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008860154604080519182525189917f967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2919081900360200190a2505050505050505050565b6000806000806115686064866101000151610f9a90919063ffffffff16565b905060006115938660a001516104d6886080015161057a8a60c0015187610f2f90919063ffffffff16565b905060006115c2826115b68960e001518a60c00151610ee190919063ffffffff16565b9063ffffffff610ee116565b905060006115e18361057a848b60a00151610f9a90919063ffffffff16565b905060006115fa60845483610f9a90919063ffffffff16565b949993985093965091945050505050565b60008381526088602052604090205460ff1615611672576040805160e560020a62461bcd02815260206004820152601b60248201527f596f75206d757374207375626d6974206120756e697175652049440000000000604482015290519081900360640190fd5b600082116116b45760405160e560020a62461bcd028152600401808060200182810382526042815260200180612e146042913960600191505060405180910390fd5b6085548211156116f85760405160e560020a62461bcd028152600401808060200182810382526033815260200180612fc56033913960400191505060405180910390fd5b6086805490819061170c9060018301612d82565b50600060868281548110151561171e57fe5b60009182526020822060099190910201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161781556001810187905560028101859055600381018690556083546084549193508291611787916104e2916104d6908a90610f2f565b6004840181905560038401546117a29163ffffffff610f2f16565b6005840181905560845460048501546117be9291908190610ff7565b60ff16600281900a82046006860155600060078601819055600886018990558981526087602090815260408083208990556088825291829020805460ff1916600117905560805482517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038e8116600483015230602483015293519497509495508a9492169263dd62ed3e926044808201939291829003018186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b505110156118f1576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152306024830152604482018a9052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561196657600080fd5b505af115801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b505115156119d6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008830154604080519182525188917f868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c919081900360200190a25050505050505050565b602081015160248201516044830151606490930151919390929190565b6000611a4283610e51565b60408051610120810182528254600160a060020a03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915060009081908190611ac090611549565b91945092509050848114611b085760405160e560020a62461bcd028152600401808060200182810382526033815260200180612ed86033913960400191505060405180910390fd5b6005840154611b1d908663ffffffff610ee116565b60058501556007840154611b37908363ffffffff61113516565b60078501556008840154611b51908463ffffffff610ee116565b6008850155608054604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015291518893929092169163dd62ed3e91604480820192602092909190829003018186803b158015611bc557600080fd5b505afa158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b50511015611c47576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820534e5420616c6c6f77616e63650000000000000000604482015290519081900360640190fd5b608054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015230602483015260448201899052915191909216916323b872dd9160648083019260209291908290030181600087803b158015611cbc57600080fd5b505af1158015611cd0573d6000803e3d6000fd5b505050506040513d6020811015611ce657600080fd5b50511515611d2c576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6080548454604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018990529051919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6020811015611dc757600080fd5b50511515611e0d576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612ff8833981519152604482015290519081900360640190fd5b6008840154604080519182525187917fa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528919081900360200190a250505050505050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610611e9f576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611ee8576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611f31576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610611f7a576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd38610611fc3576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a2861061200c576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610612055576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061209d576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106122b75760006122a1607f60020a8504612cbc565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561231757607f5b60008160ff16111561231557607f60020a848002049350700100000000000000000000000000000000841061230c576002938490049360ff600019830116900a91909101905b600019016122c6565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a8282028115156123be57fe5b04905080660c0135dca040000283019250607f60020a8282028115156123e057fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561240257fe5b049050806536e0f639b8000283019250607f60020a82820281151561242357fe5b04905080650618fee9f8000283019250607f60020a82820281151561244457fe5b04905080649c197dcc000283019250607f60020a82820281151561246457fe5b04905080640e30dce4000283019250607f60020a82820281151561248457fe5b0490508064012ebd13000283019250607f60020a8282028115156124a457fe5b049050806317499f000283019250607f60020a8282028115156124c357fe5b049050806301a9d4800283019250607f60020a8282028115156124e257fe5b04905080621c63800283019250607f60020a82820281151561250057fe5b049050806201c6380283019250607f60020a82820281151561251e57fe5b04905080611ab80283019250607f60020a82820281151561253b57fe5b0490508061017c0283019250607f60020a82820281151561255857fe5b0490508060140283019250607f60020a82820281151561257457fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156125d15770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612613577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612654576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612688576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b7001000000000000000000000000000000008516156126c9576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612709576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612747576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f5b8060ff168260010160ff16101561279f576000600260ff8484011604905084600060ff83166080811061278657fe5b01541061279557809250612799565b8091505b50612757565b83600060ff8316608081106127b057fe5b0154106127c0579150610d969050565b83600060ff8416608081106127d157fe5b0154106127e057509050610d96565b60405160e560020a62461bcd028152600401808060200182810382526022815260200180612f426022913960400191505060405180910390fd5b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515612cb057fe5b04010195945050505050565b600080610100831015612ce6575b6001831115612ce157600290920491600101612cca565b6108ec565b60805b60008160ff161115612d1f5760ff811660020a8410612d125760ff811660020a90930492908117905b600260ff90911604612ce9565b5092915050565b610120604051908101604052806000600160a060020a0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156109e2576000838152602090206109e29161092c9160099182028101918502015b80821115612e0f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782018190556008820155600901612dac565b509056fe596f75206d757374207370656e6420736f6d6520534e5420746f207375626d697420612072616e6b696e6720696e206f7264657220746f2061766f6964207370616d596f75206d7573742073656e6420736f6d6520534e5420696e206f7264657220746f207570766f7465596f752063616e206f6e6c7920776974686472617720612070657263656e74616765206f662074686520534e54207374616b65642c206c657373207768617420796f75206861766520616c7265616479207265636569766564496e636f727265637420616d6f756e743a2076616c69642069666620656666656374206f6e2072616e6b696e672069732031254f6e6c792074686520646576656c6f7065722063616e20776974686472617720534e54207374616b6564206f6e20746869732064617461436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6e4f6e6c792074686520646576656c6f7065722063616e2075706461746520746865206d65746164617461596f752063616e6e6f74207570766f74652062792074686973206d7563682c2074727920776974682061206c6f77657220616d6f756e74596f752063616e6e6f74207374616b65206d6f726520534e54207468616e20746865206365696c696e672064696374617465735472616e73666572206661696c65640000000000000000000000000000000000536166654d617468206661696c65640000000000000000000000000000000000a165627a7a72305820', + swarm_hash: + '88c0d57abd0b5582d10dd85da06c76f9334584e6eab81d3aa605f38102c397f1', + gas_estimates: { + creation: { + codeDepositCost: '2477400', + executionCost: 'infinite', + totalCost: 'infinite', + }, + external: { + 'ceiling()': '448', + 'createDApp(bytes32,uint256,bytes32)': 'infinite', + 'dapps(uint256)': '2798', + 'decimals()': '448', + 'downvote(bytes32,uint256)': 'infinite', + 'downvoteCost(bytes32)': 'infinite', + 'existingIDs(bytes32)': '590', + 'getDAppsCount()': '493', + 'id2index(bytes32)': '555', + 'max()': '514', + 'receiveApproval(address,uint256,address,bytes)': 'infinite', + 'safeMax()': '471', + 'setMetadata(bytes32,bytes32)': 'infinite', + 'total()': '426', + 'upvote(bytes32,uint256)': 'infinite', + 'upvoteEffect(bytes32,uint256)': 'infinite', + 'withdraw(bytes32,uint256)': 'infinite', + 'withdrawMax(bytes32)': '1398', + }, + internal: { + '_createDApp(address,bytes32,uint256,bytes32)': 'infinite', + '_downvote(address,bytes32,uint256)': 'infinite', + '_downvoteCost(struct Discover.Data memory)': 'infinite', + '_getDAppById(bytes32)': 'infinite', + '_upvote(address,bytes32,uint256)': 'infinite', + 'abiDecodeRegister(bytes memory)': 'infinite', + }, + }, + function_hashes: { + 'ceiling()': '753ed1bd', + 'createDApp(bytes32,uint256,bytes32)': '7e38d973', + 'dapps(uint256)': '9640fe35', + 'decimals()': '313ce567', + 'downvote(bytes32,uint256)': 'ac769090', + 'downvoteCost(bytes32)': '6fe39f64', + 'existingIDs(bytes32)': '57073d4b', + 'getDAppsCount()': '5ecaa4ff', + 'id2index(bytes32)': 'ac56f70f', + 'max()': '6ac5db19', + 'receiveApproval(address,uint256,address,bytes)': '8f4ffcb1', + 'safeMax()': '199e1698', + 'setMetadata(bytes32,bytes32)': 'd3525adf', + 'total()': '2ddbd13a', + 'upvote(bytes32,uint256)': '2b3df690', + 'upvoteEffect(bytes32,uint256)': '1248edd1', + 'withdraw(bytes32,uint256)': '040cf020', + 'withdrawMax(bytes32)': 'cb2b6d26', + }, + abi: [ + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'withdraw', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x040cf020', + }, + { + constant: true, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'upvoteEffect', + outputs: [{ name: 'effect', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x1248edd1', + }, + { + constant: true, + inputs: [], + name: 'safeMax', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x199e1698', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'upvote', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x2b3df690', + }, + { + constant: true, + inputs: [], + name: 'total', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x2ddbd13a', + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x313ce567', + }, + { + constant: true, + inputs: [{ name: '', type: 'bytes32' }], + name: 'existingIDs', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x57073d4b', + }, + { + constant: true, + inputs: [], + name: 'getDAppsCount', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x5ecaa4ff', + }, + { + constant: true, + inputs: [], + name: 'max', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x6ac5db19', + }, + { + constant: true, + inputs: [{ name: '_id', type: 'bytes32' }], + name: 'downvoteCost', + outputs: [ + { name: 'b', type: 'uint256' }, + { name: 'vR', type: 'uint256' }, + { name: 'c', type: 'uint256' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x6fe39f64', + }, + { + constant: true, + inputs: [], + name: 'ceiling', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x753ed1bd', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + { name: '_metadata', type: 'bytes32' }, + ], + name: 'createDApp', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x7e38d973', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_token', type: 'address' }, + { name: '_data', type: 'bytes' }, + ], + name: 'receiveApproval', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x8f4ffcb1', + }, + { + constant: true, + inputs: [{ name: '', type: 'uint256' }], + name: 'dapps', + outputs: [ + { name: 'developer', type: 'address' }, + { name: 'id', type: 'bytes32' }, + { name: 'metadata', type: 'bytes32' }, + { name: 'balance', type: 'uint256' }, + { name: 'rate', type: 'uint256' }, + { name: 'available', type: 'uint256' }, + { name: 'votesMinted', type: 'uint256' }, + { name: 'votesCast', type: 'uint256' }, + { name: 'effectiveBalance', type: 'uint256' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x9640fe35', + }, + { + constant: true, + inputs: [{ name: '', type: 'bytes32' }], + name: 'id2index', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xac56f70f', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'downvote', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xac769090', + }, + { + constant: true, + inputs: [{ name: '_id', type: 'bytes32' }], + name: 'withdrawMax', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xcb2b6d26', + }, + { + constant: false, + inputs: [ + { name: '_id', type: 'bytes32' }, + { name: '_metadata', type: 'bytes32' }, + ], + name: 'setMetadata', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xd3525adf', + }, + { + inputs: [{ name: '_SNT', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + signature: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'DAppCreated', + type: 'event', + signature: + '0x868bbbb32f410f6626146ffc2d5c58cfdb3f08798ea4965f55c2b7d30a6f9c6c', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'Upvote', + type: 'event', + signature: + '0x967f7d6ea4a44117f4cb822f761b5c76cbeac4c6ab5cfbaa59447574fa126bc2', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'Downvote', + type: 'event', + signature: + '0xa84d42fd75bca8f5ea3b11dc2aee00753b6ced6a669d6ad32396e1fef5b13528', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'id', type: 'bytes32' }, + { indexed: false, name: 'newEffectiveBalance', type: 'uint256' }, + ], + name: 'Withdraw', + type: 'event', + signature: + '0x4591ca0897d0d8e83f7153dfe0b2912125672084ab8d84be59ee13240a1778bc', + }, + { + anonymous: false, + inputs: [{ indexed: true, name: 'id', type: 'bytes32' }], + name: 'MetadataUpdated', + type: 'event', + signature: + '0x6e27af24ead46b4b469e383b46b4b75487fcf1ffce54d216add332f9de2120c5', + }, + ], +} +let Discover = new EmbarkJS.Blockchain.Contract(DiscoverJSONConfig) +export default Discover diff --git a/src/embarkArtifacts/contracts/ENSRegistry.js b/src/embarkArtifacts/contracts/ENSRegistry.js new file mode 100644 index 0000000..27183be --- /dev/null +++ b/src/embarkArtifacts/contracts/ENSRegistry.js @@ -0,0 +1,359 @@ +import EmbarkJS from '../embarkjs' +let ENSRegistryJSONConfig = { + contract_name: { + deploy: true, + silent: true, + args: [], + className: 'ENSRegistry', + code: + '608060405234801561001057600080fd5b5060008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58054600160a060020a03191633179055610684806100596000396000f3006080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100bb57806306ab5923146100d357806314ab9038146100fc57806316a25cbd146101215780631896f70a146101565780635b0fc9c31461017a575b600080fd5b34801561009357600080fd5b5061009f60043561019e565b60408051600160a060020a039092168252519081900360200190f35b3480156100c757600080fd5b5061009f6004356101bc565b3480156100df57600080fd5b506100fa600435602435600160a060020a03604435166101d7565b005b34801561010857600080fd5b506100fa60043567ffffffffffffffff6024351661033c565b34801561012d57600080fd5b5061013960043561044d565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561016257600080fd5b506100fa600435600160a060020a0360243516610484565b34801561018657600080fd5b506100fa600435600160a060020a036024351661056f565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b60008381526020819052604081205484908390600160a060020a031615806102155750600082815260208190526040902054600160a060020a031633145b806102395750600082815260208190526040902054600160a060020a038281169116145b151561024457600080fd5b604080516020808201899052818301889052825180830384018152606090920192839052815191929182918401908083835b602083106102955780518252601f199092019160209182019101610276565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600160a060020a038b16835293519398508a95508b94507fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829391829003019150a350506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040812054839190600160a060020a031615806103795750600082815260208190526040902054600160a060020a031633145b8061039d5750600082815260208190526040902054600160a060020a038281169116145b15156103a857600080fd5b6040805167ffffffffffffffff85168152905185917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040812054839190600160a060020a031615806104c15750600082815260208190526040902054600160a060020a031633145b806104e55750600082815260208190526040902054600160a060020a038281169116145b15156104f057600080fd5b60408051600160a060020a0385168152905185917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25050600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008281526020819052604090205482908290600160a060020a031615806105ad5750600082815260208190526040902054600160a060020a031633145b806105d15750600082815260208190526040902054600160a060020a038281169116145b15156105dc57600080fd5b60408051600160a060020a0385168152905185917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25050600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820ab29585bdb630f86714bdc052e84731ce84785d7ace426bc24c1104e8760968c0029', + runtimeBytecode: + '6080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100bb57806306ab5923146100d357806314ab9038146100fc57806316a25cbd146101215780631896f70a146101565780635b0fc9c31461017a575b600080fd5b34801561009357600080fd5b5061009f60043561019e565b60408051600160a060020a039092168252519081900360200190f35b3480156100c757600080fd5b5061009f6004356101bc565b3480156100df57600080fd5b506100fa600435602435600160a060020a03604435166101d7565b005b34801561010857600080fd5b506100fa60043567ffffffffffffffff6024351661033c565b34801561012d57600080fd5b5061013960043561044d565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561016257600080fd5b506100fa600435600160a060020a0360243516610484565b34801561018657600080fd5b506100fa600435600160a060020a036024351661056f565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b60008381526020819052604081205484908390600160a060020a031615806102155750600082815260208190526040902054600160a060020a031633145b806102395750600082815260208190526040902054600160a060020a038281169116145b151561024457600080fd5b604080516020808201899052818301889052825180830384018152606090920192839052815191929182918401908083835b602083106102955780518252601f199092019160209182019101610276565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600160a060020a038b16835293519398508a95508b94507fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829391829003019150a350506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040812054839190600160a060020a031615806103795750600082815260208190526040902054600160a060020a031633145b8061039d5750600082815260208190526040902054600160a060020a038281169116145b15156103a857600080fd5b6040805167ffffffffffffffff85168152905185917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040812054839190600160a060020a031615806104c15750600082815260208190526040902054600160a060020a031633145b806104e55750600082815260208190526040902054600160a060020a038281169116145b15156104f057600080fd5b60408051600160a060020a0385168152905185917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25050600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008281526020819052604090205482908290600160a060020a031615806105ad5750600082815260208190526040902054600160a060020a031633145b806105d15750600082815260208190526040902054600160a060020a038281169116145b15156105dc57600080fd5b60408051600160a060020a0385168152905185917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25050600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820ab29585bdb630f86714bdc052e84731ce84785d7ace426bc24c1104e8760968c0029', + realRuntimeBytecode: + '6080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100bb57806306ab5923146100d357806314ab9038146100fc57806316a25cbd146101215780631896f70a146101565780635b0fc9c31461017a575b600080fd5b34801561009357600080fd5b5061009f60043561019e565b60408051600160a060020a039092168252519081900360200190f35b3480156100c757600080fd5b5061009f6004356101bc565b3480156100df57600080fd5b506100fa600435602435600160a060020a03604435166101d7565b005b34801561010857600080fd5b506100fa60043567ffffffffffffffff6024351661033c565b34801561012d57600080fd5b5061013960043561044d565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561016257600080fd5b506100fa600435600160a060020a0360243516610484565b34801561018657600080fd5b506100fa600435600160a060020a036024351661056f565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b60008381526020819052604081205484908390600160a060020a031615806102155750600082815260208190526040902054600160a060020a031633145b806102395750600082815260208190526040902054600160a060020a038281169116145b151561024457600080fd5b604080516020808201899052818301889052825180830384018152606090920192839052815191929182918401908083835b602083106102955780518252601f199092019160209182019101610276565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600160a060020a038b16835293519398508a95508b94507fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829391829003019150a350506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040812054839190600160a060020a031615806103795750600082815260208190526040902054600160a060020a031633145b8061039d5750600082815260208190526040902054600160a060020a038281169116145b15156103a857600080fd5b6040805167ffffffffffffffff85168152905185917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040812054839190600160a060020a031615806104c15750600082815260208190526040902054600160a060020a031633145b806104e55750600082815260208190526040902054600160a060020a038281169116145b15156104f057600080fd5b60408051600160a060020a0385168152905185917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25050600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008281526020819052604090205482908290600160a060020a031615806105ad5750600082815260208190526040902054600160a060020a031633145b806105d15750600082815260208190526040902054600160a060020a038281169116145b15156105dc57600080fd5b60408051600160a060020a0385168152905185917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25050600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820', + swarmHash: + 'ab29585bdb630f86714bdc052e84731ce84785d7ace426bc24c1104e8760968c', + gasEstimates: { + creation: { + codeDepositCost: '333600', + executionCost: '20684', + totalCost: '354284', + }, + external: { + 'owner(bytes32)': '634', + 'resolver(bytes32)': '618', + 'setOwner(bytes32,address)': '23389', + 'setResolver(bytes32,address)': '23370', + 'setSubnodeOwner(bytes32,bytes32,address)': 'infinite', + 'setTTL(bytes32,uint64)': '23130', + 'ttl(bytes32)': '579', + }, + }, + functionHashes: { + 'owner(bytes32)': '02571be3', + 'resolver(bytes32)': '0178b8bf', + 'setOwner(bytes32,address)': '5b0fc9c3', + 'setResolver(bytes32,address)': '1896f70a', + 'setSubnodeOwner(bytes32,bytes32,address)': '06ab5923', + 'setTTL(bytes32,uint64)': '14ab9038', + 'ttl(bytes32)': '16a25cbd', + }, + abiDefinition: [ + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'resolver', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x0178b8bf', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'owner', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x02571be3', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'label', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'setSubnodeOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x06ab5923', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'ttl', type: 'uint64' }, + ], + name: 'setTTL', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x14ab9038', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'ttl', + outputs: [{ name: '', type: 'uint64' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x16a25cbd', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'resolver', type: 'address' }, + ], + name: 'setResolver', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x1896f70a', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'setOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x5b0fc9c3', + }, + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: true, name: 'label', type: 'bytes32' }, + { indexed: false, name: 'owner', type: 'address' }, + ], + name: 'NewOwner', + type: 'event', + signature: + '0xce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'owner', type: 'address' }, + ], + name: 'Transfer', + type: 'event', + signature: + '0xd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'resolver', type: 'address' }, + ], + name: 'NewResolver', + type: 'event', + signature: + '0x335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'ttl', type: 'uint64' }, + ], + name: 'NewTTL', + type: 'event', + signature: + '0x1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68', + }, + ], + filename: 'C:/dev/embark/lib/modules/ens/contracts/ENSRegistry.sol', + gas: 'auto', + type: 'file', + _gasLimit: false, + address: '0x112234455c3a32fd11230c42e7bccd4a84e02010', + error: false, + deploymentAccount: '0x299C59D7324f34Dc217B951d7340A94D186A6129', + realArgs: [], + deployedAddress: '0x112234455c3a32fd11230c42e7bccd4a84e02010', + }, + address: '0x112234455c3a32fd11230c42e7bccd4a84e02010', + code: + '608060405234801561001057600080fd5b5060008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58054600160a060020a03191633179055610684806100596000396000f3006080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100bb57806306ab5923146100d357806314ab9038146100fc57806316a25cbd146101215780631896f70a146101565780635b0fc9c31461017a575b600080fd5b34801561009357600080fd5b5061009f60043561019e565b60408051600160a060020a039092168252519081900360200190f35b3480156100c757600080fd5b5061009f6004356101bc565b3480156100df57600080fd5b506100fa600435602435600160a060020a03604435166101d7565b005b34801561010857600080fd5b506100fa60043567ffffffffffffffff6024351661033c565b34801561012d57600080fd5b5061013960043561044d565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561016257600080fd5b506100fa600435600160a060020a0360243516610484565b34801561018657600080fd5b506100fa600435600160a060020a036024351661056f565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b60008381526020819052604081205484908390600160a060020a031615806102155750600082815260208190526040902054600160a060020a031633145b806102395750600082815260208190526040902054600160a060020a038281169116145b151561024457600080fd5b604080516020808201899052818301889052825180830384018152606090920192839052815191929182918401908083835b602083106102955780518252601f199092019160209182019101610276565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600160a060020a038b16835293519398508a95508b94507fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829391829003019150a350506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040812054839190600160a060020a031615806103795750600082815260208190526040902054600160a060020a031633145b8061039d5750600082815260208190526040902054600160a060020a038281169116145b15156103a857600080fd5b6040805167ffffffffffffffff85168152905185917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040812054839190600160a060020a031615806104c15750600082815260208190526040902054600160a060020a031633145b806104e55750600082815260208190526040902054600160a060020a038281169116145b15156104f057600080fd5b60408051600160a060020a0385168152905185917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25050600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008281526020819052604090205482908290600160a060020a031615806105ad5750600082815260208190526040902054600160a060020a031633145b806105d15750600082815260208190526040902054600160a060020a038281169116145b15156105dc57600080fd5b60408051600160a060020a0385168152905185917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25050600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820ab29585bdb630f86714bdc052e84731ce84785d7ace426bc24c1104e8760968c0029', + runtime_bytecode: + '6080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100bb57806306ab5923146100d357806314ab9038146100fc57806316a25cbd146101215780631896f70a146101565780635b0fc9c31461017a575b600080fd5b34801561009357600080fd5b5061009f60043561019e565b60408051600160a060020a039092168252519081900360200190f35b3480156100c757600080fd5b5061009f6004356101bc565b3480156100df57600080fd5b506100fa600435602435600160a060020a03604435166101d7565b005b34801561010857600080fd5b506100fa60043567ffffffffffffffff6024351661033c565b34801561012d57600080fd5b5061013960043561044d565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561016257600080fd5b506100fa600435600160a060020a0360243516610484565b34801561018657600080fd5b506100fa600435600160a060020a036024351661056f565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b60008381526020819052604081205484908390600160a060020a031615806102155750600082815260208190526040902054600160a060020a031633145b806102395750600082815260208190526040902054600160a060020a038281169116145b151561024457600080fd5b604080516020808201899052818301889052825180830384018152606090920192839052815191929182918401908083835b602083106102955780518252601f199092019160209182019101610276565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600160a060020a038b16835293519398508a95508b94507fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829391829003019150a350506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040812054839190600160a060020a031615806103795750600082815260208190526040902054600160a060020a031633145b8061039d5750600082815260208190526040902054600160a060020a038281169116145b15156103a857600080fd5b6040805167ffffffffffffffff85168152905185917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040812054839190600160a060020a031615806104c15750600082815260208190526040902054600160a060020a031633145b806104e55750600082815260208190526040902054600160a060020a038281169116145b15156104f057600080fd5b60408051600160a060020a0385168152905185917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25050600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008281526020819052604090205482908290600160a060020a031615806105ad5750600082815260208190526040902054600160a060020a031633145b806105d15750600082815260208190526040902054600160a060020a038281169116145b15156105dc57600080fd5b60408051600160a060020a0385168152905185917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25050600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820ab29585bdb630f86714bdc052e84731ce84785d7ace426bc24c1104e8760968c0029', + real_runtime_bytecode: + '6080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100bb57806306ab5923146100d357806314ab9038146100fc57806316a25cbd146101215780631896f70a146101565780635b0fc9c31461017a575b600080fd5b34801561009357600080fd5b5061009f60043561019e565b60408051600160a060020a039092168252519081900360200190f35b3480156100c757600080fd5b5061009f6004356101bc565b3480156100df57600080fd5b506100fa600435602435600160a060020a03604435166101d7565b005b34801561010857600080fd5b506100fa60043567ffffffffffffffff6024351661033c565b34801561012d57600080fd5b5061013960043561044d565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561016257600080fd5b506100fa600435600160a060020a0360243516610484565b34801561018657600080fd5b506100fa600435600160a060020a036024351661056f565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b60008381526020819052604081205484908390600160a060020a031615806102155750600082815260208190526040902054600160a060020a031633145b806102395750600082815260208190526040902054600160a060020a038281169116145b151561024457600080fd5b604080516020808201899052818301889052825180830384018152606090920192839052815191929182918401908083835b602083106102955780518252601f199092019160209182019101610276565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600160a060020a038b16835293519398508a95508b94507fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829391829003019150a350506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040812054839190600160a060020a031615806103795750600082815260208190526040902054600160a060020a031633145b8061039d5750600082815260208190526040902054600160a060020a038281169116145b15156103a857600080fd5b6040805167ffffffffffffffff85168152905185917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040812054839190600160a060020a031615806104c15750600082815260208190526040902054600160a060020a031633145b806104e55750600082815260208190526040902054600160a060020a038281169116145b15156104f057600080fd5b60408051600160a060020a0385168152905185917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25050600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008281526020819052604090205482908290600160a060020a031615806105ad5750600082815260208190526040902054600160a060020a031633145b806105d15750600082815260208190526040902054600160a060020a038281169116145b15156105dc57600080fd5b60408051600160a060020a0385168152905185917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25050600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820', + swarm_hash: + 'ab29585bdb630f86714bdc052e84731ce84785d7ace426bc24c1104e8760968c', + gas_estimates: { + creation: { + codeDepositCost: '333600', + executionCost: '20684', + totalCost: '354284', + }, + external: { + 'owner(bytes32)': '634', + 'resolver(bytes32)': '618', + 'setOwner(bytes32,address)': '23389', + 'setResolver(bytes32,address)': '23370', + 'setSubnodeOwner(bytes32,bytes32,address)': 'infinite', + 'setTTL(bytes32,uint64)': '23130', + 'ttl(bytes32)': '579', + }, + }, + function_hashes: { + 'owner(bytes32)': '02571be3', + 'resolver(bytes32)': '0178b8bf', + 'setOwner(bytes32,address)': '5b0fc9c3', + 'setResolver(bytes32,address)': '1896f70a', + 'setSubnodeOwner(bytes32,bytes32,address)': '06ab5923', + 'setTTL(bytes32,uint64)': '14ab9038', + 'ttl(bytes32)': '16a25cbd', + }, + abi: [ + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'resolver', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x0178b8bf', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'owner', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x02571be3', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'label', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'setSubnodeOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x06ab5923', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'ttl', type: 'uint64' }, + ], + name: 'setTTL', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x14ab9038', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'ttl', + outputs: [{ name: '', type: 'uint64' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x16a25cbd', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'resolver', type: 'address' }, + ], + name: 'setResolver', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x1896f70a', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'setOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x5b0fc9c3', + }, + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: true, name: 'label', type: 'bytes32' }, + { indexed: false, name: 'owner', type: 'address' }, + ], + name: 'NewOwner', + type: 'event', + signature: + '0xce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'owner', type: 'address' }, + ], + name: 'Transfer', + type: 'event', + signature: + '0xd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'resolver', type: 'address' }, + ], + name: 'NewResolver', + type: 'event', + signature: + '0x335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'ttl', type: 'uint64' }, + ], + name: 'NewTTL', + type: 'event', + signature: + '0x1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68', + }, + ], +} +let ENSRegistry = new EmbarkJS.Blockchain.Contract(ENSRegistryJSONConfig) +export default ENSRegistry diff --git a/src/embarkArtifacts/contracts/ERC20Token.js b/src/embarkArtifacts/contracts/ERC20Token.js new file mode 100644 index 0000000..43ef962 --- /dev/null +++ b/src/embarkArtifacts/contracts/ERC20Token.js @@ -0,0 +1,224 @@ +import EmbarkJS from '../embarkjs' +let ERC20TokenJSONConfig = { + contract_name: { + className: 'ERC20Token', + args: [], + code: '', + runtimeBytecode: '', + realRuntimeBytecode: '', + linkReferences: {}, + swarmHash: '', + gasEstimates: null, + functionHashes: { + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'balanceOf(address)': '70a08231', + 'totalSupply()': '18160ddd', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: 'supply', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/ERC20Token.sol', + originalFilename: 'contracts/token/ERC20Token.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/ERC20Token.sol', + gas: 'auto', + type: 'file', + deploy: false, + _gasLimit: 6000000, + error: false, + }, + code: '', + runtime_bytecode: '', + real_runtime_bytecode: '', + swarm_hash: '', + gas_estimates: null, + function_hashes: { + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'balanceOf(address)': '70a08231', + 'totalSupply()': '18160ddd', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + }, + abi: [ + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: 'supply', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + }, + ], +} +let ERC20Token = new EmbarkJS.Blockchain.Contract(ERC20TokenJSONConfig) +export default ERC20Token diff --git a/src/embarkArtifacts/contracts/MiniMeToken.js b/src/embarkArtifacts/contracts/MiniMeToken.js new file mode 100644 index 0000000..653c30d --- /dev/null +++ b/src/embarkArtifacts/contracts/MiniMeToken.js @@ -0,0 +1,874 @@ +import EmbarkJS from '../embarkjs' +let MiniMeTokenJSONConfig = { + contract_name: { + deploy: false, + className: 'MiniMeToken', + args: [], + code: + '60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + runtimeBytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + realRuntimeBytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a72305820', + linkReferences: {}, + swarmHash: + '3b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb564', + gasEstimates: { + creation: { + codeDepositCost: '1383200', + executionCost: 'infinite', + totalCost: 'infinite', + }, + external: { + '': 'infinite', + 'VERSION()': 'infinite', + 'allowance(address,address)': '833', + 'approve(address,uint256)': 'infinite', + 'approveAndCall(address,uint256,bytes)': 'infinite', + 'balanceOf(address)': 'infinite', + 'balanceOfAt(address,uint256)': 'infinite', + 'changeController(address)': 'infinite', + 'claimTokens(address)': 'infinite', + 'controller()': '641', + 'createCloneToken(string,uint8,string,uint256,bool)': 'infinite', + 'creationBlock()': '468', + 'decimals()': '549', + 'destroyTokens(address,uint256)': 'infinite', + 'enableTransfers(bool)': 'infinite', + 'generateTokens(address,uint256)': 'infinite', + 'name()': 'infinite', + 'parentSnapShotBlock()': '511', + 'parentToken()': '664', + 'symbol()': 'infinite', + 'tokenFactory()': '608', + 'totalSupply()': 'infinite', + 'totalSupplyAt(uint256)': 'infinite', + 'transfer(address,uint256)': 'infinite', + 'transferFrom(address,address,uint256)': 'infinite', + 'transfersEnabled()': '501', + }, + internal: { + 'doApprove(address,address,uint256)': 'infinite', + 'doTransfer(address,address,uint256)': 'infinite', + 'getValueAt(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + 'isContract(address)': '835', + 'min(uint256,uint256)': '65', + 'updateValueAtNow(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + }, + }, + functionHashes: { + 'VERSION()': 'ffa1ad74', + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'approveAndCall(address,uint256,bytes)': 'cae9ca51', + 'balanceOf(address)': '70a08231', + 'balanceOfAt(address,uint256)': '4ee2cd7e', + 'changeController(address)': '3cebb823', + 'claimTokens(address)': 'df8de3e7', + 'controller()': 'f77c4791', + 'createCloneToken(string,uint8,string,uint256,bool)': '6638c087', + 'creationBlock()': '17634514', + 'decimals()': '313ce567', + 'destroyTokens(address,uint256)': 'd3ce77fe', + 'enableTransfers(bool)': 'f41e60c5', + 'generateTokens(address,uint256)': '827f32c0', + 'name()': '06fdde03', + 'parentSnapShotBlock()': 'c5bcc4f1', + 'parentToken()': '80a54001', + 'symbol()': '95d89b41', + 'tokenFactory()': 'e77772fe', + 'totalSupply()': '18160ddd', + 'totalSupplyAt(uint256)': '981b24d0', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + 'transfersEnabled()': 'bef97c87', + }, + abiDefinition: [ + { + constant: true, + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x06fdde03', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x095ea7b3', + }, + { + constant: true, + inputs: [], + name: 'creationBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x17634514', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x18160ddd', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x23b872dd', + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x313ce567', + }, + { + constant: false, + inputs: [{ name: '_newController', type: 'address' }], + name: 'changeController', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x3cebb823', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_blockNumber', type: 'uint256' }, + ], + name: 'balanceOfAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x4ee2cd7e', + }, + { + constant: false, + inputs: [ + { name: '_cloneTokenName', type: 'string' }, + { name: '_cloneDecimalUnits', type: 'uint8' }, + { name: '_cloneTokenSymbol', type: 'string' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x6638c087', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x70a08231', + }, + { + constant: true, + inputs: [], + name: 'parentToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x80a54001', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'generateTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x827f32c0', + }, + { + constant: true, + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x95d89b41', + }, + { + constant: true, + inputs: [{ name: '_blockNumber', type: 'uint256' }], + name: 'totalSupplyAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x981b24d0', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xa9059cbb', + }, + { + constant: true, + inputs: [], + name: 'transfersEnabled', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xbef97c87', + }, + { + constant: true, + inputs: [], + name: 'parentSnapShotBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xc5bcc4f1', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_extraData', type: 'bytes' }, + ], + name: 'approveAndCall', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xcae9ca51', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'destroyTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xd3ce77fe', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xdd62ed3e', + }, + { + constant: false, + inputs: [{ name: '_token', type: 'address' }], + name: 'claimTokens', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xdf8de3e7', + }, + { + constant: true, + inputs: [], + name: 'tokenFactory', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xe77772fe', + }, + { + constant: false, + inputs: [{ name: '_transfersEnabled', type: 'bool' }], + name: 'enableTransfers', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xf41e60c5', + }, + { + constant: true, + inputs: [], + name: 'controller', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xf77c4791', + }, + { + constant: true, + inputs: [], + name: 'VERSION', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xffa1ad74', + }, + { + inputs: [ + { name: '_tokenFactory', type: 'address' }, + { name: '_parentToken', type: 'address' }, + { name: '_parentSnapShotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + signature: 'constructor', + }, + { payable: true, stateMutability: 'payable', type: 'fallback' }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_token', type: 'address' }, + { indexed: true, name: '_controller', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'ClaimedTokens', + type: 'event', + signature: + '0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + signature: + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_cloneToken', type: 'address' }, + { indexed: false, name: 'snapshotBlock', type: 'uint256' }, + ], + name: 'NewCloneToken', + type: 'event', + signature: + '0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + signature: + '0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/MiniMeToken.sol', + originalFilename: 'contracts/token/MiniMeToken.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/MiniMeToken.sol', + gas: 'auto', + type: 'file', + _gasLimit: 6000000, + error: false, + }, + code: + '60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + runtime_bytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + real_runtime_bytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a72305820', + swarm_hash: + '3b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb564', + gas_estimates: { + creation: { + codeDepositCost: '1383200', + executionCost: 'infinite', + totalCost: 'infinite', + }, + external: { + '': 'infinite', + 'VERSION()': 'infinite', + 'allowance(address,address)': '833', + 'approve(address,uint256)': 'infinite', + 'approveAndCall(address,uint256,bytes)': 'infinite', + 'balanceOf(address)': 'infinite', + 'balanceOfAt(address,uint256)': 'infinite', + 'changeController(address)': 'infinite', + 'claimTokens(address)': 'infinite', + 'controller()': '641', + 'createCloneToken(string,uint8,string,uint256,bool)': 'infinite', + 'creationBlock()': '468', + 'decimals()': '549', + 'destroyTokens(address,uint256)': 'infinite', + 'enableTransfers(bool)': 'infinite', + 'generateTokens(address,uint256)': 'infinite', + 'name()': 'infinite', + 'parentSnapShotBlock()': '511', + 'parentToken()': '664', + 'symbol()': 'infinite', + 'tokenFactory()': '608', + 'totalSupply()': 'infinite', + 'totalSupplyAt(uint256)': 'infinite', + 'transfer(address,uint256)': 'infinite', + 'transferFrom(address,address,uint256)': 'infinite', + 'transfersEnabled()': '501', + }, + internal: { + 'doApprove(address,address,uint256)': 'infinite', + 'doTransfer(address,address,uint256)': 'infinite', + 'getValueAt(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + 'isContract(address)': '835', + 'min(uint256,uint256)': '65', + 'updateValueAtNow(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + }, + }, + function_hashes: { + 'VERSION()': 'ffa1ad74', + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'approveAndCall(address,uint256,bytes)': 'cae9ca51', + 'balanceOf(address)': '70a08231', + 'balanceOfAt(address,uint256)': '4ee2cd7e', + 'changeController(address)': '3cebb823', + 'claimTokens(address)': 'df8de3e7', + 'controller()': 'f77c4791', + 'createCloneToken(string,uint8,string,uint256,bool)': '6638c087', + 'creationBlock()': '17634514', + 'decimals()': '313ce567', + 'destroyTokens(address,uint256)': 'd3ce77fe', + 'enableTransfers(bool)': 'f41e60c5', + 'generateTokens(address,uint256)': '827f32c0', + 'name()': '06fdde03', + 'parentSnapShotBlock()': 'c5bcc4f1', + 'parentToken()': '80a54001', + 'symbol()': '95d89b41', + 'tokenFactory()': 'e77772fe', + 'totalSupply()': '18160ddd', + 'totalSupplyAt(uint256)': '981b24d0', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + 'transfersEnabled()': 'bef97c87', + }, + abi: [ + { + constant: true, + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x06fdde03', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x095ea7b3', + }, + { + constant: true, + inputs: [], + name: 'creationBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x17634514', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x18160ddd', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x23b872dd', + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x313ce567', + }, + { + constant: false, + inputs: [{ name: '_newController', type: 'address' }], + name: 'changeController', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x3cebb823', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_blockNumber', type: 'uint256' }, + ], + name: 'balanceOfAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x4ee2cd7e', + }, + { + constant: false, + inputs: [ + { name: '_cloneTokenName', type: 'string' }, + { name: '_cloneDecimalUnits', type: 'uint8' }, + { name: '_cloneTokenSymbol', type: 'string' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x6638c087', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x70a08231', + }, + { + constant: true, + inputs: [], + name: 'parentToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x80a54001', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'generateTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x827f32c0', + }, + { + constant: true, + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x95d89b41', + }, + { + constant: true, + inputs: [{ name: '_blockNumber', type: 'uint256' }], + name: 'totalSupplyAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x981b24d0', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xa9059cbb', + }, + { + constant: true, + inputs: [], + name: 'transfersEnabled', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xbef97c87', + }, + { + constant: true, + inputs: [], + name: 'parentSnapShotBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xc5bcc4f1', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_extraData', type: 'bytes' }, + ], + name: 'approveAndCall', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xcae9ca51', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'destroyTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xd3ce77fe', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xdd62ed3e', + }, + { + constant: false, + inputs: [{ name: '_token', type: 'address' }], + name: 'claimTokens', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xdf8de3e7', + }, + { + constant: true, + inputs: [], + name: 'tokenFactory', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xe77772fe', + }, + { + constant: false, + inputs: [{ name: '_transfersEnabled', type: 'bool' }], + name: 'enableTransfers', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xf41e60c5', + }, + { + constant: true, + inputs: [], + name: 'controller', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xf77c4791', + }, + { + constant: true, + inputs: [], + name: 'VERSION', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xffa1ad74', + }, + { + inputs: [ + { name: '_tokenFactory', type: 'address' }, + { name: '_parentToken', type: 'address' }, + { name: '_parentSnapShotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + signature: 'constructor', + }, + { payable: true, stateMutability: 'payable', type: 'fallback' }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_token', type: 'address' }, + { indexed: true, name: '_controller', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'ClaimedTokens', + type: 'event', + signature: + '0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + signature: + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_cloneToken', type: 'address' }, + { indexed: false, name: 'snapshotBlock', type: 'uint256' }, + ], + name: 'NewCloneToken', + type: 'event', + signature: + '0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + signature: + '0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925', + }, + ], +} +let MiniMeToken = new EmbarkJS.Blockchain.Contract(MiniMeTokenJSONConfig) +export default MiniMeToken diff --git a/src/embarkArtifacts/contracts/MiniMeTokenFactory.js b/src/embarkArtifacts/contracts/MiniMeTokenFactory.js new file mode 100644 index 0000000..fb09660 --- /dev/null +++ b/src/embarkArtifacts/contracts/MiniMeTokenFactory.js @@ -0,0 +1,110 @@ +import EmbarkJS from '../embarkjs' +let MiniMeTokenFactoryJSONConfig = { + contract_name: { + deploy: true, + className: 'MiniMeTokenFactory', + args: [], + code: + '608060405234801561001057600080fd5b50612064806100206000396000f3fe608060405234801561001057600080fd5b5060043610610047577c010000000000000000000000000000000000000000000000000000000060003504635b7b72c1811461004c575b600080fd5b610139600480360360c081101561006257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561009f57600080fd5b8201836020820111156100b157600080fd5b803590602001918460018302840111640100000000831117156100d357600080fd5b9193909260ff833516926040810190602001356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b9193509150351515610162565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600080308a8a8a8a8a8a8a8a6101766102c6565b73ffffffffffffffffffffffffffffffffffffffff808b168252891660208201526040810188905260ff8516608082015281151560c082015260e06060820181815290820187905260a082016101008301898980828437600083820152601f01601f1916909101848103835286815260200190508686808284376000838201819052604051601f909201601f19169093018190039e509c50909a5050505050505050505050f08015801561022e573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102a057600080fd5b505af11580156102b4573d6000803e3d6000fd5b50929c9b505050505050505050505050565b604051611d62806102d78339019056fe60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029a165627a7a72305820209352e06e6561fd7485416d04c2c1f2d7851f933b949abf5cfe70cf7462395d0029', + runtimeBytecode: + '608060405234801561001057600080fd5b5060043610610047577c010000000000000000000000000000000000000000000000000000000060003504635b7b72c1811461004c575b600080fd5b610139600480360360c081101561006257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561009f57600080fd5b8201836020820111156100b157600080fd5b803590602001918460018302840111640100000000831117156100d357600080fd5b9193909260ff833516926040810190602001356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b9193509150351515610162565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600080308a8a8a8a8a8a8a8a6101766102c6565b73ffffffffffffffffffffffffffffffffffffffff808b168252891660208201526040810188905260ff8516608082015281151560c082015260e06060820181815290820187905260a082016101008301898980828437600083820152601f01601f1916909101848103835286815260200190508686808284376000838201819052604051601f909201601f19169093018190039e509c50909a5050505050505050505050f08015801561022e573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102a057600080fd5b505af11580156102b4573d6000803e3d6000fd5b50929c9b505050505050505050505050565b604051611d62806102d78339019056fe60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029a165627a7a72305820209352e06e6561fd7485416d04c2c1f2d7851f933b949abf5cfe70cf7462395d0029', + realRuntimeBytecode: + '608060405234801561001057600080fd5b5060043610610047577c010000000000000000000000000000000000000000000000000000000060003504635b7b72c1811461004c575b600080fd5b610139600480360360c081101561006257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561009f57600080fd5b8201836020820111156100b157600080fd5b803590602001918460018302840111640100000000831117156100d357600080fd5b9193909260ff833516926040810190602001356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b9193509150351515610162565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600080308a8a8a8a8a8a8a8a6101766102c6565b73ffffffffffffffffffffffffffffffffffffffff808b168252891660208201526040810188905260ff8516608082015281151560c082015260e06060820181815290820187905260a082016101008301898980828437600083820152601f01601f1916909101848103835286815260200190508686808284376000838201819052604051601f909201601f19169093018190039e509c50909a5050505050505050505050f08015801561022e573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102a057600080fd5b505af11580156102b4573d6000803e3d6000fd5b50929c9b505050505050505050505050565b604051611d62806102d78339019056fe60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029a165627a7a72305820', + linkReferences: {}, + swarmHash: + '209352e06e6561fd7485416d04c2c1f2d7851f933b949abf5cfe70cf7462395d', + gasEstimates: { + creation: { + codeDepositCost: '1658400', + executionCost: '1743', + totalCost: '1660143', + }, + external: { + 'createCloneToken(address,uint256,string,uint8,string,bool)': + 'infinite', + }, + }, + functionHashes: { + 'createCloneToken(address,uint256,string,uint8,string,bool)': '5b7b72c1', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: '_parentToken', type: 'address' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x5b7b72c1', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/MiniMeTokenFactory.sol', + originalFilename: 'contracts/token/MiniMeTokenFactory.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/MiniMeTokenFactory.sol', + gas: 2383818, + gasPrice: '1000000000', + type: 'file', + _gasLimit: 6000000, + error: false, + deploymentAccount: '0x299C59D7324f34Dc217B951d7340A94D186A6129', + realArgs: [], + deployedAddress: '0xdcf5Bf6B4090072CBD018c1e606B05b393aED290', + transactionHash: + '0xbcfe3f5b66470dcc8fa69e869813d7e8ce46ff8b5b8853234e46d7bae5e7f967', + }, + address: '0xdcf5Bf6B4090072CBD018c1e606B05b393aED290', + code: + '608060405234801561001057600080fd5b50612064806100206000396000f3fe608060405234801561001057600080fd5b5060043610610047577c010000000000000000000000000000000000000000000000000000000060003504635b7b72c1811461004c575b600080fd5b610139600480360360c081101561006257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561009f57600080fd5b8201836020820111156100b157600080fd5b803590602001918460018302840111640100000000831117156100d357600080fd5b9193909260ff833516926040810190602001356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b9193509150351515610162565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600080308a8a8a8a8a8a8a8a6101766102c6565b73ffffffffffffffffffffffffffffffffffffffff808b168252891660208201526040810188905260ff8516608082015281151560c082015260e06060820181815290820187905260a082016101008301898980828437600083820152601f01601f1916909101848103835286815260200190508686808284376000838201819052604051601f909201601f19169093018190039e509c50909a5050505050505050505050f08015801561022e573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102a057600080fd5b505af11580156102b4573d6000803e3d6000fd5b50929c9b505050505050505050505050565b604051611d62806102d78339019056fe60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029a165627a7a72305820209352e06e6561fd7485416d04c2c1f2d7851f933b949abf5cfe70cf7462395d0029', + runtime_bytecode: + '608060405234801561001057600080fd5b5060043610610047577c010000000000000000000000000000000000000000000000000000000060003504635b7b72c1811461004c575b600080fd5b610139600480360360c081101561006257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561009f57600080fd5b8201836020820111156100b157600080fd5b803590602001918460018302840111640100000000831117156100d357600080fd5b9193909260ff833516926040810190602001356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b9193509150351515610162565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600080308a8a8a8a8a8a8a8a6101766102c6565b73ffffffffffffffffffffffffffffffffffffffff808b168252891660208201526040810188905260ff8516608082015281151560c082015260e06060820181815290820187905260a082016101008301898980828437600083820152601f01601f1916909101848103835286815260200190508686808284376000838201819052604051601f909201601f19169093018190039e509c50909a5050505050505050505050f08015801561022e573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102a057600080fd5b505af11580156102b4573d6000803e3d6000fd5b50929c9b505050505050505050505050565b604051611d62806102d78339019056fe60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029a165627a7a72305820209352e06e6561fd7485416d04c2c1f2d7851f933b949abf5cfe70cf7462395d0029', + real_runtime_bytecode: + '608060405234801561001057600080fd5b5060043610610047577c010000000000000000000000000000000000000000000000000000000060003504635b7b72c1811461004c575b600080fd5b610139600480360360c081101561006257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561009f57600080fd5b8201836020820111156100b157600080fd5b803590602001918460018302840111640100000000831117156100d357600080fd5b9193909260ff833516926040810190602001356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b9193509150351515610162565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600080308a8a8a8a8a8a8a8a6101766102c6565b73ffffffffffffffffffffffffffffffffffffffff808b168252891660208201526040810188905260ff8516608082015281151560c082015260e06060820181815290820187905260a082016101008301898980828437600083820152601f01601f1916909101848103835286815260200190508686808284376000838201819052604051601f909201601f19169093018190039e509c50909a5050505050505050505050f08015801561022e573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102a057600080fd5b505af11580156102b4573d6000803e3d6000fd5b50929c9b505050505050505050505050565b604051611d62806102d78339019056fe60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029a165627a7a72305820', + swarm_hash: + '209352e06e6561fd7485416d04c2c1f2d7851f933b949abf5cfe70cf7462395d', + gas_estimates: { + creation: { + codeDepositCost: '1658400', + executionCost: '1743', + totalCost: '1660143', + }, + external: { + 'createCloneToken(address,uint256,string,uint8,string,bool)': 'infinite', + }, + }, + function_hashes: { + 'createCloneToken(address,uint256,string,uint8,string,bool)': '5b7b72c1', + }, + abi: [ + { + constant: false, + inputs: [ + { name: '_parentToken', type: 'address' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x5b7b72c1', + }, + ], +} +let MiniMeTokenFactory = new EmbarkJS.Blockchain.Contract( + MiniMeTokenFactoryJSONConfig, +) +export default MiniMeTokenFactory diff --git a/src/embarkArtifacts/contracts/MiniMeTokenInterface.js b/src/embarkArtifacts/contracts/MiniMeTokenInterface.js new file mode 100644 index 0000000..9b8a825 --- /dev/null +++ b/src/embarkArtifacts/contracts/MiniMeTokenInterface.js @@ -0,0 +1,424 @@ +import EmbarkJS from '../embarkjs' +let MiniMeTokenInterfaceJSONConfig = { + contract_name: { + className: 'MiniMeTokenInterface', + args: [], + code: '', + runtimeBytecode: '', + realRuntimeBytecode: '', + linkReferences: {}, + swarmHash: '', + gasEstimates: null, + functionHashes: { + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'approveAndCall(address,uint256,bytes)': 'cae9ca51', + 'balanceOf(address)': '70a08231', + 'balanceOfAt(address,uint256)': '4ee2cd7e', + 'claimTokens(address)': 'df8de3e7', + 'createCloneToken(string,uint8,string,uint256,bool)': '6638c087', + 'destroyTokens(address,uint256)': 'd3ce77fe', + 'enableTransfers(bool)': 'f41e60c5', + 'generateTokens(address,uint256)': '827f32c0', + 'totalSupply()': '18160ddd', + 'totalSupplyAt(uint256)': '981b24d0', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: 'supply', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_blockNumber', type: 'uint256' }, + ], + name: 'balanceOfAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_cloneTokenName', type: 'string' }, + { name: '_cloneDecimalUnits', type: 'uint8' }, + { name: '_cloneTokenSymbol', type: 'string' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'generateTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_blockNumber', type: 'uint256' }], + name: 'totalSupplyAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_extraData', type: 'bytes' }, + ], + name: 'approveAndCall', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'destroyTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [{ name: '_token', type: 'address' }], + name: 'claimTokens', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [{ name: '_transfersEnabled', type: 'bool' }], + name: 'enableTransfers', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/MiniMeTokenInterface.sol', + originalFilename: 'contracts/token/MiniMeTokenInterface.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/MiniMeTokenInterface.sol', + gas: 'auto', + type: 'file', + deploy: false, + _gasLimit: 6000000, + error: false, + }, + code: '', + runtime_bytecode: '', + real_runtime_bytecode: '', + swarm_hash: '', + gas_estimates: null, + function_hashes: { + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'approveAndCall(address,uint256,bytes)': 'cae9ca51', + 'balanceOf(address)': '70a08231', + 'balanceOfAt(address,uint256)': '4ee2cd7e', + 'claimTokens(address)': 'df8de3e7', + 'createCloneToken(string,uint8,string,uint256,bool)': '6638c087', + 'destroyTokens(address,uint256)': 'd3ce77fe', + 'enableTransfers(bool)': 'f41e60c5', + 'generateTokens(address,uint256)': '827f32c0', + 'totalSupply()': '18160ddd', + 'totalSupplyAt(uint256)': '981b24d0', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + }, + abi: [ + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: 'supply', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_blockNumber', type: 'uint256' }, + ], + name: 'balanceOfAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_cloneTokenName', type: 'string' }, + { name: '_cloneDecimalUnits', type: 'uint8' }, + { name: '_cloneTokenSymbol', type: 'string' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'generateTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_blockNumber', type: 'uint256' }], + name: 'totalSupplyAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_value', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_extraData', type: 'bytes' }, + ], + name: 'approveAndCall', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'destroyTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [{ name: '_token', type: 'address' }], + name: 'claimTokens', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [{ name: '_transfersEnabled', type: 'bool' }], + name: 'enableTransfers', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_value', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + }, + ], +} +let MiniMeTokenInterface = new EmbarkJS.Blockchain.Contract( + MiniMeTokenInterfaceJSONConfig, +) +export default MiniMeTokenInterface diff --git a/src/embarkArtifacts/contracts/Resolver.js b/src/embarkArtifacts/contracts/Resolver.js new file mode 100644 index 0000000..ef2b8f9 --- /dev/null +++ b/src/embarkArtifacts/contracts/Resolver.js @@ -0,0 +1,509 @@ +import EmbarkJS from '../embarkjs' +let ResolverJSONConfig = { + contract_name: { + deploy: false, + silent: true, + className: 'Resolver', + code: + '608060405234801561001057600080fd5b50604051602080610cdb833981016040525160008054600160a060020a03909216600160a060020a0319909216919091179055610c89806100526000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166310f13a8c81146100be5780632203ab561461015c57806329cd62ea146101f65780632dff6941146102145780633b3b57de1461023e57806359d1d43c1461027f578063623195b014610352578063691f3431146103b257806377372213146103ca578063c3d014d614610428578063c869023314610443578063d5fa2b0014610474575b600080fd5b3480156100ca57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104a59650505050505050565b005b34801561016857600080fd5b5061017760043560243561063a565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561020257600080fd5b5061015a600435602435604435610746565b34801561022057600080fd5b5061022c6004356107b5565b60408051918252519081900360200190f35b34801561024a57600080fd5b506102566004356107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102dd9583359536956044949193909101919081908401838280828437509497506107f39650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015a9482359460248035953695946064949201919081908401838280828437509497506108fc9650505050505050565b3480156103be57600080fd5b506102dd60043561096c565b3480156103d657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a958335953695604494919390910191908190840183828082843750949750610a109650505050505050565b34801561043457600080fd5b5061015a600435602435610ad5565b34801561044f57600080fd5b5061045b600435610b25565b6040805192835260208301919091528051918290030190f35b34801561048057600080fd5b5061015a60043573ffffffffffffffffffffffffffffffffffffffff60243516610b42565b826000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106104ed5780518252601f1990920191602091820191016104ce565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161052e9591949190910192509050610bc2565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610598578181015183820152602001610580565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156105f85781810151838201526020016105e0565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161073957828416158015906106885750600083815260068201602052604081205460026000196101006001841615020190911604115b1561072e57600083815260068201602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050915061073e565b60029092029161064f565b600092505b509250929050565b82604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b6020831061083b5780518252601f19909201916020918201910161081c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905092915050565b82600019830183161561090e57600080fd5b60008481526001602090815260408083208684526006018252909120835161093892850190610bc2565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509050919050565b8160008381526001602090815260409091208351610a3692600290920191850190610bc2565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610a96578181015183820152602001610a7e565b50505050905090810190601f168015610ac35780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b816000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b81600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff86169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c0357805160ff1916838001178555610c30565b82800160010185558215610c30579182015b82811115610c30578251825591602001919060010190610c15565b50610c3c929150610c40565b5090565b610c5a91905b80821115610c3c5760008155600101610c46565b905600a165627a7a72305820820458ee1fb63da1465b0a1fbcba8ca7c04249db10a2c939ebf73d487bd5a83d0029', + runtimeBytecode: + '6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166310f13a8c81146100be5780632203ab561461015c57806329cd62ea146101f65780632dff6941146102145780633b3b57de1461023e57806359d1d43c1461027f578063623195b014610352578063691f3431146103b257806377372213146103ca578063c3d014d614610428578063c869023314610443578063d5fa2b0014610474575b600080fd5b3480156100ca57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104a59650505050505050565b005b34801561016857600080fd5b5061017760043560243561063a565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561020257600080fd5b5061015a600435602435604435610746565b34801561022057600080fd5b5061022c6004356107b5565b60408051918252519081900360200190f35b34801561024a57600080fd5b506102566004356107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102dd9583359536956044949193909101919081908401838280828437509497506107f39650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015a9482359460248035953695946064949201919081908401838280828437509497506108fc9650505050505050565b3480156103be57600080fd5b506102dd60043561096c565b3480156103d657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a958335953695604494919390910191908190840183828082843750949750610a109650505050505050565b34801561043457600080fd5b5061015a600435602435610ad5565b34801561044f57600080fd5b5061045b600435610b25565b6040805192835260208301919091528051918290030190f35b34801561048057600080fd5b5061015a60043573ffffffffffffffffffffffffffffffffffffffff60243516610b42565b826000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106104ed5780518252601f1990920191602091820191016104ce565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161052e9591949190910192509050610bc2565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610598578181015183820152602001610580565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156105f85781810151838201526020016105e0565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161073957828416158015906106885750600083815260068201602052604081205460026000196101006001841615020190911604115b1561072e57600083815260068201602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050915061073e565b60029092029161064f565b600092505b509250929050565b82604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b6020831061083b5780518252601f19909201916020918201910161081c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905092915050565b82600019830183161561090e57600080fd5b60008481526001602090815260408083208684526006018252909120835161093892850190610bc2565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509050919050565b8160008381526001602090815260409091208351610a3692600290920191850190610bc2565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610a96578181015183820152602001610a7e565b50505050905090810190601f168015610ac35780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b816000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b81600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff86169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c0357805160ff1916838001178555610c30565b82800160010185558215610c30579182015b82811115610c30578251825591602001919060010190610c15565b50610c3c929150610c40565b5090565b610c5a91905b80821115610c3c5760008155600101610c46565b905600a165627a7a72305820820458ee1fb63da1465b0a1fbcba8ca7c04249db10a2c939ebf73d487bd5a83d0029', + realRuntimeBytecode: + '6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166310f13a8c81146100be5780632203ab561461015c57806329cd62ea146101f65780632dff6941146102145780633b3b57de1461023e57806359d1d43c1461027f578063623195b014610352578063691f3431146103b257806377372213146103ca578063c3d014d614610428578063c869023314610443578063d5fa2b0014610474575b600080fd5b3480156100ca57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104a59650505050505050565b005b34801561016857600080fd5b5061017760043560243561063a565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561020257600080fd5b5061015a600435602435604435610746565b34801561022057600080fd5b5061022c6004356107b5565b60408051918252519081900360200190f35b34801561024a57600080fd5b506102566004356107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102dd9583359536956044949193909101919081908401838280828437509497506107f39650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015a9482359460248035953695946064949201919081908401838280828437509497506108fc9650505050505050565b3480156103be57600080fd5b506102dd60043561096c565b3480156103d657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a958335953695604494919390910191908190840183828082843750949750610a109650505050505050565b34801561043457600080fd5b5061015a600435602435610ad5565b34801561044f57600080fd5b5061045b600435610b25565b6040805192835260208301919091528051918290030190f35b34801561048057600080fd5b5061015a60043573ffffffffffffffffffffffffffffffffffffffff60243516610b42565b826000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106104ed5780518252601f1990920191602091820191016104ce565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161052e9591949190910192509050610bc2565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610598578181015183820152602001610580565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156105f85781810151838201526020016105e0565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161073957828416158015906106885750600083815260068201602052604081205460026000196101006001841615020190911604115b1561072e57600083815260068201602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050915061073e565b60029092029161064f565b600092505b509250929050565b82604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b6020831061083b5780518252601f19909201916020918201910161081c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905092915050565b82600019830183161561090e57600080fd5b60008481526001602090815260408083208684526006018252909120835161093892850190610bc2565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509050919050565b8160008381526001602090815260409091208351610a3692600290920191850190610bc2565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610a96578181015183820152602001610a7e565b50505050905090810190601f168015610ac35780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b816000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b81600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff86169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c0357805160ff1916838001178555610c30565b82800160010185558215610c30579182015b82811115610c30578251825591602001919060010190610c15565b50610c3c929150610c40565b5090565b610c5a91905b80821115610c3c5760008155600101610c46565b905600a165627a7a72305820', + swarmHash: + '820458ee1fb63da1465b0a1fbcba8ca7c04249db10a2c939ebf73d487bd5a83d', + gasEstimates: { + creation: { + codeDepositCost: '641800', + executionCost: '21101', + totalCost: '662901', + }, + external: { + 'ABI(bytes32,uint256)': 'infinite', + 'addr(bytes32)': '559', + 'content(bytes32)': '534', + 'name(bytes32)': 'infinite', + 'pubkey(bytes32)': '924', + 'setABI(bytes32,uint256,bytes)': 'infinite', + 'setAddr(bytes32,address)': '22154', + 'setContent(bytes32,bytes32)': '21883', + 'setName(bytes32,string)': 'infinite', + 'setPubkey(bytes32,bytes32,bytes32)': '42083', + 'setText(bytes32,string,string)': 'infinite', + 'text(bytes32,string)': 'infinite', + }, + }, + functionHashes: { + 'ABI(bytes32,uint256)': '2203ab56', + 'addr(bytes32)': '3b3b57de', + 'content(bytes32)': '2dff6941', + 'name(bytes32)': '691f3431', + 'pubkey(bytes32)': 'c8690233', + 'setABI(bytes32,uint256,bytes)': '623195b0', + 'setAddr(bytes32,address)': 'd5fa2b00', + 'setContent(bytes32,bytes32)': 'c3d014d6', + 'setName(bytes32,string)': '77372213', + 'setPubkey(bytes32,bytes32,bytes32)': '29cd62ea', + 'setText(bytes32,string,string)': '10f13a8c', + 'text(bytes32,string)': '59d1d43c', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'key', type: 'string' }, + { name: 'value', type: 'string' }, + ], + name: 'setText', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'contentTypes', type: 'uint256' }, + ], + name: 'ABI', + outputs: [ + { name: 'contentType', type: 'uint256' }, + { name: 'data', type: 'bytes' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'x', type: 'bytes32' }, + { name: 'y', type: 'bytes32' }, + ], + name: 'setPubkey', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'content', + outputs: [{ name: '', type: 'bytes32' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'addr', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'key', type: 'string' }, + ], + name: 'text', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'contentType', type: 'uint256' }, + { name: 'data', type: 'bytes' }, + ], + name: 'setABI', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'name', type: 'string' }, + ], + name: 'setName', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'hash', type: 'bytes32' }, + ], + name: 'setContent', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'pubkey', + outputs: [ + { name: 'x', type: 'bytes32' }, + { name: 'y', type: 'bytes32' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'addr', type: 'address' }, + ], + name: 'setAddr', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'ensAddr', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'a', type: 'address' }, + ], + name: 'AddrChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'hash', type: 'bytes32' }, + ], + name: 'ContentChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'name', type: 'string' }, + ], + name: 'NameChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: true, name: 'contentType', type: 'uint256' }, + ], + name: 'ABIChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'x', type: 'bytes32' }, + { indexed: false, name: 'y', type: 'bytes32' }, + ], + name: 'PubkeyChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'indexedKey', type: 'string' }, + { indexed: false, name: 'key', type: 'string' }, + ], + name: 'TextChanged', + type: 'event', + }, + ], + filename: 'C:/dev/embark/lib/modules/ens/contracts/Resolver.sol', + gas: 'auto', + type: 'file', + _gasLimit: false, + args: ['0x112234455c3a32fd11230c42e7bccd4a84e02010'], + error: false, + }, + code: + '608060405234801561001057600080fd5b50604051602080610cdb833981016040525160008054600160a060020a03909216600160a060020a0319909216919091179055610c89806100526000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166310f13a8c81146100be5780632203ab561461015c57806329cd62ea146101f65780632dff6941146102145780633b3b57de1461023e57806359d1d43c1461027f578063623195b014610352578063691f3431146103b257806377372213146103ca578063c3d014d614610428578063c869023314610443578063d5fa2b0014610474575b600080fd5b3480156100ca57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104a59650505050505050565b005b34801561016857600080fd5b5061017760043560243561063a565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561020257600080fd5b5061015a600435602435604435610746565b34801561022057600080fd5b5061022c6004356107b5565b60408051918252519081900360200190f35b34801561024a57600080fd5b506102566004356107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102dd9583359536956044949193909101919081908401838280828437509497506107f39650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015a9482359460248035953695946064949201919081908401838280828437509497506108fc9650505050505050565b3480156103be57600080fd5b506102dd60043561096c565b3480156103d657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a958335953695604494919390910191908190840183828082843750949750610a109650505050505050565b34801561043457600080fd5b5061015a600435602435610ad5565b34801561044f57600080fd5b5061045b600435610b25565b6040805192835260208301919091528051918290030190f35b34801561048057600080fd5b5061015a60043573ffffffffffffffffffffffffffffffffffffffff60243516610b42565b826000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106104ed5780518252601f1990920191602091820191016104ce565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161052e9591949190910192509050610bc2565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610598578181015183820152602001610580565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156105f85781810151838201526020016105e0565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161073957828416158015906106885750600083815260068201602052604081205460026000196101006001841615020190911604115b1561072e57600083815260068201602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050915061073e565b60029092029161064f565b600092505b509250929050565b82604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b6020831061083b5780518252601f19909201916020918201910161081c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905092915050565b82600019830183161561090e57600080fd5b60008481526001602090815260408083208684526006018252909120835161093892850190610bc2565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509050919050565b8160008381526001602090815260409091208351610a3692600290920191850190610bc2565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610a96578181015183820152602001610a7e565b50505050905090810190601f168015610ac35780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b816000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b81600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff86169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c0357805160ff1916838001178555610c30565b82800160010185558215610c30579182015b82811115610c30578251825591602001919060010190610c15565b50610c3c929150610c40565b5090565b610c5a91905b80821115610c3c5760008155600101610c46565b905600a165627a7a72305820820458ee1fb63da1465b0a1fbcba8ca7c04249db10a2c939ebf73d487bd5a83d0029', + runtime_bytecode: + '6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166310f13a8c81146100be5780632203ab561461015c57806329cd62ea146101f65780632dff6941146102145780633b3b57de1461023e57806359d1d43c1461027f578063623195b014610352578063691f3431146103b257806377372213146103ca578063c3d014d614610428578063c869023314610443578063d5fa2b0014610474575b600080fd5b3480156100ca57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104a59650505050505050565b005b34801561016857600080fd5b5061017760043560243561063a565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561020257600080fd5b5061015a600435602435604435610746565b34801561022057600080fd5b5061022c6004356107b5565b60408051918252519081900360200190f35b34801561024a57600080fd5b506102566004356107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102dd9583359536956044949193909101919081908401838280828437509497506107f39650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015a9482359460248035953695946064949201919081908401838280828437509497506108fc9650505050505050565b3480156103be57600080fd5b506102dd60043561096c565b3480156103d657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a958335953695604494919390910191908190840183828082843750949750610a109650505050505050565b34801561043457600080fd5b5061015a600435602435610ad5565b34801561044f57600080fd5b5061045b600435610b25565b6040805192835260208301919091528051918290030190f35b34801561048057600080fd5b5061015a60043573ffffffffffffffffffffffffffffffffffffffff60243516610b42565b826000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106104ed5780518252601f1990920191602091820191016104ce565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161052e9591949190910192509050610bc2565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610598578181015183820152602001610580565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156105f85781810151838201526020016105e0565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161073957828416158015906106885750600083815260068201602052604081205460026000196101006001841615020190911604115b1561072e57600083815260068201602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050915061073e565b60029092029161064f565b600092505b509250929050565b82604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b6020831061083b5780518252601f19909201916020918201910161081c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905092915050565b82600019830183161561090e57600080fd5b60008481526001602090815260408083208684526006018252909120835161093892850190610bc2565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509050919050565b8160008381526001602090815260409091208351610a3692600290920191850190610bc2565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610a96578181015183820152602001610a7e565b50505050905090810190601f168015610ac35780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b816000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b81600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff86169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c0357805160ff1916838001178555610c30565b82800160010185558215610c30579182015b82811115610c30578251825591602001919060010190610c15565b50610c3c929150610c40565b5090565b610c5a91905b80821115610c3c5760008155600101610c46565b905600a165627a7a72305820820458ee1fb63da1465b0a1fbcba8ca7c04249db10a2c939ebf73d487bd5a83d0029', + real_runtime_bytecode: + '6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166310f13a8c81146100be5780632203ab561461015c57806329cd62ea146101f65780632dff6941146102145780633b3b57de1461023e57806359d1d43c1461027f578063623195b014610352578063691f3431146103b257806377372213146103ca578063c3d014d614610428578063c869023314610443578063d5fa2b0014610474575b600080fd5b3480156100ca57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104a59650505050505050565b005b34801561016857600080fd5b5061017760043560243561063a565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561020257600080fd5b5061015a600435602435604435610746565b34801561022057600080fd5b5061022c6004356107b5565b60408051918252519081900360200190f35b34801561024a57600080fd5b506102566004356107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102dd9583359536956044949193909101919081908401838280828437509497506107f39650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015a9482359460248035953695946064949201919081908401838280828437509497506108fc9650505050505050565b3480156103be57600080fd5b506102dd60043561096c565b3480156103d657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261015a958335953695604494919390910191908190840183828082843750949750610a109650505050505050565b34801561043457600080fd5b5061015a600435602435610ad5565b34801561044f57600080fd5b5061045b600435610b25565b6040805192835260208301919091528051918290030190f35b34801561048057600080fd5b5061015a60043573ffffffffffffffffffffffffffffffffffffffff60243516610b42565b826000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106104ed5780518252601f1990920191602091820191016104ce565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161052e9591949190910192509050610bc2565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610598578181015183820152602001610580565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156105f85781810151838201526020016105e0565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161073957828416158015906106885750600083815260068201602052604081205460026000196101006001841615020190911604115b1561072e57600083815260068201602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050915061073e565b60029092029161064f565b600092505b509250929050565b82604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b6020831061083b5780518252601f19909201916020918201910161081c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905092915050565b82600019830183161561090e57600080fd5b60008481526001602090815260408083208684526006018252909120835161093892850190610bc2565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509050919050565b8160008381526001602090815260409091208351610a3692600290920191850190610bc2565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610a96578181015183820152602001610a7e565b50505050905090810190601f168015610ac35780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b816000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b81600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff86169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c0357805160ff1916838001178555610c30565b82800160010185558215610c30579182015b82811115610c30578251825591602001919060010190610c15565b50610c3c929150610c40565b5090565b610c5a91905b80821115610c3c5760008155600101610c46565b905600a165627a7a72305820', + swarm_hash: + '820458ee1fb63da1465b0a1fbcba8ca7c04249db10a2c939ebf73d487bd5a83d', + gas_estimates: { + creation: { + codeDepositCost: '641800', + executionCost: '21101', + totalCost: '662901', + }, + external: { + 'ABI(bytes32,uint256)': 'infinite', + 'addr(bytes32)': '559', + 'content(bytes32)': '534', + 'name(bytes32)': 'infinite', + 'pubkey(bytes32)': '924', + 'setABI(bytes32,uint256,bytes)': 'infinite', + 'setAddr(bytes32,address)': '22154', + 'setContent(bytes32,bytes32)': '21883', + 'setName(bytes32,string)': 'infinite', + 'setPubkey(bytes32,bytes32,bytes32)': '42083', + 'setText(bytes32,string,string)': 'infinite', + 'text(bytes32,string)': 'infinite', + }, + }, + function_hashes: { + 'ABI(bytes32,uint256)': '2203ab56', + 'addr(bytes32)': '3b3b57de', + 'content(bytes32)': '2dff6941', + 'name(bytes32)': '691f3431', + 'pubkey(bytes32)': 'c8690233', + 'setABI(bytes32,uint256,bytes)': '623195b0', + 'setAddr(bytes32,address)': 'd5fa2b00', + 'setContent(bytes32,bytes32)': 'c3d014d6', + 'setName(bytes32,string)': '77372213', + 'setPubkey(bytes32,bytes32,bytes32)': '29cd62ea', + 'setText(bytes32,string,string)': '10f13a8c', + 'text(bytes32,string)': '59d1d43c', + }, + abi: [ + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'key', type: 'string' }, + { name: 'value', type: 'string' }, + ], + name: 'setText', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'contentTypes', type: 'uint256' }, + ], + name: 'ABI', + outputs: [ + { name: 'contentType', type: 'uint256' }, + { name: 'data', type: 'bytes' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'x', type: 'bytes32' }, + { name: 'y', type: 'bytes32' }, + ], + name: 'setPubkey', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'content', + outputs: [{ name: '', type: 'bytes32' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'addr', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'key', type: 'string' }, + ], + name: 'text', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'contentType', type: 'uint256' }, + { name: 'data', type: 'bytes' }, + ], + name: 'setABI', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'name', type: 'string' }, + ], + name: 'setName', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'hash', type: 'bytes32' }, + ], + name: 'setContent', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'pubkey', + outputs: [{ name: 'x', type: 'bytes32' }, { name: 'y', type: 'bytes32' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'addr', type: 'address' }, + ], + name: 'setAddr', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'ensAddr', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'a', type: 'address' }, + ], + name: 'AddrChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'hash', type: 'bytes32' }, + ], + name: 'ContentChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'name', type: 'string' }, + ], + name: 'NameChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: true, name: 'contentType', type: 'uint256' }, + ], + name: 'ABIChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'x', type: 'bytes32' }, + { indexed: false, name: 'y', type: 'bytes32' }, + ], + name: 'PubkeyChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'indexedKey', type: 'string' }, + { indexed: false, name: 'key', type: 'string' }, + ], + name: 'TextChanged', + type: 'event', + }, + ], +} +let Resolver = new EmbarkJS.Blockchain.Contract(ResolverJSONConfig) +export default Resolver diff --git a/src/embarkArtifacts/contracts/SNT.js b/src/embarkArtifacts/contracts/SNT.js new file mode 100644 index 0000000..03c247e --- /dev/null +++ b/src/embarkArtifacts/contracts/SNT.js @@ -0,0 +1,894 @@ +import EmbarkJS from '../embarkjs' +let SNTJSONConfig = { + contract_name: { + instanceOf: 'MiniMeToken', + args: [ + '$MiniMeTokenFactory', + '0x0000000000000000000000000000000000000000', + 0, + 'SNTMiniMeToken', + 18, + 'SNT', + true, + ], + className: 'SNT', + deploy: true, + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/MiniMeToken.sol', + originalFilename: 'contracts/token/MiniMeToken.sol', + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/MiniMeToken.sol', + code: + '60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + runtimeBytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + realRuntimeBytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a72305820', + gasEstimates: { + creation: { + codeDepositCost: '1383200', + executionCost: 'infinite', + totalCost: 'infinite', + }, + external: { + '': 'infinite', + 'VERSION()': 'infinite', + 'allowance(address,address)': '833', + 'approve(address,uint256)': 'infinite', + 'approveAndCall(address,uint256,bytes)': 'infinite', + 'balanceOf(address)': 'infinite', + 'balanceOfAt(address,uint256)': 'infinite', + 'changeController(address)': 'infinite', + 'claimTokens(address)': 'infinite', + 'controller()': '641', + 'createCloneToken(string,uint8,string,uint256,bool)': 'infinite', + 'creationBlock()': '468', + 'decimals()': '549', + 'destroyTokens(address,uint256)': 'infinite', + 'enableTransfers(bool)': 'infinite', + 'generateTokens(address,uint256)': 'infinite', + 'name()': 'infinite', + 'parentSnapShotBlock()': '511', + 'parentToken()': '664', + 'symbol()': 'infinite', + 'tokenFactory()': '608', + 'totalSupply()': 'infinite', + 'totalSupplyAt(uint256)': 'infinite', + 'transfer(address,uint256)': 'infinite', + 'transferFrom(address,address,uint256)': 'infinite', + 'transfersEnabled()': '501', + }, + internal: { + 'doApprove(address,address,uint256)': 'infinite', + 'doTransfer(address,address,uint256)': 'infinite', + 'getValueAt(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + 'isContract(address)': '835', + 'min(uint256,uint256)': '65', + 'updateValueAtNow(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + }, + }, + functionHashes: { + 'VERSION()': 'ffa1ad74', + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'approveAndCall(address,uint256,bytes)': 'cae9ca51', + 'balanceOf(address)': '70a08231', + 'balanceOfAt(address,uint256)': '4ee2cd7e', + 'changeController(address)': '3cebb823', + 'claimTokens(address)': 'df8de3e7', + 'controller()': 'f77c4791', + 'createCloneToken(string,uint8,string,uint256,bool)': '6638c087', + 'creationBlock()': '17634514', + 'decimals()': '313ce567', + 'destroyTokens(address,uint256)': 'd3ce77fe', + 'enableTransfers(bool)': 'f41e60c5', + 'generateTokens(address,uint256)': '827f32c0', + 'name()': '06fdde03', + 'parentSnapShotBlock()': 'c5bcc4f1', + 'parentToken()': '80a54001', + 'symbol()': '95d89b41', + 'tokenFactory()': 'e77772fe', + 'totalSupply()': '18160ddd', + 'totalSupplyAt(uint256)': '981b24d0', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + 'transfersEnabled()': 'bef97c87', + }, + abiDefinition: [ + { + constant: true, + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x06fdde03', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x095ea7b3', + }, + { + constant: true, + inputs: [], + name: 'creationBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x17634514', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x18160ddd', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x23b872dd', + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x313ce567', + }, + { + constant: false, + inputs: [{ name: '_newController', type: 'address' }], + name: 'changeController', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x3cebb823', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_blockNumber', type: 'uint256' }, + ], + name: 'balanceOfAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x4ee2cd7e', + }, + { + constant: false, + inputs: [ + { name: '_cloneTokenName', type: 'string' }, + { name: '_cloneDecimalUnits', type: 'uint8' }, + { name: '_cloneTokenSymbol', type: 'string' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x6638c087', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x70a08231', + }, + { + constant: true, + inputs: [], + name: 'parentToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x80a54001', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'generateTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x827f32c0', + }, + { + constant: true, + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x95d89b41', + }, + { + constant: true, + inputs: [{ name: '_blockNumber', type: 'uint256' }], + name: 'totalSupplyAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x981b24d0', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xa9059cbb', + }, + { + constant: true, + inputs: [], + name: 'transfersEnabled', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xbef97c87', + }, + { + constant: true, + inputs: [], + name: 'parentSnapShotBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xc5bcc4f1', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_extraData', type: 'bytes' }, + ], + name: 'approveAndCall', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xcae9ca51', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'destroyTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xd3ce77fe', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xdd62ed3e', + }, + { + constant: false, + inputs: [{ name: '_token', type: 'address' }], + name: 'claimTokens', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xdf8de3e7', + }, + { + constant: true, + inputs: [], + name: 'tokenFactory', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xe77772fe', + }, + { + constant: false, + inputs: [{ name: '_transfersEnabled', type: 'bool' }], + name: 'enableTransfers', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xf41e60c5', + }, + { + constant: true, + inputs: [], + name: 'controller', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xf77c4791', + }, + { + constant: true, + inputs: [], + name: 'VERSION', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xffa1ad74', + }, + { + inputs: [ + { name: '_tokenFactory', type: 'address' }, + { name: '_parentToken', type: 'address' }, + { name: '_parentSnapShotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + signature: 'constructor', + }, + { payable: true, stateMutability: 'payable', type: 'fallback' }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_token', type: 'address' }, + { indexed: true, name: '_controller', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'ClaimedTokens', + type: 'event', + signature: + '0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + signature: + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_cloneToken', type: 'address' }, + { indexed: false, name: 'snapshotBlock', type: 'uint256' }, + ], + name: 'NewCloneToken', + type: 'event', + signature: + '0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + signature: + '0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925', + }, + ], + linkReferences: {}, + gas: 2178707, + gasPrice: '1000000000', + type: 'instance', + _gasLimit: 6000000, + error: false, + deploymentAccount: '0x299C59D7324f34Dc217B951d7340A94D186A6129', + realArgs: [ + '0xdcf5Bf6B4090072CBD018c1e606B05b393aED290', + '0x0000000000000000000000000000000000000000', + 0, + 'SNTMiniMeToken', + 18, + 'SNT', + true, + ], + deployedAddress: '0x25B1bD06fBfC2CbDbFc174e10f1B78b1c91cc77B', + transactionHash: + '0x4d16d41e57aa6c4f7c4e564580049b0c5ecf0df39c5ca726328f76bc48486d79', + }, + address: '0x25B1bD06fBfC2CbDbFc174e10f1B78b1c91cc77B', + code: + '60806040523480156200001157600080fd5b5060405162001d6238038062001d62833981018060405260e08110156200003757600080fd5b81516020830151604084015160608501805193959294919391830192916401000000008111156200006757600080fd5b820160208101848111156200007b57600080fd5b81516401000000008111828201871017156200009657600080fd5b50506020820151604090920180519194929391640100000000811115620000bc57600080fd5b82016020810184811115620000d057600080fd5b8151640100000000811182820187101715620000eb57600080fd5b505060209182015160008054600160a060020a03191633179055600a8054600160a060020a038c166101000261010060a860020a031990911617905586519194509250620001409160019190870190620001a9565b506002805460ff191660ff8516179055815162000165906003906020850190620001a9565b5060048054600160a060020a031916600160a060020a039790971696909617909555505050600555600a805460ff191691151591909117905550436006556200024e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ec57805160ff19168380011785556200021c565b828001600101855582156200021c579182015b828111156200021c578251825591602001919060010190620001ff565b506200022a9291506200022e565b5090565b6200024b91905b808211156200022a576000815560010162000235565b90565b611b04806200025e6000396000f3fe60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + runtime_bytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a723058203b6fad674c5421235611cf10c3ab3824bf00a327f2fecb8a8608dc9dc20bb5640029', + real_runtime_bytecode: + '60806040526004361061016a5760003560e060020a9004806395d89b41116100d5578063d3ce77fe1161008e578063e77772fe11610068578063e77772fe1461076d578063f41e60c514610782578063f77c4791146107ae578063ffa1ad74146107c35761016a565b8063d3ce77fe146106c6578063dd62ed3e146106ff578063df8de3e71461073a5761016a565b806395d89b4114610592578063981b24d0146105a7578063a9059cbb146105d1578063bef97c871461060a578063c5bcc4f11461061f578063cae9ca51146106345761016a565b80633cebb823116101275780633cebb823146103ab5780634ee2cd7e146103de5780636638c0871461041757806370a082311461051157806380a5400114610544578063827f32c0146105595761016a565b806306fdde031461022a578063095ea7b3146102b4578063176345141461030157806318160ddd1461032857806323b872dd1461033d578063313ce56714610380575b60005461017f90600160a060020a03166107d8565b151561018a57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101f057600080fd5b505af1158015610204573d6000803e3d6000fd5b50505050506040513d602081101561021b57600080fd5b5051151561022857600080fd5b005b34801561023657600080fd5b5061023f610802565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610279578181015183820152602001610261565b50505050905090810190601f1680156102a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c057600080fd5b506102ed600480360360408110156102d757600080fd5b50600160a060020a03813516906020013561088f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506103166108a3565b60408051918252519081900360200190f35b34801561033457600080fd5b506103166108a9565b34801561034957600080fd5b506102ed6004803603606081101561036057600080fd5b50600160a060020a038135811691602081013590911690604001356108ba565b34801561038c57600080fd5b50610395610951565b6040805160ff9092168252519081900360200190f35b3480156103b757600080fd5b50610228600480360360208110156103ce57600080fd5b5035600160a060020a031661095a565b3480156103ea57600080fd5b506103166004803603604081101561040157600080fd5b50600160a060020a0381351690602001356109d9565b34801561042357600080fd5b506104f5600480360360a081101561043a57600080fd5b81019060208101813564010000000081111561045557600080fd5b82018360208201111561046757600080fd5b8035906020019184600183028401116401000000008311171561048957600080fd5b9193909260ff833516926040810190602001356401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b9193509150803590602001351515610b26565b60408051600160a060020a039092168252519081900360200190f35b34801561051d57600080fd5b506103166004803603602081101561053457600080fd5b5035600160a060020a0316610d1b565b34801561055057600080fd5b506104f5610d27565b34801561056557600080fd5b506102ed6004803603604081101561057c57600080fd5b50600160a060020a038135169060200135610d36565b34801561059e57600080fd5b5061023f610e3d565b3480156105b357600080fd5b50610316600480360360208110156105ca57600080fd5b5035610e98565b3480156105dd57600080fd5b506102ed600480360360408110156105f457600080fd5b50600160a060020a038135169060200135610f8a565b34801561061657600080fd5b506102ed610fa9565b34801561062b57600080fd5b50610316610fb2565b34801561064057600080fd5b506102ed6004803603606081101561065757600080fd5b600160a060020a038235169160208101359181019060608101604082013564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460018302840111640100000000831117156106bb57600080fd5b509092509050610fb8565b3480156106d257600080fd5b506102ed600480360360408110156106e957600080fd5b50600160a060020a03813516906020013561109d565b34801561070b57600080fd5b506103166004803603604081101561072257600080fd5b50600160a060020a03813581169160200135166111a0565b34801561074657600080fd5b506102286004803603602081101561075d57600080fd5b5035600160a060020a03166111cb565b34801561077957600080fd5b506104f56113e8565b34801561078e57600080fd5b50610228600480360360208110156107a557600080fd5b503515156113fc565b3480156107ba57600080fd5b506104f561145f565b3480156107cf57600080fd5b5061023f61146e565b600080600160a060020a03831615156107f55760009150506107fd565b50506000813b115b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b820191906000526020600020905b81548152906001019060200180831161086a57829003601f168201915b505050505081565b600061089c3384846114a5565b5092915050565b60065481565b60006108b443610e98565b90505b90565b60008054600160a060020a0316331461093c57600a5460ff1615156108de57600080fd5b600160a060020a03841660009081526008602090815260408083203384529091529020548211156109115750600061094a565b600160a060020a03841660009081526008602090815260408083203384529091529020805483900390555b610947848484611626565b90505b9392505050565b60025460ff1681565b600054600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0382166000908152600760205260408120541580610a355750600160a060020a038316600090815260076020526040812080548492908110610a1e57fe5b6000918252602090912001546001608060020a0316115b15610afb57600454600160a060020a031615610af357600454600554600160a060020a0390911690634ee2cd7e908590610a70908690611818565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060206040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b50519050610b20565b506000610b20565b600160a060020a0383166000908152600760205260409020610b1d908361182e565b90505b92915050565b600082801515610b335750435b6000600a60019054906101000a9004600160a060020a0316600160a060020a0316635b7b72c130848d8d8d8d8d8c6040518963ffffffff1660e060020a0281526004018089600160a060020a0316600160a060020a03168152602001888152602001806020018660ff1660ff16815260200180602001841515151581526020018381038352898982818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509a5050505050505050505050602060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604080518581529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29998505050505050505050565b6000610b2082436109d9565b600454600160a060020a031681565b60008054600160a060020a03163314610d87576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b6000610d9243610e98565b9050828101811115610da357600080fd5b6000610daf85436109d9565b9050838101811115610dc057600080fd5b610dcd600985840161197e565b600160a060020a0385166000908152600760205260409020610df19082860161197e565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108875780601f1061085c57610100808354040283529160200191610887565b6009546000901580610ecd57508160096000815481101515610eb657fe5b6000918252602090912001546001608060020a0316115b15610f7857600454600160a060020a031615610f7057600454600554600160a060020a039091169063981b24d090610f06908590611818565b6040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506107fd565b5060006107fd565b610f8360098361182e565b90506107fd565b600a5460009060ff161515610f9e57600080fd5b610b1d338484611626565b600a5460ff1681565b60055481565b6000610fc53386866114a5565b1515610fd057600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301879052306044840181905260806064850190815260848501879052600160a060020a038a1694638f4ffcb194938a93928a928a92919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b50600198975050505050505050565b60008054600160a060020a031633146110ee576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b60006110f943610e98565b90508281101561110857600080fd5b600061111485436109d9565b90508381101561112357600080fd5b611130600985840361197e565b600160a060020a03851660009081526007602052604090206111549085830361197e565b604080518581529051600091600160a060020a038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b600054600160a060020a0316331461121b576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600160a060020a038116151561126c5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611266573d6000803e3d6000fd5b506113e5565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518291600091600160a060020a038416916370a08231916024808301926020929190829003018186803b1580156112d057600080fd5b505afa1580156112e4573d6000803e3d6000fd5b505050506040513d60208110156112fa57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350505b50565b600a546101009004600160a060020a031681565b600054600160a060020a0316331461144c576040805160e560020a62461bcd02815260206004820152600c6024820152600080516020611ab9833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b600054600160a060020a031681565b60408051808201909152600781527f4d4d545f302e3100000000000000000000000000000000000000000000000000602082015281565b600a5460009060ff1615156114b957600080fd5b8115806114e95750600160a060020a03808516600090815260086020908152604080832093871683529290522054155b15156114f457600080fd5b60005461150990600160a060020a03166107d8565b156115bf5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b505115156115bf57600080fd5b600160a060020a03808516600081815260086020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060019392505050565b60008115156116375750600161094a565b600554431161164557600080fd5b600160a060020a038316158015906116665750600160a060020a0383163014155b151561167157600080fd5b600061167d85436109d9565b90508281101561169157600091505061094a565b6000546116a690600160a060020a03166107d8565b1561175c5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051151561175c57600080fd5b600160a060020a03851660009081526007602052604090206117809084830361197e565b600061178c85436109d9565b905083810181111561179d57600080fd5b600160a060020a03851660009081526007602052604090206117c19082860161197e565b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350600195945050505050565b60008183106118275781610b1d565b5090919050565b8154600090151561184157506000610b20565b82548390600019810190811061185357fe5b6000918252602090912001546001608060020a031682106118b05782548390600019810190811061188057fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a03169050610b20565b8260008154811015156118bf57fe5b6000918252602090912001546001608060020a03168210156118e357506000610b20565b8254600090600019015b8181111561193e57845460028383016001010490859087908390811061190f57fe5b6000918252602090912001546001608060020a03161161193157809250611938565b6001810391505b506118ed565b848281548110151561194c57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031695945050505050565b815415806119b25750815443908390600019810190811061199b57fe5b6000918252602090912001546001608060020a0316105b15611a2657815460009083906119cb8260018301611a71565b815481106119d557fe5b600091825260209091200180546001608060020a03848116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617905550611a6d565b815460009083906000198101908110611a3b57fe5b600091825260209091200180546001608060020a03808516700100000000000000000000000000000000029116179055505b5050565b815481835581811115611a9557600083815260209020611a95918101908301611a9a565b505050565b6108b791905b80821115611ab45760008155600101611aa0565b509056fe556e617574686f72697a65640000000000000000000000000000000000000000a165627a7a72305820', + gas_estimates: { + creation: { + codeDepositCost: '1383200', + executionCost: 'infinite', + totalCost: 'infinite', + }, + external: { + '': 'infinite', + 'VERSION()': 'infinite', + 'allowance(address,address)': '833', + 'approve(address,uint256)': 'infinite', + 'approveAndCall(address,uint256,bytes)': 'infinite', + 'balanceOf(address)': 'infinite', + 'balanceOfAt(address,uint256)': 'infinite', + 'changeController(address)': 'infinite', + 'claimTokens(address)': 'infinite', + 'controller()': '641', + 'createCloneToken(string,uint8,string,uint256,bool)': 'infinite', + 'creationBlock()': '468', + 'decimals()': '549', + 'destroyTokens(address,uint256)': 'infinite', + 'enableTransfers(bool)': 'infinite', + 'generateTokens(address,uint256)': 'infinite', + 'name()': 'infinite', + 'parentSnapShotBlock()': '511', + 'parentToken()': '664', + 'symbol()': 'infinite', + 'tokenFactory()': '608', + 'totalSupply()': 'infinite', + 'totalSupplyAt(uint256)': 'infinite', + 'transfer(address,uint256)': 'infinite', + 'transferFrom(address,address,uint256)': 'infinite', + 'transfersEnabled()': '501', + }, + internal: { + 'doApprove(address,address,uint256)': 'infinite', + 'doTransfer(address,address,uint256)': 'infinite', + 'getValueAt(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + 'isContract(address)': '835', + 'min(uint256,uint256)': '65', + 'updateValueAtNow(struct MiniMeToken.Checkpoint storage ref[] storage pointer,uint256)': + 'infinite', + }, + }, + function_hashes: { + 'VERSION()': 'ffa1ad74', + 'allowance(address,address)': 'dd62ed3e', + 'approve(address,uint256)': '095ea7b3', + 'approveAndCall(address,uint256,bytes)': 'cae9ca51', + 'balanceOf(address)': '70a08231', + 'balanceOfAt(address,uint256)': '4ee2cd7e', + 'changeController(address)': '3cebb823', + 'claimTokens(address)': 'df8de3e7', + 'controller()': 'f77c4791', + 'createCloneToken(string,uint8,string,uint256,bool)': '6638c087', + 'creationBlock()': '17634514', + 'decimals()': '313ce567', + 'destroyTokens(address,uint256)': 'd3ce77fe', + 'enableTransfers(bool)': 'f41e60c5', + 'generateTokens(address,uint256)': '827f32c0', + 'name()': '06fdde03', + 'parentSnapShotBlock()': 'c5bcc4f1', + 'parentToken()': '80a54001', + 'symbol()': '95d89b41', + 'tokenFactory()': 'e77772fe', + 'totalSupply()': '18160ddd', + 'totalSupplyAt(uint256)': '981b24d0', + 'transfer(address,uint256)': 'a9059cbb', + 'transferFrom(address,address,uint256)': '23b872dd', + 'transfersEnabled()': 'bef97c87', + }, + abi: [ + { + constant: true, + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x06fdde03', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x095ea7b3', + }, + { + constant: true, + inputs: [], + name: 'creationBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x17634514', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x18160ddd', + }, + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x23b872dd', + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x313ce567', + }, + { + constant: false, + inputs: [{ name: '_newController', type: 'address' }], + name: 'changeController', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x3cebb823', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_blockNumber', type: 'uint256' }, + ], + name: 'balanceOfAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x4ee2cd7e', + }, + { + constant: false, + inputs: [ + { name: '_cloneTokenName', type: 'string' }, + { name: '_cloneDecimalUnits', type: 'uint8' }, + { name: '_cloneTokenSymbol', type: 'string' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x6638c087', + }, + { + constant: true, + inputs: [{ name: '_owner', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: 'balance', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x70a08231', + }, + { + constant: true, + inputs: [], + name: 'parentToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x80a54001', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'generateTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0x827f32c0', + }, + { + constant: true, + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x95d89b41', + }, + { + constant: true, + inputs: [{ name: '_blockNumber', type: 'uint256' }], + name: 'totalSupplyAt', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0x981b24d0', + }, + { + constant: false, + inputs: [ + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xa9059cbb', + }, + { + constant: true, + inputs: [], + name: 'transfersEnabled', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xbef97c87', + }, + { + constant: true, + inputs: [], + name: 'parentSnapShotBlock', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xc5bcc4f1', + }, + { + constant: false, + inputs: [ + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + { name: '_extraData', type: 'bytes' }, + ], + name: 'approveAndCall', + outputs: [{ name: 'success', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xcae9ca51', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'destroyTokens', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xd3ce77fe', + }, + { + constant: true, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: 'remaining', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xdd62ed3e', + }, + { + constant: false, + inputs: [{ name: '_token', type: 'address' }], + name: 'claimTokens', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xdf8de3e7', + }, + { + constant: true, + inputs: [], + name: 'tokenFactory', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xe77772fe', + }, + { + constant: false, + inputs: [{ name: '_transfersEnabled', type: 'bool' }], + name: 'enableTransfers', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + signature: '0xf41e60c5', + }, + { + constant: true, + inputs: [], + name: 'controller', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xf77c4791', + }, + { + constant: true, + inputs: [], + name: 'VERSION', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + signature: '0xffa1ad74', + }, + { + inputs: [ + { name: '_tokenFactory', type: 'address' }, + { name: '_parentToken', type: 'address' }, + { name: '_parentSnapShotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + signature: 'constructor', + }, + { payable: true, stateMutability: 'payable', type: 'fallback' }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_token', type: 'address' }, + { indexed: true, name: '_controller', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'ClaimedTokens', + type: 'event', + signature: + '0xf931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_from', type: 'address' }, + { indexed: true, name: '_to', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Transfer', + type: 'event', + signature: + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_cloneToken', type: 'address' }, + { indexed: false, name: 'snapshotBlock', type: 'uint256' }, + ], + name: 'NewCloneToken', + type: 'event', + signature: + '0x086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: '_owner', type: 'address' }, + { indexed: true, name: '_spender', type: 'address' }, + { indexed: false, name: '_amount', type: 'uint256' }, + ], + name: 'Approval', + type: 'event', + signature: + '0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925', + }, + ], +} +let SNT = new EmbarkJS.Blockchain.Contract(SNTJSONConfig) +export default SNT diff --git a/src/embarkArtifacts/contracts/SafeMath.js b/src/embarkArtifacts/contracts/SafeMath.js new file mode 100644 index 0000000..278ac4f --- /dev/null +++ b/src/embarkArtifacts/contracts/SafeMath.js @@ -0,0 +1,66 @@ +import EmbarkJS from '../embarkjs' +let SafeMathJSONConfig = { + contract_name: { + deploy: false, + className: 'SafeMath', + args: [], + code: + '604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058201c7ba53eadf51a75ddf58183145eae723240ee0162846cb78af14e9ac08e724f0029', + runtimeBytecode: + '73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058201c7ba53eadf51a75ddf58183145eae723240ee0162846cb78af14e9ac08e724f0029', + realRuntimeBytecode: + '73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820', + linkReferences: {}, + swarmHash: + '1c7ba53eadf51a75ddf58183145eae723240ee0162846cb78af14e9ac08e724f', + gasEstimates: { + creation: { + codeDepositCost: '15200', + executionCost: '116', + totalCost: '15316', + }, + internal: { + 'add(uint256,uint256)': 'infinite', + 'div(uint256,uint256)': 'infinite', + 'mul(uint256,uint256)': 'infinite', + 'sub(uint256,uint256)': 'infinite', + }, + }, + functionHashes: {}, + abiDefinition: [], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/utils/SafeMath.sol', + originalFilename: 'contracts/utils/SafeMath.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/utils/SafeMath.sol', + gas: 'auto', + type: 'file', + _gasLimit: 6000000, + error: false, + }, + code: + '604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058201c7ba53eadf51a75ddf58183145eae723240ee0162846cb78af14e9ac08e724f0029', + runtime_bytecode: + '73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058201c7ba53eadf51a75ddf58183145eae723240ee0162846cb78af14e9ac08e724f0029', + real_runtime_bytecode: + '73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820', + swarm_hash: + '1c7ba53eadf51a75ddf58183145eae723240ee0162846cb78af14e9ac08e724f', + gas_estimates: { + creation: { + codeDepositCost: '15200', + executionCost: '116', + totalCost: '15316', + }, + internal: { + 'add(uint256,uint256)': 'infinite', + 'div(uint256,uint256)': 'infinite', + 'mul(uint256,uint256)': 'infinite', + 'sub(uint256,uint256)': 'infinite', + }, + }, + function_hashes: {}, + abi: [], +} +let SafeMath = new EmbarkJS.Blockchain.Contract(SafeMathJSONConfig) +export default SafeMath diff --git a/src/embarkArtifacts/contracts/TestBancorFormula.js b/src/embarkArtifacts/contracts/TestBancorFormula.js new file mode 100644 index 0000000..07d3f61 --- /dev/null +++ b/src/embarkArtifacts/contracts/TestBancorFormula.js @@ -0,0 +1,234 @@ +import EmbarkJS from '../embarkjs' +let TestBancorFormulaJSONConfig = { + contract_name: { + deploy: false, + className: 'TestBancorFormula', + args: [], + code: + '608060409081526001606060020a641c35fedd1502036020556001605e60020a646c3390ecc902036021556001606160020a640cf801476102036022556001605f60020a6431bdb23e1d02036023556001605b60020a6502fb1d8fe08302036024556001605a60020a6505b771955b3702036025556001605960020a650af67a93bb5102036026556001605860020a6515060c256cb302036027556001605860020a651428a2f98d7302036028556001605660020a654d515663970902036029556001605560020a65944620b0e70f0203602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d556001608360020a03603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff905570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e556001608160020a03605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e6607f556112c6806107b66000396000f3fe608060405234801561001057600080fd5b506004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900480638c5ce82a116100785780638c5ce82a14610111578063a25a34b114610163578063acdee8cb14610196578063ce782e08146101b35761009a565b80633e8a38ab1461009f5780634982d52d146100ce5780636cab5055146100eb575b600080fd5b6100bc600480360360208110156100b557600080fd5b50356101d0565b60408051918252519081900360200190f35b6100bc600480360360208110156100e457600080fd5b50356101e3565b6100bc6004803603604081101561010157600080fd5b508035906020013560ff166101ee565b6101486004803603608081101561012757600080fd5b5080359060208101359063ffffffff60408201358116916060013516610201565b6040805192835260ff90911660208301528051918290030190f35b6101806004803603602081101561017957600080fd5b503561021e565b6040805160ff9092168252519081900360200190f35b6100bc600480360360208110156101ac57600080fd5b5035610229565b610180600480360360208110156101c957600080fd5b5035610234565b60006101db8261023f565b90505b919050565b60006101db82610664565b60006101fa8383610732565b9392505050565b60008061021086868686610bd4565b915091505b94509492505050565b60006101db82610d20565b60006101db82610e01565b60006101db8261120e565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd8861061028e576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106102d7576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610610320576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610610369576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd386106103b2576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106103fb576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610610444576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061048c576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106106a6576000610690607f60020a850461120e565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561070657607f5b60008160ff16111561070457607f60020a84800204935070010000000000000000000000000000000084106106fb576002938490049360ff600019830116900a91909101905b600019016106b5565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515610bc857fe5b04010195945050505050565b6000807002000000000000000000000000000000008610610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a8902811515610c6a57fe5b04905070015bf0a8b1457695355fb8ac404e7a79e3811015610c9657610c8f8161023f565b9150610ca2565b610c9f81610664565b91505b60008563ffffffff168763ffffffff168402811515610cbd57fe5b049050700800000000000000000000000000000000811015610cf057610ce281610e01565b607f94509450505050610215565b6000610cfb82610d20565b9050610d1360ff607f8390031660020a830482610732565b9550935061021592505050565b60006020607f5b8060ff168260010160ff161015610d6f576000600260ff8484011604905084600060ff831660808110610d5657fe5b015410610d6557809250610d69565b8091505b50610d27565b83600060ff831660808110610d8057fe5b015410610d905791506101de9050565b83600060ff841660808110610da157fe5b015410610db0575090506101de565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112796022913960400191505060405180910390fd5b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515610e7c57fe5b04905080660c0135dca040000283019250607f60020a828202811515610e9e57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515610ec057fe5b049050806536e0f639b8000283019250607f60020a828202811515610ee157fe5b04905080650618fee9f8000283019250607f60020a828202811515610f0257fe5b04905080649c197dcc000283019250607f60020a828202811515610f2257fe5b04905080640e30dce4000283019250607f60020a828202811515610f4257fe5b0490508064012ebd13000283019250607f60020a828202811515610f6257fe5b049050806317499f000283019250607f60020a828202811515610f8157fe5b049050806301a9d4800283019250607f60020a828202811515610fa057fe5b04905080621c63800283019250607f60020a828202811515610fbe57fe5b049050806201c6380283019250607f60020a828202811515610fdc57fe5b04905080611ab80283019250607f60020a828202811515610ff957fe5b0490508061017c0283019250607f60020a82820281151561101657fe5b0490508060140283019250607f60020a82820281151561103257fe5b6721c3677c82b40000919004938401048201607f60020a019290506f1000000000000000000000000000000085161561108f5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156110d1577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615611112576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615611146576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b700100000000000000000000000000000000851615611187576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156111c7576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615611205576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b600080610100831015611238575b60018311156112335760029092049160010161121c565b6101db565b60805b60008160ff1611156112715760ff811660020a84106112645760ff811660020a90930492908117905b600260ff9091160461123b565b509291505056fe436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6ea165627a7a723058209c30b33fbf2dd637afb1de96405b28308b3f1c0c4e942baf05cbc9528af490fc0029', + runtimeBytecode: + '608060405234801561001057600080fd5b506004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900480638c5ce82a116100785780638c5ce82a14610111578063a25a34b114610163578063acdee8cb14610196578063ce782e08146101b35761009a565b80633e8a38ab1461009f5780634982d52d146100ce5780636cab5055146100eb575b600080fd5b6100bc600480360360208110156100b557600080fd5b50356101d0565b60408051918252519081900360200190f35b6100bc600480360360208110156100e457600080fd5b50356101e3565b6100bc6004803603604081101561010157600080fd5b508035906020013560ff166101ee565b6101486004803603608081101561012757600080fd5b5080359060208101359063ffffffff60408201358116916060013516610201565b6040805192835260ff90911660208301528051918290030190f35b6101806004803603602081101561017957600080fd5b503561021e565b6040805160ff9092168252519081900360200190f35b6100bc600480360360208110156101ac57600080fd5b5035610229565b610180600480360360208110156101c957600080fd5b5035610234565b60006101db8261023f565b90505b919050565b60006101db82610664565b60006101fa8383610732565b9392505050565b60008061021086868686610bd4565b915091505b94509492505050565b60006101db82610d20565b60006101db82610e01565b60006101db8261120e565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd8861061028e576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106102d7576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610610320576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610610369576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd386106103b2576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106103fb576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610610444576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061048c576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106106a6576000610690607f60020a850461120e565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561070657607f5b60008160ff16111561070457607f60020a84800204935070010000000000000000000000000000000084106106fb576002938490049360ff600019830116900a91909101905b600019016106b5565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515610bc857fe5b04010195945050505050565b6000807002000000000000000000000000000000008610610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a8902811515610c6a57fe5b04905070015bf0a8b1457695355fb8ac404e7a79e3811015610c9657610c8f8161023f565b9150610ca2565b610c9f81610664565b91505b60008563ffffffff168763ffffffff168402811515610cbd57fe5b049050700800000000000000000000000000000000811015610cf057610ce281610e01565b607f94509450505050610215565b6000610cfb82610d20565b9050610d1360ff607f8390031660020a830482610732565b9550935061021592505050565b60006020607f5b8060ff168260010160ff161015610d6f576000600260ff8484011604905084600060ff831660808110610d5657fe5b015410610d6557809250610d69565b8091505b50610d27565b83600060ff831660808110610d8057fe5b015410610d905791506101de9050565b83600060ff841660808110610da157fe5b015410610db0575090506101de565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112796022913960400191505060405180910390fd5b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515610e7c57fe5b04905080660c0135dca040000283019250607f60020a828202811515610e9e57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515610ec057fe5b049050806536e0f639b8000283019250607f60020a828202811515610ee157fe5b04905080650618fee9f8000283019250607f60020a828202811515610f0257fe5b04905080649c197dcc000283019250607f60020a828202811515610f2257fe5b04905080640e30dce4000283019250607f60020a828202811515610f4257fe5b0490508064012ebd13000283019250607f60020a828202811515610f6257fe5b049050806317499f000283019250607f60020a828202811515610f8157fe5b049050806301a9d4800283019250607f60020a828202811515610fa057fe5b04905080621c63800283019250607f60020a828202811515610fbe57fe5b049050806201c6380283019250607f60020a828202811515610fdc57fe5b04905080611ab80283019250607f60020a828202811515610ff957fe5b0490508061017c0283019250607f60020a82820281151561101657fe5b0490508060140283019250607f60020a82820281151561103257fe5b6721c3677c82b40000919004938401048201607f60020a019290506f1000000000000000000000000000000085161561108f5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156110d1577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615611112576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615611146576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b700100000000000000000000000000000000851615611187576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156111c7576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615611205576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b600080610100831015611238575b60018311156112335760029092049160010161121c565b6101db565b60805b60008160ff1611156112715760ff811660020a84106112645760ff811660020a90930492908117905b600260ff9091160461123b565b509291505056fe436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6ea165627a7a723058209c30b33fbf2dd637afb1de96405b28308b3f1c0c4e942baf05cbc9528af490fc0029', + realRuntimeBytecode: + '608060405234801561001057600080fd5b506004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900480638c5ce82a116100785780638c5ce82a14610111578063a25a34b114610163578063acdee8cb14610196578063ce782e08146101b35761009a565b80633e8a38ab1461009f5780634982d52d146100ce5780636cab5055146100eb575b600080fd5b6100bc600480360360208110156100b557600080fd5b50356101d0565b60408051918252519081900360200190f35b6100bc600480360360208110156100e457600080fd5b50356101e3565b6100bc6004803603604081101561010157600080fd5b508035906020013560ff166101ee565b6101486004803603608081101561012757600080fd5b5080359060208101359063ffffffff60408201358116916060013516610201565b6040805192835260ff90911660208301528051918290030190f35b6101806004803603602081101561017957600080fd5b503561021e565b6040805160ff9092168252519081900360200190f35b6100bc600480360360208110156101ac57600080fd5b5035610229565b610180600480360360208110156101c957600080fd5b5035610234565b60006101db8261023f565b90505b919050565b60006101db82610664565b60006101fa8383610732565b9392505050565b60008061021086868686610bd4565b915091505b94509492505050565b60006101db82610d20565b60006101db82610e01565b60006101db8261120e565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd8861061028e576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106102d7576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610610320576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610610369576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd386106103b2576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106103fb576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610610444576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061048c576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106106a6576000610690607f60020a850461120e565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561070657607f5b60008160ff16111561070457607f60020a84800204935070010000000000000000000000000000000084106106fb576002938490049360ff600019830116900a91909101905b600019016106b5565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515610bc857fe5b04010195945050505050565b6000807002000000000000000000000000000000008610610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a8902811515610c6a57fe5b04905070015bf0a8b1457695355fb8ac404e7a79e3811015610c9657610c8f8161023f565b9150610ca2565b610c9f81610664565b91505b60008563ffffffff168763ffffffff168402811515610cbd57fe5b049050700800000000000000000000000000000000811015610cf057610ce281610e01565b607f94509450505050610215565b6000610cfb82610d20565b9050610d1360ff607f8390031660020a830482610732565b9550935061021592505050565b60006020607f5b8060ff168260010160ff161015610d6f576000600260ff8484011604905084600060ff831660808110610d5657fe5b015410610d6557809250610d69565b8091505b50610d27565b83600060ff831660808110610d8057fe5b015410610d905791506101de9050565b83600060ff841660808110610da157fe5b015410610db0575090506101de565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112796022913960400191505060405180910390fd5b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515610e7c57fe5b04905080660c0135dca040000283019250607f60020a828202811515610e9e57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515610ec057fe5b049050806536e0f639b8000283019250607f60020a828202811515610ee157fe5b04905080650618fee9f8000283019250607f60020a828202811515610f0257fe5b04905080649c197dcc000283019250607f60020a828202811515610f2257fe5b04905080640e30dce4000283019250607f60020a828202811515610f4257fe5b0490508064012ebd13000283019250607f60020a828202811515610f6257fe5b049050806317499f000283019250607f60020a828202811515610f8157fe5b049050806301a9d4800283019250607f60020a828202811515610fa057fe5b04905080621c63800283019250607f60020a828202811515610fbe57fe5b049050806201c6380283019250607f60020a828202811515610fdc57fe5b04905080611ab80283019250607f60020a828202811515610ff957fe5b0490508061017c0283019250607f60020a82820281151561101657fe5b0490508060140283019250607f60020a82820281151561103257fe5b6721c3677c82b40000919004938401048201607f60020a019290506f1000000000000000000000000000000085161561108f5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156110d1577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615611112576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615611146576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b700100000000000000000000000000000000851615611187576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156111c7576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615611205576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b600080610100831015611238575b60018311156112335760029092049160010161121c565b6101db565b60805b60008160ff1611156112715760ff811660020a84106112645760ff811660020a90930492908117905b600260ff9091160461123b565b509291505056fe436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6ea165627a7a72305820', + linkReferences: {}, + swarmHash: + '9c30b33fbf2dd637afb1de96405b28308b3f1c0c4e942baf05cbc9528af490fc', + gasEstimates: { + creation: { + codeDepositCost: '961200', + executionCost: '1922544', + totalCost: '2883744', + }, + external: { + 'findPositionInMaxExpArrayTest(uint256)': 'infinite', + 'floorLog2Test(uint256)': 'infinite', + 'generalExpTest(uint256,uint8)': '55859', + 'generalLogTest(uint256)': 'infinite', + 'optimalExpTest(uint256)': '3063', + 'optimalLogTest(uint256)': '2398', + 'powerTest(uint256,uint256,uint32,uint32)': 'infinite', + }, + }, + functionHashes: { + 'findPositionInMaxExpArrayTest(uint256)': 'a25a34b1', + 'floorLog2Test(uint256)': 'ce782e08', + 'generalExpTest(uint256,uint8)': '6cab5055', + 'generalLogTest(uint256)': '4982d52d', + 'optimalExpTest(uint256)': 'acdee8cb', + 'optimalLogTest(uint256)': '3e8a38ab', + 'powerTest(uint256,uint256,uint32,uint32)': '8c5ce82a', + }, + abiDefinition: [ + { + constant: true, + inputs: [{ name: 'x', type: 'uint256' }], + name: 'optimalLogTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'x', type: 'uint256' }], + name: 'generalLogTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_x', type: 'uint256' }, + { name: '_precision', type: 'uint8' }, + ], + name: 'generalExpTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_baseN', type: 'uint256' }, + { name: '_baseD', type: 'uint256' }, + { name: '_expN', type: 'uint32' }, + { name: '_expD', type: 'uint32' }, + ], + name: 'powerTest', + outputs: [{ name: '', type: 'uint256' }, { name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_x', type: 'uint256' }], + name: 'findPositionInMaxExpArrayTest', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'x', type: 'uint256' }], + name: 'optimalExpTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_n', type: 'uint256' }], + name: 'floorLog2Test', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/test/TestBancorFormula.sol', + originalFilename: 'contracts/test/TestBancorFormula.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/test/TestBancorFormula.sol', + gas: 'auto', + type: 'file', + _gasLimit: 6000000, + error: false, + }, + code: + '608060409081526001606060020a641c35fedd1502036020556001605e60020a646c3390ecc902036021556001606160020a640cf801476102036022556001605f60020a6431bdb23e1d02036023556001605b60020a6502fb1d8fe08302036024556001605a60020a6505b771955b3702036025556001605960020a650af67a93bb5102036026556001605860020a6515060c256cb302036027556001605860020a651428a2f98d7302036028556001605660020a654d515663970902036029556001605560020a65944620b0e70f0203602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d556001608360020a03603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff905570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e556001608160020a03605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e6607f556112c6806107b66000396000f3fe608060405234801561001057600080fd5b506004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900480638c5ce82a116100785780638c5ce82a14610111578063a25a34b114610163578063acdee8cb14610196578063ce782e08146101b35761009a565b80633e8a38ab1461009f5780634982d52d146100ce5780636cab5055146100eb575b600080fd5b6100bc600480360360208110156100b557600080fd5b50356101d0565b60408051918252519081900360200190f35b6100bc600480360360208110156100e457600080fd5b50356101e3565b6100bc6004803603604081101561010157600080fd5b508035906020013560ff166101ee565b6101486004803603608081101561012757600080fd5b5080359060208101359063ffffffff60408201358116916060013516610201565b6040805192835260ff90911660208301528051918290030190f35b6101806004803603602081101561017957600080fd5b503561021e565b6040805160ff9092168252519081900360200190f35b6100bc600480360360208110156101ac57600080fd5b5035610229565b610180600480360360208110156101c957600080fd5b5035610234565b60006101db8261023f565b90505b919050565b60006101db82610664565b60006101fa8383610732565b9392505050565b60008061021086868686610bd4565b915091505b94509492505050565b60006101db82610d20565b60006101db82610e01565b60006101db8261120e565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd8861061028e576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106102d7576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610610320576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610610369576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd386106103b2576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106103fb576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610610444576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061048c576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106106a6576000610690607f60020a850461120e565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561070657607f5b60008160ff16111561070457607f60020a84800204935070010000000000000000000000000000000084106106fb576002938490049360ff600019830116900a91909101905b600019016106b5565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515610bc857fe5b04010195945050505050565b6000807002000000000000000000000000000000008610610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a8902811515610c6a57fe5b04905070015bf0a8b1457695355fb8ac404e7a79e3811015610c9657610c8f8161023f565b9150610ca2565b610c9f81610664565b91505b60008563ffffffff168763ffffffff168402811515610cbd57fe5b049050700800000000000000000000000000000000811015610cf057610ce281610e01565b607f94509450505050610215565b6000610cfb82610d20565b9050610d1360ff607f8390031660020a830482610732565b9550935061021592505050565b60006020607f5b8060ff168260010160ff161015610d6f576000600260ff8484011604905084600060ff831660808110610d5657fe5b015410610d6557809250610d69565b8091505b50610d27565b83600060ff831660808110610d8057fe5b015410610d905791506101de9050565b83600060ff841660808110610da157fe5b015410610db0575090506101de565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112796022913960400191505060405180910390fd5b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515610e7c57fe5b04905080660c0135dca040000283019250607f60020a828202811515610e9e57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515610ec057fe5b049050806536e0f639b8000283019250607f60020a828202811515610ee157fe5b04905080650618fee9f8000283019250607f60020a828202811515610f0257fe5b04905080649c197dcc000283019250607f60020a828202811515610f2257fe5b04905080640e30dce4000283019250607f60020a828202811515610f4257fe5b0490508064012ebd13000283019250607f60020a828202811515610f6257fe5b049050806317499f000283019250607f60020a828202811515610f8157fe5b049050806301a9d4800283019250607f60020a828202811515610fa057fe5b04905080621c63800283019250607f60020a828202811515610fbe57fe5b049050806201c6380283019250607f60020a828202811515610fdc57fe5b04905080611ab80283019250607f60020a828202811515610ff957fe5b0490508061017c0283019250607f60020a82820281151561101657fe5b0490508060140283019250607f60020a82820281151561103257fe5b6721c3677c82b40000919004938401048201607f60020a019290506f1000000000000000000000000000000085161561108f5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156110d1577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615611112576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615611146576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b700100000000000000000000000000000000851615611187576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156111c7576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615611205576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b600080610100831015611238575b60018311156112335760029092049160010161121c565b6101db565b60805b60008160ff1611156112715760ff811660020a84106112645760ff811660020a90930492908117905b600260ff9091160461123b565b509291505056fe436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6ea165627a7a723058209c30b33fbf2dd637afb1de96405b28308b3f1c0c4e942baf05cbc9528af490fc0029', + runtime_bytecode: + '608060405234801561001057600080fd5b506004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900480638c5ce82a116100785780638c5ce82a14610111578063a25a34b114610163578063acdee8cb14610196578063ce782e08146101b35761009a565b80633e8a38ab1461009f5780634982d52d146100ce5780636cab5055146100eb575b600080fd5b6100bc600480360360208110156100b557600080fd5b50356101d0565b60408051918252519081900360200190f35b6100bc600480360360208110156100e457600080fd5b50356101e3565b6100bc6004803603604081101561010157600080fd5b508035906020013560ff166101ee565b6101486004803603608081101561012757600080fd5b5080359060208101359063ffffffff60408201358116916060013516610201565b6040805192835260ff90911660208301528051918290030190f35b6101806004803603602081101561017957600080fd5b503561021e565b6040805160ff9092168252519081900360200190f35b6100bc600480360360208110156101ac57600080fd5b5035610229565b610180600480360360208110156101c957600080fd5b5035610234565b60006101db8261023f565b90505b919050565b60006101db82610664565b60006101fa8383610732565b9392505050565b60008061021086868686610bd4565b915091505b94509492505050565b60006101db82610d20565b60006101db82610e01565b60006101db8261120e565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd8861061028e576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106102d7576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610610320576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610610369576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd386106103b2576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106103fb576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610610444576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061048c576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106106a6576000610690607f60020a850461120e565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561070657607f5b60008160ff16111561070457607f60020a84800204935070010000000000000000000000000000000084106106fb576002938490049360ff600019830116900a91909101905b600019016106b5565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515610bc857fe5b04010195945050505050565b6000807002000000000000000000000000000000008610610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a8902811515610c6a57fe5b04905070015bf0a8b1457695355fb8ac404e7a79e3811015610c9657610c8f8161023f565b9150610ca2565b610c9f81610664565b91505b60008563ffffffff168763ffffffff168402811515610cbd57fe5b049050700800000000000000000000000000000000811015610cf057610ce281610e01565b607f94509450505050610215565b6000610cfb82610d20565b9050610d1360ff607f8390031660020a830482610732565b9550935061021592505050565b60006020607f5b8060ff168260010160ff161015610d6f576000600260ff8484011604905084600060ff831660808110610d5657fe5b015410610d6557809250610d69565b8091505b50610d27565b83600060ff831660808110610d8057fe5b015410610d905791506101de9050565b83600060ff841660808110610da157fe5b015410610db0575090506101de565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112796022913960400191505060405180910390fd5b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515610e7c57fe5b04905080660c0135dca040000283019250607f60020a828202811515610e9e57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515610ec057fe5b049050806536e0f639b8000283019250607f60020a828202811515610ee157fe5b04905080650618fee9f8000283019250607f60020a828202811515610f0257fe5b04905080649c197dcc000283019250607f60020a828202811515610f2257fe5b04905080640e30dce4000283019250607f60020a828202811515610f4257fe5b0490508064012ebd13000283019250607f60020a828202811515610f6257fe5b049050806317499f000283019250607f60020a828202811515610f8157fe5b049050806301a9d4800283019250607f60020a828202811515610fa057fe5b04905080621c63800283019250607f60020a828202811515610fbe57fe5b049050806201c6380283019250607f60020a828202811515610fdc57fe5b04905080611ab80283019250607f60020a828202811515610ff957fe5b0490508061017c0283019250607f60020a82820281151561101657fe5b0490508060140283019250607f60020a82820281151561103257fe5b6721c3677c82b40000919004938401048201607f60020a019290506f1000000000000000000000000000000085161561108f5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156110d1577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615611112576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615611146576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b700100000000000000000000000000000000851615611187576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156111c7576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615611205576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b600080610100831015611238575b60018311156112335760029092049160010161121c565b6101db565b60805b60008160ff1611156112715760ff811660020a84106112645760ff811660020a90930492908117905b600260ff9091160461123b565b509291505056fe436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6ea165627a7a723058209c30b33fbf2dd637afb1de96405b28308b3f1c0c4e942baf05cbc9528af490fc0029', + real_runtime_bytecode: + '608060405234801561001057600080fd5b506004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900480638c5ce82a116100785780638c5ce82a14610111578063a25a34b114610163578063acdee8cb14610196578063ce782e08146101b35761009a565b80633e8a38ab1461009f5780634982d52d146100ce5780636cab5055146100eb575b600080fd5b6100bc600480360360208110156100b557600080fd5b50356101d0565b60408051918252519081900360200190f35b6100bc600480360360208110156100e457600080fd5b50356101e3565b6100bc6004803603604081101561010157600080fd5b508035906020013560ff166101ee565b6101486004803603608081101561012757600080fd5b5080359060208101359063ffffffff60408201358116916060013516610201565b6040805192835260ff90911660208301528051918290030190f35b6101806004803603602081101561017957600080fd5b503561021e565b6040805160ff9092168252519081900360200190f35b6100bc600480360360208110156101ac57600080fd5b5035610229565b610180600480360360208110156101c957600080fd5b5035610234565b60006101db8261023f565b90505b919050565b60006101db82610664565b60006101fa8383610732565b9392505050565b60008061021086868686610bd4565b915091505b94509492505050565b60006101db82610d20565b60006101db82610e01565b60006101db8261120e565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd8861061028e576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106102d7576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610610320576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610610369576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd386106103b2576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106103fb576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e998610610444576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f733861061048c576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a8280020490507001000000000000000000000000000000008381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b60008070010000000000000000000000000000000083106106a6576000610690607f60020a850461120e565b60ff16600281900a90940493607f60020a029150505b607f60020a83111561070657607f5b60008160ff16111561070457607f60020a84800204935070010000000000000000000000000000000084106106fb576002938490049360ff600019830116900a91909101905b600019016106b5565b505b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f88202049392505050565b60008083905060008090508360ff16858302908060020a82049150509150816f03442c4e6074a82f1797f72ac000000002810190508360ff16858302908060020a82049150509150816f0116b96f757c380fb287fd0e4000000002810190508360ff16858302908060020a82049150509150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff16858302908060020a82049150509150816e0defabf91302cd95b9ffda5000000002810190508360ff16858302908060020a82049150509150816e02529ca9832b22439efff9b800000002810190508360ff16858302908060020a82049150509150816d54f1cf12bd04e516b6da8800000002810190508360ff16858302908060020a82049150509150816d0a9e39e257a09ca2d6db5100000002810190508360ff16858302908060020a82049150509150816d012e066e7b839fa050c30900000002810190508360ff16858302908060020a82049150509150816c1e33d7d926c329a1ad1a80000002810190508360ff16858302908060020a82049150509150816c02bee513bdb4a6b19b5f80000002810190508360ff16858302908060020a82049150509150816b3a9316fa79b88eccf2a0000002810190508360ff16858302908060020a82049150509150816b048177ebe1fa81237520000002810190508360ff16858302908060020a82049150509150816a5263fe90242dcbacf0000002810190508360ff16858302908060020a82049150509150816a057e22099c030d9410000002810190508360ff16858302908060020a82049150509150816957e22099c030d941000002810190508360ff16858302908060020a820491505091508169052b6b5456997631000002810190508360ff16858302908060020a8204915050915081684985f67696bf74800002810190508360ff16858302908060020a82049150509150816803dea12ea99e49800002810190508360ff16858302908060020a82049150509150816731880f2214b6e00002810190508360ff16858302908060020a820491505091508167025bcff56eb3600002810190508360ff16858302908060020a8204915050915081661b722e10ab100002810190508360ff16858302908060020a82049150509150816601317c7007700002810190508360ff16858302908060020a8204915050915081650cba84aafa0002810190508360ff16858302908060020a82049150509150816482573a0a0002810190508360ff16858302908060020a82049150509150816405035ad90002810190508360ff16858302908060020a8204915050915081632f881b0002810190508360ff16858302908060020a82049150509150816301b2934002810190508360ff16858302908060020a8204915050915081620efc4002810190508360ff16858302908060020a8204915050915081617fe002810190508360ff16858302908060020a820491505091508161042002810190508360ff16858302908060020a8204915050915081602102810190508360ff16858302908060020a8204915050915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515610bc857fe5b04010195945050505050565b6000807002000000000000000000000000000000008610610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f534e5420617661696c61626c6520697320696e76616c69640000000000000000604482015290519081900360640190fd5b60008086607f60020a8902811515610c6a57fe5b04905070015bf0a8b1457695355fb8ac404e7a79e3811015610c9657610c8f8161023f565b9150610ca2565b610c9f81610664565b91505b60008563ffffffff168763ffffffff168402811515610cbd57fe5b049050700800000000000000000000000000000000811015610cf057610ce281610e01565b607f94509450505050610215565b6000610cfb82610d20565b9050610d1360ff607f8390031660020a830482610732565b9550935061021592505050565b60006020607f5b8060ff168260010160ff161015610d6f576000600260ff8484011604905084600060ff831660808110610d5657fe5b015410610d6557809250610d69565b8091505b50610d27565b83600060ff831660808110610d8057fe5b015410610d905791506101de9050565b83600060ff841660808110610da157fe5b015410610db0575090506101de565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806112796022913960400191505060405180910390fd5b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515610e7c57fe5b04905080660c0135dca040000283019250607f60020a828202811515610e9e57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515610ec057fe5b049050806536e0f639b8000283019250607f60020a828202811515610ee157fe5b04905080650618fee9f8000283019250607f60020a828202811515610f0257fe5b04905080649c197dcc000283019250607f60020a828202811515610f2257fe5b04905080640e30dce4000283019250607f60020a828202811515610f4257fe5b0490508064012ebd13000283019250607f60020a828202811515610f6257fe5b049050806317499f000283019250607f60020a828202811515610f8157fe5b049050806301a9d4800283019250607f60020a828202811515610fa057fe5b04905080621c63800283019250607f60020a828202811515610fbe57fe5b049050806201c6380283019250607f60020a828202811515610fdc57fe5b04905080611ab80283019250607f60020a828202811515610ff957fe5b0490508061017c0283019250607f60020a82820281151561101657fe5b0490508060140283019250607f60020a82820281151561103257fe5b6721c3677c82b40000919004938401048201607f60020a019290506f1000000000000000000000000000000085161561108f5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156110d1577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615611112576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615611146576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b700100000000000000000000000000000000851615611187576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156111c7576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615611205576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b600080610100831015611238575b60018311156112335760029092049160010161121c565b6101db565b60805b60008160ff1611156112715760ff811660020a84106112645760ff811660020a90930492908117905b600260ff9091160461123b565b509291505056fe436f756c64206e6f742066696e642061207375697461626c6520706f736974696f6ea165627a7a72305820', + swarm_hash: + '9c30b33fbf2dd637afb1de96405b28308b3f1c0c4e942baf05cbc9528af490fc', + gas_estimates: { + creation: { + codeDepositCost: '961200', + executionCost: '1922544', + totalCost: '2883744', + }, + external: { + 'findPositionInMaxExpArrayTest(uint256)': 'infinite', + 'floorLog2Test(uint256)': 'infinite', + 'generalExpTest(uint256,uint8)': '55859', + 'generalLogTest(uint256)': 'infinite', + 'optimalExpTest(uint256)': '3063', + 'optimalLogTest(uint256)': '2398', + 'powerTest(uint256,uint256,uint32,uint32)': 'infinite', + }, + }, + function_hashes: { + 'findPositionInMaxExpArrayTest(uint256)': 'a25a34b1', + 'floorLog2Test(uint256)': 'ce782e08', + 'generalExpTest(uint256,uint8)': '6cab5055', + 'generalLogTest(uint256)': '4982d52d', + 'optimalExpTest(uint256)': 'acdee8cb', + 'optimalLogTest(uint256)': '3e8a38ab', + 'powerTest(uint256,uint256,uint32,uint32)': '8c5ce82a', + }, + abi: [ + { + constant: true, + inputs: [{ name: 'x', type: 'uint256' }], + name: 'optimalLogTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'x', type: 'uint256' }], + name: 'generalLogTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_x', type: 'uint256' }, + { name: '_precision', type: 'uint8' }, + ], + name: 'generalExpTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: '_baseN', type: 'uint256' }, + { name: '_baseD', type: 'uint256' }, + { name: '_expN', type: 'uint32' }, + { name: '_expD', type: 'uint32' }, + ], + name: 'powerTest', + outputs: [{ name: '', type: 'uint256' }, { name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_x', type: 'uint256' }], + name: 'findPositionInMaxExpArrayTest', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'x', type: 'uint256' }], + name: 'optimalExpTest', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + { + constant: true, + inputs: [{ name: '_n', type: 'uint256' }], + name: 'floorLog2Test', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'pure', + type: 'function', + }, + ], +} +let TestBancorFormula = new EmbarkJS.Blockchain.Contract( + TestBancorFormulaJSONConfig, +) +export default TestBancorFormula diff --git a/src/embarkArtifacts/contracts/TokenController.js b/src/embarkArtifacts/contracts/TokenController.js new file mode 100644 index 0000000..dc0e8df --- /dev/null +++ b/src/embarkArtifacts/contracts/TokenController.js @@ -0,0 +1,116 @@ +import EmbarkJS from '../embarkjs' +let TokenControllerJSONConfig = { + contract_name: { + className: 'TokenController', + args: [], + code: '', + runtimeBytecode: '', + realRuntimeBytecode: '', + linkReferences: {}, + swarmHash: '', + gasEstimates: null, + functionHashes: { + 'onApprove(address,address,uint256)': 'da682aeb', + 'onTransfer(address,address,uint256)': '4a393149', + 'proxyPayment(address)': 'f48c3054', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'onTransfer', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'onApprove', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [{ name: '_owner', type: 'address' }], + name: 'proxyPayment', + outputs: [{ name: '', type: 'bool' }], + payable: true, + stateMutability: 'payable', + type: 'function', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/TokenController.sol', + originalFilename: 'contracts/token/TokenController.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/TokenController.sol', + gas: 'auto', + type: 'file', + deploy: false, + _gasLimit: 6000000, + error: false, + }, + code: '', + runtime_bytecode: '', + real_runtime_bytecode: '', + swarm_hash: '', + gas_estimates: null, + function_hashes: { + 'onApprove(address,address,uint256)': 'da682aeb', + 'onTransfer(address,address,uint256)': '4a393149', + 'proxyPayment(address)': 'f48c3054', + }, + abi: [ + { + constant: false, + inputs: [ + { name: '_from', type: 'address' }, + { name: '_to', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'onTransfer', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: '_owner', type: 'address' }, + { name: '_spender', type: 'address' }, + { name: '_amount', type: 'uint256' }, + ], + name: 'onApprove', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [{ name: '_owner', type: 'address' }], + name: 'proxyPayment', + outputs: [{ name: '', type: 'bool' }], + payable: true, + stateMutability: 'payable', + type: 'function', + }, + ], +} +let TokenController = new EmbarkJS.Blockchain.Contract( + TokenControllerJSONConfig, +) +export default TokenController diff --git a/src/embarkArtifacts/contracts/TokenFactory.js b/src/embarkArtifacts/contracts/TokenFactory.js new file mode 100644 index 0000000..97d4201 --- /dev/null +++ b/src/embarkArtifacts/contracts/TokenFactory.js @@ -0,0 +1,72 @@ +import EmbarkJS from '../embarkjs' +let TokenFactoryJSONConfig = { + contract_name: { + className: 'TokenFactory', + args: [], + code: '', + runtimeBytecode: '', + realRuntimeBytecode: '', + linkReferences: {}, + swarmHash: '', + gasEstimates: null, + functionHashes: { + 'createCloneToken(address,uint256,string,uint8,string,bool)': '5b7b72c1', + }, + abiDefinition: [ + { + constant: false, + inputs: [ + { name: '_parentToken', type: 'address' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + ], + filename: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/.embark/contracts/token/TokenFactory.sol', + originalFilename: 'contracts/token/TokenFactory.sol', + path: + '/Users/lyubo/Desktop/Projects/Status/deployment/discover/contracts/token/TokenFactory.sol', + gas: 'auto', + type: 'file', + deploy: false, + _gasLimit: 6000000, + error: false, + }, + code: '', + runtime_bytecode: '', + real_runtime_bytecode: '', + swarm_hash: '', + gas_estimates: null, + function_hashes: { + 'createCloneToken(address,uint256,string,uint8,string,bool)': '5b7b72c1', + }, + abi: [ + { + constant: false, + inputs: [ + { name: '_parentToken', type: 'address' }, + { name: '_snapshotBlock', type: 'uint256' }, + { name: '_tokenName', type: 'string' }, + { name: '_decimalUnits', type: 'uint8' }, + { name: '_tokenSymbol', type: 'string' }, + { name: '_transfersEnabled', type: 'bool' }, + ], + name: 'createCloneToken', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + ], +} +let TokenFactory = new EmbarkJS.Blockchain.Contract(TokenFactoryJSONConfig) +export default TokenFactory diff --git a/src/embarkArtifacts/contracts/index.js b/src/embarkArtifacts/contracts/index.js new file mode 100644 index 0000000..6a48a91 --- /dev/null +++ b/src/embarkArtifacts/contracts/index.js @@ -0,0 +1,17 @@ +module.exports = { + Controlled: require('./Controlled').default, + ENSRegistry: require('./ENSRegistry').default, + MiniMeToken: require('./MiniMeToken').default, + TestBancorFormula: require('./TestBancorFormula').default, + SafeMath: require('./SafeMath').default, + TokenFactory: require('./TokenFactory').default, + ApproveAndCallFallBack: require('./ApproveAndCallFallBack').default, + MiniMeTokenInterface: require('./MiniMeTokenInterface').default, + BancorFormula: require('./BancorFormula').default, + ERC20Token: require('./ERC20Token').default, + MiniMeTokenFactory: require('./MiniMeTokenFactory').default, + TokenController: require('./TokenController').default, + Discover: require('./Discover').default, + Resolver: require('./Resolver').default, + SNT: require('./SNT').default, +} diff --git a/src/embarkArtifacts/embarkjs.js b/src/embarkArtifacts/embarkjs.js new file mode 100644 index 0000000..d9ef63a --- /dev/null +++ b/src/embarkArtifacts/embarkjs.js @@ -0,0 +1,1187 @@ +/* eslint-disable */ + +const EmbarkJS = require('/Users/lyubo/Desktop/Projects/Status/deployment/discover/src/embarkArtifacts/modules/embarkjs') + .default +export default EmbarkJS +global.EmbarkJS = EmbarkJS + +const Web3 = + global.__Web3 || + require('/Users/lyubo/Desktop/Projects/Status/deployment/discover/src/embarkArtifacts/modules/web3') +global.Web3 = Web3 /*global Web3*/ +const embarkJSConnectorWeb3 = {} + +embarkJSConnectorWeb3.init = function(config) { + global.web3 = config.web3 || global.web3 + // Check if the global web3 object uses the old web3 (0.x) + if (global.web3 && typeof global.web3.version !== 'string') { + // If so, use a new instance using 1.0, but use its provider + this.web3 = new Web3(global.web3.currentProvider) + } else { + this.web3 = global.web3 || new Web3() + } + global.web3 = this.web3 +} + +embarkJSConnectorWeb3.getInstance = function() { + return this.web3 +} + +embarkJSConnectorWeb3.getAccounts = function() { + return this.web3.eth.getAccounts(...arguments) +} + +embarkJSConnectorWeb3.getNewProvider = function(providerName, ...args) { + return new Web3.providers[providerName](...args) +} + +embarkJSConnectorWeb3.setProvider = function(provider) { + return this.web3.setProvider(provider) +} + +embarkJSConnectorWeb3.getCurrentProvider = function() { + return this.web3.currentProvider +} + +embarkJSConnectorWeb3.getDefaultAccount = function() { + return this.web3.eth.defaultAccount +} + +embarkJSConnectorWeb3.setDefaultAccount = function(account) { + this.web3.eth.defaultAccount = account +} + +embarkJSConnectorWeb3.newContract = function(options) { + return new this.web3.eth.Contract(options.abi, options.address) +} + +embarkJSConnectorWeb3.send = function() { + return this.web3.eth.sendTransaction(...arguments) +} + +embarkJSConnectorWeb3.toWei = function() { + return this.web3.toWei(...arguments) +} + +embarkJSConnectorWeb3.getNetworkId = function() { + return this.web3.eth.net.getId() +} + +EmbarkJS.Blockchain.registerProvider('web3', embarkJSConnectorWeb3) +EmbarkJS.Blockchain.setProvider('web3', {}) +if (!global.__Web3) { + const web3ConnectionConfig = require('/Users/lyubo/Desktop/Projects/Status/deployment/discover/src/embarkArtifacts/config/blockchain.json') + EmbarkJS.Blockchain.connect(web3ConnectionConfig, err => { + if (err) { + console.error(err) + } + }) +} +const namehash = + global.namehash || + require('/Users/lyubo/Desktop/Projects/Status/deployment/discover/src/embarkArtifacts/modules/eth-ens-namehash') +;('use strict') + +/*global namehash*/ +// Price of ENS registration contract functions +const ENS_GAS_PRICE = 700000 +const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' +const reverseAddressSuffix = '.addr.reverse' +const NoDecodeAddrErr = "Error: Couldn't decode address from ABI: 0x" +const NoDecodeStringErr = + 'ERROR: The returned value is not a convertible string: 0x0' + +function registerSubDomain( + web3, + ens, + registrar, + resolver, + defaultAccount, + subdomain, + rootDomain, + reverseNode, + address, + logger, + secureSend, + callback, + _namehash, +) { + _namehash = _namehash || namehash + + const subnode = _namehash.hash(subdomain) + + const rootNode = _namehash.hash(rootDomain) + + const node = _namehash.hash(`${subdomain}.${rootDomain}`) // FIXME Registrar calls a function in ENS and in privatenet it doesn't work for soem reason + // const toSend = registrar.methods.register(subnode, defaultAccount); + + const toSend = ens.methods.setSubnodeOwner(rootNode, subnode, defaultAccount) + let transaction + secureSend( + web3, + toSend, + { + from: defaultAccount, + gas: ENS_GAS_PRICE, + }, + false, + ) // Set resolver for the node + .then(transac => { + if ( + transac.status !== '0x1' && + transac.status !== '0x01' && + transac.status !== true + ) { + logger.warn('Failed transaction', transac) + return callback('Failed to register. Check gas cost.') + } + + transaction = transac + return secureSend( + web3, + ens.methods.setResolver(node, resolver.options.address), + { + from: defaultAccount, + gas: ENS_GAS_PRICE, + }, + false, + ) + }) // Set address for node + .then(_result => { + return secureSend( + web3, + resolver.methods.setAddr(node, address), + { + from: defaultAccount, + gas: ENS_GAS_PRICE, + }, + false, + ) + }) // Set resolver for the reverse node + .then(_result => { + return secureSend( + web3, + ens.methods.setResolver(reverseNode, resolver.options.address), + { + from: defaultAccount, + gas: ENS_GAS_PRICE, + }, + false, + ) + }) // Set name for reverse node + .then(_result => { + return secureSend( + web3, + resolver.methods.setName(reverseNode, `${subdomain}.${rootDomain}`), + { + from: defaultAccount, + gas: ENS_GAS_PRICE, + }, + false, + ) + }) + .then(_result => { + callback(null, transaction) + }) + .catch(err => { + logger.error('Failed to register with error:', err.message || err) + callback(err.message || err) + }) +} + +function lookupAddress(address, ens, utils, createResolverContract, callback) { + if (address.startsWith('0x')) { + address = address.slice(2) + } + + let node = utils.soliditySha3(address.toLowerCase() + reverseAddressSuffix) + + function cb(err, name) { + if (err === NoDecodeStringErr || err === NoDecodeAddrErr) { + return callback('Address does not resolve to name. Try syncing chain.') + } + + return callback(err, name) + } + + return ens.methods.resolver(node).call((err, resolverAddress) => { + if (err) { + return cb(err) + } + + if (resolverAddress === ZERO_ADDRESS) { + return cb('Address not associated to a resolver') + } + + createResolverContract(resolverAddress, (_, resolverContract) => { + resolverContract.methods.name(node).call(cb) + }) + }) +} + +function resolveName(name, ens, createResolverContract, callback, _namehash) { + _namehash = _namehash || namehash + + let node = _namehash.hash(name) + + function cb(err, addr) { + if (err === NoDecodeAddrErr) { + return callback(name + ' is not registered', '0x') + } + + callback(err, addr) + } + + return ens.methods.resolver(node).call((err, resolverAddress) => { + if (err) { + return cb(err) + } + + if (resolverAddress === ZERO_ADDRESS) { + return cb('Name not yet registered') + } + + createResolverContract(resolverAddress, (_, resolverContract) => { + resolverContract.methods.addr(node).call(cb) + }) + }) +} + +if (typeof module !== 'undefined' && module.exports) { + module.exports = { + registerSubDomain, + resolveName, + lookupAddress, + } +} +//# sourceMappingURL=ENSFunctions.js.map +;('use strict') + +/* global EmbarkJS Web3 namehash registerSubDomain require */ +const __embarkENS = {} // resolver interface + +__embarkENS.resolverInterface = [ + { + constant: true, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + ], + name: 'addr', + outputs: [ + { + name: '', + type: 'address', + }, + ], + type: 'function', + }, + { + constant: true, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + ], + name: 'content', + outputs: [ + { + name: '', + type: 'bytes32', + }, + ], + type: 'function', + }, + { + constant: true, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + ], + name: 'name', + outputs: [ + { + name: '', + type: 'string', + }, + ], + type: 'function', + }, + { + constant: false, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + { + name: 'addr', + type: 'address', + }, + ], + name: 'setAddr', + outputs: [], + type: 'function', + }, + { + constant: false, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + { + name: 'hash', + type: 'bytes32', + }, + ], + name: 'setContent', + outputs: [], + type: 'function', + }, + { + constant: false, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + { + name: 'name', + type: 'string', + }, + ], + name: 'setName', + outputs: [], + type: 'function', + }, + { + constant: true, + inputs: [ + { + name: 'node', + type: 'bytes32', + }, + { + name: 'contentType', + type: 'uint256', + }, + ], + name: 'ABI', + outputs: [ + { + name: '', + type: 'uint256', + }, + { + name: '', + type: 'bytes', + }, + ], + payable: false, + type: 'function', + }, +] +const defaultAccountNotSetError = 'web3.eth.defaultAccount not set' +const providerNotSetError = 'ENS provider not set' +const NoDecodeAddrError = "Error: Couldn't decode address from ABI: 0x" +const NoDecodeStringError = + 'ERROR: The returned value is not a convertible string: 0x0' +const reverseAddrSuffix = '.addr.reverse' +const voidAddress = '0x0000000000000000000000000000000000000000' +__embarkENS.registryAddresses = { + // Mainnet + '1': '0x314159265dd8dbb310642f98f50c066173c1259b', + // Ropsten + '3': '0x112234455c3a32fd11230c42e7bccd4a84e02010', + // Rinkeby + '4': '0xe7410170f87102DF0055eB195163A03B7F2Bff4A', +} + +__embarkENS.setProvider = function(config) { + const self = this + const ERROR_MESSAGE = 'ENS is not available in this chain' + self.registration = config.registration + self.env = config.env + EmbarkJS.onReady(() => { + EmbarkJS.Blockchain.blockchainConnector + .getNetworkId() + .then(id => { + const registryAddress = + self.registryAddresses[id] || config.registryAddress + self._isAvailable = true + self.ens = new EmbarkJS.Blockchain.Contract({ + abi: config.registryAbi, + address: registryAddress, + web3: EmbarkJS.Blockchain.blockchainConnector.getInstance(), + }) + self.registrar = new EmbarkJS.Blockchain.Contract({ + abi: config.registrarAbi, + address: config.registrarAddress, + web3: EmbarkJS.Blockchain.blockchainConnector.getInstance(), + }) + self.resolver = new EmbarkJS.Blockchain.Contract({ + abi: config.resolverAbi, + address: config.resolverAddress, + web3: EmbarkJS.Blockchain.blockchainConnector.getInstance(), + }) + }) + .catch(err => { + if (err.message.indexOf('Provider not set or invalid') > -1) { + console.warn(ERROR_MESSAGE) + return + } + + console.error(err) + }) + }) +} + +__embarkENS.resolve = function(name, callback) { + const resolve = async name => { + if (!this.ens) { + throw new Error(providerNotSetError) + } + + if (!EmbarkJS.Blockchain.blockchainConnector.getDefaultAccount()) { + throw new Error(defaultAccountNotSetError) + } + + let node = namehash.hash(name) + + try { + const resolvedAddress = await this.ens.methods.resolver(node).call() + + if (resolvedAddress === voidAddress) { + throw new Error('Name not yet registered') + } + + const resolverContract = new EmbarkJS.Blockchain.Contract({ + abi: this.resolverInterface, + address: resolvedAddress, + web3: EmbarkJS.Blockchain.blockchainConnector.getInstance(), + }) + return await resolverContract.methods.addr(node).call() + } catch (err) { + const msg = err.message + + if (msg === NoDecodeAddrError) { + throw new Error(`${name} is not registered`) + } + + throw err + } + } + + if (callback) { + resolve(name) + .then(result => { + callback(null, result) + }) + .catch(callback) + return + } + + return resolve(name) +} + +__embarkENS.lookup = function(address, callback) { + const lookup = async address => { + if (!this.ens) { + throw new Error(providerNotSetError) + } + + if (!EmbarkJS.Blockchain.blockchainConnector.getDefaultAccount()) { + throw new Error(defaultAccountNotSetError) + } + + if (address.startsWith('0x')) { + address = address.slice(2) + } + + let node = Web3.utils.soliditySha3( + address.toLowerCase() + reverseAddrSuffix, + ) + + try { + const resolverAddress = await this.ens.methods.resolver(node).call() + + if (resolverAddress === voidAddress) { + throw new Error('Address not associated to a resolver') + } + + const resolverContract = new EmbarkJS.Blockchain.Contract({ + abi: this.resolverInterface, + address: resolverAddress, + web3: EmbarkJS.Blockchain.blockchainConnector.getInstance(), + }) + return await resolverContract.methods.name(node).call() + } catch (err) { + const msg = err.message + + if (msg === NoDecodeStringError || msg === NoDecodeAddrError) { + throw new Error('Address does not resolve to name. Try syncing chain.') + } + + throw err + } + } + + if (callback) { + lookup(address) + .then(result => { + callback(null, result) + }) + .catch(callback) + return + } + + return lookup(address) +} + +__embarkENS.registerSubDomain = function(name, address, callback) { + callback = callback || function() {} + + if (!EmbarkJS.Blockchain.blockchainConnector.getDefaultAccount()) { + return callback(defaultAccountNotSetError) + } + + if (this.env !== 'development' && this.env !== 'privatenet') { + return callback( + 'Sub-domain registration is only available in development or privatenet mode', + ) + } + + if (!this.registration || !this.registration.rootDomain) { + return callback( + 'No rootDomain is declared in config/namesystem.js (register.rootDomain). Unable to register a subdomain until then.', + ) + } + + if (!address || !Web3.utils.isAddress(address)) { + return callback('You need to specify a valid address for the subdomain') + } // Register function generated by the index + + registerSubDomain( + EmbarkJS.Blockchain.blockchainConnector.getInstance(), + this.ens, + this.registrar, + this.resolver, + EmbarkJS.Blockchain.blockchainConnector.getDefaultAccount(), + name, + this.registration.rootDomain, + Web3.utils.soliditySha3( + address.toLowerCase().substr(2) + reverseAddrSuffix, + ), + address, + console, + EmbarkJS.Utils.secureSend, + (err, result) => { + if (err && err.indexOf('Transaction has been reverted by the EVM') > -1) { + return callback( + 'Registration was rejected. Are you the owner of the root domain?', + ) + } + + callback(err, result) + }, + ) +} + +__embarkENS.isAvailable = function() { + return Boolean(this._isAvailable) +} +//# sourceMappingURL=embarkjs.js.map +EmbarkJS.Names.registerProvider('ens', __embarkENS) +const IpfsApi = + global.IpfsApi || + require('/Users/lyubo/Desktop/Projects/Status/deployment/discover/src/embarkArtifacts/modules/ipfs-api') +;('use strict') + +var _interopRequireDefault = require('@babel/runtime-corejs2/helpers/interopRequireDefault') + +var _promise = _interopRequireDefault( + require('@babel/runtime-corejs2/core-js/promise'), +) + +/*global IpfsApi*/ +const __embarkIPFS = {} +const NoConnectionError = + 'No IPFS connection. Please ensure to call Embark.Storage.setProvider()' + +__embarkIPFS.setProvider = function(options) { + const self = this + return new _promise.default(function(resolve, reject) { + try { + if (!options) { + self._config = options + self._ipfsConnection = IpfsApi('localhost', '5001') + self._getUrl = 'http://localhost:8080/ipfs/' + } else { + const ipfsOptions = { + host: options.host || options.server, + protocol: 'http', + } + + if (options.protocol) { + ipfsOptions.protocol = options.protocol + } + + if (options.port && options.port !== 'false') { + ipfsOptions.port = options.port + } + + self._ipfsConnection = IpfsApi(ipfsOptions) + self._getUrl = options.getUrl || 'http://localhost:8080/ipfs/' + } + + resolve(self) + } catch (err) { + console.error(err) + self._ipfsConnection = null + reject(new Error('Failed to connect to IPFS')) + } + }) +} + +__embarkIPFS.isAvailable = function() { + return new _promise.default(resolve => { + if (!this._ipfsConnection) { + return resolve(false) + } + + this._ipfsConnection + .id() + .then(id => { + resolve(Boolean(id)) + }) + .catch(err => { + console.error(err) + resolve(false) + }) + }) +} + +__embarkIPFS.saveText = function(text) { + const self = this + return new _promise.default(function(resolve, reject) { + if (!self._ipfsConnection) { + return reject(new Error(NoConnectionError)) + } + + self._ipfsConnection.add(self._ipfsConnection.Buffer.from(text), function( + err, + result, + ) { + if (err) { + return reject(err) + } + + resolve(result[0].path) + }) + }) +} + +__embarkIPFS.get = function(hash) { + const self = this // TODO: detect type, then convert if needed + //var ipfsHash = web3.toAscii(hash); + + return new _promise.default(function(resolve, reject) { + if (!self._ipfsConnection) { + var connectionError = new Error(NoConnectionError) + return reject(connectionError) + } + + self._ipfsConnection.get(hash, function(err, files) { + if (err) { + return reject(err) + } + + resolve(files[0].content.toString()) + }) + }) +} + +__embarkIPFS.uploadFile = function(inputSelector) { + const self = this + const file = inputSelector[0].files[0] + + if (file === undefined) { + throw new Error('no file found') + } + + return new _promise.default(function(resolve, reject) { + if (!self._ipfsConnection) { + return reject(new Error(NoConnectionError)) + } + + const reader = new FileReader() + + reader.onloadend = function() { + const buffer = self._ipfsConnection.Buffer.from(reader.result) + + self._ipfsConnection.add(buffer, function(err, result) { + if (err) { + return reject(err) + } + + resolve(result[0].path) + }) + } + + reader.readAsArrayBuffer(file) + }) +} + +__embarkIPFS.getUrl = function(hash) { + return (this._getUrl || 'http://localhost:8080/ipfs/') + hash +} + +__embarkIPFS.resolve = function(name, callback) { + callback = callback || function() {} + + if (!this._ipfsConnection) { + return callback(new Error(NoConnectionError)) + } + + this._ipfsConnection.name + .resolve(name) + .then(res => { + callback(null, res.Path) + }) + .catch(() => { + callback(name + ' is not registered') + }) +} + +__embarkIPFS.register = function(addr, callback) { + callback = callback || function() {} + + if (!this._ipfsConnection) { + return new Error(NoConnectionError) + } + + if (addr.length !== 46 || !addr.startsWith('Qm')) { + return callback('String is not an IPFS hash') + } + + this._ipfsConnection.name + .publish('/ipfs/' + addr) + .then(res => { + callback(null, res.Name) + }) + .catch(() => { + callback(addr + ' could not be registered') + }) +} +//# sourceMappingURL=embarkjs.js.map +EmbarkJS.Storage.registerProvider('ipfs', __embarkIPFS) +var whenEnvIsLoaded = function(cb) { + if ( + typeof document !== 'undefined' && + document !== null && + !/comp|inter|loaded/.test(document.readyState) + ) { + document.addEventListener('DOMContentLoaded', cb) + } else { + cb() + } +} + +var whenEnvIsLoaded = function(cb) { + if ( + typeof document !== 'undefined' && + document !== null && + !/comp|inter|loaded/.test(document.readyState) + ) { + document.addEventListener('DOMContentLoaded', cb) + } else { + cb() + } +} +whenEnvIsLoaded(function() { + EmbarkJS.Storage.setProviders([ + { + provider: 'ipfs', + protocol: 'https', + host: 'ipfs.infura.io', + port: 5001, + getUrl: 'https://ipfs.infura.io/ipfs/', + }, + ]) +}) + +var whenEnvIsLoaded = function(cb) { + if ( + typeof document !== 'undefined' && + document !== null && + !/comp|inter|loaded/.test(document.readyState) + ) { + document.addEventListener('DOMContentLoaded', cb) + } else { + cb() + } +} +whenEnvIsLoaded(function() { + EmbarkJS.Names.setProvider('ens', { + env: 'testnet', + registration: {}, + registryAbi: [ + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'resolver', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'owner', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'label', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'setSubnodeOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'ttl', type: 'uint64' }, + ], + name: 'setTTL', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'ttl', + outputs: [{ name: '', type: 'uint64' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'resolver', type: 'address' }, + ], + name: 'setResolver', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'setOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: true, name: 'label', type: 'bytes32' }, + { indexed: false, name: 'owner', type: 'address' }, + ], + name: 'NewOwner', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'owner', type: 'address' }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'resolver', type: 'address' }, + ], + name: 'NewResolver', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'ttl', type: 'uint64' }, + ], + name: 'NewTTL', + type: 'event', + }, + ], + registryAddress: '0x112234455c3a32fd11230c42e7bccd4a84e02010', + registrarAbi: [ + { + constant: false, + inputs: [ + { name: 'subnode', type: 'bytes32' }, + { name: 'owner', type: 'address' }, + ], + name: 'register', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { name: 'ensAddr', type: 'address' }, + { name: 'node', type: 'bytes32' }, + ], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + ], + resolverAbi: [ + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'key', type: 'string' }, + { name: 'value', type: 'string' }, + ], + name: 'setText', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'contentTypes', type: 'uint256' }, + ], + name: 'ABI', + outputs: [ + { name: 'contentType', type: 'uint256' }, + { name: 'data', type: 'bytes' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'x', type: 'bytes32' }, + { name: 'y', type: 'bytes32' }, + ], + name: 'setPubkey', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'content', + outputs: [{ name: '', type: 'bytes32' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'addr', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'key', type: 'string' }, + ], + name: 'text', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'contentType', type: 'uint256' }, + { name: 'data', type: 'bytes' }, + ], + name: 'setABI', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'name', type: 'string' }, + ], + name: 'setName', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'hash', type: 'bytes32' }, + ], + name: 'setContent', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [{ name: 'node', type: 'bytes32' }], + name: 'pubkey', + outputs: [ + { name: 'x', type: 'bytes32' }, + { name: 'y', type: 'bytes32' }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { name: 'node', type: 'bytes32' }, + { name: 'addr', type: 'address' }, + ], + name: 'setAddr', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ name: 'ensAddr', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'a', type: 'address' }, + ], + name: 'AddrChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'hash', type: 'bytes32' }, + ], + name: 'ContentChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'name', type: 'string' }, + ], + name: 'NameChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: true, name: 'contentType', type: 'uint256' }, + ], + name: 'ABIChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'x', type: 'bytes32' }, + { indexed: false, name: 'y', type: 'bytes32' }, + ], + name: 'PubkeyChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'node', type: 'bytes32' }, + { indexed: false, name: 'indexedKey', type: 'string' }, + { indexed: false, name: 'key', type: 'string' }, + ], + name: 'TextChanged', + type: 'event', + }, + ], + }) +}) + +/* eslint-enable */ diff --git a/src/embarkArtifacts/modules/embarkjs b/src/embarkArtifacts/modules/embarkjs new file mode 120000 index 0000000..7315785 --- /dev/null +++ b/src/embarkArtifacts/modules/embarkjs @@ -0,0 +1 @@ +/Users/lyubo/Desktop/Projects/Status/deployment/discover/node_modules/embarkjs/dist/node \ No newline at end of file diff --git a/src/embarkArtifacts/modules/eth-ens-namehash b/src/embarkArtifacts/modules/eth-ens-namehash new file mode 120000 index 0000000..926517d --- /dev/null +++ b/src/embarkArtifacts/modules/eth-ens-namehash @@ -0,0 +1 @@ +/Users/lyubo/Desktop/Projects/Status/deployment/discover/node_modules/eth-ens-namehash \ No newline at end of file diff --git a/src/embarkArtifacts/modules/ipfs-api b/src/embarkArtifacts/modules/ipfs-api new file mode 120000 index 0000000..01285d1 --- /dev/null +++ b/src/embarkArtifacts/modules/ipfs-api @@ -0,0 +1 @@ +/Users/lyubo/Desktop/Projects/Status/deployment/discover/node_modules/ipfs-api/src \ No newline at end of file diff --git a/src/embarkArtifacts/modules/web3 b/src/embarkArtifacts/modules/web3 new file mode 120000 index 0000000..d40b8c5 --- /dev/null +++ b/src/embarkArtifacts/modules/web3 @@ -0,0 +1 @@ +/Users/lyubo/Desktop/Projects/Status/deployment/discover/node_modules/embark/node_modules/web3/src \ No newline at end of file