{
  "_format": "hh-sol-artifact-1",
  "contractName": "OracleEchidnaTest",
  "sourceName": "contracts/test/OracleEchidnaTest.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "by",
          "type": "uint32"
        }
      ],
      "name": "advanceTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "secondsAgo",
          "type": "uint32"
        }
      ],
      "name": "checkTimeWeightedAveragesAlwaysFitsType",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "index",
          "type": "uint16"
        }
      ],
      "name": "checkTwoAdjacentObservationsTickCumulativeModTimeElapsedAlways0",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "echidna_AlwaysInitialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "echidna_canAlwaysObserve0IfInitialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "echidna_cardinalityAlwaysLteNext",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "echidna_indexAlwaysLtCardinality",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "cardinality",
          "type": "uint16"
        }
      ],
      "name": "grow",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "time",
          "type": "uint32"
        },
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        },
        {
          "internalType": "uint128",
          "name": "liquidity",
          "type": "uint128"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "advanceTimeBy",
          "type": "uint32"
        },
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        },
        {
          "internalType": "uint128",
          "name": "liquidity",
          "type": "uint128"
        }
      ],
      "name": "update",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161001d9061005f565b604051809103906000f080158015610039573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691909117905561006c565b6115ec806111d783390190565b61115c8061007b6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063ae505b5211610076578063e9f71da91161005b578063e9f71da914610134578063f7fd2cfa14610147578063f7fe55101461015a576100be565b8063ae505b5214610124578063de3277391461012c576100be565b806391e2b63c116100a757806391e2b63c146100eb578063a958357614610109578063ae13714b1461011c576100be565b80634d50e016146100c3578063761eb23e146100d8575b600080fd5b6100d66100d1366004610f2a565b61016d565b005b6100d66100e6366004610ecf565b610233565b6100f3610298565b60405161010091906110a0565b60405180910390f35b6100d6610117366004610f0e565b6103b6565b6100f36105f0565b6100f361071e565b6100f361085d565b6100d6610142366004610ecf565b610977565b6100d6610155366004610f0e565b610c33565b6100d6610168366004610f2a565b610c6c565b6000546040805160608101825263ffffffff86168152600285900b60208201526fffffffffffffffffffffffffffffffff841681830152905163daf50f6b60e01b81526001600160a01b039092169163daf50f6b916101ce916004016110b4565b600060405180830381600087803b1580156101e857600080fd5b505af11580156101fc573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555050505050565b600054604051633b0f591f60e11b81526001600160a01b039091169063761eb23e906102639084906004016110c8565b600060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b5050505050565b6000805460405163252c09d760e01b815282916001600160a01b03169063252c09d7906102c99084906004016110ab565b60806040518083038186803b1580156102e157600080fd5b505afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610f8e565b935050505060008054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b15801561036a57600080fd5b505afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610ef2565b61ffff1615806103af5750805b9150505b90565b600054600160a01b900460ff166103cc57600080fd5b60008163ffffffff16116103df57600080fd5b604080516002808252606082018352600092602083019080368337019050509050818160008151811061040e57fe5b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061043757fe5b63ffffffff909216602092830291909101909101526000805460405163883bdbfd60e01b815282916001600160a01b03169063883bdbfd9061047d908690600401611056565b60006040518083038186803b15801561049557600080fd5b505afa1580156104a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104d19190810190610e0e565b915091506000826000815181106104e457fe5b6020026020010151836001815181106104f957fe5b602002602001015103905060008563ffffffff1660060b8260060b8161051b57fe5b05905060008260060b12801561054857508563ffffffff1660060b8260060b8161054157fe5b0760060b15155b1561055257600019015b627fffff600682900b138015906105715750627fffff19600682900b12155b61057757fe5b600060208460008151811061058857fe5b60200260200101518560018151811061059d57fe5b6020026020010151036001600160a01b0316901b6001600160a01b0380168863ffffffff1602816105ca57fe5b0490506fffffffffffffffffffffffffffffffff8111156105e757fe5b50505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106779190610ef2565b61ffff1660008054906101000a90046001600160a01b03166001600160a01b0316632986c0e56040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c757600080fd5b505afa1580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190610ef2565b61ffff1610806107195750600054600160a01b900460ff16155b905090565b60008054600160a01b900460ff16610738575060016103b3565b6040805160018082528183019092526000916020808301908036833701905050905060008160008151811061076957fe5b63ffffffff90921660209283029190910190910152600080546040516001600160a01b039091169063883bdbfd60e01b906107a8908590602401611056565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610813919061101d565b600060405180830381855afa9150503d806000811461084e576040519150601f19603f3d011682016040523d82523d6000602084013e610853565b606091505b5090935050505090565b60008060009054906101000a90046001600160a01b03166001600160a01b031663dd158c186040518163ffffffff1660e01b815260040160206040518083038186803b1580156108ac57600080fd5b505afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e49190610ef2565b61ffff1660008054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b15801561093457600080fd5b505afa158015610948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096c9190610ef2565b61ffff161115905090565b60008060009054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190610ef2565b90508061ffff168261ffff16108015610aad575060005460408051632986c0e560e01b8152905161ffff8416926001600160a01b031691632986c0e5916004808301926020929190829003018186803b158015610a5a57600080fd5b505afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190610ef2565b60010161ffff1681610aa057fe5b0661ffff168261ffff1614155b610ab657600080fd5b60008054819081906001600160a01b031663252c09d761ffff871615610adf5760018703610ae4565b600186035b6040518263ffffffff1660e01b8152600401610b0091906110c8565b60806040518083038186803b158015610b1857600080fd5b505afa158015610b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b509190610f8e565b6000805460405163252c09d760e01b81529598509396509094509283928392506001600160a01b03169063252c09d790610b8e908b906004016110c8565b60806040518083038186803b158015610ba657600080fd5b505afa158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bde9190610f8e565b9350509250925083610bef57600080fd5b80610bf957600080fd5b85830363ffffffff8116610c0957fe5b8063ffffffff1686840360060b81610c1d57fe5b0760060b15610c2857fe5b505050505050505050565b610c3c81610d04565b600054604051637bfe967d60e11b81526001600160a01b039091169063f7fd2cfa906102639084906004016110d7565b610c7583610d04565b6000546040805160608101825263ffffffff86168152600285900b60208201526fffffffffffffffffffffffffffffffff84168183015290516365829dc560e01b81526001600160a01b03909216916365829dc591610cd6916004016110b4565b600060405180830381600087803b158015610cf057600080fd5b505af11580156105e7573d6000803e3d6000fd5b60005463ffffffff600160a81b90910481168281019091161015610d2757600080fd5b6000805463ffffffff600160a81b8083048216909401169092027fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082601f830112610d7d578081fd5b81516020610d92610d8d8361110c565b6110e8565b8281528181019085830183850287018401881015610dae578586fd5b855b85811015610dd357610dc182610df7565b84529284019290840190600101610db0565b5090979650505050505050565b8051600681900b8114610df257600080fd5b919050565b80516001600160a01b0381168114610df257600080fd5b60008060408385031215610e20578182fd5b825167ffffffffffffffff80821115610e37578384fd5b818501915085601f830112610e4a578384fd5b81516020610e5a610d8d8361110c565b82815281810190858301838502870184018b1015610e76578889fd5b8896505b84871015610e9f57610e8b81610de0565b835260019690960195918301918301610e7a565b5091880151919650909350505080821115610eb8578283fd5b50610ec585828601610d6d565b9150509250929050565b600060208284031215610ee0578081fd5b8135610eeb8161112a565b9392505050565b600060208284031215610f03578081fd5b8151610eeb8161112a565b600060208284031215610f1f578081fd5b8135610eeb8161113d565b600080600060608486031215610f3e578081fd5b8335610f498161113d565b92506020840135600281900b8114610f5f578182fd5b915060408401356fffffffffffffffffffffffffffffffff81168114610f83578182fd5b809150509250925092565b60008060008060808587031215610fa3578081fd5b8451610fae8161113d565b9350610fbc60208601610de0565b9250610fca60408601610df7565b915060608501518015158114610fde578182fd5b939692955090935050565b805163ffffffff16825260208082015160020b908301526040908101516fffffffffffffffffffffffffffffffff16910152565b60008251815b8181101561103d5760208186018101518583015201611023565b8181111561104b5782828501525b509190910192915050565b6020808252825182820181905260009190848201906040850190845b8181101561109457835163ffffffff1683529284019291840191600101611072565b50909695505050505050565b901515815260200190565b90815260200190565b606081016110c28284610fe9565b92915050565b61ffff91909116815260200190565b63ffffffff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561110457fe5b604052919050565b600067ffffffffffffffff82111561112057fe5b5060209081020190565b61ffff8116811461113a57600080fd5b50565b63ffffffff8116811461113a57600080fdfea164736f6c6343000706000a608060405234801561001057600080fd5b506115cc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063761eb23e1161008c578063daf50f6b11610066578063daf50f6b146101eb578063dbffe9ad146101fe578063dd158c1814610206578063f7fd2cfa1461020e576100ea565b8063761eb23e146101a4578063883bdbfd146101b7578063d81740db146101d8576100ea565b80632986c0e5116100c85780632986c0e5146101455780633eaf5d9f1461015a57806365829dc51461016f57806374e69cef14610184576100ea565b806316ada547146100ef5780631a6865021461010d578063252c09d714610122575b600080fd5b6100f7610221565b604051610104919061157d565b60405180910390f35b61011561022e565b6040516101049190611551565b61013561013036600461144a565b610245565b604051610104949392919061158e565b61014d61028b565b6040516101049190611565565b61016261029b565b604051610104919061150c565b61018261017d3660046113e6565b6102ad565b005b610197610192366004611368565b6103bd565b6040516101049190611574565b6101826101b2366004611428565b610458565b6101ca6101c5366004611368565b610493565b604051610104929190611486565b6101826101e63660046112f8565b610527565b6101826101f93660046113e6565b6106ad565b61014d6107db565b61014d6107eb565b61018261021c366004611462565b6107fb565b61ffff5463ffffffff1681565b61ffff54600160381b90046001600160801b031681565b60008161ffff811061025657600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b61ffff8054600160b81b90041681565b61ffff54640100000000900460020b81565b6102bd61021c6020830183611462565b61ffff805461031491600091600160b81b810482169163ffffffff80831692640100000000810460020b926001600160801b03600160381b83041692600160c81b8304821692600160d81b90049091169061081d16565b61ffff8054928116600160b81b0261ffff60b81b19928216600160c81b0261ffff60c81b19909416939093179190911691909117905561035a60408201602083016113c5565b61ffff805460029290920b62ffffff166401000000000266ffffff00000000199092169190911790556103936060820160408301611401565b61ffff60076101000a8154816001600160801b0302191690836001600160801b0316021790555050565b61ffff805460009163ffffffff821691640100000000810460020b916001600160801b03600160381b83041691600160b81b900416845a905061044885898980806020026020016040519081016040528093929190818152602001838360200280828437600092018290525061ffff805491969594508b93508992508a91600160c81b9004166109d3565b50505a9003979650505050505050565b61ffff805461047291600091600160d81b90041683610b2d565b61ffff8054918116600160d81b0261ffff60d81b1990921691909117905550565b60608061051c61ffff60009054906101000a900463ffffffff16858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525061ffff80549196959450640100000000820460020b9350600160b81b8204811692506001600160801b03600160381b83041691600160c81b9004166109d3565b915091509250929050565b61ffff8054640100000000810460020b916001600160801b03600160381b83041691600160b81b8104821691600160c81b8204811691600160d81b81049091169063ffffffff1660005b878110156106085788888281811061058557fe5b61059b9260206060909202019081019150611462565b909101906105af600086848a8a898961081d565b90955093508888828181106105c057fe5b90506060020160200160208101906105d891906113c5565b96508888828181106105e657fe5b90506060020160400160208101906105fe9190611401565b9550600101610571565b5061ffff805463ffffffff90921663ffffffff19948216600160c81b0261ffff60c81b19968316600160b81b0261ffff60b81b196001600160801b03909916600160381b0276ffffffffffffffffffffffffffffffff000000000000001960029b909b0b62ffffff166401000000000266ffffff0000000019909616959095179990991693909317969096169690961793909316929092171691909117909155505050565b61ffff8054600160c81b900416156106e05760405162461bcd60e51b81526004016106d79061151a565b60405180910390fd5b6106ed6020820182611462565b61ffff805463ffffffff191663ffffffff9290921691909117905561071860408201602083016113c5565b61ffff805460029290920b62ffffff166401000000000266ffffff00000000199092169190911790556107516060820160408301611401565b61ffff80546001600160801b0392909216600160381b0276ffffffffffffffffffffffffffffffff00000000000000199092169190911790556107a261079a6020830183611462565b600090610bd3565b61ffff8054928116600160c81b0261ffff60c81b19928216600160d81b0261ffff60d81b19909416939093179190911691909117905550565b61ffff8054600160c81b90041681565b61ffff8054600160d81b90041681565b61ffff805463ffffffff19811663ffffffff9182169390930116919091179055565b6000806000898961ffff1661ffff811061083357fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff1615156060830152909250891614156108a357888592509250506109c7565b8461ffff168461ffff161180156108c457506001850361ffff168961ffff16145b156108d1578391506108d5565b8491505b8161ffff168960010161ffff16816108e957fe5b0692506108f881898989610c1f565b8a8461ffff1661ffff811061090957fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff19909516949094179590951692909217169290921792909216179055505b97509795505050505050565b60608060008361ffff1611610a13576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff81118015610a2b57600080fd5b50604051908082528060200260200182016040528015610a55578160200160208202803683370190505b509150865167ffffffffffffffff81118015610a7057600080fd5b50604051908082528060200260200182016040528015610a9a578160200160208202803683370190505b50905060005b8751811015610b2057610acb8a8a8a8481518110610aba57fe5b60200260200101518a8a8a8a610ccf565b848381518110610ad757fe5b60200260200101848481518110610aea57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050610aa0565b5097509795505050505050565b6000808361ffff1611610b6b576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611610b81575081610bcc565b825b8261ffff168161ffff161015610bc7576001858261ffff1661ffff8110610ba657fe5b01805463ffffffff191663ffffffff92909216919091179055600101610b83565b508190505b9392505050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b610c276112ba565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b031611610c7b576001610c7d565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b1681610ca857fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b60008063ffffffff8716610d76576000898661ffff1661ffff8110610cf057fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a1614610d6257610d5f818a8988610c1f565b90505b8060200151816040015192509250506109c7565b868803600080610d8b8c8c858c8c8c8c610e5a565b91509150816000015163ffffffff168363ffffffff161415610dbd5781602001518260400151945094505050506109c7565b805163ffffffff84811691161415610de55780602001518160400151945094505050506109c7565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b81610e1357fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b03160281610e4557fe5b048560400151019650965050505050506109c7565b610e626112ba565b610e6a6112ba565b888561ffff1661ffff8110610e7b57fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff16151560608201529250610ee090899089611057565b15610f18578663ffffffff16826000015163ffffffff161415610f02576109c7565b81610f0f83898988610c1f565b915091506109c7565b888361ffff168660010161ffff1681610f2d57fe5b0661ffff1661ffff8110610f3d57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250610ff457604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b61100388836000015189611057565b61103a576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b611047898989888761111a565b9150915097509795505050505050565b60008363ffffffff168363ffffffff161115801561108157508363ffffffff168263ffffffff1611155b1561109d578163ffffffff168363ffffffff1611159050610bcc565b60008463ffffffff168463ffffffff16116110c5578363ffffffff16640100000000016110cd565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff16116110fe578363ffffffff1664010000000001611106565b8363ffffffff165b64ffffffffff169091111595945050505050565b6111226112ba565b61112a6112ba565b60008361ffff168560010161ffff168161114057fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff8716828161116d57fe5b0661ffff811061117957fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082018190529095506111e457806001019250611158565b898661ffff1682600101816111f557fe5b0661ffff811061120157fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820152855190945060009061126c908b908b611057565b905080801561128557506112858a8a8760000151611057565b1561129057506112ad565b806112a0576001820392506112a7565b8160010193505b50611158565b5050509550959350505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6000606082840312156112f2578081fd5b50919050565b6000806020838503121561130a578182fd5b823567ffffffffffffffff80821115611321578384fd5b818501915085601f830112611334578384fd5b813581811115611342578485fd5b866020606083028501011115611356578485fd5b60209290920196919550909350505050565b6000806020838503121561137a578182fd5b823567ffffffffffffffff80821115611391578384fd5b818501915085601f8301126113a4578384fd5b8135818111156113b2578485fd5b8660208083028501011115611356578485fd5b6000602082840312156113d6578081fd5b81358060020b8114610bcc578182fd5b6000606082840312156113f7578081fd5b610bcc83836112e1565b600060208284031215611412578081fd5b81356001600160801b0381168114610bcc578182fd5b600060208284031215611439578081fd5b813561ffff81168114610bcc578182fd5b60006020828403121561145b578081fd5b5035919050565b600060208284031215611473578081fd5b813563ffffffff81168114610bcc578182fd5b604080825283519082018190526000906020906060840190828701845b828110156114c257815160060b845292840192908401906001016114a3565b50505083810382850152845180825285830191830190845b818110156114ff5783516001600160a01b0316835292840192918401916001016114da565b5090979650505050505050565b60029190910b815260200190565b60208082526013908201527f616c726561647920696e697469616c697a656400000000000000000000000000604082015260600190565b6001600160801b0391909116815260200190565b61ffff91909116815260200190565b90815260200190565b63ffffffff91909116815260200190565b63ffffffff94909416845260069290920b60208401526001600160a01b03166040830152151560608201526080019056fea164736f6c6343000706000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063ae505b5211610076578063e9f71da91161005b578063e9f71da914610134578063f7fd2cfa14610147578063f7fe55101461015a576100be565b8063ae505b5214610124578063de3277391461012c576100be565b806391e2b63c116100a757806391e2b63c146100eb578063a958357614610109578063ae13714b1461011c576100be565b80634d50e016146100c3578063761eb23e146100d8575b600080fd5b6100d66100d1366004610f2a565b61016d565b005b6100d66100e6366004610ecf565b610233565b6100f3610298565b60405161010091906110a0565b60405180910390f35b6100d6610117366004610f0e565b6103b6565b6100f36105f0565b6100f361071e565b6100f361085d565b6100d6610142366004610ecf565b610977565b6100d6610155366004610f0e565b610c33565b6100d6610168366004610f2a565b610c6c565b6000546040805160608101825263ffffffff86168152600285900b60208201526fffffffffffffffffffffffffffffffff841681830152905163daf50f6b60e01b81526001600160a01b039092169163daf50f6b916101ce916004016110b4565b600060405180830381600087803b1580156101e857600080fd5b505af11580156101fc573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555050505050565b600054604051633b0f591f60e11b81526001600160a01b039091169063761eb23e906102639084906004016110c8565b600060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b5050505050565b6000805460405163252c09d760e01b815282916001600160a01b03169063252c09d7906102c99084906004016110ab565b60806040518083038186803b1580156102e157600080fd5b505afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610f8e565b935050505060008054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b15801561036a57600080fd5b505afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610ef2565b61ffff1615806103af5750805b9150505b90565b600054600160a01b900460ff166103cc57600080fd5b60008163ffffffff16116103df57600080fd5b604080516002808252606082018352600092602083019080368337019050509050818160008151811061040e57fe5b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061043757fe5b63ffffffff909216602092830291909101909101526000805460405163883bdbfd60e01b815282916001600160a01b03169063883bdbfd9061047d908690600401611056565b60006040518083038186803b15801561049557600080fd5b505afa1580156104a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104d19190810190610e0e565b915091506000826000815181106104e457fe5b6020026020010151836001815181106104f957fe5b602002602001015103905060008563ffffffff1660060b8260060b8161051b57fe5b05905060008260060b12801561054857508563ffffffff1660060b8260060b8161054157fe5b0760060b15155b1561055257600019015b627fffff600682900b138015906105715750627fffff19600682900b12155b61057757fe5b600060208460008151811061058857fe5b60200260200101518560018151811061059d57fe5b6020026020010151036001600160a01b0316901b6001600160a01b0380168863ffffffff1602816105ca57fe5b0490506fffffffffffffffffffffffffffffffff8111156105e757fe5b50505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106779190610ef2565b61ffff1660008054906101000a90046001600160a01b03166001600160a01b0316632986c0e56040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c757600080fd5b505afa1580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190610ef2565b61ffff1610806107195750600054600160a01b900460ff16155b905090565b60008054600160a01b900460ff16610738575060016103b3565b6040805160018082528183019092526000916020808301908036833701905050905060008160008151811061076957fe5b63ffffffff90921660209283029190910190910152600080546040516001600160a01b039091169063883bdbfd60e01b906107a8908590602401611056565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610813919061101d565b600060405180830381855afa9150503d806000811461084e576040519150601f19603f3d011682016040523d82523d6000602084013e610853565b606091505b5090935050505090565b60008060009054906101000a90046001600160a01b03166001600160a01b031663dd158c186040518163ffffffff1660e01b815260040160206040518083038186803b1580156108ac57600080fd5b505afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e49190610ef2565b61ffff1660008054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b15801561093457600080fd5b505afa158015610948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096c9190610ef2565b61ffff161115905090565b60008060009054906101000a90046001600160a01b03166001600160a01b031663dbffe9ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190610ef2565b90508061ffff168261ffff16108015610aad575060005460408051632986c0e560e01b8152905161ffff8416926001600160a01b031691632986c0e5916004808301926020929190829003018186803b158015610a5a57600080fd5b505afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190610ef2565b60010161ffff1681610aa057fe5b0661ffff168261ffff1614155b610ab657600080fd5b60008054819081906001600160a01b031663252c09d761ffff871615610adf5760018703610ae4565b600186035b6040518263ffffffff1660e01b8152600401610b0091906110c8565b60806040518083038186803b158015610b1857600080fd5b505afa158015610b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b509190610f8e565b6000805460405163252c09d760e01b81529598509396509094509283928392506001600160a01b03169063252c09d790610b8e908b906004016110c8565b60806040518083038186803b158015610ba657600080fd5b505afa158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bde9190610f8e565b9350509250925083610bef57600080fd5b80610bf957600080fd5b85830363ffffffff8116610c0957fe5b8063ffffffff1686840360060b81610c1d57fe5b0760060b15610c2857fe5b505050505050505050565b610c3c81610d04565b600054604051637bfe967d60e11b81526001600160a01b039091169063f7fd2cfa906102639084906004016110d7565b610c7583610d04565b6000546040805160608101825263ffffffff86168152600285900b60208201526fffffffffffffffffffffffffffffffff84168183015290516365829dc560e01b81526001600160a01b03909216916365829dc591610cd6916004016110b4565b600060405180830381600087803b158015610cf057600080fd5b505af11580156105e7573d6000803e3d6000fd5b60005463ffffffff600160a81b90910481168281019091161015610d2757600080fd5b6000805463ffffffff600160a81b8083048216909401169092027fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082601f830112610d7d578081fd5b81516020610d92610d8d8361110c565b6110e8565b8281528181019085830183850287018401881015610dae578586fd5b855b85811015610dd357610dc182610df7565b84529284019290840190600101610db0565b5090979650505050505050565b8051600681900b8114610df257600080fd5b919050565b80516001600160a01b0381168114610df257600080fd5b60008060408385031215610e20578182fd5b825167ffffffffffffffff80821115610e37578384fd5b818501915085601f830112610e4a578384fd5b81516020610e5a610d8d8361110c565b82815281810190858301838502870184018b1015610e76578889fd5b8896505b84871015610e9f57610e8b81610de0565b835260019690960195918301918301610e7a565b5091880151919650909350505080821115610eb8578283fd5b50610ec585828601610d6d565b9150509250929050565b600060208284031215610ee0578081fd5b8135610eeb8161112a565b9392505050565b600060208284031215610f03578081fd5b8151610eeb8161112a565b600060208284031215610f1f578081fd5b8135610eeb8161113d565b600080600060608486031215610f3e578081fd5b8335610f498161113d565b92506020840135600281900b8114610f5f578182fd5b915060408401356fffffffffffffffffffffffffffffffff81168114610f83578182fd5b809150509250925092565b60008060008060808587031215610fa3578081fd5b8451610fae8161113d565b9350610fbc60208601610de0565b9250610fca60408601610df7565b915060608501518015158114610fde578182fd5b939692955090935050565b805163ffffffff16825260208082015160020b908301526040908101516fffffffffffffffffffffffffffffffff16910152565b60008251815b8181101561103d5760208186018101518583015201611023565b8181111561104b5782828501525b509190910192915050565b6020808252825182820181905260009190848201906040850190845b8181101561109457835163ffffffff1683529284019291840191600101611072565b50909695505050505050565b901515815260200190565b90815260200190565b606081016110c28284610fe9565b92915050565b61ffff91909116815260200190565b63ffffffff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561110457fe5b604052919050565b600067ffffffffffffffff82111561112057fe5b5060209081020190565b61ffff8116811461113a57600080fd5b50565b63ffffffff8116811461113a57600080fdfea164736f6c6343000706000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
