opportunity-service 0.0.491 → 0.0.493

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1318 @@
1
+ {
2
+ "contractName": "MarketFactory",
3
+ "abi": [
4
+ {
5
+ "anonymous": false,
6
+ "inputs": [
7
+ {
8
+ "indexed": true,
9
+ "internalType": "address",
10
+ "name": "_market",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "indexed": true,
15
+ "internalType": "uint256",
16
+ "name": "index",
17
+ "type": "uint256"
18
+ },
19
+ {
20
+ "indexed": false,
21
+ "internalType": "address",
22
+ "name": "owner",
23
+ "type": "address"
24
+ },
25
+ {
26
+ "indexed": false,
27
+ "internalType": "string",
28
+ "name": "marketName",
29
+ "type": "string"
30
+ }
31
+ ],
32
+ "name": "MarketCreated",
33
+ "type": "event"
34
+ },
35
+ {
36
+ "anonymous": false,
37
+ "inputs": [
38
+ {
39
+ "indexed": true,
40
+ "internalType": "address",
41
+ "name": "_marketAddress",
42
+ "type": "address"
43
+ }
44
+ ],
45
+ "name": "MarketDestroyed",
46
+ "type": "event"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "string",
52
+ "name": "marketName",
53
+ "type": "string"
54
+ },
55
+ {
56
+ "internalType": "enum MarketLib.MarketType",
57
+ "name": "marketType",
58
+ "type": "uint8"
59
+ }
60
+ ],
61
+ "name": "createMarket",
62
+ "outputs": [],
63
+ "stateMutability": "nonpayable",
64
+ "type": "function"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "uint32",
70
+ "name": "index",
71
+ "type": "uint32"
72
+ }
73
+ ],
74
+ "name": "destroyMarket",
75
+ "outputs": [],
76
+ "stateMutability": "nonpayable",
77
+ "type": "function"
78
+ },
79
+ {
80
+ "inputs": [],
81
+ "name": "getNumMarkets",
82
+ "outputs": [
83
+ {
84
+ "internalType": "uint256",
85
+ "name": "",
86
+ "type": "uint256"
87
+ }
88
+ ],
89
+ "stateMutability": "view",
90
+ "type": "function"
91
+ }
92
+ ],
93
+ "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"marketName\",\"type\":\"string\"}],\"name\":\"MarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_marketAddress\",\"type\":\"address\"}],\"name\":\"MarketDestroyed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"marketName\",\"type\":\"string\"},{\"internalType\":\"enum MarketLib.MarketType\",\"name\":\"marketType\",\"type\":\"uint8\"}],\"name\":\"createMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"destroyMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumMarkets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createMarket(string,uint8)\":{\"notice\":\"Creates a Market contract based on the market name and type. The market contract will generate and assign a unique id to the market.\"},\"destroyMarket(uint32)\":{\"notice\":\"Destroys a market.\"},\"getNumMarkets()\":{\"notice\":\"Returns the number of markets created.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/elijahhampton/git/opportunity-core/src/contracts/market/MarketFactory.sol\":\"MarketFactory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/elijahhampton/git/opportunity-core/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"/Users/elijahhampton/git/opportunity-core/node_modules/@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xa35b1f2a670cd2a701a52c398032c9fed72df1909fe394d77ceacbf074e8937b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72b957861691ebdaa78c52834465c4f8296480fe4f1a12ba72dc6c0c8ac076dd\",\"dweb:/ipfs/QmVz1sHCwgEivHPRDswdt9tdvky7EnWqFmbuk1wFE55VMG\"]},\"/Users/elijahhampton/git/opportunity-core/node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/control/Controllable.sol\":{\"keccak256\":\"0xc238d6026100e53a28c0c2b82ca5d48050abe245133189d1faf7463b995ac96a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c09cb3eda0dc03f8f3a7e7bffa997f94cdbff415d9d4645d77dcffa1b525e3c\",\"dweb:/ipfs/QmVAVPYGATZSC9f4FRY25LqSL3iaJTwU5bnkLvWMJWufFo\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/exchange/DaiEscrow.sol\":{\"keccak256\":\"0xc695d8a1c38b42986aede25ec3f2cba6785b50b6b749c39cce8c50abf94235a1\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://cc1565c285a127ec71c063dbc0f1e117c2f56445251bd7f215cc2bbea13449df\",\"dweb:/ipfs/QmNk24vy19x9hbxbdbPeD76MPGjqYTisAU9FXnX8wdbs5N\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/exchange/WorkExchange.sol\":{\"keccak256\":\"0xe279ad05b52712b9375fb8f0e78f6ece611077e1eb2032fd9d8801675faa8285\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ce980643b45731442380a56bcb03256b89039d406488bf9151c8c2d1da10d9a4\",\"dweb:/ipfs/QmXaykspUuov89kjfT1foDTN8CFuwZg1r2rQKvNBeKGLzP\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/exchange/WorkRelationship.sol\":{\"keccak256\":\"0xcff496c36fb2f7dccab9f586bd54323d3bb0a8ebc13043ee3b51fd7953da3f0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bde28393050ced1e8f9f379d2ffec76fb6d38895e8a7a4ee0c66e6f472b9357\",\"dweb:/ipfs/QmRyM1RLjy4TEbVH79uZMbKvFemEWLLGr7GViExHCVjf3K\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/libraries/Evaluation.sol\":{\"keccak256\":\"0xff423e5280de6eed302aa65b3ac47c959793c296f401b4d07b3124dcb7662bb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38fb2664c6cc71a436350e9c4be9ceb7092de5ea3577458054a1b565ccb0ced2\",\"dweb:/ipfs/Qmae2nZQYYUafXsm7NrBP5QeK95U64V9a1r231a8wN6uu5\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/libraries/MarketLib.sol\":{\"keccak256\":\"0x7e944e129858491254735d487535aaa1198b85f4ba614076850e783664ef7a30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67ed08794bdb6a3b9848ac2d3a965ecfabfe8849e273b897349a5693952b5a2a\",\"dweb:/ipfs/QmfMFmxcPUpf13ABjuhmaTvmLuenJU86F3HENtDFb5Jg8s\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/libraries/StringUtils.sol\":{\"keccak256\":\"0x24330c7ac45d1992491dbff11dd687ea7a7a21a44122277263a43b107021067d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c398376771df2c72107cc2064806c8366f6a869b0d04094e9e7288e73e3d0f1\",\"dweb:/ipfs/QmSkr6Bt7wNo18yW2CaxgSCse2XXnVP2FPWSbpUZpQiemv\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/libraries/User.sol\":{\"keccak256\":\"0x064c61f8f35fa7a1431a373e300980cf837339363ec810d7eea29239985414af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b26f56f048516c30b26d1e3c0dc3d70c1cf87ee652b488612263bb0b3a3c2e8\",\"dweb:/ipfs/QmexMQGdWmpcN1mvu9NUAjKXyjkJU3RxNphwtJqxdAuNcv\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/market/Market.sol\":{\"keccak256\":\"0xce411680993905edd1f37b6dae7505a73c75d248e0459208e20e8fe04ae46436\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3f437272a5656bb2077127f1f18b23e891a9a7b8650519c08f3679af880e397\",\"dweb:/ipfs/QmRpx6QbUWstX7K4QVMxsVER8dc9V3zyrgkb5bABWvQ8tm\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/market/MarketFactory.sol\":{\"keccak256\":\"0x0a861d91d4f9074837725ddf180119a6ebbf5affa20e286c85031fd8fbc26500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://575ce472bb2cbc1dc39f176690f8693099dd430a0f3f33fb007b35c6b1b72b00\",\"dweb:/ipfs/QmSKpjTrXY3QuLd2pbQFVf7U65nDXWyxzfqmC57z3E4xic\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/user/UserSummary.sol\":{\"keccak256\":\"0xdbedaa65e16795be877d3c1d4583616c112ed56c1cdb8ba7f25d4f78e6f4e053\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271b25db4cfb6dbbb28ad4e737b7daed46095647117cf4edf4f362feb3e23041\",\"dweb:/ipfs/Qme2j8PG7ioEiFTtJ9wumnJ72NqaQhQKRkuZMd3oKC7x2Z\"]},\"/Users/elijahhampton/git/opportunity-core/src/contracts/user/interface/IUserSummary.sol\":{\"keccak256\":\"0x5d2ef9cbae7fdf951d044a3084313e8aeb3d2883909ceddab743cc71c828d5b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62623602db15758dcefce9c880a485914a270967b688fcf55ccdff8856671de8\",\"dweb:/ipfs/QmZn3KoG23qA5vpgTMYCBN9RAkd7z2R6uWNtGyaQ7fLdgL\"]}},\"version\":1}",
94
+ "bytecode": "608060405234801561001057600080fd5b506134bb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063295c39a51461004657806394542cd61461005b578063c2ca748b14610070575b600080fd5b60005460405190815260200160405180910390f35b61006e6100693660046102b7565b610083565b005b61006e61007e3660046101f5565b61010c565b60008163ffffffff168154811061009c5761009c61039d565b6000918252602082200180546001600160a01b0319169055805463ffffffff83169081106100cc576100cc61039d565b60009182526020822001546040516001600160a01b03909116917f78d1ea5a863e0b3fe0212151f92d49b33ecb2161bea91f3f90a0b97955d0674291a250565b6000828260405161011c906101d4565b61012792919061035d565b604051809103906000f080158015610143573d6000803e3d6000fd5b50600080546001810182558180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b0384169081179091559054604051929350917f9a7b337ae3b401f60fe72d2f1d2a551465834d7d628737f20259c99ea0db9441906101c79033908890610331565b60405180910390a3505050565b6130bc806103ca83390190565b8035600281106101f057600080fd5b919050565b6000806040838503121561020857600080fd5b823567ffffffffffffffff8082111561022057600080fd5b818501915085601f83011261023457600080fd5b813581811115610246576102466103b3565b604051601f8201601f19908116603f0116810190838211818310171561026e5761026e6103b3565b8160405282815288602084870101111561028757600080fd5b8260208601602083013760006020848301015280965050505050506102ae602084016101e1565b90509250929050565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b9392505050565b6000815180845260005b8181101561030a576020818501810151868301820152016102ee565b8181111561031c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090610355908301846102e4565b949350505050565b60408152600061037060408301856102e4565b90506002831061039057634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe60806040523480156200001157600080fd5b50604051620030bc380380620030bc8339810160408190526200003491620001a7565b6200003f336200009c565b600180546001600160a81b0319163360ff60a01b191617905581516200006d906002906020850190620000ec565b506003805482919060ff1916600183818111156200008f576200008f620002d5565b0217905550505062000301565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620000fa9062000298565b90600052602060002090601f0160209004810192826200011e576000855562000169565b82601f106200013957805160ff191683800117855562000169565b8280016001018555821562000169579182015b82811115620001695782518255916020019190600101906200014c565b50620001779291506200017b565b5090565b5b808211156200017757600081556001016200017c565b805160028110620001a257600080fd5b919050565b60008060408385031215620001bb57600080fd5b82516001600160401b0380821115620001d357600080fd5b818501915085601f830112620001e857600080fd5b815181811115620001fd57620001fd620002eb565b604051601f8201601f19908116603f01168101908382118183101715620002285762000228620002eb565b816040528281526020935088848487010111156200024557600080fd5b600091505b828210156200026957848201840151818301850152908301906200024a565b828211156200027b5760008484830101525b95506200028d91505085820162000192565b925050509250929050565b600181811c90821680620002ad57607f821691505b60208210811415620002cf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612dab80620003116000396000f3fe60806040523480156200001157600080fd5b5060043610620001095760003560e01c8063838069f711620000a3578063a4f8ddee116200006e578063a4f8ddee14620001ec578063c143521f1462000203578063d8165743146200020d578063f2fde38b146200022057600080fd5b8063838069f714620001ae5780638da5cb5b14620001bc5780639319106b14620001d8578063a03738dc14620001e257600080fd5b80636039c8d711620000e45780636039c8d71462000163578063715018a6146200017c5780637cf63de914620001885780637e0c00ed14620001a557600080fd5b80630f091637146200010e57806336e114fc146200012b5780635c975abb1462000144575b600080fd5b6200011860045481565b6040519081526020015b60405180910390f35b6200013562000237565b604051620001229190620009e6565b600154600160a01b900460ff165b604051901515815260200162000122565b6200016d6200029b565b60405162000122919062000a4a565b6200018662000331565b005b600354620001969060ff1681565b60405162000122919062000a35565b60075462000118565b600654620001969060ff1681565b6000546040516001600160a01b03909116815260200162000122565b6200018662000375565b620001866200041b565b62000186620001fd36600462000843565b620004bd565b6200011860055481565b600154600160a01b900460ff1662000152565b62000186620002313660046200081e565b620005d7565b606060078054806020026020016040519081016040528092919081815260200182805480156200029157602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000272575b5050505050905090565b60028054620002aa9062000a94565b80601f0160208091040260200160405190810160405280929190818152602001828054620002d89062000a94565b8015620003295780601f10620002fd5761010080835404028352916020019162000329565b820191906000526020600020905b8154815290600101906020018083116200030b57829003601f168201915b505050505081565b6000546001600160a01b03163314620003675760405162461bcd60e51b81526004016200035e9062000a5f565b60405180910390fd5b62000373600062000679565b565b6000546001600160a01b03163314620003a25760405162461bcd60e51b81526004016200035e9062000a5f565b60015433906001600160a01b03168114620003bc57600080fd5b60035460ff166000816001811115620003d957620003d962000ad1565b14620003e457600080fd5b60065460ff16600081600181111562000401576200040162000ad1565b146200040c57600080fd5b62000416620006c9565b505050565b6000546001600160a01b03163314620004485760405162461bcd60e51b81526004016200035e9062000a5f565b60015433906001600160a01b031681146200046257600080fd5b60035460ff1660008160018111156200047f576200047f62000ad1565b146200048a57600080fd5b60065460ff166001816001811115620004a757620004a762000ad1565b1415620004b357600080fd5b6200041662000768565b846001600160a01b0381166200050c5760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b2103a30b9b59037bbb732b91760691b60448201526064016200035e565b600086868686866040516200052190620007f3565b6200053195949392919062000995565b604051809103906000f0801580156200054e573d6000803e3d6000fd5b506007805460018101825560009182527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0384811691821790925560405193945030939092918616917f43af47c504a2f23934b1a816cd86633559721bf26c3656844bdde3edd4719e1391a450505050505050565b6000546001600160a01b03163314620006045760405162461bcd60e51b81526004016200035e9062000a5f565b6001600160a01b0381166200066b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200035e565b620006768162000679565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600154600160a01b900460ff166200071b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016200035e565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600154600160a01b900460ff1615620007b75760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200035e565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200074b3390565b6122598062000b1d83390190565b80356001600160a01b03811681146200081957600080fd5b919050565b6000602082840312156200083157600080fd5b6200083c8262000801565b9392505050565b600080600080600060a086880312156200085c57600080fd5b620008678662000801565b94506020860135600281106200087c57600080fd5b9350604086013567ffffffffffffffff808211156200089a57600080fd5b818801915088601f830112620008af57600080fd5b813581811115620008c457620008c462000ae7565b604051601f8201601f19908116603f01168101908382118183101715620008ef57620008ef62000ae7565b816040528281528b60208487010111156200090957600080fd5b82602086016020830137600060208483010152809750505050505060608601359150620009396080870162000801565b90509295509295909350565b6000815180845260005b818110156200096d576020818501810151868301820152016200094f565b8181111562000980576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038681168252600090620009b08762000afd565b86602084015260a06040840152620009cc60a084018762000945565b606084019590955292909216608090910152509392505050565b6020808252825182820181905260009190848201906040850190845b8181101562000a295783516001600160a01b03168352928401929184019160010162000a02565b50909695505050505050565b6020810162000a448362000afd565b91905290565b6020815260006200083c602083018462000945565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168062000aa957607f821691505b6020821081141562000acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600281106200067657634e487b7160e01b600052602160045260246000fdfe60c06040819052600060a08190526200001b916002916200019c565b506000600355604051620022593803806200225983398101604081905262000043916200026d565b81620000a95760405162461bcd60e51b815260206004820152602b60248201527f4d7573742073656e64206d6f7265207468616e20302064616920746f2074686960448201526a399031b7b73a3930b1ba1760a91b606482015260840160405180910390fd5b600180546001600160a01b0387166001600160a01b031991821617825560008054909116905560058054869261ff001990911690610100908490811115620000f557620000f5620003d0565b021790555060048290556005805460ff1916905582516200011e9060029060208601906200019c565b506001546040516000916001600160a01b0316908490849062000141906200022b565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103906000f0801580156200017e573d6000803e3d6000fd5b5060601b6001600160601b03191660805250620003fc945050505050565b828054620001aa9062000393565b90600052602060002090601f016020900481019282620001ce576000855562000219565b82601f10620001e957805160ff191683800117855562000219565b8280016001018555821562000219579182015b8281111562000219578251825591602001919060010190620001fc565b506200022792915062000239565b5090565b610f6680620012f383390190565b5b808211156200022757600081556001016200023a565b80516001600160a01b03811681146200026857600080fd5b919050565b600080600080600060a086880312156200028657600080fd5b620002918662000250565b945060208087015160028110620002a757600080fd5b60408801519095506001600160401b0380821115620002c557600080fd5b818901915089601f830112620002da57600080fd5b815181811115620002ef57620002ef620003e6565b604051601f8201601f19908116603f011681019083821181831017156200031a576200031a620003e6565b816040528281528c868487010111156200033357600080fd5b600093505b8284101562000357578484018601518185018701529285019262000338565b82841115620003695760008684830101525b80985050505050505060608601519150620003876080870162000250565b90509295509295909350565b600181811c90821680620003a857607f821691505b60208210811415620003ca57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c610eb66200043d6000396000818160ff015281816102cc015281816104a001528181610671015281816106e601526108b80152610eb66000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a7f7dca911610097578063df502c6b11610066578063df502c6b14610208578063e6e885931461021d578063ec3a47901461022a578063f74cc7011461023d57600080fd5b8063a7f7dca9146101c5578063cb2ef6f7146101ce578063d8a845cf146101ed578063dabd57a5146101f557600080fd5b80635db28c66116100d35780635db28c66146101665780638da5cb5b1461017c57806396d6d6961461018f5780639aed0c17146101b257600080fd5b80630f032a3f146100fa5780634d547ada1461013e5780635cdcf07514610151575b600080fd5b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b600054610121906001600160a01b031681565b61016461015f366004610a5e565b610250565b005b61016e61032b565b604051908152602001610135565b600154610121906001600160a01b031681565b6101a261019d366004610aae565b610389565b6040519015158152602001610135565b6101646101c0366004610bbb565b610412565b61016e60045481565b6005546101e090610100900460ff1681565b6040516101359190610c63565b61016461050d565b610164610203366004610a82565b61058e565b610210610759565b6040516101359190610c76565b6005546101e09060ff1681565b610164610238366004610be1565b6107e7565b61016461024b366004610b77565b610860565b6000546001600160a01b031633146102835760405162461bcd60e51b815260040161027a90610d3c565b60405180910390fd5b6001546001600160a01b031633146102ad5760405162461bcd60e51b815260040161027a90610c89565b604051632ed9c42160e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635db3884290602401600060405180830381600087803b15801561031057600080fd5b505af1158015610324573d6000803e3d6000fd5b5050505050565b6001546000906001600160a01b031633146103585760405162461bcd60e51b815260040161027a90610c89565b6000546001600160a01b031633146103825760405162461bcd60e51b815260040161027a90610d3c565b5060035490565b600080836001600160a01b0316635d5f221f846040518263ffffffff1660e01b81526004016103b89190610d86565b602060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040a9190610b5a565b949350505050565b6000546001600160a01b0316331461043c5760405162461bcd60e51b815260040161027a90610d3c565b60018060055460ff16600181111561045657610456610e13565b146104735760405162461bcd60e51b815260040161027a90610cd2565b6040516353318a8760e01b81526004810186905260ff8516602482015260448101849052606481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906353318a8790608401600060405180830381600087803b1580156104ec57600080fd5b505af1158015610500573d6000803e3d6000fd5b5050505061032485600355565b6000546001600160a01b031633146105375760405162461bcd60e51b815260040161027a90610d3c565b60018060055460ff16600181111561055157610551610e13565b1461056e5760405162461bcd60e51b815260040161027a90610cd2565b600080546001600160a01b03191690556005805460ff1916905550565b50565b6001546001600160a01b031633146105b85760405162461bcd60e51b815260040161027a90610c89565b6001600160a01b0382166106345760405162461bcd60e51b815260206004820152603760248201527f576f726b65722061646472657373206d757374206e6f7420626520302077686560448201527f6e2061737369676e696e67206e657720776f726b65722e000000000000000000606482015260840161027a565b600080546001600160a01b0319166001600160a01b0384811691821790925560405163089f591560e21b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063227d645490604401600060405180830381600087803b1580156106b757600080fd5b505af11580156106cb573d6000803e3d6000fd5b50506005805460ff1916600117905550506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661071257610712610dfd565b6000546001600160a01b0383811691161461072f5761072f610dfd565b600160055460ff16600181111561074857610748610e13565b1461075557610755610dfd565b5050565b6002805461076690610dc2565b80601f016020809104026020016040519081016040528092919081815260200182805461079290610dc2565b80156107df5780601f106107b4576101008083540402835291602001916107df565b820191906000526020600020905b8154815290600101906020018083116107c257829003601f168201915b505050505081565b6001546001600160a01b031633146108115760405162461bcd60e51b815260040161027a90610c89565b60008060055460ff16600181111561082b5761082b610e13565b146108485760405162461bcd60e51b815260040161027a90610cd2565b815161085b906002906020850190610922565b505050565b6001546001600160a01b0316331461088a5760405162461bcd60e51b815260040161027a90610c89565b6040516325b0db0f60e01b8152841515600482015260ff8416602482015260448101839052606481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906325b0db0f90608401600060405180830381600087803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b5050505050505050565b82805461092e90610dc2565b90600052602060002090601f0160209004810192826109505760008555610996565b82601f1061096957805160ff1916838001178555610996565b82800160010185558215610996579182015b8281111561099657825182559160200191906001019061097b565b506109a29291506109a6565b5090565b5b808211156109a257600081556001016109a7565b600082601f8301126109cc57600080fd5b813567ffffffffffffffff808211156109e7576109e7610e29565b604051601f8301601f19908116603f01168101908282118183101715610a0f57610a0f610e29565b81604052838152866020858801011115610a2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff81168114610a5957600080fd5b919050565b600060208284031215610a7057600080fd5b8135610a7b81610e5d565b9392505050565b60008060408385031215610a9557600080fd5b8235610aa081610e5d565b946020939093013593505050565b60008060408385031215610ac157600080fd5b8235610acc81610e5d565b9150602083013567ffffffffffffffff80821115610ae957600080fd5b9084019060608287031215610afd57600080fd5b604051606081018181108382111715610b1857610b18610e29565b604052823582811115610b2a57600080fd5b610b36888286016109bb565b82525060208301356020820152604083013560408201528093505050509250929050565b600060208284031215610b6c57600080fd5b8151610a7b81610e72565b60008060008060808587031215610b8d57600080fd5b8435610b9881610e72565b9350610ba660208601610a48565b93969395505050506040820135916060013590565b60008060008060808587031215610bd157600080fd5b84359350610ba660208601610a48565b600060208284031215610bf357600080fd5b813567ffffffffffffffff811115610c0a57600080fd5b61040a848285016109bb565b6000815180845260005b81811015610c3c57602081850181015186830182015201610c20565b81811115610c4e576000602083870101525b50601f01601f19169290920160200192915050565b60208101610c7083610e3f565b91905290565b602081526000610a7b6020830184610c16565b60208082526029908201527f576f726b52656c6174696f6e736869703a2063616c6c6572206973206e6f74206040820152683a34329037bbb732b960b91b606082015260800190565b60208082526044908201527f5468697320616374696f6e2063616e6e6f742062652063617272696564206f7560408201527f7420756e646572207468652063757272656e7420636f6e7472616374207374616060820152633a3ab99760e11b608082015260a00190565b6020808252602a908201527f576f726b52656c6174696f6e736869703a2063616c6c6572206973206e6f74206040820152693a3432903bb7b935b2b960b11b606082015260800190565b602081526000825160606020840152610da26080840182610c16565b905060208401516040840152604084015160608401528091505092915050565b600181811c90821680610dd657607f821691505b60208210811415610df757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6002811061058b57634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461058b57600080fd5b801515811461058b57600080fdfea2646970667358221220b2e2031a13e77b4d15854628c2f6055718a81195fe4ef033fcca27d5d5baea8e64736f6c6343000807003360e060405234801561001057600080fd5b50604051610f66380380610f6683398101604081905261002f9161026a565b8282826001600160a01b0383166100a95760405162461bcd60e51b815260206004820152603360248201527f4465706f7369746f7220616464726573732063616e6e6f74206265203020776860448201527232b71031b932b0ba34b7339032b9b1b937bb9760691b60648201526084015b60405180910390fd5b6001600160a01b03811661011b5760405162461bcd60e51b815260206004820152603360248201527f44616920746f6b656e20616464726573732063616e6e6f74206265203020776860448201527232b71031b932b0ba34b7339032b9b1b937bb9760691b60648201526084016100a0565b604080518082018252600a81526944616920457363726f7760b01b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f0bdbe35568d399a0401d60d11c76785045fec8c775dcb34589d4a0b9d540700d918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660ff811660808301523060a08301529060c00160408051601f198184030181529190528051602090910120608052506001600160601b031960609390931b9290921660a05260c0526002805461010061ff00196001600160a01b0394909416620100000293909316610100600160b01b031990911617919091179055506102a6915050565b80516001600160a01b038116811461026557600080fd5b919050565b60008060006060848603121561027f57600080fd5b6102888461024e565b92506020840151915061029d6040850161024e565b90509250925092565b60805160a05160601c60c051610c56610310600039600081816101f20152610710015260008181610297015281816103ca01528181610667015281816106e801528181610797015261083101526000818161025e015281816104cf01526105cf0152610c566000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80637df38c5b11610097578063bfce14ea11610066578063bfce14ea14610259578063c19d93fb14610280578063c7c4ff4614610292578063d8a43107146102b957600080fd5b80637df38c5b146101ed57806396118e4414610214578063b01dcb311461023b578063bad453cf1461024657600080fd5b80633c86f6f3116100d35780633c86f6f31461017b57806353318a87146101b05780635db38842146101c357806360d98201146101d457600080fd5b8063200d2ed214610105578063227d64541461012857806325b0db0f1461013d57806338af3eed14610150575b600080fd5b6002546101129060ff1681565b60405161011f9190610b51565b60405180910390f35b61013b6101363660046109f3565b6102d9565b005b61013b61014b366004610a1f565b6103c8565b600054610163906001600160a01b031681565b6040516001600160a01b03909116815260200161011f565b6101a27ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae81565b60405190815260200161011f565b61013b6101be366004610a68565b610542565b61013b6101d13660046109cf565b50565b600254610100900460ff165b60405161011f9190610b37565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6101a27f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e81565b60025460ff16610112565b61013b610254366004610aa7565b61063a565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6002546101e090610100900460ff1681565b6101637f000000000000000000000000000000000000000000000000000000000000000081565b6101a26102c73660046109cf565b60016020526000908152604090205481565b60008060025460ff1660038111156102f3576102f3610bf5565b146103195760405162461bcd60e51b815260040161031090610b65565b60405180910390fd5b6001600160a01b0383166103955760405162461bcd60e51b815260206004820152603f60248201527f42656e65666963696172792063616e6e6f74206265203078206164647265737360448201527f207768656e2061737369676e696e67206e65772062656e6566696369617279006064820152608401610310565b600080546001600160a01b0319166001600160a01b038516179055600280546001919060ff191682800217905550505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104405760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e206f6e6c79207265736f6c766520636f6e74726163742e6044820152606401610310565b60028060025460ff16600381111561045a5761045a610bf5565b146104775760405162461bcd60e51b815260040161031090610b65565b604080517ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae602080830191909152871580158385015283518084038501815260608401855280519083012061190160f01b60808501527f0000000000000000000000000000000000000000000000000000000000000000608285015260a2808501919091528451808503909101815260c29093019093528151910120906105255761052061082f565b61053a565b600280546001919060ff191682805b02179055505b505050505050565b60018060025460ff16600381111561055c5761055c610bf5565b146105795760405162461bcd60e51b815260040161031090610b65565b604080517f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e60208083019190915281830188905282518083038401815260608301845280519082012061190160f01b60808401527f0000000000000000000000000000000000000000000000000000000000000000608284015260a2808401919091528351808403909101815260c290920190925280519101206000546001600160a01b031661062857600080fd5b60028054819060ff1916600182610534565b6002546040516323f2ebc360e21b8152620100009091046001600160a01b031690638fcbaf0c9061069e907f00000000000000000000000000000000000000000000000000000000000000009030908a908a906001908b908b908b90600401610aee565b600060405180830381600087803b1580156106b857600080fd5b505af11580156106cc573d6000803e3d6000fd5b505060025460405163f2d5d56b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000602483015262010000909204909116925063f2d5d56b9150604401600060405180830381600087803b15801561076457600080fd5b505af1158015610778573d6000803e3d6000fd5b50506002546201000090046001600160a01b03169150638fcbaf0c90507f0000000000000000000000000000000000000000000000000000000000000000306107c2896001610bcf565b8860008989896040518963ffffffff1660e01b81526004016107eb989796959493929190610aee565b600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b50506002805461ffff1916905550505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146108a75760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e206f6e6c79207265736f6c766520636f6e74726163742e6044820152606401610310565b6000546001600160a01b03166108bc57600080fd5b6002546000546040516370a0823160e01b81523060048201526001600160a01b036201000090930483169263b753a98c92169083906370a082319060240160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190610a8e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b50506002805461ffff19166102031790555050565b803560ff811681146109ca57600080fd5b919050565b6000602082840312156109e157600080fd5b81356109ec81610c0b565b9392505050565b60008060408385031215610a0657600080fd5b8235610a1181610c0b565b946020939093013593505050565b60008060008060808587031215610a3557600080fd5b84358015158114610a4557600080fd5b9350610a53602086016109b9565b93969395505050506040820135916060013590565b60008060008060808587031215610a7e57600080fd5b84359350610a53602086016109b9565b600060208284031215610aa057600080fd5b5051919050565b600080600080600060a08688031215610abf57600080fd5b8535945060208601359350610ad6604087016109b9565b94979396509394606081013594506080013592915050565b6001600160a01b039889168152969097166020870152604086019490945260608501929092521515608084015260ff1660a083015260c082015260e08101919091526101000190565b6020810160038310610b4b57610b4b610bf5565b91905290565b6020810160048310610b4b57610b4b610bf5565b60208082526044908201527f43616e6e6f7420696e766f6b65207468697320657363726f772066756e63746960408201527f6f6e2077697468207468652063757272656e7420636f6e7472616374207374616060820152633a3ab99760e11b608082015260a00190565b60008219821115610bf057634e487b7160e01b600052601160045260246000fd5b500190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146101d157600080fdfea26469706673582212202dc66b1a9385167e89267cb825ab637c24b0528266bf6b07206e97268ee4212364736f6c63430008070033a2646970667358221220b5d0547f2cc6d5e1b836ad609e581a391e82bd1a8965b142750f01c3ee34540c64736f6c63430008070033a2646970667358221220886966baee02738677b34d84a9105b22e706ee5d6fdaec7b21e709b891f0692164736f6c63430008070033",
95
+ "deployedBytecode": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063295c39a51461004657806394542cd61461005b578063c2ca748b14610070575b600080fd5b60005460405190815260200160405180910390f35b61006e6100693660046102b7565b610083565b005b61006e61007e3660046101f5565b61010c565b60008163ffffffff168154811061009c5761009c61039d565b6000918252602082200180546001600160a01b0319169055805463ffffffff83169081106100cc576100cc61039d565b60009182526020822001546040516001600160a01b03909116917f78d1ea5a863e0b3fe0212151f92d49b33ecb2161bea91f3f90a0b97955d0674291a250565b6000828260405161011c906101d4565b61012792919061035d565b604051809103906000f080158015610143573d6000803e3d6000fd5b50600080546001810182558180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b0384169081179091559054604051929350917f9a7b337ae3b401f60fe72d2f1d2a551465834d7d628737f20259c99ea0db9441906101c79033908890610331565b60405180910390a3505050565b6130bc806103ca83390190565b8035600281106101f057600080fd5b919050565b6000806040838503121561020857600080fd5b823567ffffffffffffffff8082111561022057600080fd5b818501915085601f83011261023457600080fd5b813581811115610246576102466103b3565b604051601f8201601f19908116603f0116810190838211818310171561026e5761026e6103b3565b8160405282815288602084870101111561028757600080fd5b8260208601602083013760006020848301015280965050505050506102ae602084016101e1565b90509250929050565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b9392505050565b6000815180845260005b8181101561030a576020818501810151868301820152016102ee565b8181111561031c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090610355908301846102e4565b949350505050565b60408152600061037060408301856102e4565b90506002831061039057634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe60806040523480156200001157600080fd5b50604051620030bc380380620030bc8339810160408190526200003491620001a7565b6200003f336200009c565b600180546001600160a81b0319163360ff60a01b191617905581516200006d906002906020850190620000ec565b506003805482919060ff1916600183818111156200008f576200008f620002d5565b0217905550505062000301565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620000fa9062000298565b90600052602060002090601f0160209004810192826200011e576000855562000169565b82601f106200013957805160ff191683800117855562000169565b8280016001018555821562000169579182015b82811115620001695782518255916020019190600101906200014c565b50620001779291506200017b565b5090565b5b808211156200017757600081556001016200017c565b805160028110620001a257600080fd5b919050565b60008060408385031215620001bb57600080fd5b82516001600160401b0380821115620001d357600080fd5b818501915085601f830112620001e857600080fd5b815181811115620001fd57620001fd620002eb565b604051601f8201601f19908116603f01168101908382118183101715620002285762000228620002eb565b816040528281526020935088848487010111156200024557600080fd5b600091505b828210156200026957848201840151818301850152908301906200024a565b828211156200027b5760008484830101525b95506200028d91505085820162000192565b925050509250929050565b600181811c90821680620002ad57607f821691505b60208210811415620002cf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612dab80620003116000396000f3fe60806040523480156200001157600080fd5b5060043610620001095760003560e01c8063838069f711620000a3578063a4f8ddee116200006e578063a4f8ddee14620001ec578063c143521f1462000203578063d8165743146200020d578063f2fde38b146200022057600080fd5b8063838069f714620001ae5780638da5cb5b14620001bc5780639319106b14620001d8578063a03738dc14620001e257600080fd5b80636039c8d711620000e45780636039c8d71462000163578063715018a6146200017c5780637cf63de914620001885780637e0c00ed14620001a557600080fd5b80630f091637146200010e57806336e114fc146200012b5780635c975abb1462000144575b600080fd5b6200011860045481565b6040519081526020015b60405180910390f35b6200013562000237565b604051620001229190620009e6565b600154600160a01b900460ff165b604051901515815260200162000122565b6200016d6200029b565b60405162000122919062000a4a565b6200018662000331565b005b600354620001969060ff1681565b60405162000122919062000a35565b60075462000118565b600654620001969060ff1681565b6000546040516001600160a01b03909116815260200162000122565b6200018662000375565b620001866200041b565b62000186620001fd36600462000843565b620004bd565b6200011860055481565b600154600160a01b900460ff1662000152565b62000186620002313660046200081e565b620005d7565b606060078054806020026020016040519081016040528092919081815260200182805480156200029157602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000272575b5050505050905090565b60028054620002aa9062000a94565b80601f0160208091040260200160405190810160405280929190818152602001828054620002d89062000a94565b8015620003295780601f10620002fd5761010080835404028352916020019162000329565b820191906000526020600020905b8154815290600101906020018083116200030b57829003601f168201915b505050505081565b6000546001600160a01b03163314620003675760405162461bcd60e51b81526004016200035e9062000a5f565b60405180910390fd5b62000373600062000679565b565b6000546001600160a01b03163314620003a25760405162461bcd60e51b81526004016200035e9062000a5f565b60015433906001600160a01b03168114620003bc57600080fd5b60035460ff166000816001811115620003d957620003d962000ad1565b14620003e457600080fd5b60065460ff16600081600181111562000401576200040162000ad1565b146200040c57600080fd5b62000416620006c9565b505050565b6000546001600160a01b03163314620004485760405162461bcd60e51b81526004016200035e9062000a5f565b60015433906001600160a01b031681146200046257600080fd5b60035460ff1660008160018111156200047f576200047f62000ad1565b146200048a57600080fd5b60065460ff166001816001811115620004a757620004a762000ad1565b1415620004b357600080fd5b6200041662000768565b846001600160a01b0381166200050c5760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b2103a30b9b59037bbb732b91760691b60448201526064016200035e565b600086868686866040516200052190620007f3565b6200053195949392919062000995565b604051809103906000f0801580156200054e573d6000803e3d6000fd5b506007805460018101825560009182527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0384811691821790925560405193945030939092918616917f43af47c504a2f23934b1a816cd86633559721bf26c3656844bdde3edd4719e1391a450505050505050565b6000546001600160a01b03163314620006045760405162461bcd60e51b81526004016200035e9062000a5f565b6001600160a01b0381166200066b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200035e565b620006768162000679565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600154600160a01b900460ff166200071b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016200035e565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600154600160a01b900460ff1615620007b75760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200035e565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200074b3390565b6122598062000b1d83390190565b80356001600160a01b03811681146200081957600080fd5b919050565b6000602082840312156200083157600080fd5b6200083c8262000801565b9392505050565b600080600080600060a086880312156200085c57600080fd5b620008678662000801565b94506020860135600281106200087c57600080fd5b9350604086013567ffffffffffffffff808211156200089a57600080fd5b818801915088601f830112620008af57600080fd5b813581811115620008c457620008c462000ae7565b604051601f8201601f19908116603f01168101908382118183101715620008ef57620008ef62000ae7565b816040528281528b60208487010111156200090957600080fd5b82602086016020830137600060208483010152809750505050505060608601359150620009396080870162000801565b90509295509295909350565b6000815180845260005b818110156200096d576020818501810151868301820152016200094f565b8181111562000980576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038681168252600090620009b08762000afd565b86602084015260a06040840152620009cc60a084018762000945565b606084019590955292909216608090910152509392505050565b6020808252825182820181905260009190848201906040850190845b8181101562000a295783516001600160a01b03168352928401929184019160010162000a02565b50909695505050505050565b6020810162000a448362000afd565b91905290565b6020815260006200083c602083018462000945565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168062000aa957607f821691505b6020821081141562000acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600281106200067657634e487b7160e01b600052602160045260246000fdfe60c06040819052600060a08190526200001b916002916200019c565b506000600355604051620022593803806200225983398101604081905262000043916200026d565b81620000a95760405162461bcd60e51b815260206004820152602b60248201527f4d7573742073656e64206d6f7265207468616e20302064616920746f2074686960448201526a399031b7b73a3930b1ba1760a91b606482015260840160405180910390fd5b600180546001600160a01b0387166001600160a01b031991821617825560008054909116905560058054869261ff001990911690610100908490811115620000f557620000f5620003d0565b021790555060048290556005805460ff1916905582516200011e9060029060208601906200019c565b506001546040516000916001600160a01b0316908490849062000141906200022b565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103906000f0801580156200017e573d6000803e3d6000fd5b5060601b6001600160601b03191660805250620003fc945050505050565b828054620001aa9062000393565b90600052602060002090601f016020900481019282620001ce576000855562000219565b82601f10620001e957805160ff191683800117855562000219565b8280016001018555821562000219579182015b8281111562000219578251825591602001919060010190620001fc565b506200022792915062000239565b5090565b610f6680620012f383390190565b5b808211156200022757600081556001016200023a565b80516001600160a01b03811681146200026857600080fd5b919050565b600080600080600060a086880312156200028657600080fd5b620002918662000250565b945060208087015160028110620002a757600080fd5b60408801519095506001600160401b0380821115620002c557600080fd5b818901915089601f830112620002da57600080fd5b815181811115620002ef57620002ef620003e6565b604051601f8201601f19908116603f011681019083821181831017156200031a576200031a620003e6565b816040528281528c868487010111156200033357600080fd5b600093505b8284101562000357578484018601518185018701529285019262000338565b82841115620003695760008684830101525b80985050505050505060608601519150620003876080870162000250565b90509295509295909350565b600181811c90821680620003a857607f821691505b60208210811415620003ca57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c610eb66200043d6000396000818160ff015281816102cc015281816104a001528181610671015281816106e601526108b80152610eb66000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a7f7dca911610097578063df502c6b11610066578063df502c6b14610208578063e6e885931461021d578063ec3a47901461022a578063f74cc7011461023d57600080fd5b8063a7f7dca9146101c5578063cb2ef6f7146101ce578063d8a845cf146101ed578063dabd57a5146101f557600080fd5b80635db28c66116100d35780635db28c66146101665780638da5cb5b1461017c57806396d6d6961461018f5780639aed0c17146101b257600080fd5b80630f032a3f146100fa5780634d547ada1461013e5780635cdcf07514610151575b600080fd5b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b600054610121906001600160a01b031681565b61016461015f366004610a5e565b610250565b005b61016e61032b565b604051908152602001610135565b600154610121906001600160a01b031681565b6101a261019d366004610aae565b610389565b6040519015158152602001610135565b6101646101c0366004610bbb565b610412565b61016e60045481565b6005546101e090610100900460ff1681565b6040516101359190610c63565b61016461050d565b610164610203366004610a82565b61058e565b610210610759565b6040516101359190610c76565b6005546101e09060ff1681565b610164610238366004610be1565b6107e7565b61016461024b366004610b77565b610860565b6000546001600160a01b031633146102835760405162461bcd60e51b815260040161027a90610d3c565b60405180910390fd5b6001546001600160a01b031633146102ad5760405162461bcd60e51b815260040161027a90610c89565b604051632ed9c42160e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635db3884290602401600060405180830381600087803b15801561031057600080fd5b505af1158015610324573d6000803e3d6000fd5b5050505050565b6001546000906001600160a01b031633146103585760405162461bcd60e51b815260040161027a90610c89565b6000546001600160a01b031633146103825760405162461bcd60e51b815260040161027a90610d3c565b5060035490565b600080836001600160a01b0316635d5f221f846040518263ffffffff1660e01b81526004016103b89190610d86565b602060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040a9190610b5a565b949350505050565b6000546001600160a01b0316331461043c5760405162461bcd60e51b815260040161027a90610d3c565b60018060055460ff16600181111561045657610456610e13565b146104735760405162461bcd60e51b815260040161027a90610cd2565b6040516353318a8760e01b81526004810186905260ff8516602482015260448101849052606481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906353318a8790608401600060405180830381600087803b1580156104ec57600080fd5b505af1158015610500573d6000803e3d6000fd5b5050505061032485600355565b6000546001600160a01b031633146105375760405162461bcd60e51b815260040161027a90610d3c565b60018060055460ff16600181111561055157610551610e13565b1461056e5760405162461bcd60e51b815260040161027a90610cd2565b600080546001600160a01b03191690556005805460ff1916905550565b50565b6001546001600160a01b031633146105b85760405162461bcd60e51b815260040161027a90610c89565b6001600160a01b0382166106345760405162461bcd60e51b815260206004820152603760248201527f576f726b65722061646472657373206d757374206e6f7420626520302077686560448201527f6e2061737369676e696e67206e657720776f726b65722e000000000000000000606482015260840161027a565b600080546001600160a01b0319166001600160a01b0384811691821790925560405163089f591560e21b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063227d645490604401600060405180830381600087803b1580156106b757600080fd5b505af11580156106cb573d6000803e3d6000fd5b50506005805460ff1916600117905550506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661071257610712610dfd565b6000546001600160a01b0383811691161461072f5761072f610dfd565b600160055460ff16600181111561074857610748610e13565b1461075557610755610dfd565b5050565b6002805461076690610dc2565b80601f016020809104026020016040519081016040528092919081815260200182805461079290610dc2565b80156107df5780601f106107b4576101008083540402835291602001916107df565b820191906000526020600020905b8154815290600101906020018083116107c257829003601f168201915b505050505081565b6001546001600160a01b031633146108115760405162461bcd60e51b815260040161027a90610c89565b60008060055460ff16600181111561082b5761082b610e13565b146108485760405162461bcd60e51b815260040161027a90610cd2565b815161085b906002906020850190610922565b505050565b6001546001600160a01b0316331461088a5760405162461bcd60e51b815260040161027a90610c89565b6040516325b0db0f60e01b8152841515600482015260ff8416602482015260448101839052606481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906325b0db0f90608401600060405180830381600087803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b5050505050505050565b82805461092e90610dc2565b90600052602060002090601f0160209004810192826109505760008555610996565b82601f1061096957805160ff1916838001178555610996565b82800160010185558215610996579182015b8281111561099657825182559160200191906001019061097b565b506109a29291506109a6565b5090565b5b808211156109a257600081556001016109a7565b600082601f8301126109cc57600080fd5b813567ffffffffffffffff808211156109e7576109e7610e29565b604051601f8301601f19908116603f01168101908282118183101715610a0f57610a0f610e29565b81604052838152866020858801011115610a2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff81168114610a5957600080fd5b919050565b600060208284031215610a7057600080fd5b8135610a7b81610e5d565b9392505050565b60008060408385031215610a9557600080fd5b8235610aa081610e5d565b946020939093013593505050565b60008060408385031215610ac157600080fd5b8235610acc81610e5d565b9150602083013567ffffffffffffffff80821115610ae957600080fd5b9084019060608287031215610afd57600080fd5b604051606081018181108382111715610b1857610b18610e29565b604052823582811115610b2a57600080fd5b610b36888286016109bb565b82525060208301356020820152604083013560408201528093505050509250929050565b600060208284031215610b6c57600080fd5b8151610a7b81610e72565b60008060008060808587031215610b8d57600080fd5b8435610b9881610e72565b9350610ba660208601610a48565b93969395505050506040820135916060013590565b60008060008060808587031215610bd157600080fd5b84359350610ba660208601610a48565b600060208284031215610bf357600080fd5b813567ffffffffffffffff811115610c0a57600080fd5b61040a848285016109bb565b6000815180845260005b81811015610c3c57602081850181015186830182015201610c20565b81811115610c4e576000602083870101525b50601f01601f19169290920160200192915050565b60208101610c7083610e3f565b91905290565b602081526000610a7b6020830184610c16565b60208082526029908201527f576f726b52656c6174696f6e736869703a2063616c6c6572206973206e6f74206040820152683a34329037bbb732b960b91b606082015260800190565b60208082526044908201527f5468697320616374696f6e2063616e6e6f742062652063617272696564206f7560408201527f7420756e646572207468652063757272656e7420636f6e7472616374207374616060820152633a3ab99760e11b608082015260a00190565b6020808252602a908201527f576f726b52656c6174696f6e736869703a2063616c6c6572206973206e6f74206040820152693a3432903bb7b935b2b960b11b606082015260800190565b602081526000825160606020840152610da26080840182610c16565b905060208401516040840152604084015160608401528091505092915050565b600181811c90821680610dd657607f821691505b60208210811415610df757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6002811061058b57634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461058b57600080fd5b801515811461058b57600080fdfea2646970667358221220b2e2031a13e77b4d15854628c2f6055718a81195fe4ef033fcca27d5d5baea8e64736f6c6343000807003360e060405234801561001057600080fd5b50604051610f66380380610f6683398101604081905261002f9161026a565b8282826001600160a01b0383166100a95760405162461bcd60e51b815260206004820152603360248201527f4465706f7369746f7220616464726573732063616e6e6f74206265203020776860448201527232b71031b932b0ba34b7339032b9b1b937bb9760691b60648201526084015b60405180910390fd5b6001600160a01b03811661011b5760405162461bcd60e51b815260206004820152603360248201527f44616920746f6b656e20616464726573732063616e6e6f74206265203020776860448201527232b71031b932b0ba34b7339032b9b1b937bb9760691b60648201526084016100a0565b604080518082018252600a81526944616920457363726f7760b01b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f0bdbe35568d399a0401d60d11c76785045fec8c775dcb34589d4a0b9d540700d918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660ff811660808301523060a08301529060c00160408051601f198184030181529190528051602090910120608052506001600160601b031960609390931b9290921660a05260c0526002805461010061ff00196001600160a01b0394909416620100000293909316610100600160b01b031990911617919091179055506102a6915050565b80516001600160a01b038116811461026557600080fd5b919050565b60008060006060848603121561027f57600080fd5b6102888461024e565b92506020840151915061029d6040850161024e565b90509250925092565b60805160a05160601c60c051610c56610310600039600081816101f20152610710015260008181610297015281816103ca01528181610667015281816106e801528181610797015261083101526000818161025e015281816104cf01526105cf0152610c566000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80637df38c5b11610097578063bfce14ea11610066578063bfce14ea14610259578063c19d93fb14610280578063c7c4ff4614610292578063d8a43107146102b957600080fd5b80637df38c5b146101ed57806396118e4414610214578063b01dcb311461023b578063bad453cf1461024657600080fd5b80633c86f6f3116100d35780633c86f6f31461017b57806353318a87146101b05780635db38842146101c357806360d98201146101d457600080fd5b8063200d2ed214610105578063227d64541461012857806325b0db0f1461013d57806338af3eed14610150575b600080fd5b6002546101129060ff1681565b60405161011f9190610b51565b60405180910390f35b61013b6101363660046109f3565b6102d9565b005b61013b61014b366004610a1f565b6103c8565b600054610163906001600160a01b031681565b6040516001600160a01b03909116815260200161011f565b6101a27ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae81565b60405190815260200161011f565b61013b6101be366004610a68565b610542565b61013b6101d13660046109cf565b50565b600254610100900460ff165b60405161011f9190610b37565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6101a27f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e81565b60025460ff16610112565b61013b610254366004610aa7565b61063a565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6002546101e090610100900460ff1681565b6101637f000000000000000000000000000000000000000000000000000000000000000081565b6101a26102c73660046109cf565b60016020526000908152604090205481565b60008060025460ff1660038111156102f3576102f3610bf5565b146103195760405162461bcd60e51b815260040161031090610b65565b60405180910390fd5b6001600160a01b0383166103955760405162461bcd60e51b815260206004820152603f60248201527f42656e65666963696172792063616e6e6f74206265203078206164647265737360448201527f207768656e2061737369676e696e67206e65772062656e6566696369617279006064820152608401610310565b600080546001600160a01b0319166001600160a01b038516179055600280546001919060ff191682800217905550505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104405760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e206f6e6c79207265736f6c766520636f6e74726163742e6044820152606401610310565b60028060025460ff16600381111561045a5761045a610bf5565b146104775760405162461bcd60e51b815260040161031090610b65565b604080517ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae602080830191909152871580158385015283518084038501815260608401855280519083012061190160f01b60808501527f0000000000000000000000000000000000000000000000000000000000000000608285015260a2808501919091528451808503909101815260c29093019093528151910120906105255761052061082f565b61053a565b600280546001919060ff191682805b02179055505b505050505050565b60018060025460ff16600381111561055c5761055c610bf5565b146105795760405162461bcd60e51b815260040161031090610b65565b604080517f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e60208083019190915281830188905282518083038401815260608301845280519082012061190160f01b60808401527f0000000000000000000000000000000000000000000000000000000000000000608284015260a2808401919091528351808403909101815260c290920190925280519101206000546001600160a01b031661062857600080fd5b60028054819060ff1916600182610534565b6002546040516323f2ebc360e21b8152620100009091046001600160a01b031690638fcbaf0c9061069e907f00000000000000000000000000000000000000000000000000000000000000009030908a908a906001908b908b908b90600401610aee565b600060405180830381600087803b1580156106b857600080fd5b505af11580156106cc573d6000803e3d6000fd5b505060025460405163f2d5d56b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000602483015262010000909204909116925063f2d5d56b9150604401600060405180830381600087803b15801561076457600080fd5b505af1158015610778573d6000803e3d6000fd5b50506002546201000090046001600160a01b03169150638fcbaf0c90507f0000000000000000000000000000000000000000000000000000000000000000306107c2896001610bcf565b8860008989896040518963ffffffff1660e01b81526004016107eb989796959493929190610aee565b600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b50506002805461ffff1916905550505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146108a75760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e206f6e6c79207265736f6c766520636f6e74726163742e6044820152606401610310565b6000546001600160a01b03166108bc57600080fd5b6002546000546040516370a0823160e01b81523060048201526001600160a01b036201000090930483169263b753a98c92169083906370a082319060240160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190610a8e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b50506002805461ffff19166102031790555050565b803560ff811681146109ca57600080fd5b919050565b6000602082840312156109e157600080fd5b81356109ec81610c0b565b9392505050565b60008060408385031215610a0657600080fd5b8235610a1181610c0b565b946020939093013593505050565b60008060008060808587031215610a3557600080fd5b84358015158114610a4557600080fd5b9350610a53602086016109b9565b93969395505050506040820135916060013590565b60008060008060808587031215610a7e57600080fd5b84359350610a53602086016109b9565b600060208284031215610aa057600080fd5b5051919050565b600080600080600060a08688031215610abf57600080fd5b8535945060208601359350610ad6604087016109b9565b94979396509394606081013594506080013592915050565b6001600160a01b039889168152969097166020870152604086019490945260608501929092521515608084015260ff1660a083015260c082015260e08101919091526101000190565b6020810160038310610b4b57610b4b610bf5565b91905290565b6020810160048310610b4b57610b4b610bf5565b60208082526044908201527f43616e6e6f7420696e766f6b65207468697320657363726f772066756e63746960408201527f6f6e2077697468207468652063757272656e7420636f6e7472616374207374616060820152633a3ab99760e11b608082015260a00190565b60008219821115610bf057634e487b7160e01b600052601160045260246000fd5b500190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146101d157600080fdfea26469706673582212202dc66b1a9385167e89267cb825ab637c24b0528266bf6b07206e97268ee4212364736f6c63430008070033a2646970667358221220b5d0547f2cc6d5e1b836ad609e581a391e82bd1a8965b142750f01c3ee34540c64736f6c63430008070033a2646970667358221220886966baee02738677b34d84a9105b22e706ee5d6fdaec7b21e709b891f0692164736f6c63430008070033",
96
+ "sourceMap": "118:1187:12:-:0;;;;;;;;;;;;;;;;;;;",
97
+ "deployedSourceMap": "118:1187:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1200:103;1246:7;1273:22;1200:103;;2892:25:15;;;2880:2;2865:18;1200:103:12;;;;;;;976:155;;;;;;:::i;:::-;;:::i;:::-;;571:357;;;;;;:::i;:::-;;:::i;976:155::-;1039:15;1055:5;1039:22;;;;;;;;;;:::i;:::-;;;;;;;;;1032:29;;-1:-1:-1;;;;;;1032:29:12;;;1100:22;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1076:48;;-1:-1:-1;;;;;1100:22:12;;;;1076:48;;;976:155;:::o;571:357::-;671:20;705:10;717;694:34;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;786:15:12;:35;;;;;;;;;;;;;;-1:-1:-1;;;;;;786:35:12;-1:-1:-1;;;;;786:35:12;;;;;;;;874:22;;836:85;;786:35;;-1:-1:-1;874:22:12;836:85;;;;898:10;;910;;836:85;:::i;:::-;;;;;;;;661:267;571:357;;:::o;-1:-1:-1:-;;;;;;;;:::o;14:151:15:-;90:20;;139:1;129:12;;119:40;;155:1;152;145:12;119:40;14:151;;;:::o;170:1029::-;263:6;271;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;710:2;704:9;678:2;764:13;;-1:-1:-1;;760:22:15;;;784:2;756:31;752:40;740:53;;;808:18;;;828:22;;;805:46;802:72;;;854:18;;:::i;:::-;894:10;890:2;883:22;929:2;921:6;914:18;971:7;964:4;959:2;955;951:11;947:22;944:35;941:55;;;992:1;989;982:12;941:55;1052:2;1045:4;1041:2;1037:13;1030:4;1022:6;1018:17;1005:50;1099:1;1092:4;1087:2;1079:6;1075:15;1071:26;1064:37;1120:6;1110:16;;;;;;;1145:48;1187:4;1176:9;1172:20;1145:48;:::i;:::-;1135:58;;170:1029;;;;;:::o;1204:276::-;1262:6;1315:2;1303:9;1294:7;1290:23;1286:32;1283:52;;;1331:1;1328;1321:12;1283:52;1370:9;1357:23;1420:10;1413:5;1409:22;1402:5;1399:33;1389:61;;1446:1;1443;1436:12;1389:61;1469:5;1204:276;-1:-1:-1;;;1204:276:15:o;1485:472::-;1527:3;1565:5;1559:12;1592:6;1587:3;1580:19;1617:1;1627:162;1641:6;1638:1;1635:13;1627:162;;;1703:4;1759:13;;;1755:22;;1749:29;1731:11;;;1727:20;;1720:59;1656:12;1627:162;;;1807:6;1804:1;1801:13;1798:87;;;1873:1;1866:4;1857:6;1852:3;1848:16;1844:27;1837:38;1798:87;-1:-1:-1;1939:2:15;1918:15;-1:-1:-1;;1914:29:15;1905:39;;;;1946:4;1901:50;;1485:472;-1:-1:-1;;1485:472:15:o;1962:317::-;-1:-1:-1;;;;;2139:32:15;;2121:51;;2208:2;2203;2188:18;;2181:30;;;-1:-1:-1;;2228:45:15;;2254:18;;2246:6;2228:45;:::i;:::-;2220:53;1962:317;-1:-1:-1;;;;1962:317:15:o;2284:457::-;2474:2;2463:9;2456:21;2437:4;2494:45;2535:2;2524:9;2520:18;2512:6;2494:45;:::i;:::-;2486:53;;2569:1;2561:6;2558:13;2548:144;;2614:10;2609:3;2605:20;2602:1;2595:31;2649:4;2646:1;2639:15;2677:4;2674:1;2667:15;2548:144;2728:6;2723:2;2712:9;2708:18;2701:34;2284:457;;;;;:::o;2928:127::-;2989:10;2984:3;2980:20;2977:1;2970:31;3020:4;3017:1;3010:15;3044:4;3041:1;3034:15;3060:127;3121:10;3116:3;3112:20;3109:1;3102:31;3152:4;3149:1;3142:15;3176:4;3173:1;3166:15",
98
+ "sourcePath": "/Users/elijahhampton/git/opportunity-core/src/contracts/market/MarketFactory.sol",
99
+ "compiler": {
100
+ "name": "solc",
101
+ "version": "0.8.7+commit.e28d00a7"
102
+ },
103
+ "ast": {
104
+ "absolutePath": "/Users/elijahhampton/git/opportunity-core/src/contracts/market/MarketFactory.sol",
105
+ "exportedSymbols": {
106
+ "Context": [
107
+ 217
108
+ ],
109
+ "Controllable": [
110
+ 304
111
+ ],
112
+ "DaiEscrow": [
113
+ 771
114
+ ],
115
+ "DaiToken": [
116
+ 381
117
+ ],
118
+ "Evaluation": [
119
+ 1199
120
+ ],
121
+ "IUserSummary": [
122
+ 1996
123
+ ],
124
+ "Market": [
125
+ 1676
126
+ ],
127
+ "MarketFactory": [
128
+ 1773
129
+ ],
130
+ "MarketLib": [
131
+ 1208
132
+ ],
133
+ "Ownable": [
134
+ 103
135
+ ],
136
+ "Pausable": [
137
+ 195
138
+ ],
139
+ "StringUtils": [
140
+ 1449
141
+ ],
142
+ "User": [
143
+ 1469
144
+ ],
145
+ "UserSummary": [
146
+ 1938
147
+ ],
148
+ "WorkExchange": [
149
+ 798
150
+ ],
151
+ "WorkRelationship": [
152
+ 1183
153
+ ]
154
+ },
155
+ "id": 1774,
156
+ "license": "MIT",
157
+ "nodeType": "SourceUnit",
158
+ "nodes": [
159
+ {
160
+ "id": 1678,
161
+ "literals": [
162
+ "solidity",
163
+ "0.8",
164
+ ".7"
165
+ ],
166
+ "nodeType": "PragmaDirective",
167
+ "src": "33:22:12"
168
+ },
169
+ {
170
+ "absolutePath": "/Users/elijahhampton/git/opportunity-core/src/contracts/market/Market.sol",
171
+ "file": "./Market.sol",
172
+ "id": 1679,
173
+ "nameLocation": "-1:-1:-1",
174
+ "nodeType": "ImportDirective",
175
+ "scope": 1774,
176
+ "sourceUnit": 1677,
177
+ "src": "57:22:12",
178
+ "symbolAliases": [],
179
+ "unitAlias": ""
180
+ },
181
+ {
182
+ "absolutePath": "/Users/elijahhampton/git/opportunity-core/src/contracts/libraries/MarketLib.sol",
183
+ "file": "../libraries/MarketLib.sol",
184
+ "id": 1680,
185
+ "nameLocation": "-1:-1:-1",
186
+ "nodeType": "ImportDirective",
187
+ "scope": 1774,
188
+ "sourceUnit": 1209,
189
+ "src": "80:36:12",
190
+ "symbolAliases": [],
191
+ "unitAlias": ""
192
+ },
193
+ {
194
+ "abstract": false,
195
+ "baseContracts": [],
196
+ "contractDependencies": [
197
+ 1676
198
+ ],
199
+ "contractKind": "contract",
200
+ "fullyImplemented": true,
201
+ "id": 1773,
202
+ "linearizedBaseContracts": [
203
+ 1773
204
+ ],
205
+ "name": "MarketFactory",
206
+ "nameLocation": "127:13:12",
207
+ "nodeType": "ContractDefinition",
208
+ "nodes": [
209
+ {
210
+ "anonymous": false,
211
+ "id": 1690,
212
+ "name": "MarketCreated",
213
+ "nameLocation": "153:13:12",
214
+ "nodeType": "EventDefinition",
215
+ "parameters": {
216
+ "id": 1689,
217
+ "nodeType": "ParameterList",
218
+ "parameters": [
219
+ {
220
+ "constant": false,
221
+ "id": 1682,
222
+ "indexed": true,
223
+ "mutability": "mutable",
224
+ "name": "_market",
225
+ "nameLocation": "183:7:12",
226
+ "nodeType": "VariableDeclaration",
227
+ "scope": 1690,
228
+ "src": "167:23:12",
229
+ "stateVariable": false,
230
+ "storageLocation": "default",
231
+ "typeDescriptions": {
232
+ "typeIdentifier": "t_address",
233
+ "typeString": "address"
234
+ },
235
+ "typeName": {
236
+ "id": 1681,
237
+ "name": "address",
238
+ "nodeType": "ElementaryTypeName",
239
+ "src": "167:7:12",
240
+ "stateMutability": "nonpayable",
241
+ "typeDescriptions": {
242
+ "typeIdentifier": "t_address",
243
+ "typeString": "address"
244
+ }
245
+ },
246
+ "visibility": "internal"
247
+ },
248
+ {
249
+ "constant": false,
250
+ "id": 1684,
251
+ "indexed": true,
252
+ "mutability": "mutable",
253
+ "name": "index",
254
+ "nameLocation": "208:5:12",
255
+ "nodeType": "VariableDeclaration",
256
+ "scope": 1690,
257
+ "src": "192:21:12",
258
+ "stateVariable": false,
259
+ "storageLocation": "default",
260
+ "typeDescriptions": {
261
+ "typeIdentifier": "t_uint256",
262
+ "typeString": "uint256"
263
+ },
264
+ "typeName": {
265
+ "id": 1683,
266
+ "name": "uint256",
267
+ "nodeType": "ElementaryTypeName",
268
+ "src": "192:7:12",
269
+ "typeDescriptions": {
270
+ "typeIdentifier": "t_uint256",
271
+ "typeString": "uint256"
272
+ }
273
+ },
274
+ "visibility": "internal"
275
+ },
276
+ {
277
+ "constant": false,
278
+ "id": 1686,
279
+ "indexed": false,
280
+ "mutability": "mutable",
281
+ "name": "owner",
282
+ "nameLocation": "223:5:12",
283
+ "nodeType": "VariableDeclaration",
284
+ "scope": 1690,
285
+ "src": "215:13:12",
286
+ "stateVariable": false,
287
+ "storageLocation": "default",
288
+ "typeDescriptions": {
289
+ "typeIdentifier": "t_address",
290
+ "typeString": "address"
291
+ },
292
+ "typeName": {
293
+ "id": 1685,
294
+ "name": "address",
295
+ "nodeType": "ElementaryTypeName",
296
+ "src": "215:7:12",
297
+ "stateMutability": "nonpayable",
298
+ "typeDescriptions": {
299
+ "typeIdentifier": "t_address",
300
+ "typeString": "address"
301
+ }
302
+ },
303
+ "visibility": "internal"
304
+ },
305
+ {
306
+ "constant": false,
307
+ "id": 1688,
308
+ "indexed": false,
309
+ "mutability": "mutable",
310
+ "name": "marketName",
311
+ "nameLocation": "246:10:12",
312
+ "nodeType": "VariableDeclaration",
313
+ "scope": 1690,
314
+ "src": "239:17:12",
315
+ "stateVariable": false,
316
+ "storageLocation": "default",
317
+ "typeDescriptions": {
318
+ "typeIdentifier": "t_string_memory_ptr",
319
+ "typeString": "string"
320
+ },
321
+ "typeName": {
322
+ "id": 1687,
323
+ "name": "string",
324
+ "nodeType": "ElementaryTypeName",
325
+ "src": "239:6:12",
326
+ "typeDescriptions": {
327
+ "typeIdentifier": "t_string_storage_ptr",
328
+ "typeString": "string"
329
+ }
330
+ },
331
+ "visibility": "internal"
332
+ }
333
+ ],
334
+ "src": "166:91:12"
335
+ },
336
+ "src": "147:111:12"
337
+ },
338
+ {
339
+ "anonymous": false,
340
+ "id": 1694,
341
+ "name": "MarketDestroyed",
342
+ "nameLocation": "269:15:12",
343
+ "nodeType": "EventDefinition",
344
+ "parameters": {
345
+ "id": 1693,
346
+ "nodeType": "ParameterList",
347
+ "parameters": [
348
+ {
349
+ "constant": false,
350
+ "id": 1692,
351
+ "indexed": true,
352
+ "mutability": "mutable",
353
+ "name": "_marketAddress",
354
+ "nameLocation": "301:14:12",
355
+ "nodeType": "VariableDeclaration",
356
+ "scope": 1694,
357
+ "src": "285:30:12",
358
+ "stateVariable": false,
359
+ "storageLocation": "default",
360
+ "typeDescriptions": {
361
+ "typeIdentifier": "t_address",
362
+ "typeString": "address"
363
+ },
364
+ "typeName": {
365
+ "id": 1691,
366
+ "name": "address",
367
+ "nodeType": "ElementaryTypeName",
368
+ "src": "285:7:12",
369
+ "stateMutability": "nonpayable",
370
+ "typeDescriptions": {
371
+ "typeIdentifier": "t_address",
372
+ "typeString": "address"
373
+ }
374
+ },
375
+ "visibility": "internal"
376
+ }
377
+ ],
378
+ "src": "284:32:12"
379
+ },
380
+ "src": "263:54:12"
381
+ },
382
+ {
383
+ "constant": false,
384
+ "id": 1698,
385
+ "mutability": "mutable",
386
+ "name": "_createdMarkets",
387
+ "nameLocation": "340:15:12",
388
+ "nodeType": "VariableDeclaration",
389
+ "scope": 1773,
390
+ "src": "323:32:12",
391
+ "stateVariable": true,
392
+ "storageLocation": "default",
393
+ "typeDescriptions": {
394
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage",
395
+ "typeString": "contract Market[]"
396
+ },
397
+ "typeName": {
398
+ "baseType": {
399
+ "id": 1696,
400
+ "nodeType": "UserDefinedTypeName",
401
+ "pathNode": {
402
+ "id": 1695,
403
+ "name": "Market",
404
+ "nodeType": "IdentifierPath",
405
+ "referencedDeclaration": 1676,
406
+ "src": "323:6:12"
407
+ },
408
+ "referencedDeclaration": 1676,
409
+ "src": "323:6:12",
410
+ "typeDescriptions": {
411
+ "typeIdentifier": "t_contract$_Market_$1676",
412
+ "typeString": "contract Market"
413
+ }
414
+ },
415
+ "id": 1697,
416
+ "nodeType": "ArrayTypeName",
417
+ "src": "323:8:12",
418
+ "typeDescriptions": {
419
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage_ptr",
420
+ "typeString": "contract Market[]"
421
+ }
422
+ },
423
+ "visibility": "private"
424
+ },
425
+ {
426
+ "constant": false,
427
+ "id": 1703,
428
+ "mutability": "mutable",
429
+ "name": "idsToMarkets",
430
+ "nameLocation": "387:12:12",
431
+ "nodeType": "VariableDeclaration",
432
+ "scope": 1773,
433
+ "src": "361:38:12",
434
+ "stateVariable": true,
435
+ "storageLocation": "default",
436
+ "typeDescriptions": {
437
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_contract$_Market_$1676_$",
438
+ "typeString": "mapping(string => contract Market)"
439
+ },
440
+ "typeName": {
441
+ "id": 1702,
442
+ "keyType": {
443
+ "id": 1699,
444
+ "name": "string",
445
+ "nodeType": "ElementaryTypeName",
446
+ "src": "369:6:12",
447
+ "typeDescriptions": {
448
+ "typeIdentifier": "t_string_storage_ptr",
449
+ "typeString": "string"
450
+ }
451
+ },
452
+ "nodeType": "Mapping",
453
+ "src": "361:25:12",
454
+ "typeDescriptions": {
455
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_contract$_Market_$1676_$",
456
+ "typeString": "mapping(string => contract Market)"
457
+ },
458
+ "valueType": {
459
+ "id": 1701,
460
+ "nodeType": "UserDefinedTypeName",
461
+ "pathNode": {
462
+ "id": 1700,
463
+ "name": "Market",
464
+ "nodeType": "IdentifierPath",
465
+ "referencedDeclaration": 1676,
466
+ "src": "379:6:12"
467
+ },
468
+ "referencedDeclaration": 1676,
469
+ "src": "379:6:12",
470
+ "typeDescriptions": {
471
+ "typeIdentifier": "t_contract$_Market_$1676",
472
+ "typeString": "contract Market"
473
+ }
474
+ }
475
+ },
476
+ "visibility": "internal"
477
+ },
478
+ {
479
+ "body": {
480
+ "id": 1740,
481
+ "nodeType": "Block",
482
+ "src": "661:267:12",
483
+ "statements": [
484
+ {
485
+ "assignments": [
486
+ 1714
487
+ ],
488
+ "declarations": [
489
+ {
490
+ "constant": false,
491
+ "id": 1714,
492
+ "mutability": "mutable",
493
+ "name": "createdMarket",
494
+ "nameLocation": "678:13:12",
495
+ "nodeType": "VariableDeclaration",
496
+ "scope": 1740,
497
+ "src": "671:20:12",
498
+ "stateVariable": false,
499
+ "storageLocation": "default",
500
+ "typeDescriptions": {
501
+ "typeIdentifier": "t_contract$_Market_$1676",
502
+ "typeString": "contract Market"
503
+ },
504
+ "typeName": {
505
+ "id": 1713,
506
+ "nodeType": "UserDefinedTypeName",
507
+ "pathNode": {
508
+ "id": 1712,
509
+ "name": "Market",
510
+ "nodeType": "IdentifierPath",
511
+ "referencedDeclaration": 1676,
512
+ "src": "671:6:12"
513
+ },
514
+ "referencedDeclaration": 1676,
515
+ "src": "671:6:12",
516
+ "typeDescriptions": {
517
+ "typeIdentifier": "t_contract$_Market_$1676",
518
+ "typeString": "contract Market"
519
+ }
520
+ },
521
+ "visibility": "internal"
522
+ }
523
+ ],
524
+ "id": 1721,
525
+ "initialValue": {
526
+ "arguments": [
527
+ {
528
+ "id": 1718,
529
+ "name": "marketName",
530
+ "nodeType": "Identifier",
531
+ "overloadedDeclarations": [],
532
+ "referencedDeclaration": 1706,
533
+ "src": "705:10:12",
534
+ "typeDescriptions": {
535
+ "typeIdentifier": "t_string_memory_ptr",
536
+ "typeString": "string memory"
537
+ }
538
+ },
539
+ {
540
+ "id": 1719,
541
+ "name": "marketType",
542
+ "nodeType": "Identifier",
543
+ "overloadedDeclarations": [],
544
+ "referencedDeclaration": 1709,
545
+ "src": "717:10:12",
546
+ "typeDescriptions": {
547
+ "typeIdentifier": "t_enum$_MarketType_$1204",
548
+ "typeString": "enum MarketLib.MarketType"
549
+ }
550
+ }
551
+ ],
552
+ "expression": {
553
+ "argumentTypes": [
554
+ {
555
+ "typeIdentifier": "t_string_memory_ptr",
556
+ "typeString": "string memory"
557
+ },
558
+ {
559
+ "typeIdentifier": "t_enum$_MarketType_$1204",
560
+ "typeString": "enum MarketLib.MarketType"
561
+ }
562
+ ],
563
+ "id": 1717,
564
+ "isConstant": false,
565
+ "isLValue": false,
566
+ "isPure": false,
567
+ "lValueRequested": false,
568
+ "nodeType": "NewExpression",
569
+ "src": "694:10:12",
570
+ "typeDescriptions": {
571
+ "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_enum$_MarketType_$1204_$returns$_t_contract$_Market_$1676_$",
572
+ "typeString": "function (string memory,enum MarketLib.MarketType) returns (contract Market)"
573
+ },
574
+ "typeName": {
575
+ "id": 1716,
576
+ "nodeType": "UserDefinedTypeName",
577
+ "pathNode": {
578
+ "id": 1715,
579
+ "name": "Market",
580
+ "nodeType": "IdentifierPath",
581
+ "referencedDeclaration": 1676,
582
+ "src": "698:6:12"
583
+ },
584
+ "referencedDeclaration": 1676,
585
+ "src": "698:6:12",
586
+ "typeDescriptions": {
587
+ "typeIdentifier": "t_contract$_Market_$1676",
588
+ "typeString": "contract Market"
589
+ }
590
+ }
591
+ },
592
+ "id": 1720,
593
+ "isConstant": false,
594
+ "isLValue": false,
595
+ "isPure": false,
596
+ "kind": "functionCall",
597
+ "lValueRequested": false,
598
+ "names": [],
599
+ "nodeType": "FunctionCall",
600
+ "src": "694:34:12",
601
+ "tryCall": false,
602
+ "typeDescriptions": {
603
+ "typeIdentifier": "t_contract$_Market_$1676",
604
+ "typeString": "contract Market"
605
+ }
606
+ },
607
+ "nodeType": "VariableDeclarationStatement",
608
+ "src": "671:57:12"
609
+ },
610
+ {
611
+ "expression": {
612
+ "arguments": [
613
+ {
614
+ "id": 1725,
615
+ "name": "createdMarket",
616
+ "nodeType": "Identifier",
617
+ "overloadedDeclarations": [],
618
+ "referencedDeclaration": 1714,
619
+ "src": "807:13:12",
620
+ "typeDescriptions": {
621
+ "typeIdentifier": "t_contract$_Market_$1676",
622
+ "typeString": "contract Market"
623
+ }
624
+ }
625
+ ],
626
+ "expression": {
627
+ "argumentTypes": [
628
+ {
629
+ "typeIdentifier": "t_contract$_Market_$1676",
630
+ "typeString": "contract Market"
631
+ }
632
+ ],
633
+ "expression": {
634
+ "id": 1722,
635
+ "name": "_createdMarkets",
636
+ "nodeType": "Identifier",
637
+ "overloadedDeclarations": [],
638
+ "referencedDeclaration": 1698,
639
+ "src": "786:15:12",
640
+ "typeDescriptions": {
641
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage",
642
+ "typeString": "contract Market[] storage ref"
643
+ }
644
+ },
645
+ "id": 1724,
646
+ "isConstant": false,
647
+ "isLValue": false,
648
+ "isPure": false,
649
+ "lValueRequested": false,
650
+ "memberName": "push",
651
+ "nodeType": "MemberAccess",
652
+ "src": "786:20:12",
653
+ "typeDescriptions": {
654
+ "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_contract$_Market_$1676_$dyn_storage_ptr_$_t_contract$_Market_$1676_$returns$__$bound_to$_t_array$_t_contract$_Market_$1676_$dyn_storage_ptr_$",
655
+ "typeString": "function (contract Market[] storage pointer,contract Market)"
656
+ }
657
+ },
658
+ "id": 1726,
659
+ "isConstant": false,
660
+ "isLValue": false,
661
+ "isPure": false,
662
+ "kind": "functionCall",
663
+ "lValueRequested": false,
664
+ "names": [],
665
+ "nodeType": "FunctionCall",
666
+ "src": "786:35:12",
667
+ "tryCall": false,
668
+ "typeDescriptions": {
669
+ "typeIdentifier": "t_tuple$__$",
670
+ "typeString": "tuple()"
671
+ }
672
+ },
673
+ "id": 1727,
674
+ "nodeType": "ExpressionStatement",
675
+ "src": "786:35:12"
676
+ },
677
+ {
678
+ "eventCall": {
679
+ "arguments": [
680
+ {
681
+ "arguments": [
682
+ {
683
+ "id": 1731,
684
+ "name": "createdMarket",
685
+ "nodeType": "Identifier",
686
+ "overloadedDeclarations": [],
687
+ "referencedDeclaration": 1714,
688
+ "src": "858:13:12",
689
+ "typeDescriptions": {
690
+ "typeIdentifier": "t_contract$_Market_$1676",
691
+ "typeString": "contract Market"
692
+ }
693
+ }
694
+ ],
695
+ "expression": {
696
+ "argumentTypes": [
697
+ {
698
+ "typeIdentifier": "t_contract$_Market_$1676",
699
+ "typeString": "contract Market"
700
+ }
701
+ ],
702
+ "id": 1730,
703
+ "isConstant": false,
704
+ "isLValue": false,
705
+ "isPure": true,
706
+ "lValueRequested": false,
707
+ "nodeType": "ElementaryTypeNameExpression",
708
+ "src": "850:7:12",
709
+ "typeDescriptions": {
710
+ "typeIdentifier": "t_type$_t_address_$",
711
+ "typeString": "type(address)"
712
+ },
713
+ "typeName": {
714
+ "id": 1729,
715
+ "name": "address",
716
+ "nodeType": "ElementaryTypeName",
717
+ "src": "850:7:12",
718
+ "typeDescriptions": {}
719
+ }
720
+ },
721
+ "id": 1732,
722
+ "isConstant": false,
723
+ "isLValue": false,
724
+ "isPure": false,
725
+ "kind": "typeConversion",
726
+ "lValueRequested": false,
727
+ "names": [],
728
+ "nodeType": "FunctionCall",
729
+ "src": "850:22:12",
730
+ "tryCall": false,
731
+ "typeDescriptions": {
732
+ "typeIdentifier": "t_address",
733
+ "typeString": "address"
734
+ }
735
+ },
736
+ {
737
+ "expression": {
738
+ "id": 1733,
739
+ "name": "_createdMarkets",
740
+ "nodeType": "Identifier",
741
+ "overloadedDeclarations": [],
742
+ "referencedDeclaration": 1698,
743
+ "src": "874:15:12",
744
+ "typeDescriptions": {
745
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage",
746
+ "typeString": "contract Market[] storage ref"
747
+ }
748
+ },
749
+ "id": 1734,
750
+ "isConstant": false,
751
+ "isLValue": false,
752
+ "isPure": false,
753
+ "lValueRequested": false,
754
+ "memberName": "length",
755
+ "nodeType": "MemberAccess",
756
+ "src": "874:22:12",
757
+ "typeDescriptions": {
758
+ "typeIdentifier": "t_uint256",
759
+ "typeString": "uint256"
760
+ }
761
+ },
762
+ {
763
+ "expression": {
764
+ "id": 1735,
765
+ "name": "msg",
766
+ "nodeType": "Identifier",
767
+ "overloadedDeclarations": [],
768
+ "referencedDeclaration": 4294967281,
769
+ "src": "898:3:12",
770
+ "typeDescriptions": {
771
+ "typeIdentifier": "t_magic_message",
772
+ "typeString": "msg"
773
+ }
774
+ },
775
+ "id": 1736,
776
+ "isConstant": false,
777
+ "isLValue": false,
778
+ "isPure": false,
779
+ "lValueRequested": false,
780
+ "memberName": "sender",
781
+ "nodeType": "MemberAccess",
782
+ "src": "898:10:12",
783
+ "typeDescriptions": {
784
+ "typeIdentifier": "t_address",
785
+ "typeString": "address"
786
+ }
787
+ },
788
+ {
789
+ "id": 1737,
790
+ "name": "marketName",
791
+ "nodeType": "Identifier",
792
+ "overloadedDeclarations": [],
793
+ "referencedDeclaration": 1706,
794
+ "src": "910:10:12",
795
+ "typeDescriptions": {
796
+ "typeIdentifier": "t_string_memory_ptr",
797
+ "typeString": "string memory"
798
+ }
799
+ }
800
+ ],
801
+ "expression": {
802
+ "argumentTypes": [
803
+ {
804
+ "typeIdentifier": "t_address",
805
+ "typeString": "address"
806
+ },
807
+ {
808
+ "typeIdentifier": "t_uint256",
809
+ "typeString": "uint256"
810
+ },
811
+ {
812
+ "typeIdentifier": "t_address",
813
+ "typeString": "address"
814
+ },
815
+ {
816
+ "typeIdentifier": "t_string_memory_ptr",
817
+ "typeString": "string memory"
818
+ }
819
+ ],
820
+ "id": 1728,
821
+ "name": "MarketCreated",
822
+ "nodeType": "Identifier",
823
+ "overloadedDeclarations": [],
824
+ "referencedDeclaration": 1690,
825
+ "src": "836:13:12",
826
+ "typeDescriptions": {
827
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
828
+ "typeString": "function (address,uint256,address,string memory)"
829
+ }
830
+ },
831
+ "id": 1738,
832
+ "isConstant": false,
833
+ "isLValue": false,
834
+ "isPure": false,
835
+ "kind": "functionCall",
836
+ "lValueRequested": false,
837
+ "names": [],
838
+ "nodeType": "FunctionCall",
839
+ "src": "836:85:12",
840
+ "tryCall": false,
841
+ "typeDescriptions": {
842
+ "typeIdentifier": "t_tuple$__$",
843
+ "typeString": "tuple()"
844
+ }
845
+ },
846
+ "id": 1739,
847
+ "nodeType": "EmitStatement",
848
+ "src": "831:90:12"
849
+ }
850
+ ]
851
+ },
852
+ "documentation": {
853
+ "id": 1704,
854
+ "nodeType": "StructuredDocumentation",
855
+ "src": "406:159:12",
856
+ "text": " Creates a Market contract based on the market name and type. The market contract will generate and assign\n a unique id to the market."
857
+ },
858
+ "functionSelector": "c2ca748b",
859
+ "id": 1741,
860
+ "implemented": true,
861
+ "kind": "function",
862
+ "modifiers": [],
863
+ "name": "createMarket",
864
+ "nameLocation": "580:12:12",
865
+ "nodeType": "FunctionDefinition",
866
+ "parameters": {
867
+ "id": 1710,
868
+ "nodeType": "ParameterList",
869
+ "parameters": [
870
+ {
871
+ "constant": false,
872
+ "id": 1706,
873
+ "mutability": "mutable",
874
+ "name": "marketName",
875
+ "nameLocation": "607:10:12",
876
+ "nodeType": "VariableDeclaration",
877
+ "scope": 1741,
878
+ "src": "593:24:12",
879
+ "stateVariable": false,
880
+ "storageLocation": "memory",
881
+ "typeDescriptions": {
882
+ "typeIdentifier": "t_string_memory_ptr",
883
+ "typeString": "string"
884
+ },
885
+ "typeName": {
886
+ "id": 1705,
887
+ "name": "string",
888
+ "nodeType": "ElementaryTypeName",
889
+ "src": "593:6:12",
890
+ "typeDescriptions": {
891
+ "typeIdentifier": "t_string_storage_ptr",
892
+ "typeString": "string"
893
+ }
894
+ },
895
+ "visibility": "internal"
896
+ },
897
+ {
898
+ "constant": false,
899
+ "id": 1709,
900
+ "mutability": "mutable",
901
+ "name": "marketType",
902
+ "nameLocation": "640:10:12",
903
+ "nodeType": "VariableDeclaration",
904
+ "scope": 1741,
905
+ "src": "619:31:12",
906
+ "stateVariable": false,
907
+ "storageLocation": "default",
908
+ "typeDescriptions": {
909
+ "typeIdentifier": "t_enum$_MarketType_$1204",
910
+ "typeString": "enum MarketLib.MarketType"
911
+ },
912
+ "typeName": {
913
+ "id": 1708,
914
+ "nodeType": "UserDefinedTypeName",
915
+ "pathNode": {
916
+ "id": 1707,
917
+ "name": "MarketLib.MarketType",
918
+ "nodeType": "IdentifierPath",
919
+ "referencedDeclaration": 1204,
920
+ "src": "619:20:12"
921
+ },
922
+ "referencedDeclaration": 1204,
923
+ "src": "619:20:12",
924
+ "typeDescriptions": {
925
+ "typeIdentifier": "t_enum$_MarketType_$1204",
926
+ "typeString": "enum MarketLib.MarketType"
927
+ }
928
+ },
929
+ "visibility": "internal"
930
+ }
931
+ ],
932
+ "src": "592:59:12"
933
+ },
934
+ "returnParameters": {
935
+ "id": 1711,
936
+ "nodeType": "ParameterList",
937
+ "parameters": [],
938
+ "src": "661:0:12"
939
+ },
940
+ "scope": 1773,
941
+ "src": "571:357:12",
942
+ "stateMutability": "nonpayable",
943
+ "virtual": false,
944
+ "visibility": "external"
945
+ },
946
+ {
947
+ "body": {
948
+ "id": 1761,
949
+ "nodeType": "Block",
950
+ "src": "1022:109:12",
951
+ "statements": [
952
+ {
953
+ "expression": {
954
+ "id": 1750,
955
+ "isConstant": false,
956
+ "isLValue": false,
957
+ "isPure": false,
958
+ "lValueRequested": false,
959
+ "nodeType": "UnaryOperation",
960
+ "operator": "delete",
961
+ "prefix": true,
962
+ "src": "1032:29:12",
963
+ "subExpression": {
964
+ "baseExpression": {
965
+ "id": 1747,
966
+ "name": "_createdMarkets",
967
+ "nodeType": "Identifier",
968
+ "overloadedDeclarations": [],
969
+ "referencedDeclaration": 1698,
970
+ "src": "1039:15:12",
971
+ "typeDescriptions": {
972
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage",
973
+ "typeString": "contract Market[] storage ref"
974
+ }
975
+ },
976
+ "id": 1749,
977
+ "indexExpression": {
978
+ "id": 1748,
979
+ "name": "index",
980
+ "nodeType": "Identifier",
981
+ "overloadedDeclarations": [],
982
+ "referencedDeclaration": 1744,
983
+ "src": "1055:5:12",
984
+ "typeDescriptions": {
985
+ "typeIdentifier": "t_uint32",
986
+ "typeString": "uint32"
987
+ }
988
+ },
989
+ "isConstant": false,
990
+ "isLValue": true,
991
+ "isPure": false,
992
+ "lValueRequested": true,
993
+ "nodeType": "IndexAccess",
994
+ "src": "1039:22:12",
995
+ "typeDescriptions": {
996
+ "typeIdentifier": "t_contract$_Market_$1676",
997
+ "typeString": "contract Market"
998
+ }
999
+ },
1000
+ "typeDescriptions": {
1001
+ "typeIdentifier": "t_tuple$__$",
1002
+ "typeString": "tuple()"
1003
+ }
1004
+ },
1005
+ "id": 1751,
1006
+ "nodeType": "ExpressionStatement",
1007
+ "src": "1032:29:12"
1008
+ },
1009
+ {
1010
+ "eventCall": {
1011
+ "arguments": [
1012
+ {
1013
+ "arguments": [
1014
+ {
1015
+ "baseExpression": {
1016
+ "id": 1755,
1017
+ "name": "_createdMarkets",
1018
+ "nodeType": "Identifier",
1019
+ "overloadedDeclarations": [],
1020
+ "referencedDeclaration": 1698,
1021
+ "src": "1100:15:12",
1022
+ "typeDescriptions": {
1023
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage",
1024
+ "typeString": "contract Market[] storage ref"
1025
+ }
1026
+ },
1027
+ "id": 1757,
1028
+ "indexExpression": {
1029
+ "id": 1756,
1030
+ "name": "index",
1031
+ "nodeType": "Identifier",
1032
+ "overloadedDeclarations": [],
1033
+ "referencedDeclaration": 1744,
1034
+ "src": "1116:5:12",
1035
+ "typeDescriptions": {
1036
+ "typeIdentifier": "t_uint32",
1037
+ "typeString": "uint32"
1038
+ }
1039
+ },
1040
+ "isConstant": false,
1041
+ "isLValue": true,
1042
+ "isPure": false,
1043
+ "lValueRequested": false,
1044
+ "nodeType": "IndexAccess",
1045
+ "src": "1100:22:12",
1046
+ "typeDescriptions": {
1047
+ "typeIdentifier": "t_contract$_Market_$1676",
1048
+ "typeString": "contract Market"
1049
+ }
1050
+ }
1051
+ ],
1052
+ "expression": {
1053
+ "argumentTypes": [
1054
+ {
1055
+ "typeIdentifier": "t_contract$_Market_$1676",
1056
+ "typeString": "contract Market"
1057
+ }
1058
+ ],
1059
+ "id": 1754,
1060
+ "isConstant": false,
1061
+ "isLValue": false,
1062
+ "isPure": true,
1063
+ "lValueRequested": false,
1064
+ "nodeType": "ElementaryTypeNameExpression",
1065
+ "src": "1092:7:12",
1066
+ "typeDescriptions": {
1067
+ "typeIdentifier": "t_type$_t_address_$",
1068
+ "typeString": "type(address)"
1069
+ },
1070
+ "typeName": {
1071
+ "id": 1753,
1072
+ "name": "address",
1073
+ "nodeType": "ElementaryTypeName",
1074
+ "src": "1092:7:12",
1075
+ "typeDescriptions": {}
1076
+ }
1077
+ },
1078
+ "id": 1758,
1079
+ "isConstant": false,
1080
+ "isLValue": false,
1081
+ "isPure": false,
1082
+ "kind": "typeConversion",
1083
+ "lValueRequested": false,
1084
+ "names": [],
1085
+ "nodeType": "FunctionCall",
1086
+ "src": "1092:31:12",
1087
+ "tryCall": false,
1088
+ "typeDescriptions": {
1089
+ "typeIdentifier": "t_address",
1090
+ "typeString": "address"
1091
+ }
1092
+ }
1093
+ ],
1094
+ "expression": {
1095
+ "argumentTypes": [
1096
+ {
1097
+ "typeIdentifier": "t_address",
1098
+ "typeString": "address"
1099
+ }
1100
+ ],
1101
+ "id": 1752,
1102
+ "name": "MarketDestroyed",
1103
+ "nodeType": "Identifier",
1104
+ "overloadedDeclarations": [],
1105
+ "referencedDeclaration": 1694,
1106
+ "src": "1076:15:12",
1107
+ "typeDescriptions": {
1108
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
1109
+ "typeString": "function (address)"
1110
+ }
1111
+ },
1112
+ "id": 1759,
1113
+ "isConstant": false,
1114
+ "isLValue": false,
1115
+ "isPure": false,
1116
+ "kind": "functionCall",
1117
+ "lValueRequested": false,
1118
+ "names": [],
1119
+ "nodeType": "FunctionCall",
1120
+ "src": "1076:48:12",
1121
+ "tryCall": false,
1122
+ "typeDescriptions": {
1123
+ "typeIdentifier": "t_tuple$__$",
1124
+ "typeString": "tuple()"
1125
+ }
1126
+ },
1127
+ "id": 1760,
1128
+ "nodeType": "EmitStatement",
1129
+ "src": "1071:53:12"
1130
+ }
1131
+ ]
1132
+ },
1133
+ "documentation": {
1134
+ "id": 1742,
1135
+ "nodeType": "StructuredDocumentation",
1136
+ "src": "934:37:12",
1137
+ "text": " Destroys a market."
1138
+ },
1139
+ "functionSelector": "94542cd6",
1140
+ "id": 1762,
1141
+ "implemented": true,
1142
+ "kind": "function",
1143
+ "modifiers": [],
1144
+ "name": "destroyMarket",
1145
+ "nameLocation": "985:13:12",
1146
+ "nodeType": "FunctionDefinition",
1147
+ "parameters": {
1148
+ "id": 1745,
1149
+ "nodeType": "ParameterList",
1150
+ "parameters": [
1151
+ {
1152
+ "constant": false,
1153
+ "id": 1744,
1154
+ "mutability": "mutable",
1155
+ "name": "index",
1156
+ "nameLocation": "1006:5:12",
1157
+ "nodeType": "VariableDeclaration",
1158
+ "scope": 1762,
1159
+ "src": "999:12:12",
1160
+ "stateVariable": false,
1161
+ "storageLocation": "default",
1162
+ "typeDescriptions": {
1163
+ "typeIdentifier": "t_uint32",
1164
+ "typeString": "uint32"
1165
+ },
1166
+ "typeName": {
1167
+ "id": 1743,
1168
+ "name": "uint32",
1169
+ "nodeType": "ElementaryTypeName",
1170
+ "src": "999:6:12",
1171
+ "typeDescriptions": {
1172
+ "typeIdentifier": "t_uint32",
1173
+ "typeString": "uint32"
1174
+ }
1175
+ },
1176
+ "visibility": "internal"
1177
+ }
1178
+ ],
1179
+ "src": "998:14:12"
1180
+ },
1181
+ "returnParameters": {
1182
+ "id": 1746,
1183
+ "nodeType": "ParameterList",
1184
+ "parameters": [],
1185
+ "src": "1022:0:12"
1186
+ },
1187
+ "scope": 1773,
1188
+ "src": "976:155:12",
1189
+ "stateMutability": "nonpayable",
1190
+ "virtual": false,
1191
+ "visibility": "external"
1192
+ },
1193
+ {
1194
+ "body": {
1195
+ "id": 1771,
1196
+ "nodeType": "Block",
1197
+ "src": "1255:48:12",
1198
+ "statements": [
1199
+ {
1200
+ "expression": {
1201
+ "expression": {
1202
+ "id": 1768,
1203
+ "name": "_createdMarkets",
1204
+ "nodeType": "Identifier",
1205
+ "overloadedDeclarations": [],
1206
+ "referencedDeclaration": 1698,
1207
+ "src": "1273:15:12",
1208
+ "typeDescriptions": {
1209
+ "typeIdentifier": "t_array$_t_contract$_Market_$1676_$dyn_storage",
1210
+ "typeString": "contract Market[] storage ref"
1211
+ }
1212
+ },
1213
+ "id": 1769,
1214
+ "isConstant": false,
1215
+ "isLValue": false,
1216
+ "isPure": false,
1217
+ "lValueRequested": false,
1218
+ "memberName": "length",
1219
+ "nodeType": "MemberAccess",
1220
+ "src": "1273:22:12",
1221
+ "typeDescriptions": {
1222
+ "typeIdentifier": "t_uint256",
1223
+ "typeString": "uint256"
1224
+ }
1225
+ },
1226
+ "functionReturnParameters": 1767,
1227
+ "id": 1770,
1228
+ "nodeType": "Return",
1229
+ "src": "1266:29:12"
1230
+ }
1231
+ ]
1232
+ },
1233
+ "documentation": {
1234
+ "id": 1763,
1235
+ "nodeType": "StructuredDocumentation",
1236
+ "src": "1137:57:12",
1237
+ "text": " Returns the number of markets created."
1238
+ },
1239
+ "functionSelector": "295c39a5",
1240
+ "id": 1772,
1241
+ "implemented": true,
1242
+ "kind": "function",
1243
+ "modifiers": [],
1244
+ "name": "getNumMarkets",
1245
+ "nameLocation": "1209:13:12",
1246
+ "nodeType": "FunctionDefinition",
1247
+ "parameters": {
1248
+ "id": 1764,
1249
+ "nodeType": "ParameterList",
1250
+ "parameters": [],
1251
+ "src": "1222:2:12"
1252
+ },
1253
+ "returnParameters": {
1254
+ "id": 1767,
1255
+ "nodeType": "ParameterList",
1256
+ "parameters": [
1257
+ {
1258
+ "constant": false,
1259
+ "id": 1766,
1260
+ "mutability": "mutable",
1261
+ "name": "",
1262
+ "nameLocation": "-1:-1:-1",
1263
+ "nodeType": "VariableDeclaration",
1264
+ "scope": 1772,
1265
+ "src": "1246:7:12",
1266
+ "stateVariable": false,
1267
+ "storageLocation": "default",
1268
+ "typeDescriptions": {
1269
+ "typeIdentifier": "t_uint256",
1270
+ "typeString": "uint256"
1271
+ },
1272
+ "typeName": {
1273
+ "id": 1765,
1274
+ "name": "uint256",
1275
+ "nodeType": "ElementaryTypeName",
1276
+ "src": "1246:7:12",
1277
+ "typeDescriptions": {
1278
+ "typeIdentifier": "t_uint256",
1279
+ "typeString": "uint256"
1280
+ }
1281
+ },
1282
+ "visibility": "internal"
1283
+ }
1284
+ ],
1285
+ "src": "1245:9:12"
1286
+ },
1287
+ "scope": 1773,
1288
+ "src": "1200:103:12",
1289
+ "stateMutability": "view",
1290
+ "virtual": false,
1291
+ "visibility": "public"
1292
+ }
1293
+ ],
1294
+ "scope": 1774,
1295
+ "src": "118:1187:12",
1296
+ "usedErrors": []
1297
+ }
1298
+ ],
1299
+ "src": "33:1273:12"
1300
+ },
1301
+ "functionHashes": {
1302
+ "createMarket(string,uint8)": "c2ca748b",
1303
+ "destroyMarket(uint32)": "94542cd6",
1304
+ "getNumMarkets()": "295c39a5"
1305
+ },
1306
+ "gasEstimates": {
1307
+ "creation": {
1308
+ "codeDepositCost": "2699800",
1309
+ "executionCost": "2930",
1310
+ "totalCost": "2702730"
1311
+ },
1312
+ "external": {
1313
+ "createMarket(string,uint8)": "infinite",
1314
+ "destroyMarket(uint32)": "32132",
1315
+ "getNumMarkets()": "2246"
1316
+ }
1317
+ }
1318
+ }