{
    "_format": "hh-sol-artifact-1",
    "contractName": "L2Vesting",
    "sourceName": "contracts/l2/L2Vesting.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "allocation",
                    "type": "uint256"
                }
            ],
            "name": "VestingAllocated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "VestingClaimed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "lockPeriod",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "vestingPeriod",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "initialUnlock",
                    "type": "uint256"
                }
            ],
            "name": "VestingPlanAdded",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_lockPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_vestingPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_initialUnlock",
                    "type": "uint256"
                }
            ],
            "name": "addVestingPlan",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "allocations",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256[]",
                    "name": "_planIds",
                    "type": "uint256[]"
                },
                {
                    "internalType": "address[]",
                    "name": "_addrs",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_allocations",
                    "type": "uint256[]"
                }
            ],
            "name": "batchAllocateVesting",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                }
            ],
            "name": "claim",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "claimFor",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                }
            ],
            "name": "claimableAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "claimed",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "_settings",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "plans",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "lockPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "vestingPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "initialUnlock",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "startDate",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "totalAllocation",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "totalClaimed",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "plansLength",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "_settings",
                    "type": "address"
                }
            ],
            "name": "setSettings",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "settings",
            "outputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_planId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_vestingStartDate",
                    "type": "uint256"
                }
            ],
            "name": "startVesting",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                }
            ],
            "name": "unlockedAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "withdrawAllByAdmin",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b506114b1806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063a01d3c2c116100a2578063c4d66de811610071578063c4d66de814610275578063e06174e414610288578063f2ab3a5a1461029b578063f2fde38b146102ae578063f311df8e146102c157600080fd5b8063a01d3c2c146101fc578063b16206161461020f578063bf85e6281461024f578063c0b793e71461026257600080fd5b80632e4313c4116100e95780632e4313c4146101a1578063379607f5146101b4578063715018a6146101c75780638da5cb5b146101cf57806394a368d2146101f457600080fd5b806310ee3f001461011b578063120aa877146101305780631c3a964f1461016e57806326837aa814610199575b600080fd5b61012e610129366004611161565b6102d4565b005b61015b61013e366004611161565b606860209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61015b61017c366004611161565b606760209081526000928352604080842090915290825290205481565b60665461015b565b61012e6101af3660046111dd565b6102e2565b61012e6101c2366004611277565b61047e565b61012e61048b565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610165565b61012e61049f565b61012e61020a366004611290565b6105cd565b61022261021d366004611277565b6105f7565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610165565b61012e61025d3660046112ad565b61063d565b61012e6102703660046112cf565b610672565b61012e610283366004611290565b6107fe565b6065546101dc906001600160a01b031681565b61015b6102a9366004611161565b61092a565b61012e6102bc366004611290565b610b4a565b61015b6102cf366004611161565b610bc0565b6102de8282610bd3565b5050565b6102ea610e8b565b826103295760405162461bcd60e51b8152600401610320906020808252600490820152635630303560e01b604082015260600190565b60405180910390fd5b8281146103615760405162461bcd60e51b8152600401610320906020808252600490820152632b18181b60e11b604082015260600190565b8285146103995760405162461bcd60e51b8152600401610320906020808252600490820152632b18181b60e11b604082015260600190565b60005b83811015610475576104058585838181106103b9576103b96112fb565b90506020020160208101906103ce9190611290565b8888848181106103e0576103e06112fb565b905060200201358585858181106103f9576103f96112fb565b90506020020135610ee5565b828282818110610417576104176112fb565b905060200201356066888884818110610432576104326112fb565b9050602002013581548110610449576104496112fb565b60009182526020909120600460069092020101805490910190558061046d81611327565b91505061039c565b50505050505050565b6104888133610bd3565b50565b610493610e8b565b61049d600061100f565b565b6104a7610e8b565b60006104b1611061565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611340565b9050610525611061565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b03919091169063a9059cbb906044016020604051808303816000875af1158015610574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105989190611359565b6104885760405162461bcd60e51b8152600401610320906020808252600490820152630ac6060760e31b604082015260600190565b6105d5610e8b565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6066818154811061060757600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395509193909286565b610645610e8b565b8060668381548110610659576106596112fb565b9060005260206000209060060201600301819055505050565b61067a610e8b565b6040805160c081018252848152602081018481529181018381526000606083018181526080840182815260a0850183815260668054600180820183559582905296517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435460069098029788015596517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435587015593517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435686015590517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94357850155517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435884015590517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943599092019190915590547fca5df404991e1c363c1fc3388c80b7ef8238e1c7ce3100ccf9e311af8f5e38a8916107d49161137b565b604080519182526020820186905281018490526060810183905260800160405180910390a1505050565b600054610100900460ff161580801561081e5750600054600160ff909116105b806108385750303b158015610838575060005460ff166001145b61089b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610320565b6000805460ff1916600117905580156108be576000805461ff0019166101001790555b6108c66110d8565b606580546001600160a01b0319166001600160a01b03841617905580156102de576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008060668481548110610940576109406112fb565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082018190526004830154608083015260059092015460a082015291508015806109c6575060008581526067602090815260408083206001600160a01b0388168452909152902054155b156109d657600092505050610b44565b81516000906109e59083611392565b90508042116109fa5760009350505050610b44565b6000836020015182610a0c9190611392565b9050836020015160001480610a2057508042115b15610a725760008781526068602090815260408083206001600160a01b038a16808552908352818420548b855260678452828520918552925290912054610a67919061137b565b945050505050610b44565b6000610a7e834261137b565b60008981526067602090815260408083206001600160a01b038c16845290915280822054908801519293509091610ab59190611107565b60008a81526067602090815260408083206001600160a01b038d16845290915281205491925090610ae790839061137b565b60008b81526068602090815260408083206001600160a01b038e1684528252909120549089015191925090610b1c85846113aa565b610b2691906113c9565b610b309084611392565b610b3a919061137b565b9750505050505050505b92915050565b610b52610e8b565b6001600160a01b038116610bb75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610320565b6104888161100f565b6000610bcc838361092a565b9392505050565b6066548210610c0d5760405162461bcd60e51b8152600401610320906020808252600490820152635630313360e01b604082015260600190565b60008281526067602090815260408083206001600160a01b03851684529091528120549003610c675760405162461bcd60e51b8152600401610320906020808252600490820152635630313160e01b604082015260600190565b6000610c738383610bc0565b905060008111610cae5760405162461bcd60e51b8152600401610320906020808252600490820152632b18189960e11b604082015260600190565b60008381526068602090815260408083206001600160a01b038616845290915281208054839290610ce0908490611392565b925050819055508060668481548110610cfb57610cfb6112fb565b90600052602060002090600602016005016000828254610d1b9190611392565b909155505060008381526067602090815260408083206001600160a01b03861680855290835281842054878552606884528285209185529252909120541115610d8f5760405162461bcd60e51b8152600401610320906020808252600490820152632b18189960e11b604082015260600190565b610d97611061565b60405163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af1158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c9190611359565b610e415760405162461bcd60e51b8152600401610320906020808252600490820152630ac6060760e31b604082015260600190565b60408051848152602081018390526001600160a01b038416917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172191015b60405180910390a2505050565b6033546001600160a01b0316331461049d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610320565b6001600160a01b038316610f245760405162461bcd60e51b8152600401610320906020808252600490820152632b18181960e11b604082015260600190565b60008111610f5d5760405162461bcd60e51b815260040161032090602080825260049082015263158c0c0d60e21b604082015260600190565b6066548210610f975760405162461bcd60e51b8152600401610320906020808252600490820152635630313360e01b604082015260600190565b60008281526067602090815260408083206001600160a01b038716845290915281208054839290610fc9908490611392565b909155505060408051838152602081018390526001600160a01b038516917f6b467f0a76daac5283d2251b6e7660fed01ea99dbd70aa7092f3318731690c9d9101610e7e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906110929084906004016113eb565b602060405180830381865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190611413565b905090565b600054610100900460ff166110ff5760405162461bcd60e51b815260040161032090611430565b61049d61111c565b60008183116111165782610bcc565b50919050565b600054610100900460ff166111435760405162461bcd60e51b815260040161032090611430565b61049d3361100f565b6001600160a01b038116811461048857600080fd5b6000806040838503121561117457600080fd5b8235915060208301356111868161114c565b809150509250929050565b60008083601f8401126111a357600080fd5b50813567ffffffffffffffff8111156111bb57600080fd5b6020830191508360208260051b85010111156111d657600080fd5b9250929050565b600080600080600080606087890312156111f657600080fd5b863567ffffffffffffffff8082111561120e57600080fd5b61121a8a838b01611191565b9098509650602089013591508082111561123357600080fd5b61123f8a838b01611191565b9096509450604089013591508082111561125857600080fd5b5061126589828a01611191565b979a9699509497509295939492505050565b60006020828403121561128957600080fd5b5035919050565b6000602082840312156112a257600080fd5b8135610bcc8161114c565b600080604083850312156112c057600080fd5b50508035926020909101359150565b6000806000606084860312156112e457600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161133957611339611311565b5060010190565b60006020828403121561135257600080fd5b5051919050565b60006020828403121561136b57600080fd5b81518015158114610bcc57600080fd5b60008282101561138d5761138d611311565b500390565b600082198211156113a5576113a5611311565b500190565b60008160001904831182151516156113c4576113c4611311565b500290565b6000826113e657634e487b7160e01b600052601260045260246000fd5b500490565b602081016015831061140d57634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561142557600080fd5b8151610bcc8161114c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220400b90c3e84f309bb00fffb8179271d35c2a617b0e41c64acf7763faea98d5b064736f6c634300080f0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063a01d3c2c116100a2578063c4d66de811610071578063c4d66de814610275578063e06174e414610288578063f2ab3a5a1461029b578063f2fde38b146102ae578063f311df8e146102c157600080fd5b8063a01d3c2c146101fc578063b16206161461020f578063bf85e6281461024f578063c0b793e71461026257600080fd5b80632e4313c4116100e95780632e4313c4146101a1578063379607f5146101b4578063715018a6146101c75780638da5cb5b146101cf57806394a368d2146101f457600080fd5b806310ee3f001461011b578063120aa877146101305780631c3a964f1461016e57806326837aa814610199575b600080fd5b61012e610129366004611161565b6102d4565b005b61015b61013e366004611161565b606860209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61015b61017c366004611161565b606760209081526000928352604080842090915290825290205481565b60665461015b565b61012e6101af3660046111dd565b6102e2565b61012e6101c2366004611277565b61047e565b61012e61048b565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610165565b61012e61049f565b61012e61020a366004611290565b6105cd565b61022261021d366004611277565b6105f7565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610165565b61012e61025d3660046112ad565b61063d565b61012e6102703660046112cf565b610672565b61012e610283366004611290565b6107fe565b6065546101dc906001600160a01b031681565b61015b6102a9366004611161565b61092a565b61012e6102bc366004611290565b610b4a565b61015b6102cf366004611161565b610bc0565b6102de8282610bd3565b5050565b6102ea610e8b565b826103295760405162461bcd60e51b8152600401610320906020808252600490820152635630303560e01b604082015260600190565b60405180910390fd5b8281146103615760405162461bcd60e51b8152600401610320906020808252600490820152632b18181b60e11b604082015260600190565b8285146103995760405162461bcd60e51b8152600401610320906020808252600490820152632b18181b60e11b604082015260600190565b60005b83811015610475576104058585838181106103b9576103b96112fb565b90506020020160208101906103ce9190611290565b8888848181106103e0576103e06112fb565b905060200201358585858181106103f9576103f96112fb565b90506020020135610ee5565b828282818110610417576104176112fb565b905060200201356066888884818110610432576104326112fb565b9050602002013581548110610449576104496112fb565b60009182526020909120600460069092020101805490910190558061046d81611327565b91505061039c565b50505050505050565b6104888133610bd3565b50565b610493610e8b565b61049d600061100f565b565b6104a7610e8b565b60006104b1611061565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051b9190611340565b9050610525611061565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b03919091169063a9059cbb906044016020604051808303816000875af1158015610574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105989190611359565b6104885760405162461bcd60e51b8152600401610320906020808252600490820152630ac6060760e31b604082015260600190565b6105d5610e8b565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6066818154811061060757600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395509193909286565b610645610e8b565b8060668381548110610659576106596112fb565b9060005260206000209060060201600301819055505050565b61067a610e8b565b6040805160c081018252848152602081018481529181018381526000606083018181526080840182815260a0850183815260668054600180820183559582905296517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435460069098029788015596517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435587015593517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435686015590517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94357850155517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435884015590517f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943599092019190915590547fca5df404991e1c363c1fc3388c80b7ef8238e1c7ce3100ccf9e311af8f5e38a8916107d49161137b565b604080519182526020820186905281018490526060810183905260800160405180910390a1505050565b600054610100900460ff161580801561081e5750600054600160ff909116105b806108385750303b158015610838575060005460ff166001145b61089b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610320565b6000805460ff1916600117905580156108be576000805461ff0019166101001790555b6108c66110d8565b606580546001600160a01b0319166001600160a01b03841617905580156102de576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008060668481548110610940576109406112fb565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082018190526004830154608083015260059092015460a082015291508015806109c6575060008581526067602090815260408083206001600160a01b0388168452909152902054155b156109d657600092505050610b44565b81516000906109e59083611392565b90508042116109fa5760009350505050610b44565b6000836020015182610a0c9190611392565b9050836020015160001480610a2057508042115b15610a725760008781526068602090815260408083206001600160a01b038a16808552908352818420548b855260678452828520918552925290912054610a67919061137b565b945050505050610b44565b6000610a7e834261137b565b60008981526067602090815260408083206001600160a01b038c16845290915280822054908801519293509091610ab59190611107565b60008a81526067602090815260408083206001600160a01b038d16845290915281205491925090610ae790839061137b565b60008b81526068602090815260408083206001600160a01b038e1684528252909120549089015191925090610b1c85846113aa565b610b2691906113c9565b610b309084611392565b610b3a919061137b565b9750505050505050505b92915050565b610b52610e8b565b6001600160a01b038116610bb75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610320565b6104888161100f565b6000610bcc838361092a565b9392505050565b6066548210610c0d5760405162461bcd60e51b8152600401610320906020808252600490820152635630313360e01b604082015260600190565b60008281526067602090815260408083206001600160a01b03851684529091528120549003610c675760405162461bcd60e51b8152600401610320906020808252600490820152635630313160e01b604082015260600190565b6000610c738383610bc0565b905060008111610cae5760405162461bcd60e51b8152600401610320906020808252600490820152632b18189960e11b604082015260600190565b60008381526068602090815260408083206001600160a01b038616845290915281208054839290610ce0908490611392565b925050819055508060668481548110610cfb57610cfb6112fb565b90600052602060002090600602016005016000828254610d1b9190611392565b909155505060008381526067602090815260408083206001600160a01b03861680855290835281842054878552606884528285209185529252909120541115610d8f5760405162461bcd60e51b8152600401610320906020808252600490820152632b18189960e11b604082015260600190565b610d97611061565b60405163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af1158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c9190611359565b610e415760405162461bcd60e51b8152600401610320906020808252600490820152630ac6060760e31b604082015260600190565b60408051848152602081018390526001600160a01b038416917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172191015b60405180910390a2505050565b6033546001600160a01b0316331461049d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610320565b6001600160a01b038316610f245760405162461bcd60e51b8152600401610320906020808252600490820152632b18181960e11b604082015260600190565b60008111610f5d5760405162461bcd60e51b815260040161032090602080825260049082015263158c0c0d60e21b604082015260600190565b6066548210610f975760405162461bcd60e51b8152600401610320906020808252600490820152635630313360e01b604082015260600190565b60008281526067602090815260408083206001600160a01b038716845290915281208054839290610fc9908490611392565b909155505060408051838152602081018390526001600160a01b038516917f6b467f0a76daac5283d2251b6e7660fed01ea99dbd70aa7092f3318731690c9d9101610e7e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906110929084906004016113eb565b602060405180830381865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190611413565b905090565b600054610100900460ff166110ff5760405162461bcd60e51b815260040161032090611430565b61049d61111c565b60008183116111165782610bcc565b50919050565b600054610100900460ff166111435760405162461bcd60e51b815260040161032090611430565b61049d3361100f565b6001600160a01b038116811461048857600080fd5b6000806040838503121561117457600080fd5b8235915060208301356111868161114c565b809150509250929050565b60008083601f8401126111a357600080fd5b50813567ffffffffffffffff8111156111bb57600080fd5b6020830191508360208260051b85010111156111d657600080fd5b9250929050565b600080600080600080606087890312156111f657600080fd5b863567ffffffffffffffff8082111561120e57600080fd5b61121a8a838b01611191565b9098509650602089013591508082111561123357600080fd5b61123f8a838b01611191565b9096509450604089013591508082111561125857600080fd5b5061126589828a01611191565b979a9699509497509295939492505050565b60006020828403121561128957600080fd5b5035919050565b6000602082840312156112a257600080fd5b8135610bcc8161114c565b600080604083850312156112c057600080fd5b50508035926020909101359150565b6000806000606084860312156112e457600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161133957611339611311565b5060010190565b60006020828403121561135257600080fd5b5051919050565b60006020828403121561136b57600080fd5b81518015158114610bcc57600080fd5b60008282101561138d5761138d611311565b500390565b600082198211156113a5576113a5611311565b500190565b60008160001904831182151516156113c4576113c4611311565b500290565b6000826113e657634e487b7160e01b600052601260045260246000fd5b500490565b602081016015831061140d57634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561142557600080fd5b8151610bcc8161114c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220400b90c3e84f309bb00fffb8179271d35c2a617b0e41c64acf7763faea98d5b064736f6c634300080f0033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
