diff --git a/packages/contract-artifacts/contracts/NoteStream.ts b/packages/contract-artifacts/contracts/NoteStream.ts index bfe7aab..1b901da 100644 --- a/packages/contract-artifacts/contracts/NoteStream.ts +++ b/packages/contract-artifacts/contracts/NoteStream.ts @@ -242,9 +242,14 @@ export default { type: 'address', }, { - internalType: 'bytes32', - name: 'noteHash', - type: 'bytes32', + internalType: 'bytes', + name: 'proof', + type: 'bytes', + }, + { + internalType: 'bytes', + name: 'proofSignature', + type: 'bytes', }, { internalType: 'address', @@ -435,9 +440,9 @@ export default { }, ], bytecode: - '0x60806040523480156200001157600080fd5b506040516200290b3803806200290b833981810160405260208110156200003757600080fd5b50516200005f620000506001600160e01b03620000fb16565b6001600160e01b03620000ff16565b6001805461ffff19166101001790556001600160a01b038116620000ca576040805162461bcd60e51b815260206004820181905260248201527f41434520636f6e747261637420697320746865207a65726f2061646472657373604482015290519081900360640190fd5b600180546001600160a01b03909216620100000262010000600160b01b031990921691909117815560025562000247565b3390565b6200011a8160006200015160201b620021401790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6200016682826001600160e01b03620001de16565b15620001b9576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002275760405162461bcd60e51b8152600401808060200182810382526022815260200180620028e96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61269280620002576000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80635c975abb116100715780635c975abb146103035780636ef8d66d1461030b57806382dc1ec4146103135780638456cb5914610339578063894e9a0d14610341578063911ab96c146103a8576100a9565b80631468a5d4146100ae5780631e99d569146101e25780633bc9e403146101fc5780633f4ba83a146102d557806346fbf68e146102dd575b600080fd5b6101e0600480360360808110156100c457600080fd5b81359190810190604081016020820135600160201b8111156100e557600080fd5b8201836020820111156100f757600080fd5b803590602001918460018302840111600160201b8311171561011857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561016a57600080fd5b82018360208201111561017c57600080fd5b803590602001918460018302840111600160201b8311171561019d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506103e8915050565b005b6101ea6106f0565b60408051918252519081900360200190f35b6102c16004803603608081101561021257600080fd5b81359190810190604081016020820135600160201b81111561023357600080fd5b82018360208201111561024557600080fd5b803590602001918460018302840111600160201b8311171561026657600080fd5b919390929091602081019035600160201b81111561028357600080fd5b82018360208201111561029557600080fd5b803590602001918460018302840111600160201b831117156102b657600080fd5b9193509150356106f6565b604080519115158252519081900360200190f35b6101e0610a90565b6102c1600480360360208110156102f357600080fd5b50356001600160a01b0316610b79565b6102c1610b91565b6101e0610b9a565b6101e06004803603602081101561032957600080fd5b50356001600160a01b0316610bac565b6101e0610bfe565b61035e6004803603602081101561035757600080fd5b5035610cc4565b604080516001600160a01b039889168152968816602088015286810195909552929095166060850152608084015260a083019390935260c082019290925290519081900360e00190f35b6101ea600480360360a08110156103be57600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060800135610d88565b600154610100900460ff16610444576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff0019811690915560ff1615610499576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000848152600360205260409020600601548490600160a01b900460ff16610500576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008581526003602052604090206004015485906001600160a01b0316331461055a5760405162461bcd60e51b81526004018080602001828103825260298152602001806126136029913960400191505060405180910390fd5b6000868152600360205260409020836105b2576040805162461bcd60e51b81526020600482015260156024820152741e995c9bc81d985b1d59481dda5d1a191c985dd85b605a1b604482015290519081900360640190fd5b600281015442906105c9908663ffffffff6110b216565b1061061b576040805162461bcd60e51b815260206004820181905260248201527f77697468647261772069732067726561746572207468616e20616c6c6f776564604482015290519081900360640190fd5b60015460609061063c906201000090046001600160a01b0316888785611113565b9150506000610662600160029054906101000a90046001600160a01b03168884866113e1565b808455600284015490915061067d908763ffffffff6110b216565b60028401556004830154600584015460408051848152602081018a905281516001600160a01b0394851694909316928d927fc40560fdf83328f954941bff2b9141084d3c22e88c89a758557961e1966a57a9928290030190a450506001805461ff00191661010017905550505050505050565b60025481565b600154600090610100900460ff16610755576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff00191690556000878152600360205260409020600601548790600160a01b900460ff166107c7576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008881526003602052604090206005015488906001600160a01b031633148061080a57506000818152600360205260409020600401546001600160a01b031633145b6108455760405162461bcd60e51b815260040180806020018281038252603781526020018061256b6037913960400191505060405180910390fd5b60008981526003602081905260409091209081015460028201541415610878576108708a60006116cb565b935050610a75565b600085116108b75760405162461bcd60e51b815260040180806020018281038252602581526020018061248a6025913960400191505060405180910390fd5b60058101546001600160a01b031633141561094657600281015442906108e3908763ffffffff6110b216565b1180610906575060038101546002820154610904908763ffffffff6110b216565b145b6109415760405162461bcd60e51b815260040180806020018281038252602a8152602001806123ab602a913960400191505060405180910390fd5b6109ae565b60048101546001600160a01b03163314156109ae5760028101544290610972908763ffffffff6110b216565b106109ae5760405162461bcd60e51b815260040180806020018281038252602d81526020018061237e602d913960400191505060405180910390fd5b6060610a09600160029054906101000a90046001600160a01b03168b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b92508791506111139050565b915050610a65600160029054906101000a90046001600160a01b031689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925087915061178c9050565b50610a708b876116cb565b945050505b50506001805461ff0019166101001790559695505050505050565b610aa0610a9b611a0d565b610b79565b610adb5760405162461bcd60e51b81526004018080602001828103825260308152602001806123026030913960400191505060405180910390fd5b60015460ff16610b29576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610b5c611a0d565b604080516001600160a01b039092168252519081900360200190a1565b6000610b8b818363ffffffff611a1116565b92915050565b60015460ff1690565b610baa610ba5611a0d565b611a78565b565b610bb7610a9b611a0d565b610bf25760405162461bcd60e51b81526004018080602001828103825260308152602001806123026030913960400191505060405180910390fd5b610bfb81611ac0565b50565b610c09610a9b611a0d565b610c445760405162461bcd60e51b81526004018080602001828103825260308152602001806123026030913960400191505060405180910390fd5b60015460ff1615610c8f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b5c611a0d565b6000818152600360205260408120600601548190819081908190819081908890600160a01b900460ff16610d37576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b5050506000958652505060036020819052604090942060058101546004820154825460068401546001850154600286015495909901546001600160a01b039485169a93851699929850931695509350565b60015460009060ff1615610dd6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b038616610e31576040805162461bcd60e51b815260206004820152601a60248201527f73747265616d20746f20746865207a65726f2061646472657373000000000000604482015290519081900360640190fd5b6001600160a01b038616301415610e8f576040805162461bcd60e51b815260206004820152601d60248201527f73747265616d20746f2074686520636f6e747261637420697473656c66000000604482015290519081900360640190fd5b6001600160a01b038616331415610ee4576040805162461bcd60e51b815260206004820152601460248201527339ba3932b0b6903a37903a34329031b0b63632b960611b604482015290519081900360640190fd5b42831015610f235760405162461bcd60e51b815260040180806020018281038252602181526020018061235d6021913960400191505060405180910390fd5b828211610f615760405162461bcd60e51b81526004018080602001828103825260258152602001806124656025913960400191505060405180910390fd5b6002805460408051610100810182528881526020808201888152828401898152606084018981526001600160a01b03808f16608087019081523360a088019081528e831660c08901908152600160e08a0181815260008d815260039a8b90529b909b2099518a559651898801559451888c015592519587019590955593516004860180549186166001600160a01b0319928316179055905160058601805491861691831691909117905590516006909401805495511515600160a01b0260ff60a01b1995909416959091169490941792909216179091559154909161104c919063ffffffff6110b216565b600255604080516001600160a01b0387811682526020820189905281830187905260608201869052915191891691339184917fede16fa759a9d06c1022b933b4d4ed9b2cdcaafe19510813fdd430456f951b9a9181900360800190a49695505050505050565b60008282018381101561110c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b606080600061113384600201548560030154611b0890919063ffffffff16565b90506111598561114d83633b9aca0063ffffffff611b4a16565b9063ffffffff611ba316565b61116287611be5565b146111aa576040805162461bcd60e51b81526020600482015260136024820152720e4c2e8d2dee640c8de40dcdee840dac2e8c6d606b1b604482015290519081900360640190fd5b60405163a2866ea360e01b8152620104016004820181815230602484018190526060604485018181528b5160648701528b5191956001600160a01b038e169563a2866ea3959094938e93919260840190602085019080838360005b8381101561121d578181015183820152602001611205565b50505050905090810190601f16801561124a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561126b57600080fd5b505af115801561127f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156112a857600080fd5b8101908080516040519392919084600160201b8211156112c757600080fd5b9083019060208201858111156112dc57600080fd5b8251600160201b8111828201881017156112f557600080fd5b82525081516020918201929091019080838360005b8381101561132257818101518382015260200161130a565b50505050905090810190601f16801561134f5780820380516001836020036101000a031916815260200191505b50604052505050905061137461136f600083611c1390919063ffffffff16565b611c6a565b50508654919550935061139661139186600063ffffffff611c1316565b611c94565b60200151146113d65760405162461bcd60e51b81526004018080602001828103825260228152602001806125a26022913960400191505060405180910390fd5b505094509492505050565b6000606061140786866113fd611391888763ffffffff611c1316565b6020015186611cd7565b905060608061141583611c6a565b5050915091506114236122e2565b61143761139183600163ffffffff611c1316565b80519091506001600160a01b031630146114825760405162461bcd60e51b81526004018080602001828103825260308152602001806124af6030913960400191505060405180910390fd5b600586015460408201516001600160a01b03909116906114a390600061208a565b6001600160a01b0316146114e85760405162461bcd60e51b81526004018080602001828103825260288152602001806125c46028913960400191505060405180910390fd5b600486015460408201516001600160a01b039091169061150990600161208a565b6001600160a01b03161461154e5760405162461bcd60e51b815260040180806020018281038252602b815260200180612332602b913960400191505060405180910390fd5b60068601546001600160a01b0316631f2ac16a61157561139186600063ffffffff611c1316565b60200151604080516001600160e01b031960e085901b16815260048101929092523060248301526001604483015260806064830152600060848301819052905160c48084019382900301818387803b1580156115d057600080fd5b505af11580156115e4573d6000803e3d6000fd5b505050506006860154604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b039095169463cdfea90e9492938a9391606490910190602085019080838360005b8381101561165657818101518382015260200161163e565b50505050905090810190601f1680156116835780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156116a357600080fd5b505af11580156116b7573d6000803e3d6000fd5b505050506020015198975050505050505050565b6000828152600360209081526040808320600481015460058201548351878152935192946001600160a01b0392831694919092169288927f78771645abf470107bd6a847c532dba992a0e2c0995d479ebe8153dea930543c928290030190a450505060009081526003602081905260408220828155600180820184905560028201849055918101929092556004820180546001600160a01b03199081169091556005830180549091169055600690910180546001600160a81b031916905590565b600060606117a886866113fd611391888763ffffffff611c1316565b90506060806117b683611c6a565b509193509150600090506117d3611391848363ffffffff611c1316565b6020015160048701549091506001600160a01b03166117fc61139184600063ffffffff611c1316565b516001600160a01b0316146118425760405162461bcd60e51b815260040180806020018281038252602e8152602001806124df602e913960400191505060405180910390fd5b60058601546001600160a01b031661186461139184600163ffffffff611c1316565b516001600160a01b0316146118aa5760405162461bcd60e51b815260040180806020018281038252602c815260200180612439602c913960400191505060405180910390fd5b600686015460408051630f9560b560e11b815260048101849052306024820152600160448201526080606482015260006084820181905291516001600160a01b0390931692631f2ac16a9260c48084019391929182900301818387803b15801561191357600080fd5b505af1158015611927573d6000803e3d6000fd5b505050506006860154604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b039095169463cdfea90e9492938a9391606490910190602085019080838360005b83811015611999578181015183820152602001611981565b50505050905090810190601f1680156119c65780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156119e657600080fd5b505af11580156119fa573d6000803e3d6000fd5b5060019c9b505050505050505050505050565b3390565b60006001600160a01b038216611a585760405162461bcd60e51b81526004018080602001828103825260228152602001806124176022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611a8960008263ffffffff6120d916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b611ad160008263ffffffff61214016565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600061110c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121c1565b600082611b5957506000610b8b565b82820282848281611b6657fe5b041461110c5760405162461bcd60e51b81526004018080602001828103825260218152602001806123f66021913960400191505060405180910390fd5b600061110c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612258565b6040810151606082015160009190611c0b8161114d84633b9aca0063ffffffff611b4a16565b949350505050565b602082810151908202830160400151830190821080611c635760405162461bcd60e51b815260040180806020018281038252602281526020018061263c6022913960400191505060405180910390fd5b5092915050565b60208101516040820151606083015160808401519284019491909301926001600160a01b03169190565b611c9c6122e2565b6000806060611caa856122bd565b604080516060810182526001600160a01b0390941684526020840192909252908201529350505050919050565b60405163a2866ea360e01b8152620101016004820181815230602484018190526060604485018181528851606487015288519195611e98956000956001600160a01b038d169563a2866ea395929490938d9360849091019060208501908083838d5b83811015611d51578181015183820152602001611d39565b50505050905090810190601f168015611d7e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d9f57600080fd5b505af1158015611db3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611ddc57600080fd5b8101908080516040519392919084600160201b821115611dfb57600080fd5b908301906020820185811115611e1057600080fd5b8251600160201b811182820188101715611e2957600080fd5b82525081516020918201929091019080838360005b83811015611e56578181015183820152602001611e3e565b50505050905090810190601f168015611e835780820380516001836020036101000a031916815260200191505b50604052505050611c1390919063ffffffff16565b90506060806000611ea884611c6a565b9350509250925080600014611f04576040805162461bcd60e51b815260206004820152601d60248201527f6e6f6e7a65726f207075626c69632076616c7565207472616e73666572000000604482015290519081900360640190fd5b611f0d836122db565b600114611f61576040805162461bcd60e51b815260206004820152601f60248201527f496e636f7272656374206e756d626572206f6620696e707574206e6f74657300604482015290519081900360640190fd5b611f6a826122db565b600214611fbe576040805162461bcd60e51b815260206004820181905260248201527f496e636f7272656374206e756d626572206f66206f7574707574206e6f746573604482015290519081900360640190fd5b85611fd361139184600063ffffffff611c1316565b60200151146120135760405162461bcd60e51b81526004018080602001828103825260278152602001806125ec6027913960400191505060405180910390fd5b845461202961139185600063ffffffff611c1316565b602001511461207f576040805162461bcd60e51b815260206004820152601f60248201527f73747265616d206e6f746520696e2032206973206e6f7420636f727265637400604482015290519081900360640190fd5b505050949350505050565b6020828101519082028301610101015190808310611c635760405162461bcd60e51b815260040180806020018281038252605e81526020018061250d605e913960600191505060405180910390fd5b6120e38282611a11565b61211e5760405162461bcd60e51b81526004018080602001828103825260218152602001806123d56021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61214a8282611a11565b1561219c576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600081848411156122505760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122155781810151838201526020016121fd565b50505050905090810190601f1680156122425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836122a75760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156122155781810151838201526020016121fd565b5060008385816122b357fe5b0495945050505050565b604081015160608201516001600160a01b0390911692909160800190565b6020015190565b604080516060808201835260008083526020830152918101919091529056fe506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6573747265616d20726563697069656e742063616e27742076696577206e65772073747265616d206e6f746573746172742074696d65206265666f726520626c6f636b2e74696d657374616d70726563697069656e7420726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e73656e64657220726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737353747265616d2073656e64657220646f65736e2774206f776e207365636f6e64206f7574707574206e6f746553747265616d206475726174696f6e206e6f742067726561746572207468616e207a65726f63616e63656c6c6174696f6e2077697468207a65726f20756e636c61696d65642074696d656368616e6765206e6f746520696e2032206973206e6f74206f776e65642062792073747265616d20636f6e747261637453747265616d20726563697069656e7420646f65736e2774206f776e206669727374206f7574707574206e6f746561646472657373506f73206f7574206f6620626f756e6473202d2061646472657373506f73206d757374206265206c657373207468616e20746865206e756d626572206f662061646472657373657320746f20626520617070726f76656463616c6c6572206973206e6f74207468652073656e646572206f722074686520726563697069656e74206f66207468652073747265616d696e636f7272656374206e6f74696f6e616c206e6f746520696e2070726f6f66203173747265616d2073656e6465722063616e27742076696577206e65772073747265616d206e6f74657769746864726177206e6f746520696e2032206973206e6f74207468652073616d65206173203163616c6c6572206973206e6f742074686520726563697069656e74206f66207468652073747265616d415a54454320617272617920696e646578206973206f7574206f6620626f756e6473a265627a7a723158204b885b0fbc3e77ad991ce1dd489201ae8a4576ce93a7ba422ecf6cb1e2ceeb3464736f6c634300050f0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373', + '0x60806040523480156200001157600080fd5b50604051620031af380380620031af833981810160405260208110156200003757600080fd5b50516200005f620000506001600160e01b03620000fb16565b6001600160e01b03620000ff16565b6001805461ffff19166101001790556001600160a01b038116620000ca576040805162461bcd60e51b815260206004820181905260248201527f41434520636f6e747261637420697320746865207a65726f2061646472657373604482015290519081900360640190fd5b600180546001600160a01b03909216620100000262010000600160b01b031990921691909117815560025562000247565b3390565b6200011a8160006200015160201b620029261790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6200016682826001600160e01b03620001de16565b15620001b9576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002275760405162461bcd60e51b81526004018080602001828103825260228152602001806200318d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b612f3680620002576000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80635989dcde116100715780635989dcde146103035780635c975abb146104505780636ef8d66d1461045857806382dc1ec4146104605780638456cb5914610486578063894e9a0d1461048e576100a9565b80631468a5d4146100ae5780631e99d569146101e25780633bc9e403146101fc5780633f4ba83a146102d557806346fbf68e146102dd575b600080fd5b6101e0600480360360808110156100c457600080fd5b81359190810190604081016020820135600160201b8111156100e557600080fd5b8201836020820111156100f757600080fd5b803590602001918460018302840111600160201b8311171561011857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561016a57600080fd5b82018360208201111561017c57600080fd5b803590602001918460018302840111600160201b8311171561019d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506104f5915050565b005b6101ea6107b2565b60408051918252519081900360200190f35b6102c16004803603608081101561021257600080fd5b81359190810190604081016020820135600160201b81111561023357600080fd5b82018360208201111561024557600080fd5b803590602001918460018302840111600160201b8311171561026657600080fd5b919390929091602081019035600160201b81111561028357600080fd5b82018360208201111561029557600080fd5b803590602001918460018302840111600160201b831117156102b657600080fd5b9193509150356107b8565b604080519115158252519081900360200190f35b6101e0610b51565b6102c1600480360360208110156102f357600080fd5b50356001600160a01b0316610c3a565b6101ea600480360360c081101561031957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561034357600080fd5b82018360208201111561035557600080fd5b803590602001918460018302840111600160201b8311171561037657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103c857600080fd5b8201836020820111156103da57600080fd5b803590602001918460018302840111600160201b831117156103fb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550506001600160a01b038335169350505060208101359060400135610c52565b6102c1611014565b6101e061101d565b6101e06004803603602081101561047657600080fd5b50356001600160a01b031661102f565b6101e0611081565b6104ab600480360360208110156104a457600080fd5b5035611147565b604080516001600160a01b039889168152968816602088015286810195909552929095166060850152608084015260a083019390935260c082019290925290519081900360e00190f35b600154610100900460ff16610551576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff00191690556000848152600360205260409020600601548490600160a01b900460ff166105c3576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008581526003602052604090206004015485906001600160a01b0316331461061d5760405162461bcd60e51b8152600401808060200182810382526029815260200180612eb76029913960400191505060405180910390fd5b600086815260036020526040902083610675576040805162461bcd60e51b81526020600482015260156024820152741e995c9bc81d985b1d59481dda5d1a191c985dd85b605a1b604482015290519081900360640190fd5b6002810154429061068c908663ffffffff61120b16565b106106de576040805162461bcd60e51b815260206004820181905260248201527f77697468647261772069732067726561746572207468616e20616c6c6f776564604482015290519081900360640190fd5b6001546000906106ff906201000090046001600160a01b031688878561126c565b90506000610724600160029054906101000a90046001600160a01b0316888486611555565b808455600284015490915061073f908763ffffffff61120b16565b60028401556004830154600584015460408051848152602081018a905281516001600160a01b0394851694909316928d927fc40560fdf83328f954941bff2b9141084d3c22e88c89a758557961e1966a57a9928290030190a450506001805461ff00191661010017905550505050505050565b60025481565b600154600090610100900460ff16610817576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff00191690556000878152600360205260409020600601548790600160a01b900460ff16610889576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008881526003602052604090206005015488906001600160a01b03163314806108cc57506000818152600360205260409020600401546001600160a01b031633145b6109075760405162461bcd60e51b8152600401808060200182810382526037815260200180612de86037913960400191505060405180910390fd5b6000898152600360208190526040909120908101546002820154141561093a576109328a6000611829565b935050610b36565b600085116109795760405162461bcd60e51b8152600401808060200182810382526025815260200180612cb86025913960400191505060405180910390fd5b60058101546001600160a01b0316331415610a0857600281015442906109a5908763ffffffff61120b16565b11806109c85750600381015460028201546109c6908763ffffffff61120b16565b145b610a035760405162461bcd60e51b815260040180806020018281038252602a815260200180612bd9602a913960400191505060405180910390fd5b610a70565b60048101546001600160a01b0316331415610a705760028101544290610a34908763ffffffff61120b16565b10610a705760405162461bcd60e51b815260040180806020018281038252602d815260200180612b81602d913960400191505060405180910390fd5b6000610acb600160029054906101000a90046001600160a01b03168b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b925087915061126c9050565b9050610b26600160029054906101000a90046001600160a01b031689898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508692508791506118ea9050565b50610b318b87611829565b945050505b50506001805461ff0019166101001790559695505050505050565b610b61610b5c611c39565b610c3a565b610b9c5760405162461bcd60e51b8152600401808060200182810382526030815260200180612ae16030913960400191505060405180910390fd5b60015460ff16610bea576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610c1d611c39565b604080516001600160a01b039092168252519081900360200190a1565b6000610c4c818363ffffffff611c3d16565b92915050565b60015460009060ff1615610ca0576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b038716610cfb576040805162461bcd60e51b815260206004820152601a60248201527f73747265616d20746f20746865207a65726f2061646472657373000000000000604482015290519081900360640190fd5b6001600160a01b038716301415610d59576040805162461bcd60e51b815260206004820152601d60248201527f73747265616d20746f2074686520636f6e747261637420697473656c66000000604482015290519081900360640190fd5b6001600160a01b038716331415610dae576040805162461bcd60e51b815260206004820152601460248201527339ba3932b0b6903a37903a34329031b0b63632b960611b604482015290519081900360640190fd5b42831015610ded5760405162461bcd60e51b8152600401808060200182810382526021815260200180612b606021913960400191505060405180910390fd5b828211610e2b5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c936025913960400191505060405180910390fd5b6000610e508787600160029054906101000a90046001600160a01b0316338c8a611ca4565b9050600060025490506040518061010001604052808381526020018681526020018681526020018581526020018a6001600160a01b03168152602001336001600160a01b03168152602001876001600160a01b0316815260200160011515815250600360008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e08201518160060160146101000a81548160ff021916908315150217905550905050610fac600160025461120b90919063ffffffff16565b600255604080516001600160a01b03888116825260208201859052818301889052606082018790529151918b1691339184917fede16fa759a9d06c1022b933b4d4ed9b2cdcaafe19510813fdd430456f951b9a9181900360800190a498975050505050505050565b60015460ff1690565b61102d611028611c39565b612257565b565b61103a610b5c611c39565b6110755760405162461bcd60e51b8152600401808060200182810382526030815260200180612ae16030913960400191505060405180910390fd5b61107e8161229f565b50565b61108c610b5c611c39565b6110c75760405162461bcd60e51b8152600401808060200182810382526030815260200180612ae16030913960400191505060405180910390fd5b60015460ff1615611112576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c1d611c39565b6000818152600360205260408120600601548190819081908190819081908890600160a01b900460ff166111ba576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b5050506000958652505060036020819052604090942060058101546004820154825460068401546001850154600286015495909901546001600160a01b039485169a93851699929850931695509350565b600082820183811015611265576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008061128a836002015484600301546122e790919063ffffffff16565b90506112b0846112a483633b9aca0063ffffffff61232916565b9063ffffffff61238216565b6112b9866123c4565b14611301576040805162461bcd60e51b81526020600482015260136024820152720e4c2e8d2dee640c8de40dcdee840dac2e8c6d606b1b604482015290519081900360640190fd5b60405163a2866ea360e01b8152620104016004820181815230602484018190526060604485018181528a5160648701528a5191956001600160a01b038d169563a2866ea3959094938d93919260840190602085019080838360005b8381101561137457818101518382015260200161135c565b50505050905090810190601f1680156113a15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c257600080fd5b505af11580156113d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113ff57600080fd5b8101908080516040519392919084600160201b82111561141e57600080fd5b90830190602082018581111561143357600080fd5b8251600160201b81118282018810171561144c57600080fd5b82525081516020918201929091019080838360005b83811015611479578181015183820152602001611461565b50505050905090810190601f1680156114a65780820380516001836020036101000a031916815260200191505b5060405250505090506060806114ce6114c96000856123f290919063ffffffff16565b612449565b5050875491935091506114f06114eb84600063ffffffff6123f216565b612473565b60200151146115305760405162461bcd60e51b8152600401808060200182810382526022815260200180612e1f6022913960400191505060405180910390fd5b6115446114eb82600063ffffffff6123f216565b602001519998505050505050505050565b60006060611565868686866124b6565b905060608061157383612449565b505091509150611581612ac1565b6115956114eb83600163ffffffff6123f216565b80519091506001600160a01b031630146115e05760405162461bcd60e51b8152600401808060200182810382526030815260200180612cdd6030913960400191505060405180910390fd5b600586015460408201516001600160a01b0390911690611601906000612869565b6001600160a01b0316146116465760405162461bcd60e51b8152600401808060200182810382526028815260200180612e686028913960400191505060405180910390fd5b600486015460408201516001600160a01b0390911690611667906001612869565b6001600160a01b0316146116ac5760405162461bcd60e51b815260040180806020018281038252602b815260200180612b11602b913960400191505060405180910390fd5b60068601546001600160a01b0316631f2ac16a6116d36114eb86600063ffffffff6123f216565b60200151604080516001600160e01b031960e085901b16815260048101929092523060248301526001604483015260806064830152600060848301819052905160c48084019382900301818387803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050506006860154604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b039095169463cdfea90e9492938a9391606490910190602085019080838360005b838110156117b457818101518382015260200161179c565b50505050905090810190601f1680156117e15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561180157600080fd5b505af1158015611815573d6000803e3d6000fd5b505050506020015198975050505050505050565b6000828152600360209081526040808320600481015460058201548351878152935192946001600160a01b0392831694919092169288927f78771645abf470107bd6a847c532dba992a0e2c0995d479ebe8153dea930543c928290030190a450505060009081526003602081905260408220828155600180820184905560028201849055918101929092556004820180546001600160a01b03199081169091556005830180549091169055600690910180546001600160a81b031916905590565b600060606118fa868686866124b6565b905060608061190883612449565b509193509150600090506119256114eb848363ffffffff6123f216565b602001519050611933612ac1565b6119476114eb84600063ffffffff6123f216565b9050611951612ac1565b6119656114eb85600163ffffffff6123f216565b600489015483519192506001600160a01b039182169116146119b85760405162461bcd60e51b815260040180806020018281038252602e815260200180612d5c602e913960400191505060405180910390fd5b600588015481516001600160a01b03908116911614611a085760405162461bcd60e51b815260040180806020018281038252602c815260200180612c67602c913960400191505060405180910390fd5b600488015460408301516001600160a01b0390911690611a29906000612869565b6001600160a01b031614611a6e5760405162461bcd60e51b815260040180806020018281038252602b815260200180612d31602b913960400191505060405180910390fd5b600588015460408201516001600160a01b0390911690611a8f906000612869565b6001600160a01b031614611ad45760405162461bcd60e51b8152600401808060200182810382526024815260200180612d0d6024913960400191505060405180910390fd5b600688015460408051630f9560b560e11b815260048101869052306024820152600160448201526080606482015260006084820181905291516001600160a01b0390931692631f2ac16a9260c48084019391929182900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505050506006880154604080516366ff548760e11b81526201010160048201818152602483019384528a5160448401528a516001600160a01b039095169463cdfea90e9492938c9391606490910190602085019080838360005b83811015611bc3578181015183820152602001611bab565b50505050905090810190601f168015611bf05780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b3390565b60006001600160a01b038216611c845760405162461bcd60e51b8152600401808060200182810382526022815260200180612c456022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60006060856001600160a01b031663a2866ea362010101338b6040518463ffffffff1660e01b8152600401808462ffffff1662ffffff168152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d31578181015183820152602001611d19565b50505050905090810190601f168015611d5e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d7f57600080fd5b505af1158015611d93573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611dbc57600080fd5b8101908080516040519392919084600160201b821115611ddb57600080fd5b908301906020820185811115611df057600080fd5b8251600160201b811182820188101715611e0957600080fd5b82525081516020918201929091019080838360005b83811015611e36578181015183820152602001611e1e565b50505050905090810190601f168015611e635780820380516001836020036101000a031916815260200191505b5060405250505090506060611e826000836123f290919063ffffffff16565b90506060611e8f82612449565b5050915050611e9d816128b8565b600114611ef1576040805162461bcd60e51b815260206004820181905260248201527f496e636f7272656374206e756d626572206f66206f7574707574206e6f746573604482015290519081900360640190fd5b611ef9612ac1565b611f0d6114eb83600063ffffffff6123f216565b80519091506001600160a01b03163014611f585760405162461bcd60e51b815260040180806020018281038252602b815260200180612bae602b913960400191505060405180910390fd5b876001600160a01b0316611f7182604001516000612869565b6001600160a01b031614611fb65760405162461bcd60e51b8152600401808060200182810382526024815260200180612b3c6024913960400191505060405180910390fd5b866001600160a01b0316611fcf82604001516001612869565b6001600160a01b0316146120145760405162461bcd60e51b8152600401808060200182810382526027815260200180612e416027913960400191505060405180910390fd5b856001600160a01b0316630a60305a62010101863060018f6040518663ffffffff1660e01b8152600401808662ffffff1662ffffff16815260200180602001856001600160a01b03166001600160a01b031681526020018415151515815260200180602001838103835287818151815260200191508051906020019080838360005b838110156120ae578181015183820152602001612096565b50505050905090810190601f1680156120db5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561210e5781810151838201526020016120f6565b50505050905090810190601f16801561213b5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561215f57600080fd5b505af1158015612173573d6000803e3d6000fd5b5050604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b038d16965063cdfea90e9550919389939192909160640190602085019080838360005b838110156121e05781810151838201526020016121c8565b50505050905090810190601f16801561220d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b50505050602001519a9950505050505050505050565b61226860008263ffffffff6128bf16565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6122b060008263ffffffff61292616565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600061126583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506129a7565b60008261233857506000610c4c565b8282028284828161234557fe5b04146112655760405162461bcd60e51b8152600401808060200182810382526021815260200180612c246021913960400191505060405180910390fd5b600061126583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a3e565b60408101516060820151600091906123ea816112a484633b9aca0063ffffffff61232916565b949350505050565b6020828101519082028301604001518301908210806124425760405162461bcd60e51b8152600401808060200182810382526022815260200180612ee06022913960400191505060405180910390fd5b5092915050565b60208101516040820151606083015160808401519284019491909301926001600160a01b03169190565b61247b612ac1565b600080606061248985612aa3565b604080516060810182526001600160a01b0390941684526020840192909252908201529350505050919050565b60405163a2866ea360e01b8152620101016004820181815230602484018190526060604485018181528851606487015288519195612677956000956001600160a01b038d169563a2866ea395929490938d9360849091019060208501908083838d5b83811015612530578181015183820152602001612518565b50505050905090810190601f16801561255d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561257e57600080fd5b505af1158015612592573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125bb57600080fd5b8101908080516040519392919084600160201b8211156125da57600080fd5b9083019060208201858111156125ef57600080fd5b8251600160201b81118282018810171561260857600080fd5b82525081516020918201929091019080838360005b8381101561263557818101518382015260200161261d565b50505050905090810190601f1680156126625780820380516001836020036101000a031916815260200191505b506040525050506123f290919063ffffffff16565b9050606080600061268784612449565b93505092509250806000146126e3576040805162461bcd60e51b815260206004820152601d60248201527f6e6f6e7a65726f207075626c69632076616c7565207472616e73666572000000604482015290519081900360640190fd5b6126ec836128b8565b600114612740576040805162461bcd60e51b815260206004820152601f60248201527f496e636f7272656374206e756d626572206f6620696e707574206e6f74657300604482015290519081900360640190fd5b612749826128b8565b60021461279d576040805162461bcd60e51b815260206004820181905260248201527f496e636f7272656374206e756d626572206f66206f7574707574206e6f746573604482015290519081900360640190fd5b856127b26114eb84600063ffffffff6123f216565b60200151146127f25760405162461bcd60e51b8152600401808060200182810382526027815260200180612e906027913960400191505060405180910390fd5b84546128086114eb85600063ffffffff6123f216565b602001511461285e576040805162461bcd60e51b815260206004820152601f60248201527f73747265616d206e6f746520696e2032206973206e6f7420636f727265637400604482015290519081900360640190fd5b505050949350505050565b60208281015190820283016101010151908083106124425760405162461bcd60e51b815260040180806020018281038252605e815260200180612d8a605e913960600191505060405180910390fd5b6020015190565b6128c98282611c3d565b6129045760405162461bcd60e51b8152600401808060200182810382526021815260200180612c036021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6129308282611c3d565b15612982576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115612a365760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129fb5781810151838201526020016129e3565b50505050905090810190601f168015612a285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183612a8d5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129fb5781810151838201526020016129e3565b506000838581612a9957fe5b0495945050505050565b604081015160608201516001600160a01b0390911692909160800190565b604080516060808201835260008083526020830152918101919091529056fe506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6573747265616d20726563697069656e742063616e27742076696577206e65772073747265616d206e6f746573747265616d2073656e6465722063616e277420766965772073747265616d206e6f746573746172742074696d65206265666f726520626c6f636b2e74696d657374616d70726563697069656e7420726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e73747265616d206e6f7465206973206e6f74206f776e65642062792073747265616d20636f6e747261637473656e64657220726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737353747265616d2073656e64657220646f65736e2774206f776e207365636f6e64206f7574707574206e6f746553747265616d206475726174696f6e206e6f742067726561746572207468616e207a65726f63616e63656c6c6174696f6e2077697468207a65726f20756e636c61696d65642074696d656368616e6765206e6f746520696e2032206973206e6f74206f776e65642062792073747265616d20636f6e747261637473747265616d2073656e6465722063616e2774207669657720726566756e64206e6f746573747265616d20726563697069656e742063616e27742076696577207769746864726177616c206e6f746553747265616d20726563697069656e7420646f65736e2774206f776e206669727374206f7574707574206e6f746561646472657373506f73206f7574206f6620626f756e6473202d2061646472657373506f73206d757374206265206c657373207468616e20746865206e756d626572206f662061646472657373657320746f20626520617070726f76656463616c6c6572206973206e6f74207468652073656e646572206f722074686520726563697069656e74206f66207468652073747265616d696e636f7272656374206e6f74696f6e616c206e6f746520696e2070726f6f66203173747265616d20726563697069656e742063616e277420766965772073747265616d206e6f746573747265616d2073656e6465722063616e27742076696577206e65772073747265616d206e6f74657769746864726177206e6f746520696e2032206973206e6f74207468652073616d65206173203163616c6c6572206973206e6f742074686520726563697069656e74206f66207468652073747265616d415a54454320617272617920696e646578206973206f7574206f6620626f756e6473a265627a7a7231582082989ecb6430bf512f28d08363cc0a6bf2a065c4959092b9b848a6c99678da7964736f6c634300050f0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373', deployedBytecode: - '0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80635c975abb116100715780635c975abb146103035780636ef8d66d1461030b57806382dc1ec4146103135780638456cb5914610339578063894e9a0d14610341578063911ab96c146103a8576100a9565b80631468a5d4146100ae5780631e99d569146101e25780633bc9e403146101fc5780633f4ba83a146102d557806346fbf68e146102dd575b600080fd5b6101e0600480360360808110156100c457600080fd5b81359190810190604081016020820135600160201b8111156100e557600080fd5b8201836020820111156100f757600080fd5b803590602001918460018302840111600160201b8311171561011857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561016a57600080fd5b82018360208201111561017c57600080fd5b803590602001918460018302840111600160201b8311171561019d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506103e8915050565b005b6101ea6106f0565b60408051918252519081900360200190f35b6102c16004803603608081101561021257600080fd5b81359190810190604081016020820135600160201b81111561023357600080fd5b82018360208201111561024557600080fd5b803590602001918460018302840111600160201b8311171561026657600080fd5b919390929091602081019035600160201b81111561028357600080fd5b82018360208201111561029557600080fd5b803590602001918460018302840111600160201b831117156102b657600080fd5b9193509150356106f6565b604080519115158252519081900360200190f35b6101e0610a90565b6102c1600480360360208110156102f357600080fd5b50356001600160a01b0316610b79565b6102c1610b91565b6101e0610b9a565b6101e06004803603602081101561032957600080fd5b50356001600160a01b0316610bac565b6101e0610bfe565b61035e6004803603602081101561035757600080fd5b5035610cc4565b604080516001600160a01b039889168152968816602088015286810195909552929095166060850152608084015260a083019390935260c082019290925290519081900360e00190f35b6101ea600480360360a08110156103be57600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060800135610d88565b600154610100900460ff16610444576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff0019811690915560ff1615610499576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000848152600360205260409020600601548490600160a01b900460ff16610500576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008581526003602052604090206004015485906001600160a01b0316331461055a5760405162461bcd60e51b81526004018080602001828103825260298152602001806126136029913960400191505060405180910390fd5b6000868152600360205260409020836105b2576040805162461bcd60e51b81526020600482015260156024820152741e995c9bc81d985b1d59481dda5d1a191c985dd85b605a1b604482015290519081900360640190fd5b600281015442906105c9908663ffffffff6110b216565b1061061b576040805162461bcd60e51b815260206004820181905260248201527f77697468647261772069732067726561746572207468616e20616c6c6f776564604482015290519081900360640190fd5b60015460609061063c906201000090046001600160a01b0316888785611113565b9150506000610662600160029054906101000a90046001600160a01b03168884866113e1565b808455600284015490915061067d908763ffffffff6110b216565b60028401556004830154600584015460408051848152602081018a905281516001600160a01b0394851694909316928d927fc40560fdf83328f954941bff2b9141084d3c22e88c89a758557961e1966a57a9928290030190a450506001805461ff00191661010017905550505050505050565b60025481565b600154600090610100900460ff16610755576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff00191690556000878152600360205260409020600601548790600160a01b900460ff166107c7576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008881526003602052604090206005015488906001600160a01b031633148061080a57506000818152600360205260409020600401546001600160a01b031633145b6108455760405162461bcd60e51b815260040180806020018281038252603781526020018061256b6037913960400191505060405180910390fd5b60008981526003602081905260409091209081015460028201541415610878576108708a60006116cb565b935050610a75565b600085116108b75760405162461bcd60e51b815260040180806020018281038252602581526020018061248a6025913960400191505060405180910390fd5b60058101546001600160a01b031633141561094657600281015442906108e3908763ffffffff6110b216565b1180610906575060038101546002820154610904908763ffffffff6110b216565b145b6109415760405162461bcd60e51b815260040180806020018281038252602a8152602001806123ab602a913960400191505060405180910390fd5b6109ae565b60048101546001600160a01b03163314156109ae5760028101544290610972908763ffffffff6110b216565b106109ae5760405162461bcd60e51b815260040180806020018281038252602d81526020018061237e602d913960400191505060405180910390fd5b6060610a09600160029054906101000a90046001600160a01b03168b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b92508791506111139050565b915050610a65600160029054906101000a90046001600160a01b031689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925087915061178c9050565b50610a708b876116cb565b945050505b50506001805461ff0019166101001790559695505050505050565b610aa0610a9b611a0d565b610b79565b610adb5760405162461bcd60e51b81526004018080602001828103825260308152602001806123026030913960400191505060405180910390fd5b60015460ff16610b29576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610b5c611a0d565b604080516001600160a01b039092168252519081900360200190a1565b6000610b8b818363ffffffff611a1116565b92915050565b60015460ff1690565b610baa610ba5611a0d565b611a78565b565b610bb7610a9b611a0d565b610bf25760405162461bcd60e51b81526004018080602001828103825260308152602001806123026030913960400191505060405180910390fd5b610bfb81611ac0565b50565b610c09610a9b611a0d565b610c445760405162461bcd60e51b81526004018080602001828103825260308152602001806123026030913960400191505060405180910390fd5b60015460ff1615610c8f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b5c611a0d565b6000818152600360205260408120600601548190819081908190819081908890600160a01b900460ff16610d37576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b5050506000958652505060036020819052604090942060058101546004820154825460068401546001850154600286015495909901546001600160a01b039485169a93851699929850931695509350565b60015460009060ff1615610dd6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b038616610e31576040805162461bcd60e51b815260206004820152601a60248201527f73747265616d20746f20746865207a65726f2061646472657373000000000000604482015290519081900360640190fd5b6001600160a01b038616301415610e8f576040805162461bcd60e51b815260206004820152601d60248201527f73747265616d20746f2074686520636f6e747261637420697473656c66000000604482015290519081900360640190fd5b6001600160a01b038616331415610ee4576040805162461bcd60e51b815260206004820152601460248201527339ba3932b0b6903a37903a34329031b0b63632b960611b604482015290519081900360640190fd5b42831015610f235760405162461bcd60e51b815260040180806020018281038252602181526020018061235d6021913960400191505060405180910390fd5b828211610f615760405162461bcd60e51b81526004018080602001828103825260258152602001806124656025913960400191505060405180910390fd5b6002805460408051610100810182528881526020808201888152828401898152606084018981526001600160a01b03808f16608087019081523360a088019081528e831660c08901908152600160e08a0181815260008d815260039a8b90529b909b2099518a559651898801559451888c015592519587019590955593516004860180549186166001600160a01b0319928316179055905160058601805491861691831691909117905590516006909401805495511515600160a01b0260ff60a01b1995909416959091169490941792909216179091559154909161104c919063ffffffff6110b216565b600255604080516001600160a01b0387811682526020820189905281830187905260608201869052915191891691339184917fede16fa759a9d06c1022b933b4d4ed9b2cdcaafe19510813fdd430456f951b9a9181900360800190a49695505050505050565b60008282018381101561110c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b606080600061113384600201548560030154611b0890919063ffffffff16565b90506111598561114d83633b9aca0063ffffffff611b4a16565b9063ffffffff611ba316565b61116287611be5565b146111aa576040805162461bcd60e51b81526020600482015260136024820152720e4c2e8d2dee640c8de40dcdee840dac2e8c6d606b1b604482015290519081900360640190fd5b60405163a2866ea360e01b8152620104016004820181815230602484018190526060604485018181528b5160648701528b5191956001600160a01b038e169563a2866ea3959094938e93919260840190602085019080838360005b8381101561121d578181015183820152602001611205565b50505050905090810190601f16801561124a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561126b57600080fd5b505af115801561127f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156112a857600080fd5b8101908080516040519392919084600160201b8211156112c757600080fd5b9083019060208201858111156112dc57600080fd5b8251600160201b8111828201881017156112f557600080fd5b82525081516020918201929091019080838360005b8381101561132257818101518382015260200161130a565b50505050905090810190601f16801561134f5780820380516001836020036101000a031916815260200191505b50604052505050905061137461136f600083611c1390919063ffffffff16565b611c6a565b50508654919550935061139661139186600063ffffffff611c1316565b611c94565b60200151146113d65760405162461bcd60e51b81526004018080602001828103825260228152602001806125a26022913960400191505060405180910390fd5b505094509492505050565b6000606061140786866113fd611391888763ffffffff611c1316565b6020015186611cd7565b905060608061141583611c6a565b5050915091506114236122e2565b61143761139183600163ffffffff611c1316565b80519091506001600160a01b031630146114825760405162461bcd60e51b81526004018080602001828103825260308152602001806124af6030913960400191505060405180910390fd5b600586015460408201516001600160a01b03909116906114a390600061208a565b6001600160a01b0316146114e85760405162461bcd60e51b81526004018080602001828103825260288152602001806125c46028913960400191505060405180910390fd5b600486015460408201516001600160a01b039091169061150990600161208a565b6001600160a01b03161461154e5760405162461bcd60e51b815260040180806020018281038252602b815260200180612332602b913960400191505060405180910390fd5b60068601546001600160a01b0316631f2ac16a61157561139186600063ffffffff611c1316565b60200151604080516001600160e01b031960e085901b16815260048101929092523060248301526001604483015260806064830152600060848301819052905160c48084019382900301818387803b1580156115d057600080fd5b505af11580156115e4573d6000803e3d6000fd5b505050506006860154604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b039095169463cdfea90e9492938a9391606490910190602085019080838360005b8381101561165657818101518382015260200161163e565b50505050905090810190601f1680156116835780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156116a357600080fd5b505af11580156116b7573d6000803e3d6000fd5b505050506020015198975050505050505050565b6000828152600360209081526040808320600481015460058201548351878152935192946001600160a01b0392831694919092169288927f78771645abf470107bd6a847c532dba992a0e2c0995d479ebe8153dea930543c928290030190a450505060009081526003602081905260408220828155600180820184905560028201849055918101929092556004820180546001600160a01b03199081169091556005830180549091169055600690910180546001600160a81b031916905590565b600060606117a886866113fd611391888763ffffffff611c1316565b90506060806117b683611c6a565b509193509150600090506117d3611391848363ffffffff611c1316565b6020015160048701549091506001600160a01b03166117fc61139184600063ffffffff611c1316565b516001600160a01b0316146118425760405162461bcd60e51b815260040180806020018281038252602e8152602001806124df602e913960400191505060405180910390fd5b60058601546001600160a01b031661186461139184600163ffffffff611c1316565b516001600160a01b0316146118aa5760405162461bcd60e51b815260040180806020018281038252602c815260200180612439602c913960400191505060405180910390fd5b600686015460408051630f9560b560e11b815260048101849052306024820152600160448201526080606482015260006084820181905291516001600160a01b0390931692631f2ac16a9260c48084019391929182900301818387803b15801561191357600080fd5b505af1158015611927573d6000803e3d6000fd5b505050506006860154604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b039095169463cdfea90e9492938a9391606490910190602085019080838360005b83811015611999578181015183820152602001611981565b50505050905090810190601f1680156119c65780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156119e657600080fd5b505af11580156119fa573d6000803e3d6000fd5b5060019c9b505050505050505050505050565b3390565b60006001600160a01b038216611a585760405162461bcd60e51b81526004018080602001828103825260228152602001806124176022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611a8960008263ffffffff6120d916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b611ad160008263ffffffff61214016565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600061110c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121c1565b600082611b5957506000610b8b565b82820282848281611b6657fe5b041461110c5760405162461bcd60e51b81526004018080602001828103825260218152602001806123f66021913960400191505060405180910390fd5b600061110c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612258565b6040810151606082015160009190611c0b8161114d84633b9aca0063ffffffff611b4a16565b949350505050565b602082810151908202830160400151830190821080611c635760405162461bcd60e51b815260040180806020018281038252602281526020018061263c6022913960400191505060405180910390fd5b5092915050565b60208101516040820151606083015160808401519284019491909301926001600160a01b03169190565b611c9c6122e2565b6000806060611caa856122bd565b604080516060810182526001600160a01b0390941684526020840192909252908201529350505050919050565b60405163a2866ea360e01b8152620101016004820181815230602484018190526060604485018181528851606487015288519195611e98956000956001600160a01b038d169563a2866ea395929490938d9360849091019060208501908083838d5b83811015611d51578181015183820152602001611d39565b50505050905090810190601f168015611d7e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d9f57600080fd5b505af1158015611db3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611ddc57600080fd5b8101908080516040519392919084600160201b821115611dfb57600080fd5b908301906020820185811115611e1057600080fd5b8251600160201b811182820188101715611e2957600080fd5b82525081516020918201929091019080838360005b83811015611e56578181015183820152602001611e3e565b50505050905090810190601f168015611e835780820380516001836020036101000a031916815260200191505b50604052505050611c1390919063ffffffff16565b90506060806000611ea884611c6a565b9350509250925080600014611f04576040805162461bcd60e51b815260206004820152601d60248201527f6e6f6e7a65726f207075626c69632076616c7565207472616e73666572000000604482015290519081900360640190fd5b611f0d836122db565b600114611f61576040805162461bcd60e51b815260206004820152601f60248201527f496e636f7272656374206e756d626572206f6620696e707574206e6f74657300604482015290519081900360640190fd5b611f6a826122db565b600214611fbe576040805162461bcd60e51b815260206004820181905260248201527f496e636f7272656374206e756d626572206f66206f7574707574206e6f746573604482015290519081900360640190fd5b85611fd361139184600063ffffffff611c1316565b60200151146120135760405162461bcd60e51b81526004018080602001828103825260278152602001806125ec6027913960400191505060405180910390fd5b845461202961139185600063ffffffff611c1316565b602001511461207f576040805162461bcd60e51b815260206004820152601f60248201527f73747265616d206e6f746520696e2032206973206e6f7420636f727265637400604482015290519081900360640190fd5b505050949350505050565b6020828101519082028301610101015190808310611c635760405162461bcd60e51b815260040180806020018281038252605e81526020018061250d605e913960600191505060405180910390fd5b6120e38282611a11565b61211e5760405162461bcd60e51b81526004018080602001828103825260218152602001806123d56021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61214a8282611a11565b1561219c576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600081848411156122505760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122155781810151838201526020016121fd565b50505050905090810190601f1680156122425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836122a75760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156122155781810151838201526020016121fd565b5060008385816122b357fe5b0495945050505050565b604081015160608201516001600160a01b0390911692909160800190565b6020015190565b604080516060808201835260008083526020830152918101919091529056fe506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6573747265616d20726563697069656e742063616e27742076696577206e65772073747265616d206e6f746573746172742074696d65206265666f726520626c6f636b2e74696d657374616d70726563697069656e7420726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e73656e64657220726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737353747265616d2073656e64657220646f65736e2774206f776e207365636f6e64206f7574707574206e6f746553747265616d206475726174696f6e206e6f742067726561746572207468616e207a65726f63616e63656c6c6174696f6e2077697468207a65726f20756e636c61696d65642074696d656368616e6765206e6f746520696e2032206973206e6f74206f776e65642062792073747265616d20636f6e747261637453747265616d20726563697069656e7420646f65736e2774206f776e206669727374206f7574707574206e6f746561646472657373506f73206f7574206f6620626f756e6473202d2061646472657373506f73206d757374206265206c657373207468616e20746865206e756d626572206f662061646472657373657320746f20626520617070726f76656463616c6c6572206973206e6f74207468652073656e646572206f722074686520726563697069656e74206f66207468652073747265616d696e636f7272656374206e6f74696f6e616c206e6f746520696e2070726f6f66203173747265616d2073656e6465722063616e27742076696577206e65772073747265616d206e6f74657769746864726177206e6f746520696e2032206973206e6f74207468652073616d65206173203163616c6c6572206973206e6f742074686520726563697069656e74206f66207468652073747265616d415a54454320617272617920696e646578206973206f7574206f6620626f756e6473a265627a7a723158204b885b0fbc3e77ad991ce1dd489201ae8a4576ce93a7ba422ecf6cb1e2ceeb3464736f6c634300050f0032', + '0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80635989dcde116100715780635989dcde146103035780635c975abb146104505780636ef8d66d1461045857806382dc1ec4146104605780638456cb5914610486578063894e9a0d1461048e576100a9565b80631468a5d4146100ae5780631e99d569146101e25780633bc9e403146101fc5780633f4ba83a146102d557806346fbf68e146102dd575b600080fd5b6101e0600480360360808110156100c457600080fd5b81359190810190604081016020820135600160201b8111156100e557600080fd5b8201836020820111156100f757600080fd5b803590602001918460018302840111600160201b8311171561011857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561016a57600080fd5b82018360208201111561017c57600080fd5b803590602001918460018302840111600160201b8311171561019d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506104f5915050565b005b6101ea6107b2565b60408051918252519081900360200190f35b6102c16004803603608081101561021257600080fd5b81359190810190604081016020820135600160201b81111561023357600080fd5b82018360208201111561024557600080fd5b803590602001918460018302840111600160201b8311171561026657600080fd5b919390929091602081019035600160201b81111561028357600080fd5b82018360208201111561029557600080fd5b803590602001918460018302840111600160201b831117156102b657600080fd5b9193509150356107b8565b604080519115158252519081900360200190f35b6101e0610b51565b6102c1600480360360208110156102f357600080fd5b50356001600160a01b0316610c3a565b6101ea600480360360c081101561031957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561034357600080fd5b82018360208201111561035557600080fd5b803590602001918460018302840111600160201b8311171561037657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103c857600080fd5b8201836020820111156103da57600080fd5b803590602001918460018302840111600160201b831117156103fb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550506001600160a01b038335169350505060208101359060400135610c52565b6102c1611014565b6101e061101d565b6101e06004803603602081101561047657600080fd5b50356001600160a01b031661102f565b6101e0611081565b6104ab600480360360208110156104a457600080fd5b5035611147565b604080516001600160a01b039889168152968816602088015286810195909552929095166060850152608084015260a083019390935260c082019290925290519081900360e00190f35b600154610100900460ff16610551576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff00191690556000848152600360205260409020600601548490600160a01b900460ff166105c3576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008581526003602052604090206004015485906001600160a01b0316331461061d5760405162461bcd60e51b8152600401808060200182810382526029815260200180612eb76029913960400191505060405180910390fd5b600086815260036020526040902083610675576040805162461bcd60e51b81526020600482015260156024820152741e995c9bc81d985b1d59481dda5d1a191c985dd85b605a1b604482015290519081900360640190fd5b6002810154429061068c908663ffffffff61120b16565b106106de576040805162461bcd60e51b815260206004820181905260248201527f77697468647261772069732067726561746572207468616e20616c6c6f776564604482015290519081900360640190fd5b6001546000906106ff906201000090046001600160a01b031688878561126c565b90506000610724600160029054906101000a90046001600160a01b0316888486611555565b808455600284015490915061073f908763ffffffff61120b16565b60028401556004830154600584015460408051848152602081018a905281516001600160a01b0394851694909316928d927fc40560fdf83328f954941bff2b9141084d3c22e88c89a758557961e1966a57a9928290030190a450506001805461ff00191661010017905550505050505050565b60025481565b600154600090610100900460ff16610817576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6001805461ff00191690556000878152600360205260409020600601548790600160a01b900460ff16610889576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60008881526003602052604090206005015488906001600160a01b03163314806108cc57506000818152600360205260409020600401546001600160a01b031633145b6109075760405162461bcd60e51b8152600401808060200182810382526037815260200180612de86037913960400191505060405180910390fd5b6000898152600360208190526040909120908101546002820154141561093a576109328a6000611829565b935050610b36565b600085116109795760405162461bcd60e51b8152600401808060200182810382526025815260200180612cb86025913960400191505060405180910390fd5b60058101546001600160a01b0316331415610a0857600281015442906109a5908763ffffffff61120b16565b11806109c85750600381015460028201546109c6908763ffffffff61120b16565b145b610a035760405162461bcd60e51b815260040180806020018281038252602a815260200180612bd9602a913960400191505060405180910390fd5b610a70565b60048101546001600160a01b0316331415610a705760028101544290610a34908763ffffffff61120b16565b10610a705760405162461bcd60e51b815260040180806020018281038252602d815260200180612b81602d913960400191505060405180910390fd5b6000610acb600160029054906101000a90046001600160a01b03168b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b925087915061126c9050565b9050610b26600160029054906101000a90046001600160a01b031689898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508692508791506118ea9050565b50610b318b87611829565b945050505b50506001805461ff0019166101001790559695505050505050565b610b61610b5c611c39565b610c3a565b610b9c5760405162461bcd60e51b8152600401808060200182810382526030815260200180612ae16030913960400191505060405180910390fd5b60015460ff16610bea576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610c1d611c39565b604080516001600160a01b039092168252519081900360200190a1565b6000610c4c818363ffffffff611c3d16565b92915050565b60015460009060ff1615610ca0576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b038716610cfb576040805162461bcd60e51b815260206004820152601a60248201527f73747265616d20746f20746865207a65726f2061646472657373000000000000604482015290519081900360640190fd5b6001600160a01b038716301415610d59576040805162461bcd60e51b815260206004820152601d60248201527f73747265616d20746f2074686520636f6e747261637420697473656c66000000604482015290519081900360640190fd5b6001600160a01b038716331415610dae576040805162461bcd60e51b815260206004820152601460248201527339ba3932b0b6903a37903a34329031b0b63632b960611b604482015290519081900360640190fd5b42831015610ded5760405162461bcd60e51b8152600401808060200182810382526021815260200180612b606021913960400191505060405180910390fd5b828211610e2b5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c936025913960400191505060405180910390fd5b6000610e508787600160029054906101000a90046001600160a01b0316338c8a611ca4565b9050600060025490506040518061010001604052808381526020018681526020018681526020018581526020018a6001600160a01b03168152602001336001600160a01b03168152602001876001600160a01b0316815260200160011515815250600360008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e08201518160060160146101000a81548160ff021916908315150217905550905050610fac600160025461120b90919063ffffffff16565b600255604080516001600160a01b03888116825260208201859052818301889052606082018790529151918b1691339184917fede16fa759a9d06c1022b933b4d4ed9b2cdcaafe19510813fdd430456f951b9a9181900360800190a498975050505050505050565b60015460ff1690565b61102d611028611c39565b612257565b565b61103a610b5c611c39565b6110755760405162461bcd60e51b8152600401808060200182810382526030815260200180612ae16030913960400191505060405180910390fd5b61107e8161229f565b50565b61108c610b5c611c39565b6110c75760405162461bcd60e51b8152600401808060200182810382526030815260200180612ae16030913960400191505060405180910390fd5b60015460ff1615611112576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c1d611c39565b6000818152600360205260408120600601548190819081908190819081908890600160a01b900460ff166111ba576040805162461bcd60e51b81526020600482015260156024820152741cdd1c99585b48191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b5050506000958652505060036020819052604090942060058101546004820154825460068401546001850154600286015495909901546001600160a01b039485169a93851699929850931695509350565b600082820183811015611265576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008061128a836002015484600301546122e790919063ffffffff16565b90506112b0846112a483633b9aca0063ffffffff61232916565b9063ffffffff61238216565b6112b9866123c4565b14611301576040805162461bcd60e51b81526020600482015260136024820152720e4c2e8d2dee640c8de40dcdee840dac2e8c6d606b1b604482015290519081900360640190fd5b60405163a2866ea360e01b8152620104016004820181815230602484018190526060604485018181528a5160648701528a5191956001600160a01b038d169563a2866ea3959094938d93919260840190602085019080838360005b8381101561137457818101518382015260200161135c565b50505050905090810190601f1680156113a15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c257600080fd5b505af11580156113d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113ff57600080fd5b8101908080516040519392919084600160201b82111561141e57600080fd5b90830190602082018581111561143357600080fd5b8251600160201b81118282018810171561144c57600080fd5b82525081516020918201929091019080838360005b83811015611479578181015183820152602001611461565b50505050905090810190601f1680156114a65780820380516001836020036101000a031916815260200191505b5060405250505090506060806114ce6114c96000856123f290919063ffffffff16565b612449565b5050875491935091506114f06114eb84600063ffffffff6123f216565b612473565b60200151146115305760405162461bcd60e51b8152600401808060200182810382526022815260200180612e1f6022913960400191505060405180910390fd5b6115446114eb82600063ffffffff6123f216565b602001519998505050505050505050565b60006060611565868686866124b6565b905060608061157383612449565b505091509150611581612ac1565b6115956114eb83600163ffffffff6123f216565b80519091506001600160a01b031630146115e05760405162461bcd60e51b8152600401808060200182810382526030815260200180612cdd6030913960400191505060405180910390fd5b600586015460408201516001600160a01b0390911690611601906000612869565b6001600160a01b0316146116465760405162461bcd60e51b8152600401808060200182810382526028815260200180612e686028913960400191505060405180910390fd5b600486015460408201516001600160a01b0390911690611667906001612869565b6001600160a01b0316146116ac5760405162461bcd60e51b815260040180806020018281038252602b815260200180612b11602b913960400191505060405180910390fd5b60068601546001600160a01b0316631f2ac16a6116d36114eb86600063ffffffff6123f216565b60200151604080516001600160e01b031960e085901b16815260048101929092523060248301526001604483015260806064830152600060848301819052905160c48084019382900301818387803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050506006860154604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b039095169463cdfea90e9492938a9391606490910190602085019080838360005b838110156117b457818101518382015260200161179c565b50505050905090810190601f1680156117e15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561180157600080fd5b505af1158015611815573d6000803e3d6000fd5b505050506020015198975050505050505050565b6000828152600360209081526040808320600481015460058201548351878152935192946001600160a01b0392831694919092169288927f78771645abf470107bd6a847c532dba992a0e2c0995d479ebe8153dea930543c928290030190a450505060009081526003602081905260408220828155600180820184905560028201849055918101929092556004820180546001600160a01b03199081169091556005830180549091169055600690910180546001600160a81b031916905590565b600060606118fa868686866124b6565b905060608061190883612449565b509193509150600090506119256114eb848363ffffffff6123f216565b602001519050611933612ac1565b6119476114eb84600063ffffffff6123f216565b9050611951612ac1565b6119656114eb85600163ffffffff6123f216565b600489015483519192506001600160a01b039182169116146119b85760405162461bcd60e51b815260040180806020018281038252602e815260200180612d5c602e913960400191505060405180910390fd5b600588015481516001600160a01b03908116911614611a085760405162461bcd60e51b815260040180806020018281038252602c815260200180612c67602c913960400191505060405180910390fd5b600488015460408301516001600160a01b0390911690611a29906000612869565b6001600160a01b031614611a6e5760405162461bcd60e51b815260040180806020018281038252602b815260200180612d31602b913960400191505060405180910390fd5b600588015460408201516001600160a01b0390911690611a8f906000612869565b6001600160a01b031614611ad45760405162461bcd60e51b8152600401808060200182810382526024815260200180612d0d6024913960400191505060405180910390fd5b600688015460408051630f9560b560e11b815260048101869052306024820152600160448201526080606482015260006084820181905291516001600160a01b0390931692631f2ac16a9260c48084019391929182900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505050506006880154604080516366ff548760e11b81526201010160048201818152602483019384528a5160448401528a516001600160a01b039095169463cdfea90e9492938c9391606490910190602085019080838360005b83811015611bc3578181015183820152602001611bab565b50505050905090810190601f168015611bf05780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b3390565b60006001600160a01b038216611c845760405162461bcd60e51b8152600401808060200182810382526022815260200180612c456022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60006060856001600160a01b031663a2866ea362010101338b6040518463ffffffff1660e01b8152600401808462ffffff1662ffffff168152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d31578181015183820152602001611d19565b50505050905090810190601f168015611d5e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d7f57600080fd5b505af1158015611d93573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611dbc57600080fd5b8101908080516040519392919084600160201b821115611ddb57600080fd5b908301906020820185811115611df057600080fd5b8251600160201b811182820188101715611e0957600080fd5b82525081516020918201929091019080838360005b83811015611e36578181015183820152602001611e1e565b50505050905090810190601f168015611e635780820380516001836020036101000a031916815260200191505b5060405250505090506060611e826000836123f290919063ffffffff16565b90506060611e8f82612449565b5050915050611e9d816128b8565b600114611ef1576040805162461bcd60e51b815260206004820181905260248201527f496e636f7272656374206e756d626572206f66206f7574707574206e6f746573604482015290519081900360640190fd5b611ef9612ac1565b611f0d6114eb83600063ffffffff6123f216565b80519091506001600160a01b03163014611f585760405162461bcd60e51b815260040180806020018281038252602b815260200180612bae602b913960400191505060405180910390fd5b876001600160a01b0316611f7182604001516000612869565b6001600160a01b031614611fb65760405162461bcd60e51b8152600401808060200182810382526024815260200180612b3c6024913960400191505060405180910390fd5b866001600160a01b0316611fcf82604001516001612869565b6001600160a01b0316146120145760405162461bcd60e51b8152600401808060200182810382526027815260200180612e416027913960400191505060405180910390fd5b856001600160a01b0316630a60305a62010101863060018f6040518663ffffffff1660e01b8152600401808662ffffff1662ffffff16815260200180602001856001600160a01b03166001600160a01b031681526020018415151515815260200180602001838103835287818151815260200191508051906020019080838360005b838110156120ae578181015183820152602001612096565b50505050905090810190601f1680156120db5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561210e5781810151838201526020016120f6565b50505050905090810190601f16801561213b5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561215f57600080fd5b505af1158015612173573d6000803e3d6000fd5b5050604080516366ff548760e11b81526201010160048201818152602483019384528851604484015288516001600160a01b038d16965063cdfea90e9550919389939192909160640190602085019080838360005b838110156121e05781810151838201526020016121c8565b50505050905090810190601f16801561220d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b50505050602001519a9950505050505050505050565b61226860008263ffffffff6128bf16565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6122b060008263ffffffff61292616565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600061126583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506129a7565b60008261233857506000610c4c565b8282028284828161234557fe5b04146112655760405162461bcd60e51b8152600401808060200182810382526021815260200180612c246021913960400191505060405180910390fd5b600061126583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a3e565b60408101516060820151600091906123ea816112a484633b9aca0063ffffffff61232916565b949350505050565b6020828101519082028301604001518301908210806124425760405162461bcd60e51b8152600401808060200182810382526022815260200180612ee06022913960400191505060405180910390fd5b5092915050565b60208101516040820151606083015160808401519284019491909301926001600160a01b03169190565b61247b612ac1565b600080606061248985612aa3565b604080516060810182526001600160a01b0390941684526020840192909252908201529350505050919050565b60405163a2866ea360e01b8152620101016004820181815230602484018190526060604485018181528851606487015288519195612677956000956001600160a01b038d169563a2866ea395929490938d9360849091019060208501908083838d5b83811015612530578181015183820152602001612518565b50505050905090810190601f16801561255d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561257e57600080fd5b505af1158015612592573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125bb57600080fd5b8101908080516040519392919084600160201b8211156125da57600080fd5b9083019060208201858111156125ef57600080fd5b8251600160201b81118282018810171561260857600080fd5b82525081516020918201929091019080838360005b8381101561263557818101518382015260200161261d565b50505050905090810190601f1680156126625780820380516001836020036101000a031916815260200191505b506040525050506123f290919063ffffffff16565b9050606080600061268784612449565b93505092509250806000146126e3576040805162461bcd60e51b815260206004820152601d60248201527f6e6f6e7a65726f207075626c69632076616c7565207472616e73666572000000604482015290519081900360640190fd5b6126ec836128b8565b600114612740576040805162461bcd60e51b815260206004820152601f60248201527f496e636f7272656374206e756d626572206f6620696e707574206e6f74657300604482015290519081900360640190fd5b612749826128b8565b60021461279d576040805162461bcd60e51b815260206004820181905260248201527f496e636f7272656374206e756d626572206f66206f7574707574206e6f746573604482015290519081900360640190fd5b856127b26114eb84600063ffffffff6123f216565b60200151146127f25760405162461bcd60e51b8152600401808060200182810382526027815260200180612e906027913960400191505060405180910390fd5b84546128086114eb85600063ffffffff6123f216565b602001511461285e576040805162461bcd60e51b815260206004820152601f60248201527f73747265616d206e6f746520696e2032206973206e6f7420636f727265637400604482015290519081900360640190fd5b505050949350505050565b60208281015190820283016101010151908083106124425760405162461bcd60e51b815260040180806020018281038252605e815260200180612d8a605e913960600191505060405180910390fd5b6020015190565b6128c98282611c3d565b6129045760405162461bcd60e51b8152600401808060200182810382526021815260200180612c036021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6129308282611c3d565b15612982576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115612a365760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129fb5781810151838201526020016129e3565b50505050905090810190601f168015612a285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183612a8d5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129fb5781810151838201526020016129e3565b506000838581612a9957fe5b0495945050505050565b604081015160608201516001600160a01b0390911692909160800190565b604080516060808201835260008083526020830152918101919091529056fe506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6573747265616d20726563697069656e742063616e27742076696577206e65772073747265616d206e6f746573747265616d2073656e6465722063616e277420766965772073747265616d206e6f746573746172742074696d65206265666f726520626c6f636b2e74696d657374616d70726563697069656e7420726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e73747265616d206e6f7465206973206e6f74206f776e65642062792073747265616d20636f6e747261637473656e64657220726563656976657320746f6f206d7563682066726f6d2063616e63656c6c6174696f6e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737353747265616d2073656e64657220646f65736e2774206f776e207365636f6e64206f7574707574206e6f746553747265616d206475726174696f6e206e6f742067726561746572207468616e207a65726f63616e63656c6c6174696f6e2077697468207a65726f20756e636c61696d65642074696d656368616e6765206e6f746520696e2032206973206e6f74206f776e65642062792073747265616d20636f6e747261637473747265616d2073656e6465722063616e2774207669657720726566756e64206e6f746573747265616d20726563697069656e742063616e27742076696577207769746864726177616c206e6f746553747265616d20726563697069656e7420646f65736e2774206f776e206669727374206f7574707574206e6f746561646472657373506f73206f7574206f6620626f756e6473202d2061646472657373506f73206d757374206265206c657373207468616e20746865206e756d626572206f662061646472657373657320746f20626520617070726f76656463616c6c6572206973206e6f74207468652073656e646572206f722074686520726563697069656e74206f66207468652073747265616d696e636f7272656374206e6f74696f6e616c206e6f746520696e2070726f6f66203173747265616d20726563697069656e742063616e277420766965772073747265616d206e6f746573747265616d2073656e6465722063616e27742076696577206e65772073747265616d206e6f74657769746864726177206e6f746520696e2032206973206e6f74207468652073616d65206173203163616c6c6572206973206e6f742074686520726563697069656e74206f66207468652073747265616d415a54454320617272617920696e646578206973206f7574206f6620626f756e6473a265627a7a7231582082989ecb6430bf512f28d08363cc0a6bf2a065c4959092b9b848a6c99678da7964736f6c634300050f0032', linkReferences: {}, deployedLinkReferences: {}, }; diff --git a/packages/contract-artifacts/contracts/StreamUtilities.ts b/packages/contract-artifacts/contracts/StreamUtilities.ts index 88a396f..e71d258 100644 --- a/packages/contract-artifacts/contracts/StreamUtilities.ts +++ b/packages/contract-artifacts/contracts/StreamUtilities.ts @@ -2,9 +2,9 @@ export default { contractName: 'StreamUtilities', abi: [], bytecode: - '0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820b0c8047152ae625605cc7c7239b8e424dfb7a37caeb5490776c10883d23299b664736f6c634300050f0032', + '0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820c8f9a590281f6d9170e715b7aeb1810d2783e72d630d1643d60a3320a9751d7664736f6c634300050f0032', deployedBytecode: - '0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820b0c8047152ae625605cc7c7239b8e424dfb7a37caeb5490776c10883d23299b664736f6c634300050f0032', + '0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820c8f9a590281f6d9170e715b7aeb1810d2783e72d630d1643d60a3320a9751d7664736f6c634300050f0032', linkReferences: {}, deployedLinkReferences: {}, };