@verified-network/verified-sdk 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -732,9 +732,9 @@
732
732
  "type": "function"
733
733
  }
734
734
  ],
735
- "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"getSigner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"}],\"name\":\"getIssuer\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"deploySigned\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getViaOracleUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOracles\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getClient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getName\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getNameAndType\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"token\",\"outputs\":[{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"name\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getTokenCount\",\"outputs\":[{\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_client\",\"type\":\"address\"}],\"name\":\"setClientAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getDeploymentAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"tokenCurrency\",\"type\":\"bytes32\"},{\"name\":\"_oracle\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"address\"}],\"name\":\"createIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenSymbol\",\"type\":\"bytes32\"}],\"name\":\"createToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getFiatPayoutUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_oracles\",\"type\":\"address[]\"}],\"name\":\"setOracles\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCryptoDataUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deployMinimal\",\"outputs\":[{\"name\":\"proxy\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenName\",\"type\":\"bytes32\"}],\"name\":\"getAddressAndType\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setFiatPayoutUrl\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setViaOracleUrl\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setCryptoDataURL\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"getTokenByNameType\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getType\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"CashIssuerCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"BondIssuerCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"TokenCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"ProxyCreated\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Factory.sol\":\"Factory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"@openzeppelin/upgrades/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x0ca3de3dc8aac4114ff0b123fcabef91901de1a30938f3e954846ad99909b972\",\"urls\":[\"bzzr://7905b8ce67a4d4b0744f0f08abb7c4ec1762b18ee39ee7d64fc73beb0da0db19\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0xbf8ee1cf63a430a3eb8b39a9145d0d133400b8db06fa9fd33056597f7d8ceb25\",\"urls\":[\"bzzr://f9563fda28096fae1396dce1f6eb5f5afc664677887071076b7e4b0e6d06bd56\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseUpgradeabilityProxy.sol\":{\"keccak256\":\"0x1b37f808dc0a45976ad23aa53908c485a74a4d9fbd03066a5ab399c46436e570\",\"urls\":[\"bzzr://c309686ae393a7474d0af3a7237b5ef3c452d9f78756d40caeeaad4caf2c2efb\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0x91f2b663c89b940dce6dbd00f5e7bf326cdf02d1da4ddbcb7e64b313e60d9afc\",\"urls\":[\"bzzr://572ab82efb4e71dbb88e992eedc363f72290eb2fdc1081023e66680d2a69ef07\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableUpgradeabilityProxy.sol\":{\"keccak256\":\"0x6b84a0236a899ba5aa673ea34d5efa1f93dba461e13d8799f51a9f7b64b59f4f\",\"urls\":[\"bzzr://bc421cdd1f5c8313a0eaf237c9110d187674955d3eacbc187bddeda82a664053\"]},\"@openzeppelin/upgrades/contracts/upgradeability/Proxy.sol\":{\"keccak256\":\"0xd8074ae5fa7ee6384ca8196a896612fb044bbf4ff4b7336d03cd97845000ac21\",\"urls\":[\"bzzr://a94275c7d409e80fa5cf6f31c8a6b97cf85c231de40585d42ae98bab426562c6\"]},\"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\":{\"keccak256\":\"0xf4932759c88b26dd0b37a7ba960c44f7a4e817127846befb4b4fb72ee8f2c573\",\"urls\":[\"bzzr://6b7fb7e0bdbbbcbf9cbd110fc19a23bfa4eeb583c767b66614124f34f2135b42\"]},\"@openzeppelin/upgrades/contracts/upgradeability/UpgradeabilityProxy.sol\":{\"keccak256\":\"0xb02c6349ba01df9902857b6058f92b37f13187775cce9da74f6f28410205445b\",\"urls\":[\"bzzr://2a95f00787c16351caad43b25048cc40eff9f140c4b1284fbf502dfd9b708489\"]},\"@openzeppelin/upgrades/contracts/utils/Address.sol\":{\"keccak256\":\"0x7be7f8e4c08bc70ff9815e3f11c569f42aa3c447b5bc61fd75fb5cec97f63a9f\",\"urls\":[\"bzzr://b6a2c355fa7aadb6c25e8691e98abc26d3429afa58eb761af4ab5377eee30709\"]},\"abdk-libraries-solidity/ABDKMathQuad.sol\":{\"keccak256\":\"0xf75c2b34d9924cc413521db48a168b00ed321e678e70f5048a50c1140994dcf2\",\"urls\":[\"bzzr://0bdb29f3216c419e91defe1801f146cb40bb9551c8cd708ffb59f1e298e205ce\"]},\"project:/contracts/Factory.sol\":{\"keccak256\":\"0x8d6a0bd7cc9d410ec444cc9595802870fbbba8b133467356f44d290c7d4c5921\",\"urls\":[\"bzzr://644307414e5563652a6141f8df2206f57e2fd711d716d73bdb043dbef96cd875\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xbdfb6846d7679a8a1b8984a5262f5d5ae072c319bb951692c0ba19943164fd0a\",\"urls\":[\"bzzr://c86aa25338531c43af3f9fc04d171b6ee721b6522346d42c7b593366e512f482\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0x61364e0e62edba9e4db776f09b320ed7147e2049f91bdf0ade6666818aa82e59\",\"urls\":[\"bzzr://c4e228128c76aa00ea50de421dc1f0b9660ae843c6d88f8bfdf6cddd237608d1\"]},\"project:/contracts/interfaces/ViaToken.sol\":{\"keccak256\":\"0x6727f15ebe785583bd6f8392d5ca86f12864fac88d263ee4a3c4edd41a4a525a\",\"urls\":[\"bzzr://8e1a4c2207d0c54dea87ae28dbfb9f41a1ebf50db6d083c8d369098159149048\"]}},\"version\":1}",
736
- "bytecode": "0x6080604081905261001060a0610034565b601f1982820381018352601f90910116604052805160209190910120600055610041565b6109a680612d5583390190565b612d05806100506000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806388a365f41161011a578063b96b2004116100ad578063edf6a8ac1161007c578063edf6a8ac14610a6d578063eed3b40c14610adb578063f2fde38b14610b49578063f3458f1414610b6f578063f429f19b14610b92576101fb565b8063b96b20041461097c578063baa796bd146109bc578063c4d66de814610a2a578063e4b50cb814610a50576101fb565b8063968eb4b2116100e9578063968eb4b21461084a578063ae9b71af14610852578063b1689d82146108c0578063b3eeb5e2146108c8576101fb565b806388a365f4146107985780638d5040cc146107ea5780638da5cb5b146108265780638f32d59b1461082e576101fb565b80636150864c1161019257806378a895671161016157806378a8956714610736578063805ef8121461073e5780638129fc1c1461076457806381ae1f5b1461076c576101fb565b80636150864c14610603578063668151a7146106c75780636d46a1db14610706578063715018a61461072c576101fb565b806340884c52116101ce57806340884c521461054e5780634f64b2be146105a657806359dc735c146105c35780635fd4b08a146105cb576101fb565b8063290f8f56146102005780632ea7791714610365578063332d6626146103885780633e18b01b146104d1575b600080fd5b610349600480360360a081101561021657600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561025057600080fd5b82018360208201111561026257600080fd5b803590602001918460018302840111600160201b8311171561028357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156102d557600080fd5b8201836020820111156102e757600080fd5b803590602001918460018302840111600160201b8311171561030857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bb8945050505050565b604080516001600160a01b039092168252519081900360200190f35b6103496004803603604081101561037b57600080fd5b5080359060200135610ca7565b610349600480360360a081101561039e57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156103d857600080fd5b8201836020820111156103ea57600080fd5b803590602001918460018302840111600160201b8311171561040b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561045d57600080fd5b82018360208201111561046f57600080fd5b803590602001918460018302840111600160201b8311171561049057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cd1945050505050565b6104d9610d4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105135781810151838201526020016104fb565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610556610df9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561059257818101518382015260200161057a565b505050509050019250505060405180910390f35b610349600480360360208110156105bc57600080fd5b5035610e72565b610349610e99565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316610f42565b60408051918252519081900360200190f35b6103496004803603608081101561061957600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561065357600080fd5b82018360208201111561066557600080fd5b803590602001918460018302840111600160201b8311171561068657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f60945050505050565b6106ed600480360360208110156106dd57600080fd5b50356001600160a01b0316610f78565b6040805192835260208301919091528051918290030190f35b6106ed6004803603602081101561071c57600080fd5b50356001600160a01b0316610f9d565b610734610fb6565b005b6105f161104a565b6107346004803603602081101561075457600080fd5b50356001600160a01b0316611050565b6107346110fd565b6103496004803603604081101561078257600080fd5b50803590602001356001600160a01b03166111aa565b610734600480360360e08110156107ae57600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a081013582169160c0909101351661120f565b6103496004803603608081101561080057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611558565b6103496116bc565b6108366116cb565b604080519115158252519081900360200190f35b6104d96116f1565b6107346004803603602081101561086857600080fd5b810190602081018135600160201b81111561088257600080fd5b82018360208201111561089457600080fd5b803590602001918460208302840111600160201b831117156108b557600080fd5b509092509050611766565b6104d96117c1565b610349600480360360408110156108de57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561090857600080fd5b82018360208201111561091a57600080fd5b803590602001918460018302840111600160201b8311171561093b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611836945050505050565b6109996004803603602081101561099257600080fd5b5035611997565b604080516001600160a01b03909316835260208301919091528051918290030190f35b610734600480360360208110156109d257600080fd5b810190602081018135600160201b8111156109ec57600080fd5b8201836020820111156109fe57600080fd5b803590602001918460018302840111600160201b83111715610a1f57600080fd5b509092509050611a74565b61073460048036036020811015610a4057600080fd5b50356001600160a01b0316611aca565b61034960048036036020811015610a6657600080fd5b5035611bbe565b61073460048036036020811015610a8357600080fd5b810190602081018135600160201b811115610a9d57600080fd5b820183602082011115610aaf57600080fd5b803590602001918460018302840111600160201b83111715610ad057600080fd5b509092509050611be8565b61073460048036036020811015610af157600080fd5b810190602081018135600160201b811115610b0b57600080fd5b820183602082011115610b1d57600080fd5b803590602001918460018302840111600160201b83111715610b3e57600080fd5b509092509050611c3e565b61073460048036036020811015610b5f57600080fd5b50356001600160a01b0316611c94565b61034960048036036040811015610b8557600080fd5b5080359060200135611ce7565b6105f160048036036020811015610ba857600080fd5b50356001600160a01b0316611dc9565b600080610c90878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610c315780518252601f199092019160209182019101610c12565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b81526014019550505050505060405160208183030381529060405280519060200120611de4565b9050610c9c8184611e35565b979650505050505050565b60008281526070602090815260408083208484529091529020546001600160a01b03165b92915050565b600080610ce18787878787610bb8565b90506001600160a01b038116610d415760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610c9c8787878785611f23565b6067546060906001600160a01b03163314610d6857600080fd5b6068805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b820191906000526020600020905b815481529060010190602001808311610dd157829003601f168201915b505050505090505b90565b6067546060906001600160a01b03163314610e1357600080fd5b606b805480602002602001604051908101604052809291908181526020018280548015610dee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4b575050505050905090565b606e8181548110610e7f57fe5b6000918252602090912001546001600160a01b0316905081565b336000908152606d6020526040812054600160cb1b660acd2c286c2e6d021480610ede5750336000908152606d6020526040902054600160ca1b66159a58509bdb9902145b610f325760408051600160e51b62461bcd02815260206004820152601660248201527f47657420636c69656e74203a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b50606c546001600160a01b031690565b6001600160a01b03166000908152606d602052604090206001015490565b6000610f6f8585858533611f23565b95945050505050565b6001600160a01b0381166000908152606d60205260409020600181015490545b915091565b606d602052600090815260409020805460019091015482565b610fbe6116cb565b6110005760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b606e5490565b806110596116bc565b6001600160a01b0316816001600160a01b031663dbc4789a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b50516001600160a01b0316146110da57600080fd5b50606c80546001600160a01b0319166001600160a01b0392909216919091179055565b600154610100900460ff16806111165750611116612057565b80611124575060015460ff16155b61116257604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff1615801561118c576001805460ff1961ff00199091166101001716811790555b61119533611aca565b80156111a7576001805461ff00191690555b50565b6000806111b7848461205d565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c949350505050565b6112176116cb565b6112595760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b038516179055606086856112806116bc565b60408051602481019490945260448401929092526001600160a01b039081166064840152808716608484015280861660a4840152841660c4808401919091528151808403909101815260e490920190526020810180516001600160e01b0316600160e21b632274a71302179052905060006112fb8983611836565b905086600160e31b63086c2e6d02141561135757604080518981526020810189905281516001600160a01b038416927f49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34928290030190a26113ad565b86600160e21b63109bdb990214156113ad57604080518981526020810189905281516001600160a01b038416927fdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f928290030190a25b86600160e31b63086c2e6d02141561148457604080518082018252600160cb1b660acd2c286c2e6d02815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e80548c8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091557f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d390925292909220805490921617905561154d565b86600160e21b63109bdb9902141561154d57604080518082018252600160ca1b66159a58509bdb9902815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e805494850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819092529290922080549092161790555b505050505050505050565b336000908152606d6020526040812054600160ca1b66159a58509bdb99021461158057600080fd5b60408051602481018590526001600160a01b038616604482015233606482015260848082018590528251808303909101815260a49091019091526020810180516001600160e01b0316600160e01b63ef2397210217905260006115e38783611836565b60408051868152600160ca1b66159a58509bdb9902602082015281519293506001600160a01b038416927f59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5929181900390910190a26001600160a01b0381166000818152606d602052604081207f566961426f6e64546f6b656e00000000000000000000000000000000000000009055606e805460018101825591527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a0180546001600160a01b03191690911790559695505050505050565b6034546001600160a01b031690565b6034546000906001600160a01b03166116e2612096565b6001600160a01b031614905090565b6067546060906001600160a01b0316331461170b57600080fd5b6069805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b61176e6116cb565b6117b05760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606b8383612197565b505050565b6067546060906001600160a01b031633146117db57600080fd5b606a805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611990576000826001600160a01b0316846040518082805190602001908083835b602083106119195780518252601f1990920191602091820191016118fa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461197b576040519150601f19603f3d011682016040523d82523d6000602084013e611980565b606091505b505090508061198e57600080fd5b505b5092915050565b6000818152606f6020526040812054606e8054839283928692606d9285929181106119be57fe5b600091825260209182902001546001600160a01b031682520152508015611a67576000848152606f6020526040902054606e805490919081106119fd57fe5b6000918252602080832090910154868352606f9091526040822054606e80546001600160a01b0390931693606d939092908110611a3657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020549093509150610f989050565b5060009150819050610f98565b611a7c6116cb565b611abe5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606983836121fa565b600154610100900460ff1680611ae35750611ae3612057565b80611af1575060015460ff16155b611b2f57604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff16158015611b59576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611bba576001805461ff00191690555b5050565b6000606e8281548110611bcd57fe5b6000918252602090912001546001600160a01b031692915050565b611bf06116cb565b611c325760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606883836121fa565b611c466116cb565b611c885760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606a83836121fa565b611c9c6116cb565b611cde5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6111a78161209a565b600082606d6000606e606f60008881526020019081526020016000205481548110611d0e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010154148015611d8a575081606d6000606e606f60008881526020019081526020016000205481548110611d6357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054145b15610ccb576000838152606f6020526040902054606e80549091908110611dad57fe5b6000918252602090912001546001600160a01b03169050610ccb565b6001600160a01b03166000908152606d602052604090205490565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611e4857506000610ccb565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611e8e5760009350505050610ccb565b8060ff16601b14158015611ea657508060ff16601c14155b15611eb75760009350505050610ccb565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015611f0e573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b600080611f30878461213e565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b83811015611fe6578181015183820152602001611fce565b50505050905090810190601f1680156120135780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561203457600080fd5b505af1158015612048573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b6001600160a01b0381166120e257604051600160e51b62461bcd028152600401808060200182810382526026815260200180612c666026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161215390612274565b601f1982820381018352601f9091011660405290506000612174868661205d565b9050808251602084016000f59250823b61218d57600080fd5b5090949350505050565b8280548282559060005260206000209081019282156121ea579160200282015b828111156121ea5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906121b7565b506121f6929150612281565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061223b5782800160ff19823516178555612268565b82800160010185558215612268579182015b8281111561226857823582559160200191906001019061224d565b506121f69291506122a5565b6109a6806122c083390190565b610df691905b808211156121f65780546001600160a01b0319168155600101612287565b610df691905b808211156121f657600081556001016122ab56fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820b8573a0ea49b9fa15ff0b71cee26f7cc96d4f32ac441fbc3ad9022d45419af930029608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c90029",
737
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806388a365f41161011a578063b96b2004116100ad578063edf6a8ac1161007c578063edf6a8ac14610a6d578063eed3b40c14610adb578063f2fde38b14610b49578063f3458f1414610b6f578063f429f19b14610b92576101fb565b8063b96b20041461097c578063baa796bd146109bc578063c4d66de814610a2a578063e4b50cb814610a50576101fb565b8063968eb4b2116100e9578063968eb4b21461084a578063ae9b71af14610852578063b1689d82146108c0578063b3eeb5e2146108c8576101fb565b806388a365f4146107985780638d5040cc146107ea5780638da5cb5b146108265780638f32d59b1461082e576101fb565b80636150864c1161019257806378a895671161016157806378a8956714610736578063805ef8121461073e5780638129fc1c1461076457806381ae1f5b1461076c576101fb565b80636150864c14610603578063668151a7146106c75780636d46a1db14610706578063715018a61461072c576101fb565b806340884c52116101ce57806340884c521461054e5780634f64b2be146105a657806359dc735c146105c35780635fd4b08a146105cb576101fb565b8063290f8f56146102005780632ea7791714610365578063332d6626146103885780633e18b01b146104d1575b600080fd5b610349600480360360a081101561021657600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561025057600080fd5b82018360208201111561026257600080fd5b803590602001918460018302840111600160201b8311171561028357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156102d557600080fd5b8201836020820111156102e757600080fd5b803590602001918460018302840111600160201b8311171561030857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bb8945050505050565b604080516001600160a01b039092168252519081900360200190f35b6103496004803603604081101561037b57600080fd5b5080359060200135610ca7565b610349600480360360a081101561039e57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156103d857600080fd5b8201836020820111156103ea57600080fd5b803590602001918460018302840111600160201b8311171561040b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561045d57600080fd5b82018360208201111561046f57600080fd5b803590602001918460018302840111600160201b8311171561049057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cd1945050505050565b6104d9610d4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105135781810151838201526020016104fb565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610556610df9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561059257818101518382015260200161057a565b505050509050019250505060405180910390f35b610349600480360360208110156105bc57600080fd5b5035610e72565b610349610e99565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316610f42565b60408051918252519081900360200190f35b6103496004803603608081101561061957600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561065357600080fd5b82018360208201111561066557600080fd5b803590602001918460018302840111600160201b8311171561068657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f60945050505050565b6106ed600480360360208110156106dd57600080fd5b50356001600160a01b0316610f78565b6040805192835260208301919091528051918290030190f35b6106ed6004803603602081101561071c57600080fd5b50356001600160a01b0316610f9d565b610734610fb6565b005b6105f161104a565b6107346004803603602081101561075457600080fd5b50356001600160a01b0316611050565b6107346110fd565b6103496004803603604081101561078257600080fd5b50803590602001356001600160a01b03166111aa565b610734600480360360e08110156107ae57600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a081013582169160c0909101351661120f565b6103496004803603608081101561080057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611558565b6103496116bc565b6108366116cb565b604080519115158252519081900360200190f35b6104d96116f1565b6107346004803603602081101561086857600080fd5b810190602081018135600160201b81111561088257600080fd5b82018360208201111561089457600080fd5b803590602001918460208302840111600160201b831117156108b557600080fd5b509092509050611766565b6104d96117c1565b610349600480360360408110156108de57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561090857600080fd5b82018360208201111561091a57600080fd5b803590602001918460018302840111600160201b8311171561093b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611836945050505050565b6109996004803603602081101561099257600080fd5b5035611997565b604080516001600160a01b03909316835260208301919091528051918290030190f35b610734600480360360208110156109d257600080fd5b810190602081018135600160201b8111156109ec57600080fd5b8201836020820111156109fe57600080fd5b803590602001918460018302840111600160201b83111715610a1f57600080fd5b509092509050611a74565b61073460048036036020811015610a4057600080fd5b50356001600160a01b0316611aca565b61034960048036036020811015610a6657600080fd5b5035611bbe565b61073460048036036020811015610a8357600080fd5b810190602081018135600160201b811115610a9d57600080fd5b820183602082011115610aaf57600080fd5b803590602001918460018302840111600160201b83111715610ad057600080fd5b509092509050611be8565b61073460048036036020811015610af157600080fd5b810190602081018135600160201b811115610b0b57600080fd5b820183602082011115610b1d57600080fd5b803590602001918460018302840111600160201b83111715610b3e57600080fd5b509092509050611c3e565b61073460048036036020811015610b5f57600080fd5b50356001600160a01b0316611c94565b61034960048036036040811015610b8557600080fd5b5080359060200135611ce7565b6105f160048036036020811015610ba857600080fd5b50356001600160a01b0316611dc9565b600080610c90878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610c315780518252601f199092019160209182019101610c12565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b81526014019550505050505060405160208183030381529060405280519060200120611de4565b9050610c9c8184611e35565b979650505050505050565b60008281526070602090815260408083208484529091529020546001600160a01b03165b92915050565b600080610ce18787878787610bb8565b90506001600160a01b038116610d415760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610c9c8787878785611f23565b6067546060906001600160a01b03163314610d6857600080fd5b6068805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b820191906000526020600020905b815481529060010190602001808311610dd157829003601f168201915b505050505090505b90565b6067546060906001600160a01b03163314610e1357600080fd5b606b805480602002602001604051908101604052809291908181526020018280548015610dee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4b575050505050905090565b606e8181548110610e7f57fe5b6000918252602090912001546001600160a01b0316905081565b336000908152606d6020526040812054600160cb1b660acd2c286c2e6d021480610ede5750336000908152606d6020526040902054600160ca1b66159a58509bdb9902145b610f325760408051600160e51b62461bcd02815260206004820152601660248201527f47657420636c69656e74203a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b50606c546001600160a01b031690565b6001600160a01b03166000908152606d602052604090206001015490565b6000610f6f8585858533611f23565b95945050505050565b6001600160a01b0381166000908152606d60205260409020600181015490545b915091565b606d602052600090815260409020805460019091015482565b610fbe6116cb565b6110005760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b606e5490565b806110596116bc565b6001600160a01b0316816001600160a01b031663dbc4789a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b50516001600160a01b0316146110da57600080fd5b50606c80546001600160a01b0319166001600160a01b0392909216919091179055565b600154610100900460ff16806111165750611116612057565b80611124575060015460ff16155b61116257604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff1615801561118c576001805460ff1961ff00199091166101001716811790555b61119533611aca565b80156111a7576001805461ff00191690555b50565b6000806111b7848461205d565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c949350505050565b6112176116cb565b6112595760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b038516179055606086856112806116bc565b60408051602481019490945260448401929092526001600160a01b039081166064840152808716608484015280861660a4840152841660c4808401919091528151808403909101815260e490920190526020810180516001600160e01b0316600160e21b632274a71302179052905060006112fb8983611836565b905086600160e31b63086c2e6d02141561135757604080518981526020810189905281516001600160a01b038416927f49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34928290030190a26113ad565b86600160e21b63109bdb990214156113ad57604080518981526020810189905281516001600160a01b038416927fdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f928290030190a25b86600160e31b63086c2e6d02141561148457604080518082018252600160cb1b660acd2c286c2e6d02815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e80548c8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091557f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d390925292909220805490921617905561154d565b86600160e21b63109bdb9902141561154d57604080518082018252600160ca1b66159a58509bdb9902815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e805494850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819092529290922080549092161790555b505050505050505050565b336000908152606d6020526040812054600160ca1b66159a58509bdb99021461158057600080fd5b60408051602481018590526001600160a01b038616604482015233606482015260848082018590528251808303909101815260a49091019091526020810180516001600160e01b0316600160e01b63ef2397210217905260006115e38783611836565b60408051868152600160ca1b66159a58509bdb9902602082015281519293506001600160a01b038416927f59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5929181900390910190a26001600160a01b0381166000818152606d602052604081207f566961426f6e64546f6b656e00000000000000000000000000000000000000009055606e805460018101825591527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a0180546001600160a01b03191690911790559695505050505050565b6034546001600160a01b031690565b6034546000906001600160a01b03166116e2612096565b6001600160a01b031614905090565b6067546060906001600160a01b0316331461170b57600080fd5b6069805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b61176e6116cb565b6117b05760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606b8383612197565b505050565b6067546060906001600160a01b031633146117db57600080fd5b606a805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611990576000826001600160a01b0316846040518082805190602001908083835b602083106119195780518252601f1990920191602091820191016118fa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461197b576040519150601f19603f3d011682016040523d82523d6000602084013e611980565b606091505b505090508061198e57600080fd5b505b5092915050565b6000818152606f6020526040812054606e8054839283928692606d9285929181106119be57fe5b600091825260209182902001546001600160a01b031682520152508015611a67576000848152606f6020526040902054606e805490919081106119fd57fe5b6000918252602080832090910154868352606f9091526040822054606e80546001600160a01b0390931693606d939092908110611a3657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020549093509150610f989050565b5060009150819050610f98565b611a7c6116cb565b611abe5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606983836121fa565b600154610100900460ff1680611ae35750611ae3612057565b80611af1575060015460ff16155b611b2f57604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff16158015611b59576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611bba576001805461ff00191690555b5050565b6000606e8281548110611bcd57fe5b6000918252602090912001546001600160a01b031692915050565b611bf06116cb565b611c325760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606883836121fa565b611c466116cb565b611c885760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606a83836121fa565b611c9c6116cb565b611cde5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6111a78161209a565b600082606d6000606e606f60008881526020019081526020016000205481548110611d0e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010154148015611d8a575081606d6000606e606f60008881526020019081526020016000205481548110611d6357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054145b15610ccb576000838152606f6020526040902054606e80549091908110611dad57fe5b6000918252602090912001546001600160a01b03169050610ccb565b6001600160a01b03166000908152606d602052604090205490565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611e4857506000610ccb565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611e8e5760009350505050610ccb565b8060ff16601b14158015611ea657508060ff16601c14155b15611eb75760009350505050610ccb565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015611f0e573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b600080611f30878461213e565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b83811015611fe6578181015183820152602001611fce565b50505050905090810190601f1680156120135780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561203457600080fd5b505af1158015612048573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b6001600160a01b0381166120e257604051600160e51b62461bcd028152600401808060200182810382526026815260200180612c666026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161215390612274565b601f1982820381018352601f9091011660405290506000612174868661205d565b9050808251602084016000f59250823b61218d57600080fd5b5090949350505050565b8280548282559060005260206000209081019282156121ea579160200282015b828111156121ea5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906121b7565b506121f6929150612281565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061223b5782800160ff19823516178555612268565b82800160010185558215612268579182015b8281111561226857823582559160200191906001019061224d565b506121f69291506122a5565b6109a6806122c083390190565b610df691905b808211156121f65780546001600160a01b0319168155600101612287565b610df691905b808211156121f657600081556001016122ab56fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820b8573a0ea49b9fa15ff0b71cee26f7cc96d4f32ac441fbc3ad9022d45419af930029",
735
+ "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"getSigner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"}],\"name\":\"getIssuer\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"deploySigned\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getViaOracleUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOracles\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getClient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getName\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getNameAndType\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"token\",\"outputs\":[{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"name\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getTokenCount\",\"outputs\":[{\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_client\",\"type\":\"address\"}],\"name\":\"setClientAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getDeploymentAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"tokenCurrency\",\"type\":\"bytes32\"},{\"name\":\"_oracle\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"address\"}],\"name\":\"createIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenSymbol\",\"type\":\"bytes32\"}],\"name\":\"createToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getFiatPayoutUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_oracles\",\"type\":\"address[]\"}],\"name\":\"setOracles\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCryptoDataUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deployMinimal\",\"outputs\":[{\"name\":\"proxy\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenName\",\"type\":\"bytes32\"}],\"name\":\"getAddressAndType\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setFiatPayoutUrl\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setViaOracleUrl\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setCryptoDataURL\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"getTokenByNameType\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getType\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"CashIssuerCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"BondIssuerCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"TokenCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"ProxyCreated\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Factory.sol\":\"Factory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"@openzeppelin/upgrades/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x0ca3de3dc8aac4114ff0b123fcabef91901de1a30938f3e954846ad99909b972\",\"urls\":[\"bzzr://7905b8ce67a4d4b0744f0f08abb7c4ec1762b18ee39ee7d64fc73beb0da0db19\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0xbf8ee1cf63a430a3eb8b39a9145d0d133400b8db06fa9fd33056597f7d8ceb25\",\"urls\":[\"bzzr://f9563fda28096fae1396dce1f6eb5f5afc664677887071076b7e4b0e6d06bd56\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseUpgradeabilityProxy.sol\":{\"keccak256\":\"0x1b37f808dc0a45976ad23aa53908c485a74a4d9fbd03066a5ab399c46436e570\",\"urls\":[\"bzzr://c309686ae393a7474d0af3a7237b5ef3c452d9f78756d40caeeaad4caf2c2efb\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0x91f2b663c89b940dce6dbd00f5e7bf326cdf02d1da4ddbcb7e64b313e60d9afc\",\"urls\":[\"bzzr://572ab82efb4e71dbb88e992eedc363f72290eb2fdc1081023e66680d2a69ef07\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableUpgradeabilityProxy.sol\":{\"keccak256\":\"0x6b84a0236a899ba5aa673ea34d5efa1f93dba461e13d8799f51a9f7b64b59f4f\",\"urls\":[\"bzzr://bc421cdd1f5c8313a0eaf237c9110d187674955d3eacbc187bddeda82a664053\"]},\"@openzeppelin/upgrades/contracts/upgradeability/Proxy.sol\":{\"keccak256\":\"0xd8074ae5fa7ee6384ca8196a896612fb044bbf4ff4b7336d03cd97845000ac21\",\"urls\":[\"bzzr://a94275c7d409e80fa5cf6f31c8a6b97cf85c231de40585d42ae98bab426562c6\"]},\"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\":{\"keccak256\":\"0xf4932759c88b26dd0b37a7ba960c44f7a4e817127846befb4b4fb72ee8f2c573\",\"urls\":[\"bzzr://6b7fb7e0bdbbbcbf9cbd110fc19a23bfa4eeb583c767b66614124f34f2135b42\"]},\"@openzeppelin/upgrades/contracts/upgradeability/UpgradeabilityProxy.sol\":{\"keccak256\":\"0xb02c6349ba01df9902857b6058f92b37f13187775cce9da74f6f28410205445b\",\"urls\":[\"bzzr://2a95f00787c16351caad43b25048cc40eff9f140c4b1284fbf502dfd9b708489\"]},\"@openzeppelin/upgrades/contracts/utils/Address.sol\":{\"keccak256\":\"0x7be7f8e4c08bc70ff9815e3f11c569f42aa3c447b5bc61fd75fb5cec97f63a9f\",\"urls\":[\"bzzr://b6a2c355fa7aadb6c25e8691e98abc26d3429afa58eb761af4ab5377eee30709\"]},\"abdk-libraries-solidity/ABDKMathQuad.sol\":{\"keccak256\":\"0xf75c2b34d9924cc413521db48a168b00ed321e678e70f5048a50c1140994dcf2\",\"urls\":[\"bzzr://0bdb29f3216c419e91defe1801f146cb40bb9551c8cd708ffb59f1e298e205ce\"]},\"project:/contracts/Factory.sol\":{\"keccak256\":\"0x8d6a0bd7cc9d410ec444cc9595802870fbbba8b133467356f44d290c7d4c5921\",\"urls\":[\"bzzr://644307414e5563652a6141f8df2206f57e2fd711d716d73bdb043dbef96cd875\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xbdfb6846d7679a8a1b8984a5262f5d5ae072c319bb951692c0ba19943164fd0a\",\"urls\":[\"bzzr://c86aa25338531c43af3f9fc04d171b6ee721b6522346d42c7b593366e512f482\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0x61364e0e62edba9e4db776f09b320ed7147e2049f91bdf0ade6666818aa82e59\",\"urls\":[\"bzzr://c4e228128c76aa00ea50de421dc1f0b9660ae843c6d88f8bfdf6cddd237608d1\"]},\"project:/contracts/interfaces/ViaToken.sol\":{\"keccak256\":\"0x198aefe12635d1b1cb74c29009ac4224bf4d9730aa1bc2a4c046adb17a56df05\",\"urls\":[\"bzzr://01983fbb85404dd25534b379278927611ca57d4b1862d902fb15c3388d10d4ae\"]}},\"version\":1}",
736
+ "bytecode": "0x6080604081905261001060a0610034565b601f1982820381018352601f90910116604052805160209190910120600055610041565b6109a680612d5583390190565b612d05806100506000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806388a365f41161011a578063b96b2004116100ad578063edf6a8ac1161007c578063edf6a8ac14610a6d578063eed3b40c14610adb578063f2fde38b14610b49578063f3458f1414610b6f578063f429f19b14610b92576101fb565b8063b96b20041461097c578063baa796bd146109bc578063c4d66de814610a2a578063e4b50cb814610a50576101fb565b8063968eb4b2116100e9578063968eb4b21461084a578063ae9b71af14610852578063b1689d82146108c0578063b3eeb5e2146108c8576101fb565b806388a365f4146107985780638d5040cc146107ea5780638da5cb5b146108265780638f32d59b1461082e576101fb565b80636150864c1161019257806378a895671161016157806378a8956714610736578063805ef8121461073e5780638129fc1c1461076457806381ae1f5b1461076c576101fb565b80636150864c14610603578063668151a7146106c75780636d46a1db14610706578063715018a61461072c576101fb565b806340884c52116101ce57806340884c521461054e5780634f64b2be146105a657806359dc735c146105c35780635fd4b08a146105cb576101fb565b8063290f8f56146102005780632ea7791714610365578063332d6626146103885780633e18b01b146104d1575b600080fd5b610349600480360360a081101561021657600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561025057600080fd5b82018360208201111561026257600080fd5b803590602001918460018302840111600160201b8311171561028357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156102d557600080fd5b8201836020820111156102e757600080fd5b803590602001918460018302840111600160201b8311171561030857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bb8945050505050565b604080516001600160a01b039092168252519081900360200190f35b6103496004803603604081101561037b57600080fd5b5080359060200135610ca7565b610349600480360360a081101561039e57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156103d857600080fd5b8201836020820111156103ea57600080fd5b803590602001918460018302840111600160201b8311171561040b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561045d57600080fd5b82018360208201111561046f57600080fd5b803590602001918460018302840111600160201b8311171561049057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cd1945050505050565b6104d9610d4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105135781810151838201526020016104fb565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610556610df9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561059257818101518382015260200161057a565b505050509050019250505060405180910390f35b610349600480360360208110156105bc57600080fd5b5035610e72565b610349610e99565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316610f42565b60408051918252519081900360200190f35b6103496004803603608081101561061957600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561065357600080fd5b82018360208201111561066557600080fd5b803590602001918460018302840111600160201b8311171561068657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f60945050505050565b6106ed600480360360208110156106dd57600080fd5b50356001600160a01b0316610f78565b6040805192835260208301919091528051918290030190f35b6106ed6004803603602081101561071c57600080fd5b50356001600160a01b0316610f9d565b610734610fb6565b005b6105f161104a565b6107346004803603602081101561075457600080fd5b50356001600160a01b0316611050565b6107346110fd565b6103496004803603604081101561078257600080fd5b50803590602001356001600160a01b03166111aa565b610734600480360360e08110156107ae57600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a081013582169160c0909101351661120f565b6103496004803603608081101561080057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611558565b6103496116bc565b6108366116cb565b604080519115158252519081900360200190f35b6104d96116f1565b6107346004803603602081101561086857600080fd5b810190602081018135600160201b81111561088257600080fd5b82018360208201111561089457600080fd5b803590602001918460208302840111600160201b831117156108b557600080fd5b509092509050611766565b6104d96117c1565b610349600480360360408110156108de57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561090857600080fd5b82018360208201111561091a57600080fd5b803590602001918460018302840111600160201b8311171561093b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611836945050505050565b6109996004803603602081101561099257600080fd5b5035611997565b604080516001600160a01b03909316835260208301919091528051918290030190f35b610734600480360360208110156109d257600080fd5b810190602081018135600160201b8111156109ec57600080fd5b8201836020820111156109fe57600080fd5b803590602001918460018302840111600160201b83111715610a1f57600080fd5b509092509050611a74565b61073460048036036020811015610a4057600080fd5b50356001600160a01b0316611aca565b61034960048036036020811015610a6657600080fd5b5035611bbe565b61073460048036036020811015610a8357600080fd5b810190602081018135600160201b811115610a9d57600080fd5b820183602082011115610aaf57600080fd5b803590602001918460018302840111600160201b83111715610ad057600080fd5b509092509050611be8565b61073460048036036020811015610af157600080fd5b810190602081018135600160201b811115610b0b57600080fd5b820183602082011115610b1d57600080fd5b803590602001918460018302840111600160201b83111715610b3e57600080fd5b509092509050611c3e565b61073460048036036020811015610b5f57600080fd5b50356001600160a01b0316611c94565b61034960048036036040811015610b8557600080fd5b5080359060200135611ce7565b6105f160048036036020811015610ba857600080fd5b50356001600160a01b0316611dc9565b600080610c90878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610c315780518252601f199092019160209182019101610c12565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b81526014019550505050505060405160208183030381529060405280519060200120611de4565b9050610c9c8184611e35565b979650505050505050565b60008281526070602090815260408083208484529091529020546001600160a01b03165b92915050565b600080610ce18787878787610bb8565b90506001600160a01b038116610d415760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610c9c8787878785611f23565b6067546060906001600160a01b03163314610d6857600080fd5b6068805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b820191906000526020600020905b815481529060010190602001808311610dd157829003601f168201915b505050505090505b90565b6067546060906001600160a01b03163314610e1357600080fd5b606b805480602002602001604051908101604052809291908181526020018280548015610dee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4b575050505050905090565b606e8181548110610e7f57fe5b6000918252602090912001546001600160a01b0316905081565b336000908152606d6020526040812054600160cb1b660acd2c286c2e6d021480610ede5750336000908152606d6020526040902054600160ca1b66159a58509bdb9902145b610f325760408051600160e51b62461bcd02815260206004820152601660248201527f47657420636c69656e74203a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b50606c546001600160a01b031690565b6001600160a01b03166000908152606d602052604090206001015490565b6000610f6f8585858533611f23565b95945050505050565b6001600160a01b0381166000908152606d60205260409020600181015490545b915091565b606d602052600090815260409020805460019091015482565b610fbe6116cb565b6110005760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b606e5490565b806110596116bc565b6001600160a01b0316816001600160a01b031663dbc4789a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b50516001600160a01b0316146110da57600080fd5b50606c80546001600160a01b0319166001600160a01b0392909216919091179055565b600154610100900460ff16806111165750611116612057565b80611124575060015460ff16155b61116257604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff1615801561118c576001805460ff1961ff00199091166101001716811790555b61119533611aca565b80156111a7576001805461ff00191690555b50565b6000806111b7848461205d565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c949350505050565b6112176116cb565b6112595760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b038516179055606086856112806116bc565b60408051602481019490945260448401929092526001600160a01b039081166064840152808716608484015280861660a4840152841660c4808401919091528151808403909101815260e490920190526020810180516001600160e01b0316600160e21b632274a71302179052905060006112fb8983611836565b905086600160e31b63086c2e6d02141561135757604080518981526020810189905281516001600160a01b038416927f49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34928290030190a26113ad565b86600160e21b63109bdb990214156113ad57604080518981526020810189905281516001600160a01b038416927fdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f928290030190a25b86600160e31b63086c2e6d02141561148457604080518082018252600160cb1b660acd2c286c2e6d02815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e80548c8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091557f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d390925292909220805490921617905561154d565b86600160e21b63109bdb9902141561154d57604080518082018252600160ca1b66159a58509bdb9902815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e805494850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819092529290922080549092161790555b505050505050505050565b336000908152606d6020526040812054600160ca1b66159a58509bdb99021461158057600080fd5b60408051602481018590526001600160a01b038616604482015233606482015260848082018590528251808303909101815260a49091019091526020810180516001600160e01b0316600160e01b63ef2397210217905260006115e38783611836565b60408051868152600160ca1b66159a58509bdb9902602082015281519293506001600160a01b038416927f59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5929181900390910190a26001600160a01b0381166000818152606d602052604081207f566961426f6e64546f6b656e00000000000000000000000000000000000000009055606e805460018101825591527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a0180546001600160a01b03191690911790559695505050505050565b6034546001600160a01b031690565b6034546000906001600160a01b03166116e2612096565b6001600160a01b031614905090565b6067546060906001600160a01b0316331461170b57600080fd5b6069805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b61176e6116cb565b6117b05760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606b8383612197565b505050565b6067546060906001600160a01b031633146117db57600080fd5b606a805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611990576000826001600160a01b0316846040518082805190602001908083835b602083106119195780518252601f1990920191602091820191016118fa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461197b576040519150601f19603f3d011682016040523d82523d6000602084013e611980565b606091505b505090508061198e57600080fd5b505b5092915050565b6000818152606f6020526040812054606e8054839283928692606d9285929181106119be57fe5b600091825260209182902001546001600160a01b031682520152508015611a67576000848152606f6020526040902054606e805490919081106119fd57fe5b6000918252602080832090910154868352606f9091526040822054606e80546001600160a01b0390931693606d939092908110611a3657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020549093509150610f989050565b5060009150819050610f98565b611a7c6116cb565b611abe5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606983836121fa565b600154610100900460ff1680611ae35750611ae3612057565b80611af1575060015460ff16155b611b2f57604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff16158015611b59576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611bba576001805461ff00191690555b5050565b6000606e8281548110611bcd57fe5b6000918252602090912001546001600160a01b031692915050565b611bf06116cb565b611c325760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606883836121fa565b611c466116cb565b611c885760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606a83836121fa565b611c9c6116cb565b611cde5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6111a78161209a565b600082606d6000606e606f60008881526020019081526020016000205481548110611d0e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010154148015611d8a575081606d6000606e606f60008881526020019081526020016000205481548110611d6357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054145b15610ccb576000838152606f6020526040902054606e80549091908110611dad57fe5b6000918252602090912001546001600160a01b03169050610ccb565b6001600160a01b03166000908152606d602052604090205490565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611e4857506000610ccb565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611e8e5760009350505050610ccb565b8060ff16601b14158015611ea657508060ff16601c14155b15611eb75760009350505050610ccb565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015611f0e573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b600080611f30878461213e565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b83811015611fe6578181015183820152602001611fce565b50505050905090810190601f1680156120135780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561203457600080fd5b505af1158015612048573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b6001600160a01b0381166120e257604051600160e51b62461bcd028152600401808060200182810382526026815260200180612c666026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161215390612274565b601f1982820381018352601f9091011660405290506000612174868661205d565b9050808251602084016000f59250823b61218d57600080fd5b5090949350505050565b8280548282559060005260206000209081019282156121ea579160200282015b828111156121ea5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906121b7565b506121f6929150612281565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061223b5782800160ff19823516178555612268565b82800160010185558215612268579182015b8281111561226857823582559160200191906001019061224d565b506121f69291506122a5565b6109a6806122c083390190565b610df691905b808211156121f65780546001600160a01b0319168155600101612287565b610df691905b808211156121f657600081556001016122ab56fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820ae157202957e3b3210054291b68b62d177212e108b275e00073ebd9c11c825450029608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c90029",
737
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806388a365f41161011a578063b96b2004116100ad578063edf6a8ac1161007c578063edf6a8ac14610a6d578063eed3b40c14610adb578063f2fde38b14610b49578063f3458f1414610b6f578063f429f19b14610b92576101fb565b8063b96b20041461097c578063baa796bd146109bc578063c4d66de814610a2a578063e4b50cb814610a50576101fb565b8063968eb4b2116100e9578063968eb4b21461084a578063ae9b71af14610852578063b1689d82146108c0578063b3eeb5e2146108c8576101fb565b806388a365f4146107985780638d5040cc146107ea5780638da5cb5b146108265780638f32d59b1461082e576101fb565b80636150864c1161019257806378a895671161016157806378a8956714610736578063805ef8121461073e5780638129fc1c1461076457806381ae1f5b1461076c576101fb565b80636150864c14610603578063668151a7146106c75780636d46a1db14610706578063715018a61461072c576101fb565b806340884c52116101ce57806340884c521461054e5780634f64b2be146105a657806359dc735c146105c35780635fd4b08a146105cb576101fb565b8063290f8f56146102005780632ea7791714610365578063332d6626146103885780633e18b01b146104d1575b600080fd5b610349600480360360a081101561021657600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561025057600080fd5b82018360208201111561026257600080fd5b803590602001918460018302840111600160201b8311171561028357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156102d557600080fd5b8201836020820111156102e757600080fd5b803590602001918460018302840111600160201b8311171561030857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bb8945050505050565b604080516001600160a01b039092168252519081900360200190f35b6103496004803603604081101561037b57600080fd5b5080359060200135610ca7565b610349600480360360a081101561039e57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156103d857600080fd5b8201836020820111156103ea57600080fd5b803590602001918460018302840111600160201b8311171561040b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561045d57600080fd5b82018360208201111561046f57600080fd5b803590602001918460018302840111600160201b8311171561049057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cd1945050505050565b6104d9610d4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105135781810151838201526020016104fb565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610556610df9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561059257818101518382015260200161057a565b505050509050019250505060405180910390f35b610349600480360360208110156105bc57600080fd5b5035610e72565b610349610e99565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316610f42565b60408051918252519081900360200190f35b6103496004803603608081101561061957600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561065357600080fd5b82018360208201111561066557600080fd5b803590602001918460018302840111600160201b8311171561068657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f60945050505050565b6106ed600480360360208110156106dd57600080fd5b50356001600160a01b0316610f78565b6040805192835260208301919091528051918290030190f35b6106ed6004803603602081101561071c57600080fd5b50356001600160a01b0316610f9d565b610734610fb6565b005b6105f161104a565b6107346004803603602081101561075457600080fd5b50356001600160a01b0316611050565b6107346110fd565b6103496004803603604081101561078257600080fd5b50803590602001356001600160a01b03166111aa565b610734600480360360e08110156107ae57600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a081013582169160c0909101351661120f565b6103496004803603608081101561080057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611558565b6103496116bc565b6108366116cb565b604080519115158252519081900360200190f35b6104d96116f1565b6107346004803603602081101561086857600080fd5b810190602081018135600160201b81111561088257600080fd5b82018360208201111561089457600080fd5b803590602001918460208302840111600160201b831117156108b557600080fd5b509092509050611766565b6104d96117c1565b610349600480360360408110156108de57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561090857600080fd5b82018360208201111561091a57600080fd5b803590602001918460018302840111600160201b8311171561093b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611836945050505050565b6109996004803603602081101561099257600080fd5b5035611997565b604080516001600160a01b03909316835260208301919091528051918290030190f35b610734600480360360208110156109d257600080fd5b810190602081018135600160201b8111156109ec57600080fd5b8201836020820111156109fe57600080fd5b803590602001918460018302840111600160201b83111715610a1f57600080fd5b509092509050611a74565b61073460048036036020811015610a4057600080fd5b50356001600160a01b0316611aca565b61034960048036036020811015610a6657600080fd5b5035611bbe565b61073460048036036020811015610a8357600080fd5b810190602081018135600160201b811115610a9d57600080fd5b820183602082011115610aaf57600080fd5b803590602001918460018302840111600160201b83111715610ad057600080fd5b509092509050611be8565b61073460048036036020811015610af157600080fd5b810190602081018135600160201b811115610b0b57600080fd5b820183602082011115610b1d57600080fd5b803590602001918460018302840111600160201b83111715610b3e57600080fd5b509092509050611c3e565b61073460048036036020811015610b5f57600080fd5b50356001600160a01b0316611c94565b61034960048036036040811015610b8557600080fd5b5080359060200135611ce7565b6105f160048036036020811015610ba857600080fd5b50356001600160a01b0316611dc9565b600080610c90878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610c315780518252601f199092019160209182019101610c12565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b81526014019550505050505060405160208183030381529060405280519060200120611de4565b9050610c9c8184611e35565b979650505050505050565b60008281526070602090815260408083208484529091529020546001600160a01b03165b92915050565b600080610ce18787878787610bb8565b90506001600160a01b038116610d415760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610c9c8787878785611f23565b6067546060906001600160a01b03163314610d6857600080fd5b6068805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b820191906000526020600020905b815481529060010190602001808311610dd157829003601f168201915b505050505090505b90565b6067546060906001600160a01b03163314610e1357600080fd5b606b805480602002602001604051908101604052809291908181526020018280548015610dee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4b575050505050905090565b606e8181548110610e7f57fe5b6000918252602090912001546001600160a01b0316905081565b336000908152606d6020526040812054600160cb1b660acd2c286c2e6d021480610ede5750336000908152606d6020526040902054600160ca1b66159a58509bdb9902145b610f325760408051600160e51b62461bcd02815260206004820152601660248201527f47657420636c69656e74203a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b50606c546001600160a01b031690565b6001600160a01b03166000908152606d602052604090206001015490565b6000610f6f8585858533611f23565b95945050505050565b6001600160a01b0381166000908152606d60205260409020600181015490545b915091565b606d602052600090815260409020805460019091015482565b610fbe6116cb565b6110005760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b606e5490565b806110596116bc565b6001600160a01b0316816001600160a01b031663dbc4789a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b50516001600160a01b0316146110da57600080fd5b50606c80546001600160a01b0319166001600160a01b0392909216919091179055565b600154610100900460ff16806111165750611116612057565b80611124575060015460ff16155b61116257604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff1615801561118c576001805460ff1961ff00199091166101001716811790555b61119533611aca565b80156111a7576001805461ff00191690555b50565b6000806111b7848461205d565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c949350505050565b6112176116cb565b6112595760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b038516179055606086856112806116bc565b60408051602481019490945260448401929092526001600160a01b039081166064840152808716608484015280861660a4840152841660c4808401919091528151808403909101815260e490920190526020810180516001600160e01b0316600160e21b632274a71302179052905060006112fb8983611836565b905086600160e31b63086c2e6d02141561135757604080518981526020810189905281516001600160a01b038416927f49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34928290030190a26113ad565b86600160e21b63109bdb990214156113ad57604080518981526020810189905281516001600160a01b038416927fdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f928290030190a25b86600160e31b63086c2e6d02141561148457604080518082018252600160cb1b660acd2c286c2e6d02815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e80548c8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091557f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d390925292909220805490921617905561154d565b86600160e21b63109bdb9902141561154d57604080518082018252600160ca1b66159a58509bdb9902815260208082018981526001600160a01b0385166000818152606d8452858120945185559151600194850155606e805494850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819092529290922080549092161790555b505050505050505050565b336000908152606d6020526040812054600160ca1b66159a58509bdb99021461158057600080fd5b60408051602481018590526001600160a01b038616604482015233606482015260848082018590528251808303909101815260a49091019091526020810180516001600160e01b0316600160e01b63ef2397210217905260006115e38783611836565b60408051868152600160ca1b66159a58509bdb9902602082015281519293506001600160a01b038416927f59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5929181900390910190a26001600160a01b0381166000818152606d602052604081207f566961426f6e64546f6b656e00000000000000000000000000000000000000009055606e805460018101825591527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a0180546001600160a01b03191690911790559695505050505050565b6034546001600160a01b031690565b6034546000906001600160a01b03166116e2612096565b6001600160a01b031614905090565b6067546060906001600160a01b0316331461170b57600080fd5b6069805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b61176e6116cb565b6117b05760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606b8383612197565b505050565b6067546060906001600160a01b031633146117db57600080fd5b606a805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610dee5780601f10610dc357610100808354040283529160200191610dee565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611990576000826001600160a01b0316846040518082805190602001908083835b602083106119195780518252601f1990920191602091820191016118fa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461197b576040519150601f19603f3d011682016040523d82523d6000602084013e611980565b606091505b505090508061198e57600080fd5b505b5092915050565b6000818152606f6020526040812054606e8054839283928692606d9285929181106119be57fe5b600091825260209182902001546001600160a01b031682520152508015611a67576000848152606f6020526040902054606e805490919081106119fd57fe5b6000918252602080832090910154868352606f9091526040822054606e80546001600160a01b0390931693606d939092908110611a3657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020549093509150610f989050565b5060009150819050610f98565b611a7c6116cb565b611abe5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606983836121fa565b600154610100900460ff1680611ae35750611ae3612057565b80611af1575060015460ff16155b611b2f57604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612cac602e913960400191505060405180910390fd5b600154610100900460ff16158015611b59576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611bba576001805461ff00191690555b5050565b6000606e8281548110611bcd57fe5b6000918252602090912001546001600160a01b031692915050565b611bf06116cb565b611c325760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606883836121fa565b611c466116cb565b611c885760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6117bc606a83836121fa565b611c9c6116cb565b611cde5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612c8c833981519152604482015290519081900360640190fd5b6111a78161209a565b600082606d6000606e606f60008881526020019081526020016000205481548110611d0e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010154148015611d8a575081606d6000606e606f60008881526020019081526020016000205481548110611d6357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054145b15610ccb576000838152606f6020526040902054606e80549091908110611dad57fe5b6000918252602090912001546001600160a01b03169050610ccb565b6001600160a01b03166000908152606d602052604090205490565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60008151604114611e4857506000610ccb565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611e8e5760009350505050610ccb565b8060ff16601b14158015611ea657508060ff16601c14155b15611eb75760009350505050610ccb565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015611f0e573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b600080611f30878461213e565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b83811015611fe6578181015183820152602001611fce565b50505050905090810190601f1680156120135780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561203457600080fd5b505af1158015612048573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b6001600160a01b0381166120e257604051600160e51b62461bcd028152600401808060200182810382526026815260200180612c666026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161215390612274565b601f1982820381018352601f9091011660405290506000612174868661205d565b9050808251602084016000f59250823b61218d57600080fd5b5090949350505050565b8280548282559060005260206000209081019282156121ea579160200282015b828111156121ea5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906121b7565b506121f6929150612281565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061223b5782800160ff19823516178555612268565b82800160010185558215612268579182015b8281111561226857823582559160200191906001019061224d565b506121f69291506122a5565b6109a6806122c083390190565b610df691905b808211156121f65780546001600160a01b0319168155600101612287565b610df691905b808211156121f657600081556001016122ab56fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820ae157202957e3b3210054291b68b62d177212e108b275e00073ebd9c11c825450029",
738
738
  "sourceMap": "535:6431:15:-;;;;;283:56:9;;;:::i;:::-;-1:-1:-1;;21:26;;;;;7:41;;87:2;69:12;;;65:26;61:2;54:38;266:79:9;;41:4:-1;30:16;;;;266:79:9;247:16;:98;535:6431:15;;;;;;;;;;:::o;:::-;;;;;;;",
739
739
  "deployedSourceMap": "535:6431:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;535:6431:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:408:9;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2132:408:9;;;-1:-1:-1;;;;;2132:408:9;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2132:408:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2132:408:9;;;;;;;;-1:-1:-1;2132:408:9;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;2132:408:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2132:408:9;;-1:-1:-1;2132:408:9;;-1:-1:-1;;;;;2132:408:9:i;:::-;;;;-1:-1:-1;;;;;2132:408:9;;;;;;;;;;;;;;2876:142:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2876:142:15;;;;;;;:::i;1288:337:9:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1288:337:9;;;-1:-1:-1;;;;;1288:337:9;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1288:337:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1288:337:9;;;;;;;;-1:-1:-1;1288:337:9;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1288:337:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1288:337:9;;-1:-1:-1;1288:337:9;;-1:-1:-1;;;;;1288:337:9:i;3487:144:15:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3487:144:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4217:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4217:137:15;;;;;;;;;;;;;;;;;1254:23;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1254:23:15;;:::i;3996:213::-;;;:::i;2080:116::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2080:116:15;-1:-1:-1;;;;;2080:116:15;;:::i;:::-;;;;;;;;;;;;;;;;1104:180:9;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1104:180:9;;;-1:-1:-1;;;;;1104:180:9;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1104:180:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1104:180:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1104:180:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1104:180:9;;-1:-1:-1;1104:180:9;;-1:-1:-1;;;;;1104:180:9:i;2333:162:15:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2333:162:15;-1:-1:-1;;;;;2333:162:15;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1168:36;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1168:36:15;-1:-1:-1;;;;;1168:36:15;;:::i;1746:137:1:-;;;:::i;:::-;;1867:103:15;;;:::i;6720:108::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6720:108:15;-1:-1:-1;;;;;6720:108:15;;:::i;1770:89::-;;;:::i;1629:499:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1629:499:9;;;;;;-1:-1:-1;;;;;1629:499:9;;:::i;4391:1194:15:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;4391:1194:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5618:638::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;5618:638:15;;;;;;;;;;;;;;;;;;;;;;:::i;959:77:1:-;;;:::i;1310:92::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;3639:146:15;;;:::i;6607:105::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6607:105:15;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6607:105:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6607:105:15;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;6607:105:15;;-1:-1:-1;6607:105:15;-1:-1:-1;6607:105:15;:::i;3793:146::-;;;:::i;354:746:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;354:746:9;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;354:746:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;354:746:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;354:746:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;354:746:9;;-1:-1:-1;354:746:9;;-1:-1:-1;;;;;354:746:9:i;3088:391:15:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3088:391:15;;:::i;:::-;;;;-1:-1:-1;;;;;3088:391:15;;;;;;;;;;;;;;;;;;;;;6379:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6379:106:15;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6379:106:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6379:106:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;6379:106:15;;-1:-1:-1;6379:106:15;-1:-1:-1;6379:106:15;:::i;741:142:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;741:142:1;-1:-1:-1;;;;;741:142:1;;:::i;1978:94:15:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1978:94:15;;:::i;6264:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6264:104:15;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6264:104:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6264:104:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;6264:104:15;;-1:-1:-1;6264:104:15;-1:-1:-1;6264:104:15;:::i;6493:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6493:106:15;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6493:106:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6493:106:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;6493:106:15;;-1:-1:-1;6493:106:15;-1:-1:-1;6493:106:15;:::i;2032:107:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2032:107:1;-1:-1:-1;;;;;2032:107:1;;:::i;2503:290:15:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2503:290:15;;;;;;;:::i;2204:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2204:121:15;-1:-1:-1;;;;;2204:121:15;;:::i;2132:408:9:-;2264:7;2279:15;2297:170;2400:5;2407:6;2415;2423:5;2438:4;2372:81;;;;;;;;;;;-1:-1:-1;;;;;2372:81:9;-1:-1:-1;;;;;2372:81:9;;;;;;;;-1:-1:-1;;;;;2372:81:9;-1:-1:-1;;;;;2372:81:9;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2372:81:9;;;;;;;-1:-1:-1;;;;;2372:81:9;-1:-1:-1;;;;;2372:81:9;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2372:81:9;;;2353:108;;;;;;2297:48;:170::i;:::-;2279:188;;2481:54;2515:7;2524:10;2481:33;:54::i;:::-;2474:61;2132:408;-1:-1:-1;;;;;;;2132:408:9:o;2876:142:15:-;2955:7;2981:18;;;:7;:18;;;;;;;;:29;;;;;;;;;-1:-1:-1;;;;;2981:29:15;2876:142;;;;;:::o;1288:337:9:-;1418:7;1433:14;1450:51;1460:5;1467:6;1475;1483:5;1490:10;1450:9;:51::i;:::-;1433:68;-1:-1:-1;;;;;;1515:20:9;;1507:50;;;;;-1:-1:-1;;;;;1507:50:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570;1583:5;1590:6;1598;1606:5;1613:6;1570:12;:50::i;3487:144:15:-;3583:9;;3536:13;;-1:-1:-1;;;;;3583:9:15;3569:10;:23;3561:32;;;;;;3611:12;3604:19;;;;;;;;;;;;;-1:-1:-1;;3604:19:15;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:12;3604:19;;3611:12;3604:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3487:144;;:::o;4217:137::-;4311:9;;4261:16;;-1:-1:-1;;;;;4311:9:15;4297:10;:23;4289:32;;;;;;4339:7;4332:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4332:14:15;;;;;;;;;;;;;;;;;;;;;;4217:137;:::o;1254:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1254:23:15;;-1:-1:-1;1254:23:15;:::o;3996:213::-;4072:10;4039:7;4066:17;;;:5;:17;;;;;:27;-1:-1:-1;;;;;4066:40:15;;:84;;-1:-1:-1;4116:10:15;4110:17;;;;:5;:17;;;;;:27;-1:-1:-1;;;;;4110:40:15;4066:84;4058:119;;;;;-1:-1:-1;;;;;4058:119:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4195:6:15;;-1:-1:-1;;;;;4195:6:15;3996:213;:::o;2080:116::-;-1:-1:-1;;;;;2166:17:15;2139:7;2166:17;;;:5;:17;;;;;:22;;;;2080:116::o;1104:180:9:-;1203:7;1225:54;1238:5;1245:6;1253;1261:5;1268:10;1225:12;:54::i;:::-;1218:61;1104:180;-1:-1:-1;;;;;1104:180:9:o;2333:162:15:-;-1:-1:-1;;;;;2435:17:15;;2399:7;2435:17;;;:5;:17;;;;;:22;;;;2459:27;;2333:162;;;;:::o;1168:36::-;;;;;;;;;;;;;;;;;;;:::o;1746:137:1:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;1828:6;;1807:40;;1844:1;;-1:-1:-1;;;;;1828:6:1;;1807:40;;1844:1;;1807:40;1857:6;:19;;-1:-1:-1;;;;;;1857:19:1;;;1746:137::o;1867:103:15:-;1949:6;:13;1867:103;:::o;6720:108::-;6775:7;6933;:5;:7::i;:::-;-1:-1:-1;;;;;6892:48:15;6907:7;-1:-1:-1;;;;;6892:37:15;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6892:39:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6892:39:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6892:39:15;-1:-1:-1;;;;;6892:48:15;;6884:57;;;;;;-1:-1:-1;6804:6:15;:16;;-1:-1:-1;;;;;;6804:16:15;-1:-1:-1;;;;;6804:16:15;;;;;;;;;;6720:108::o;1770:89::-;1024:12:2;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:2;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;1151:13;1170:80;;;;1213:4;1198:19;;-1:-1:-1;;;;1198:19:2;;;;;1225:18;;;;;1170:80;1821:30:15;1840:10;1821:18;:30::i;:::-;1268:14:2;1264:55;;;1292:12;:20;;-1:-1:-1;;1292:20:2;;;1264:55;1770:89:15;:::o;1629:499:9:-;1712:7;1877:12;1892:24;1901:5;1908:7;1892:8;:24::i;:::-;1922:18;2045:16;1960:109;;;-1:-1:-1;;;;;;1960:109:9;;;;;;;;2016:4;1960:109;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1960:109:9;;;;;;;1943:132;;;;;2105:16;;2089:34;;;1629:499;-1:-1:-1;;;;1629:499:9:o;4391:1194:15:-;1163:9:1;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;4567:9:15;:19;;-1:-1:-1;;;;;;4567:19:15;-1:-1:-1;;;;;4567:19:15;;;;;4597:21;4708:9;4719:13;4734:7;:5;:7::i;:::-;4621:144;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4621:144:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4621:144:15;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;4621:144:15;-1:-1:-1;;4821:32:15;4835:7;4621:144;4821:13;:32::i;:::-;4803:50;;4867:9;-1:-1:-1;;;;;4867:17:15;4864:194;;;4904:48;;;;;;;;;;;;;;-1:-1:-1;;;;;4904:48:15;;;;;;;;;;;4864:194;;;4971:9;-1:-1:-1;;;;;4971:19:15;4968:90;;;5010:48;;;;;;;;;;;;;;-1:-1:-1;;;;;5010:48:15;;;;;;;;;;;4968:90;5074:9;-1:-1:-1;;;;;5074:19:15;5071:507;;;5130:29;;;;;;;;-1:-1:-1;;;;;5130:29:15;;;;;;;;;-1:-1:-1;;;;;5113:14:15;;-1:-1:-1;5113:14:15;;;:5;:14;;;;;:46;;;;;;;;;;;5204:6;:13;;5178:25;;;:10;:25;;;;;:39;;;23:18:-1;;;45:23;;5236:20:15;;;;;;-1:-1:-1;;;;;;5236:20:15;;;;;;;;5291:18;:33;;;;;;;:43;;;;;;;;5071:507;;;5364:9;-1:-1:-1;;;;;5364:19:15;5361:217;;;5420:29;;;;;;;;-1:-1:-1;;;;;5420:29:15;;;;;;;;;-1:-1:-1;;;;;5403:14:15;;-1:-1:-1;5403:14:15;;;:5;:14;;;;;:46;;;;;;;;;;;5468:6;27:10:-1;;23:18;;;45:23;;5468:20:15;;;;;;-1:-1:-1;;;;;;5468:20:15;;;;;;;;5523:33;;;:18;:33;;;;;;;:43;;;;;;;;5361:217;1219:1:1;;4391:1194:15;;;;;;;:::o;5618:638::-;5762:10;5729:7;5756:17;;;:5;:17;;;;;:27;-1:-1:-1;;;;;5756:40:15;5748:49;;;;;;5834:114;;;;;;;;;-1:-1:-1;;;;;5834:114:15;;;;;;5924:10;5834:114;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5834:114:15;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;-1:-1;6003:32:15;6017:7;5834:114;6003:13;:32::i;:::-;6051:44;;;;;;-1:-1:-1;;;;;6051:44:15;;;;;;5986:49;;-1:-1:-1;;;;;;6051:44:15;;;;;;;;;;;;;;-1:-1:-1;;;;;6132:13:15;;6116;6132;;;:5;:13;;;;;6156:28;;;6195:6;27:10:-1;;39:1;23:18;;45:23;;6195:19:15;;;;;;-1:-1:-1;;;;;;6195:19:15;;;;;;6132:13;5618:638;-1:-1:-1;;;;;;5618:638:15:o;959:77:1:-;1023:6;;-1:-1:-1;;;;;1023:6:1;959:77;:::o;1310:92::-;1389:6;;1350:4;;-1:-1:-1;;;;;1389:6:1;1373:12;:10;:12::i;:::-;-1:-1:-1;;;;;1373:22:1;;1366:29;;1310:92;:::o;3639:146:15:-;3736:9;;3689:13;;-1:-1:-1;;;;;3736:9:15;3722:10;:23;3714:32;;;;;;3764:13;3757:20;;;;;;;;;;;;;-1:-1:-1;;3757:20:15;;;;;;;;;;;;;;;;;;;;;;;;;;;3764:13;3757:20;;3764:13;3757:20;;;;;;;;;;;;;;;;;;;;;;;;6607:105;1163:9:1;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;6686:18:15;:7;6696:8;;6686:18;:::i;:::-;;6607:105;;:::o;3793:146::-;3890:9;;3843:13;;-1:-1:-1;;;;;3890:9:15;3876:10;:23;3868:32;;;;;;3918:13;3911:20;;;;;;;;;;;;;-1:-1:-1;;3911:20:15;;;;;;;;;;;;;;;;;;;;;;;;;;;3918:13;3911:20;;3918:13;3911:20;;;;;;;;;;;;;;;;;;;;;;;;354:746:9;429:13;588:19;618:6;610:15;;588:37;;667:4;661:11;693:66;686:5;679:81;792:11;785:4;778:5;774:16;767:37;836:66;829:4;822:5;818:16;811:92;936:4;929:5;926:1;919:22;962:28;;;-1:-1:-1;;;;;962:28:9;;;;;;910:31;;-1:-1:-1;962:28:9;;-1:-1:-1;962:28:9;;;;;;;1000:12;;:16;997:95;;1027:12;1044:5;-1:-1:-1;;;;;1044:10:9;1055:5;1044:17;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1044:17:9;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1026:35:9;;;1077:7;1069:16;;;;;;997:95;;354:746;;;;;:::o;3088:391:15:-;3157:7;3230:21;;;:10;:21;;;;;;3223:6;:29;;3157:7;;;;3260:9;;3217:5;;3157:7;;3223:6;:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3223:29:15;3217:36;;;;-1:-1:-1;3311:5:15;3308:163;;;3346:21;;;;:10;:21;;;;;;3339:6;:29;;:6;;3346:21;3339:29;;;;;;;;;;;;;;;;;;3383:21;;;:10;:21;;;;;;;3376:6;:29;;-1:-1:-1;;;;;3339:29:15;;;;3370:5;;3339:29;;3383:21;3376:29;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3376:29:15;3370:36;;;;;;;;;;;;:46;3331:86;;-1:-1:-1;3370:46:15;-1:-1:-1;3331:86:15;;-1:-1:-1;3331:86:15;3308:163;-1:-1:-1;3462:3:15;;-1:-1:-1;3462:3:15;;-1:-1:-1;3446:25:15;;6379:106;1163:9:1;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;6457:20:15;:13;6473:4;;6457:20;:::i;741:142:1:-;1024:12:2;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:2;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;1151:13;1170:80;;;;1213:4;1198:19;;-1:-1:-1;;;;1198:19:2;;;;;1225:18;;;;;1170:80;806:6:1;:15;;-1:-1:-1;;;;;;806:15:1;-1:-1:-1;;;;;806:15:1;;;;;;;;;;;836:40;;869:6;;;-1:-1:-1;;836:40:1;;-1:-1:-1;;836:40:1;1268:14:2;1264:55;;;1292:12;:20;;-1:-1:-1;;1292:20:2;;;1264:55;741:142:1;;:::o;1978:94:15:-;2029:7;2055:6;2062:1;2055:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2055:9:15;;1978:94;-1:-1:-1;;1978:94:15:o;6264:104::-;1163:9:1;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;6341:19:15;:12;6356:4;;6341:19;:::i;6493:106::-;1163:9:1;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;6571:20:15;:13;6587:4;;6571:20;:::i;2032:107:1:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:1;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:1;;;;;;;;;;;;;;;2104:28;2123:8;2104:18;:28::i;2503:290:15:-;2591:7;2658:9;2613:5;:36;2619:6;2626:10;:21;2637:9;2626:21;;;;;;;;;;;;2619:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2619:29:15;2613:36;;;;;;;;;;;;2619:29;2613:41;;:54;:117;;;;;2721:9;2671:5;:36;2677:6;2684:10;:21;2695:9;2684:21;;;;;;;;;;;;2677:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2677:29:15;2671:36;;;;;;;;;;;;:46;:59;2613:117;2610:175;;;2763:21;;;;:10;:21;;;;;;2756:6;:29;;:6;;2763:21;2756:29;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2756:29:15;;-1:-1:-1;2749:36:15;;2204:121;-1:-1:-1;;;;;2290:17:15;2263:7;2290:17;;;:5;:17;;;;;:27;;2204:121::o;3142:265:3:-;3341:58;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3341:58:3;;;;;;;3331:69;;;;;;3142:265::o;1101:1891::-;1179:7;1240:9;:16;1260:2;1240:22;1236:72;;-1:-1:-1;1294:1:3;1278:19;;1236:72;1658:4;1643:20;;1637:27;1703:4;1688:20;;1682:27;1756:4;1741:20;;1735:27;1374:9;1727:36;2674:66;2661:79;;2657:127;;;2771:1;2756:17;;;;;;;2657:127;2798:1;:7;;2803:2;2798:7;;:18;;;;;2809:1;:7;;2814:2;2809:7;;2798:18;2794:66;;;2847:1;2832:17;;;;;;;2794:66;2961:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2961:24:3;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2961:24:3;;-1:-1:-1;;2961:24:3;;;1101:1891;-1:-1:-1;;;;;;;1101:1891:3:o;2544:329:9:-;2668:7;2683:43;2729:28;2742:5;2749:7;2729:12;:28::i;:::-;2768;;;-1:-1:-1;;;;;2768:28:9;;;;;;2683:74;;-1:-1:-1;2768:28:9;;;;;;;;;;2802:39;;-1:-1:-1;;;;;2802:39:9;;-1:-1:-1;;;;;2802:39:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;;2819:6;;2827;;2835:5;;2802:39;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2802:39:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2802:39:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2862:5:9;;2544:329;-1:-1:-1;;;;;;;;;2544:329:9:o;1409:498:2:-;1820:4;1864:17;1895:7;1409:498;:::o;3356:144:9:-;3461:32;;;;;;;;;;;-1:-1:-1;;;;;3461:32:9;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;3461:32:9;;;;;;3451:43;;;;;;3356:144::o;867:96:0:-;946:10;867:96;:::o;2240:225:1:-;-1:-1:-1;;;;;2313:22:1;;2305:73;;;;-1:-1:-1;;;;;2305:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:6;;2393:38;;-1:-1:-1;;;;;2393:38:1;;;;2414:6;;2393:38;;2414:6;;2393:38;2441:6;:17;;-1:-1:-1;;;;;;2441:17:1;-1:-1:-1;;;;;2441:17:1;;;;;;;;;;2240:225::o;2877:475:9:-;2949:37;2994:20;3020:17;3040:56;;;;;;;;:::i;:::-;-1:-1:-1;;21:26;;;;;7:41;;87:2;69:12;;;65:26;61:2;54:38;34:5;-1:-1;3102:12:9;3117:24;3126:5;3133:7;3117:8;:24::i;:::-;3102:39;;3214:4;3207;3201:11;3194:4;3188;3184:15;3181:1;3173:46;3165:54;;3248:4;3236:17;3226:2;;3275:1;3272;3265:12;3226:2;-1:-1:-1;3342:4:9;;2877:475;-1:-1:-1;;;;2877:475:9:o;535:6431:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;535:6431:15;-1:-1:-1;;;;;535:6431:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;535:6431:15;;;-1:-1:-1;535:6431:15;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;535:6431:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;535:6431:15;;;-1:-1:-1;535:6431:15;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;535:6431:15;;;;;;;;;;;;;;;;;;;;;;;;",
740
740
  "source": "// (c) Kallol Borah, 2020\r\n// Implementation of the Via cash and bond factory\r\n// SPDX-License-Identifier: MIT\r\n\r\npragma solidity 0.5.7;\r\n\r\nimport \"./interfaces/ViaFactory.sol\";\r\nimport \"./interfaces/ViaToken.sol\";\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"abdk-libraries-solidity/ABDKMathQuad.sol\";\r\nimport \"@openzeppelin/upgrades/contracts/Initializable.sol\";\r\nimport \"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\";\r\n\r\ncontract Factory is ViaFactory, ProxyFactory, Initializable, Ownable {\r\n\r\n using ABDKMathQuad for uint256;\r\n using ABDKMathQuad for int256;\r\n using ABDKMathQuad for bytes16;\r\n\r\n //data structure for token proxies\r\n struct via{\r\n bytes32 tokenType;\r\n bytes32 name; \r\n }\r\n //Via oracle url address\r\n address ViaOracle;\r\n string ViaOracleUrl;\r\n\r\n //Payout url\r\n string FiatPayoutUrl;\r\n\r\n //Crypto data url\r\n string CryptoDataUrl;\r\n\r\n //Oracle address\r\n address[] oracles;\r\n\r\n //Verified accounts client\r\n address client;\r\n\r\n //addresses of all Via proxies\r\n mapping(address => via) public token;\r\n\r\n //token index and position in index\r\n address[] public tokens;\r\n\r\n //mapping token name (currency) to index position \r\n mapping(bytes32 => uint256) private tokenIndex;\r\n\r\n //list of token product issuers\r\n mapping(bytes32 => mapping(bytes32 => address)) issuers;\r\n\r\n event CashIssuerCreated(address indexed issuer, bytes32 tokenName, bytes32 tokenType);\r\n event BondIssuerCreated(address indexed issuer, bytes32 tokenName, bytes32 tokenType);\r\n event TokenCreated(address indexed token, bytes32 tokenName, bytes32 tokenType);\r\n\r\n function initialize() public initializer{\r\n Ownable.initialize(msg.sender);\r\n }\r\n\r\n function getTokenCount() external view returns(uint tokenCount) {\r\n return tokens.length;\r\n }\r\n\r\n function getToken(uint256 n) external view returns(address){\r\n return tokens[n];\r\n }\r\n\r\n function getName(address viaAddress) external view returns(bytes32) {\r\n return token[viaAddress].name;\r\n }\r\n\r\n function getType(address viaAddress) external view returns(bytes32) {\r\n return token[viaAddress].tokenType;\r\n }\r\n\r\n function getNameAndType(address viaAddress) external view returns(bytes32, bytes32){\r\n return (token[viaAddress].name, token[viaAddress].tokenType);\r\n }\r\n\r\n function getTokenByNameType(bytes32 tokenName, bytes32 tokenType) external view returns(address){\r\n if(token[tokens[tokenIndex[tokenName]]].name == tokenName && token[tokens[tokenIndex[tokenName]]].tokenType == tokenType)\r\n return tokens[tokenIndex[tokenName]];\r\n }\r\n\r\n //retrieve token product issuer address for given token name and type\r\n function getIssuer(bytes32 tokenType, bytes32 tokenName) external view returns(address){\r\n return issuers[tokenType][tokenName];\r\n }\r\n\r\n //retrieves address and type of token for name specified\r\n function getAddressAndType(bytes32 tokenName) external view returns (address, bytes32){\r\n bool found = false;\r\n if(token[tokens[tokenIndex[tokenName]]].name==tokenName)\r\n found == true;\r\n if(found)\r\n return (tokens[tokenIndex[tokenName]], token[tokens[tokenIndex[tokenName]]].tokenType);\r\n else\r\n return (address(0x0), \"\");\r\n }\r\n\r\n function getViaOracleUrl() external view returns(string memory){\r\n require(msg.sender == ViaOracle);\r\n return ViaOracleUrl;\r\n }\r\n\r\n function getFiatPayoutUrl() external view returns(string memory){\r\n require(msg.sender == ViaOracle);\r\n return FiatPayoutUrl;\r\n }\r\n\r\n function getCryptoDataUrl() external view returns(string memory){\r\n require(msg.sender == ViaOracle);\r\n return CryptoDataUrl;\r\n }\r\n\r\n //get Verified client address for AML check\r\n function getClient() external view returns(address){\r\n require(token[msg.sender].tokenType == \"ViaCash\" || token[msg.sender].tokenType == \"ViaBond\", 'Get client : FORBIDDEN');\r\n return client;\r\n }\r\n\r\n function getOracles() external view returns(address[] memory){\r\n require(msg.sender == ViaOracle);\r\n return oracles;\r\n }\r\n\r\n //token issuer factory \r\n function createIssuer(address _target, bytes32 tokenName, bytes32 tokenType, bytes32 tokenCurrency, address _oracle, address _token, address _fee) onlyOwner external{\r\n ViaOracle = _oracle;\r\n bytes memory _payload = abi.encodeWithSignature(\"initialize(bytes32,bytes32,address,address,address,address)\", tokenName, tokenCurrency, owner(), _oracle, _token, _fee);\r\n\r\n // Deploy proxy\r\n address _issuer = deployMinimal(_target, _payload);\r\n if(tokenType==\"Cash\")\r\n emit CashIssuerCreated(_issuer, tokenName, tokenType);\r\n else if(tokenType == \"Bond\")\r\n emit BondIssuerCreated(_issuer, tokenName, tokenType);\r\n\r\n if(tokenType == \"Cash\"){\r\n token[_issuer] = via(\"ViaCash\", tokenCurrency);\r\n tokenIndex[tokenCurrency]=tokens.length;\r\n tokens.push(_issuer); \r\n issuers[\"ViaCash\"][tokenCurrency] = _issuer;\r\n }\r\n else if(tokenType == \"Bond\"){\r\n token[_issuer] = via(\"ViaBond\", tokenCurrency);\r\n tokens.push(_issuer); \r\n issuers[\"ViaBond\"][tokenCurrency] = _issuer;\r\n }\r\n }\r\n \r\n //token factory\r\n function createToken(address _target, address issuer, bytes32 tokenName, bytes32 tokenSymbol) external returns(address){\r\n require(token[msg.sender].tokenType == \"ViaBond\");\r\n\r\n bytes memory _payload = abi.encodeWithSignature(\"initialize(bytes32,address,address,bytes32)\", tokenName, issuer, msg.sender, tokenSymbol);\r\n\r\n // Deploy proxy\r\n address _token = deployMinimal(_target, _payload);\r\n emit TokenCreated(_token, tokenSymbol, \"ViaBond\");\r\n \r\n via storage t = token[_token];\r\n t.tokenType = \"ViaBondToken\";\r\n tokens.push(_token);\r\n \r\n return _token;\r\n }\r\n\r\n function setViaOracleUrl(string calldata _url) onlyOwner external {\r\n ViaOracleUrl = _url;\r\n } \r\n\r\n function setFiatPayoutUrl(string calldata _url) onlyOwner external {\r\n FiatPayoutUrl = _url;\r\n }\r\n\r\n function setCryptoDataURL(string calldata _url) onlyOwner external {\r\n CryptoDataUrl = _url;\r\n }\r\n\r\n function setOracles(address[] calldata _oracles) onlyOwner external {\r\n oracles = _oracles;\r\n }\r\n\r\n function setClientAddress(address _client) onlyManager(_client) external {\r\n client = _client;\r\n }\r\n\r\n modifier onlyManager(address _client){\r\n require(VerifiedClient(_client).getAMLManager()==owner());\r\n _;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n",
@@ -776,7 +776,7 @@
776
776
  "id": 11245,
777
777
  "nodeType": "ImportDirective",
778
778
  "scope": 11878,
779
- "sourceUnit": 14269,
779
+ "sourceUnit": 14280,
780
780
  "src": "179:35:15",
781
781
  "symbolAliases": [],
782
782
  "unitAlias": ""
@@ -1749,7 +1749,7 @@
1749
1749
  "name": "msg",
1750
1750
  "nodeType": "Identifier",
1751
1751
  "overloadedDeclarations": [],
1752
- "referencedDeclaration": 16428,
1752
+ "referencedDeclaration": 16439,
1753
1753
  "src": "1840:3:15",
1754
1754
  "typeDescriptions": {
1755
1755
  "typeIdentifier": "t_magic_message",
@@ -4046,7 +4046,7 @@
4046
4046
  "name": "msg",
4047
4047
  "nodeType": "Identifier",
4048
4048
  "overloadedDeclarations": [],
4049
- "referencedDeclaration": 16428,
4049
+ "referencedDeclaration": 16439,
4050
4050
  "src": "3569:3:15",
4051
4051
  "typeDescriptions": {
4052
4052
  "typeIdentifier": "t_magic_message",
@@ -4100,10 +4100,10 @@
4100
4100
  "name": "require",
4101
4101
  "nodeType": "Identifier",
4102
4102
  "overloadedDeclarations": [
4103
- 16431,
4104
- 16432
4103
+ 16442,
4104
+ 16443
4105
4105
  ],
4106
- "referencedDeclaration": 16431,
4106
+ "referencedDeclaration": 16442,
4107
4107
  "src": "3561:7:15",
4108
4108
  "typeDescriptions": {
4109
4109
  "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
@@ -4230,7 +4230,7 @@
4230
4230
  "name": "msg",
4231
4231
  "nodeType": "Identifier",
4232
4232
  "overloadedDeclarations": [],
4233
- "referencedDeclaration": 16428,
4233
+ "referencedDeclaration": 16439,
4234
4234
  "src": "3722:3:15",
4235
4235
  "typeDescriptions": {
4236
4236
  "typeIdentifier": "t_magic_message",
@@ -4284,10 +4284,10 @@
4284
4284
  "name": "require",
4285
4285
  "nodeType": "Identifier",
4286
4286
  "overloadedDeclarations": [
4287
- 16431,
4288
- 16432
4287
+ 16442,
4288
+ 16443
4289
4289
  ],
4290
- "referencedDeclaration": 16431,
4290
+ "referencedDeclaration": 16442,
4291
4291
  "src": "3714:7:15",
4292
4292
  "typeDescriptions": {
4293
4293
  "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
@@ -4414,7 +4414,7 @@
4414
4414
  "name": "msg",
4415
4415
  "nodeType": "Identifier",
4416
4416
  "overloadedDeclarations": [],
4417
- "referencedDeclaration": 16428,
4417
+ "referencedDeclaration": 16439,
4418
4418
  "src": "3876:3:15",
4419
4419
  "typeDescriptions": {
4420
4420
  "typeIdentifier": "t_magic_message",
@@ -4468,10 +4468,10 @@
4468
4468
  "name": "require",
4469
4469
  "nodeType": "Identifier",
4470
4470
  "overloadedDeclarations": [
4471
- 16431,
4472
- 16432
4471
+ 16442,
4472
+ 16443
4473
4473
  ],
4474
- "referencedDeclaration": 16431,
4474
+ "referencedDeclaration": 16442,
4475
4475
  "src": "3868:7:15",
4476
4476
  "typeDescriptions": {
4477
4477
  "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
@@ -4627,7 +4627,7 @@
4627
4627
  "name": "msg",
4628
4628
  "nodeType": "Identifier",
4629
4629
  "overloadedDeclarations": [],
4630
- "referencedDeclaration": 16428,
4630
+ "referencedDeclaration": 16439,
4631
4631
  "src": "4072:3:15",
4632
4632
  "typeDescriptions": {
4633
4633
  "typeIdentifier": "t_magic_message",
@@ -4738,7 +4738,7 @@
4738
4738
  "name": "msg",
4739
4739
  "nodeType": "Identifier",
4740
4740
  "overloadedDeclarations": [],
4741
- "referencedDeclaration": 16428,
4741
+ "referencedDeclaration": 16439,
4742
4742
  "src": "4116:3:15",
4743
4743
  "typeDescriptions": {
4744
4744
  "typeIdentifier": "t_magic_message",
@@ -4850,10 +4850,10 @@
4850
4850
  "name": "require",
4851
4851
  "nodeType": "Identifier",
4852
4852
  "overloadedDeclarations": [
4853
- 16431,
4854
- 16432
4853
+ 16442,
4854
+ 16443
4855
4855
  ],
4856
- "referencedDeclaration": 16432,
4856
+ "referencedDeclaration": 16443,
4857
4857
  "src": "4058:7:15",
4858
4858
  "typeDescriptions": {
4859
4859
  "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
@@ -4981,7 +4981,7 @@
4981
4981
  "name": "msg",
4982
4982
  "nodeType": "Identifier",
4983
4983
  "overloadedDeclarations": [],
4984
- "referencedDeclaration": 16428,
4984
+ "referencedDeclaration": 16439,
4985
4985
  "src": "4297:3:15",
4986
4986
  "typeDescriptions": {
4987
4987
  "typeIdentifier": "t_magic_message",
@@ -5035,10 +5035,10 @@
5035
5035
  "name": "require",
5036
5036
  "nodeType": "Identifier",
5037
5037
  "overloadedDeclarations": [
5038
- 16431,
5039
- 16432
5038
+ 16442,
5039
+ 16443
5040
5040
  ],
5041
- "referencedDeclaration": 16431,
5041
+ "referencedDeclaration": 16442,
5042
5042
  "src": "4289:7:15",
5043
5043
  "typeDescriptions": {
5044
5044
  "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
@@ -5386,7 +5386,7 @@
5386
5386
  "name": "abi",
5387
5387
  "nodeType": "Identifier",
5388
5388
  "overloadedDeclarations": [],
5389
- "referencedDeclaration": 16415,
5389
+ "referencedDeclaration": 16426,
5390
5390
  "src": "4621:3:15",
5391
5391
  "typeDescriptions": {
5392
5392
  "typeIdentifier": "t_magic_abi",
@@ -6921,7 +6921,7 @@
6921
6921
  "name": "msg",
6922
6922
  "nodeType": "Identifier",
6923
6923
  "overloadedDeclarations": [],
6924
- "referencedDeclaration": 16428,
6924
+ "referencedDeclaration": 16439,
6925
6925
  "src": "5762:3:15",
6926
6926
  "typeDescriptions": {
6927
6927
  "typeIdentifier": "t_magic_message",
@@ -7005,10 +7005,10 @@
7005
7005
  "name": "require",
7006
7006
  "nodeType": "Identifier",
7007
7007
  "overloadedDeclarations": [
7008
- 16431,
7009
- 16432
7008
+ 16442,
7009
+ 16443
7010
7010
  ],
7011
- "referencedDeclaration": 16431,
7011
+ "referencedDeclaration": 16442,
7012
7012
  "src": "5748:7:15",
7013
7013
  "typeDescriptions": {
7014
7014
  "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
@@ -7121,7 +7121,7 @@
7121
7121
  "name": "msg",
7122
7122
  "nodeType": "Identifier",
7123
7123
  "overloadedDeclarations": [],
7124
- "referencedDeclaration": 16428,
7124
+ "referencedDeclaration": 16439,
7125
7125
  "src": "5924:3:15",
7126
7126
  "typeDescriptions": {
7127
7127
  "typeIdentifier": "t_magic_message",
@@ -7185,7 +7185,7 @@
7185
7185
  "name": "abi",
7186
7186
  "nodeType": "Identifier",
7187
7187
  "overloadedDeclarations": [],
7188
- "referencedDeclaration": 16415,
7188
+ "referencedDeclaration": 16426,
7189
7189
  "src": "5834:3:15",
7190
7190
  "typeDescriptions": {
7191
7191
  "typeIdentifier": "t_magic_abi",
@@ -8624,10 +8624,10 @@
8624
8624
  "name": "require",
8625
8625
  "nodeType": "Identifier",
8626
8626
  "overloadedDeclarations": [
8627
- 16431,
8628
- 16432
8627
+ 16442,
8628
+ 16443
8629
8629
  ],
8630
- "referencedDeclaration": 16431,
8630
+ "referencedDeclaration": 16442,
8631
8631
  "src": "6884:7:15",
8632
8632
  "typeDescriptions": {
8633
8633
  "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
@@ -8746,7 +8746,7 @@
8746
8746
  },
8747
8747
  {
8748
8748
  "attributes": {
8749
- "SourceUnit": 14269,
8749
+ "SourceUnit": 14280,
8750
8750
  "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
8751
8751
  "file": "./interfaces/ViaToken.sol",
8752
8752
  "scope": 11878,
@@ -9888,7 +9888,7 @@
9888
9888
  "overloadedDeclarations": [
9889
9889
  null
9890
9890
  ],
9891
- "referencedDeclaration": 16428,
9891
+ "referencedDeclaration": 16439,
9892
9892
  "type": "msg",
9893
9893
  "value": "msg"
9894
9894
  },
@@ -12339,10 +12339,10 @@
12339
12339
  }
12340
12340
  ],
12341
12341
  "overloadedDeclarations": [
12342
- 16431,
12343
- 16432
12342
+ 16442,
12343
+ 16443
12344
12344
  ],
12345
- "referencedDeclaration": 16431,
12345
+ "referencedDeclaration": 16442,
12346
12346
  "type": "function (bool) pure",
12347
12347
  "value": "require"
12348
12348
  },
@@ -12383,7 +12383,7 @@
12383
12383
  "overloadedDeclarations": [
12384
12384
  null
12385
12385
  ],
12386
- "referencedDeclaration": 16428,
12386
+ "referencedDeclaration": 16439,
12387
12387
  "type": "msg",
12388
12388
  "value": "msg"
12389
12389
  },
@@ -12547,10 +12547,10 @@
12547
12547
  }
12548
12548
  ],
12549
12549
  "overloadedDeclarations": [
12550
- 16431,
12551
- 16432
12550
+ 16442,
12551
+ 16443
12552
12552
  ],
12553
- "referencedDeclaration": 16431,
12553
+ "referencedDeclaration": 16442,
12554
12554
  "type": "function (bool) pure",
12555
12555
  "value": "require"
12556
12556
  },
@@ -12591,7 +12591,7 @@
12591
12591
  "overloadedDeclarations": [
12592
12592
  null
12593
12593
  ],
12594
- "referencedDeclaration": 16428,
12594
+ "referencedDeclaration": 16439,
12595
12595
  "type": "msg",
12596
12596
  "value": "msg"
12597
12597
  },
@@ -12755,10 +12755,10 @@
12755
12755
  }
12756
12756
  ],
12757
12757
  "overloadedDeclarations": [
12758
- 16431,
12759
- 16432
12758
+ 16442,
12759
+ 16443
12760
12760
  ],
12761
- "referencedDeclaration": 16431,
12761
+ "referencedDeclaration": 16442,
12762
12762
  "type": "function (bool) pure",
12763
12763
  "value": "require"
12764
12764
  },
@@ -12799,7 +12799,7 @@
12799
12799
  "overloadedDeclarations": [
12800
12800
  null
12801
12801
  ],
12802
- "referencedDeclaration": 16428,
12802
+ "referencedDeclaration": 16439,
12803
12803
  "type": "msg",
12804
12804
  "value": "msg"
12805
12805
  },
@@ -12968,10 +12968,10 @@
12968
12968
  }
12969
12969
  ],
12970
12970
  "overloadedDeclarations": [
12971
- 16431,
12972
- 16432
12971
+ 16442,
12972
+ 16443
12973
12973
  ],
12974
- "referencedDeclaration": 16432,
12974
+ "referencedDeclaration": 16443,
12975
12975
  "type": "function (bool,string memory) pure",
12976
12976
  "value": "require"
12977
12977
  },
@@ -13063,7 +13063,7 @@
13063
13063
  "overloadedDeclarations": [
13064
13064
  null
13065
13065
  ],
13066
- "referencedDeclaration": 16428,
13066
+ "referencedDeclaration": 16439,
13067
13067
  "type": "msg",
13068
13068
  "value": "msg"
13069
13069
  },
@@ -13177,7 +13177,7 @@
13177
13177
  "overloadedDeclarations": [
13178
13178
  null
13179
13179
  ],
13180
- "referencedDeclaration": 16428,
13180
+ "referencedDeclaration": 16439,
13181
13181
  "type": "msg",
13182
13182
  "value": "msg"
13183
13183
  },
@@ -13388,10 +13388,10 @@
13388
13388
  }
13389
13389
  ],
13390
13390
  "overloadedDeclarations": [
13391
- 16431,
13392
- 16432
13391
+ 16442,
13392
+ 16443
13393
13393
  ],
13394
- "referencedDeclaration": 16431,
13394
+ "referencedDeclaration": 16442,
13395
13395
  "type": "function (bool) pure",
13396
13396
  "value": "require"
13397
13397
  },
@@ -13432,7 +13432,7 @@
13432
13432
  "overloadedDeclarations": [
13433
13433
  null
13434
13434
  ],
13435
- "referencedDeclaration": 16428,
13435
+ "referencedDeclaration": 16439,
13436
13436
  "type": "msg",
13437
13437
  "value": "msg"
13438
13438
  },
@@ -13897,7 +13897,7 @@
13897
13897
  "overloadedDeclarations": [
13898
13898
  null
13899
13899
  ],
13900
- "referencedDeclaration": 16415,
13900
+ "referencedDeclaration": 16426,
13901
13901
  "type": "abi",
13902
13902
  "value": "abi"
13903
13903
  },
@@ -15556,10 +15556,10 @@
15556
15556
  }
15557
15557
  ],
15558
15558
  "overloadedDeclarations": [
15559
- 16431,
15560
- 16432
15559
+ 16442,
15560
+ 16443
15561
15561
  ],
15562
- "referencedDeclaration": 16431,
15562
+ "referencedDeclaration": 16442,
15563
15563
  "type": "function (bool) pure",
15564
15564
  "value": "require"
15565
15565
  },
@@ -15636,7 +15636,7 @@
15636
15636
  "overloadedDeclarations": [
15637
15637
  null
15638
15638
  ],
15639
- "referencedDeclaration": 16428,
15639
+ "referencedDeclaration": 16439,
15640
15640
  "type": "msg",
15641
15641
  "value": "msg"
15642
15642
  },
@@ -15778,7 +15778,7 @@
15778
15778
  "overloadedDeclarations": [
15779
15779
  null
15780
15780
  ],
15781
- "referencedDeclaration": 16415,
15781
+ "referencedDeclaration": 16426,
15782
15782
  "type": "abi",
15783
15783
  "value": "abi"
15784
15784
  },
@@ -15854,7 +15854,7 @@
15854
15854
  "overloadedDeclarations": [
15855
15855
  null
15856
15856
  ],
15857
- "referencedDeclaration": 16428,
15857
+ "referencedDeclaration": 16439,
15858
15858
  "type": "msg",
15859
15859
  "value": "msg"
15860
15860
  },
@@ -17178,10 +17178,10 @@
17178
17178
  }
17179
17179
  ],
17180
17180
  "overloadedDeclarations": [
17181
- 16431,
17182
- 16432
17181
+ 16442,
17182
+ 16443
17183
17183
  ],
17184
- "referencedDeclaration": 16431,
17184
+ "referencedDeclaration": 16442,
17185
17185
  "type": "function (bool) pure",
17186
17186
  "value": "require"
17187
17187
  },
@@ -17482,12 +17482,12 @@
17482
17482
  }
17483
17483
  },
17484
17484
  "links": {},
17485
- "address": "0x6Dd7a1AdAD7a4CaB85393072bBaE18952d6Dc403",
17486
- "transactionHash": "0x6b36bcef7186f451ef9405d03d9cc445b070007eb13a9c67ef157b550e954893"
17485
+ "address": "0x2E2808D3bC534b371366Fad287421541DCFe8003",
17486
+ "transactionHash": "0xadc5cb7c1a2badd727c93f1492b961e2aab57e4ae978cfe90751347d04b66380"
17487
17487
  }
17488
17488
  },
17489
17489
  "schemaVersion": "3.4.3",
17490
- "updatedAt": "2022-04-12T01:39:42.030Z",
17490
+ "updatedAt": "2022-04-24T04:06:38.337Z",
17491
17491
  "networkType": "ethereum",
17492
17492
  "devdoc": {
17493
17493
  "methods": {