@ensuro/core 2.1.0-beta1 → 2.1.0-beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/build/contracts/AccessManager.sol/AccessManager.json +2 -2
  2. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +2 -2
  3. package/build/contracts/EToken.sol/EToken.json +15 -7
  4. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +2 -2
  5. package/build/contracts/Policy.sol/Policy.json +2 -2
  6. package/build/contracts/PolicyPool.sol/PolicyPool.json +2 -2
  7. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +46 -2
  8. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +2 -2
  9. package/build/contracts/TimeScaled.sol/TimeScaled.json +2 -2
  10. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +2 -2
  11. package/build/contracts/interfaces/IEToken.sol/IEToken.json +0 -5
  12. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +2 -2
  13. package/build/contracts/mocks/InterfaceIdCalculator.sol/InterfaceIdCalculator.json +2 -2
  14. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +2 -2
  15. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +2 -2
  16. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +2 -2
  17. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +2 -2
  18. package/contracts/EToken.sol +24 -13
  19. package/contracts/LPManualWhitelist.sol +1 -1
  20. package/contracts/PremiumsAccount.sol +90 -11
  21. package/contracts/RiskModule.sol +2 -2
  22. package/contracts/TimeScaled.sol +2 -9
  23. package/contracts/interfaces/IAccessManager.sol +4 -4
  24. package/contracts/interfaces/IEToken.sol +1 -7
  25. package/package.json +1 -1
@@ -640,8 +640,8 @@
640
640
  "type": "function"
641
641
  }
642
642
  ],
643
- "bytecode": "0x60c0604052306080523480156200001557600080fd5b506040516200258938038062002589833981016040819052620000389162000197565b806001600160a01b038116620000bb5760405162461bcd60e51b815260206004820152603660248201527f506f6c696379506f6f6c436f6d706f6e656e743a20706f6c696379506f6f6c2060448201527f63616e6e6f74206265207a65726f20616464726573730000000000000000000060648201526084015b60405180910390fd5b620000c5620000d8565b6001600160a01b031660a05250620001c9565b600054610100900460ff1615620001425760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000b2565b60005460ff908116101562000195576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001aa57600080fd5b81516001600160a01b0381168114620001c257600080fd5b9392505050565b60805160a05161234d6200023c600039600081816102bf015281816106a501528181610a4001528181610b4d01528181610e3b01528181610f3e01528181611149015261168e0152600081816105220152818161056b015281816107b7015281816107f70152610886015261234d6000f3fe60806040526004361061014b5760003560e01c80635c975abb116100b6578063aa2f92fb1161006f578063aa2f92fb1461040d578063aad4148c1461042d578063cf273ca614610461578063e5a6b10f14610481578063ed716bf414610496578063f67b2bad146104b857600080fd5b80635c975abb146103535780635fcdca371461036b5780637ed5acfa1461038b5780638456cb59146103b8578063896ce44c146103cd5780639051c763146103ed57600080fd5b8063468a8c9f11610108578063468a8c9f146102405780634a47a3e01461027c5780634d15eb03146102b05780634f1ef286146102f757806352d1902d1461030a5780635b494dd51461031f57600080fd5b806301ffc9a7146101505780631e3b9c5e1461018557806324ea54f4146101c75780633659cfe6146101e957806337ee20dd1461020b5780633f4ba83a1461022b575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b95565b6104ec565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101b97f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b60405190815260200161017c565b3480156101d357600080fd5b506101b96000805160206122f883398151915281565b3480156101f557600080fd5b50610209610204366004611bd4565b610518565b005b34801561021757600080fd5b50610170610226366004611bf1565b610600565b34801561023757600080fd5b50610209610673565b34801561024c57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161017c565b34801561028857600080fd5b506101b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b3480156102bc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161017c565b610209610305366004611c79565b6107ad565b34801561031657600080fd5b506101b9610879565b34801561032b57600080fd5b506101b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561035f57600080fd5b5060975460ff16610170565b34801561037757600080fd5b50610170610386366004611d21565b61092c565b34801561039757600080fd5b506103a26201518081565b60405164ffffffffff909116815260200161017c565b3480156103c457600080fd5b50610209610a2f565b3480156103d957600080fd5b506102096103e8366004611d8a565b610b2a565b3480156103f957600080fd5b50610170610408366004611bf1565b610ca3565b34801561041957600080fd5b50610209610428366004611dc0565b610d05565b34801561043957600080fd5b506101b97fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561046d57600080fd5b5061020961047c366004611dc0565b610e18565b34801561048d57600080fd5b506102df610f3a565b3480156104a257600080fd5b506104ab610fc3565b60405161017c9190611e57565b3480156104c457600080fd5b506101b97fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b60006104f7826110e1565b8061051257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105695760405162461bcd60e51b815260040161056090611e65565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105b26000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146105d85760405162461bcd60e51b815260040161056090611eb1565b6105e181611117565b604080516000808252602082019092526105fd9183919061124e565b50565b6001600160a01b038216600090815260fb602052604081205460ff168181600281111561062f5761062f611ddc565b0361065257506000805260fb6020526000805160206122918339815191525460ff165b60015b81600281111561066757610667611ddc565b149150505b9392505050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506107a96113b9565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107f55760405162461bcd60e51b815260040161056090611e65565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083e6000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146108645760405162461bcd60e51b815260040161056090611eb1565b61086d82611117565b6107a98282600161124e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610560565b506000805160206122b183398151915290565b6001600160a01b038316600090815260fb602052604081205462010000900460ff168181600281111561096157610961611ddc565b0361098a57506000805260fb6020526000805160206122918339815191525462010000900460ff165b600181600281111561099e5761099e611ddc565b146109ad576000915050610a27565b506001600160a01b038316600090815260fb60205260408120546301000000900460ff16908160028111156109e4576109e4611ddc565b03610a0e57506000805260fb602052600080516020612291833981519152546301000000900460ff165b6001816002811115610a2257610a22611ddc565b149150505b949350505050565b6000805160206122f88339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611efd565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610af29493929190611f1a565b60006040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506105fd61140b565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610bff9493929190611f1a565b60006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b5050506001600160a01b0384169050610c865760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c74730000006044820152606401610560565b610c9e83610c9936859003850185611f51565b611448565b505050565b6001600160a01b038216600090815260fb6020526040812054610100900460ff1681816002811115610cd757610cd7611ddc565b0361065257506000805260fb60205260008051602061229183398151915254610100900460ff166001610655565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce82611539565b80156107a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610eed9493929190611f1a565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b50505050610f2682611571565b6107a96000610c9936859003850185611f51565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190611efd565b905090565b610fee6040805160808101909152806000815260200160008152602001600081526020016000905290565b6000805260fb60205260408051608081019091526000805160206122918339815191528054829060ff16600281111561102957611029611ddc565b600281111561103a5761103a611ddc565b81528154602090910190610100900460ff16600281111561105d5761105d611ddc565b600281111561106e5761106e611ddc565b8152815460209091019062010000900460ff16600281111561109257611092611ddc565b60028111156110a3576110a3611ddc565b815281546020909101906301000000900460ff1660028111156110c8576110c8611ddc565b60028111156110d9576110d9611ddc565b905250919050565b60006001600160e01b031982166301ffc9a760e01b148061051257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561122d57600080fd5b505afa158015611241573d6000803e3d6000fd5b50505050610c9e8361168c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561128157610c9e8361177d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112db575060408051601f3d908101601f191682019092526112d891810190611fd6565b60015b61133e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610560565b6000805160206122b183398151915281146113ad5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610560565b50610c9e838383611819565b6113c1611844565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61141361188f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ee3390565b6001600160a01b038216600090815260fb602052604090208151815483929190829060ff1916600183600281111561148257611482611ddc565b021790555060208201518154829061ff0019166101008360028111156114aa576114aa611ddc565b021790555060408201518154829062ff00001916620100008360028111156114d4576114d4611ddc565b021790555060608201518154829063ff0000001916630100000083600281111561150057611500611ddc565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610e0c929190611fef565b600054610100900460ff166115605760405162461bcd60e51b81526004016105609061200c565b6115686118d5565b6105fd8161190c565b60006115806020830183612057565b600281111561159157611591611ddc565b141580156115c0575060006115ac6040830160208401612057565b60028111156115bd576115bd611ddc565b14155b80156115ed575060006115d96060830160408401612057565b60028111156115ea576115ea611ddc565b14155b801561161a575060006116066080830160608401612057565b600281111561161757611617611ddc565b14155b6105fd5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e73000000006064820152608401610560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190611efd565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b6064820152608401610560565b6001600160a01b0381163b6117ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610560565b6000805160206122b183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118228361199f565b60008251118061182f5750805b15610c9e5761183e83836119df565b50505050565b60975460ff1661188d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610560565b565b60975460ff161561188d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610560565b600054610100900460ff166118fc5760405162461bcd60e51b81526004016105609061200c565b611904611ad3565b61188d611afa565b600054610100900460ff166119335760405162461bcd60e51b81526004016105609061200c565b61193c81611571565b6000805260fb6020528060008051602061229183398151915261195f82826120f3565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a600082604051611994929190612199565b60405180910390a150565b6119a88161177d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610560565b600080846001600160a01b031684604051611a629190612241565b600060405180830381855af49150503d8060008114611a9d576040519150601f19603f3d011682016040523d82523d6000602084013e611aa2565b606091505b5091509150611aca82826040518060600160405280602781526020016122d160279139611b29565b95945050505050565b600054610100900460ff1661188d5760405162461bcd60e51b81526004016105609061200c565b600054610100900460ff16611b215760405162461bcd60e51b81526004016105609061200c565b61188d611b62565b60608315611b3857508161066c565b825115611b485782518084602001fd5b8160405162461bcd60e51b8152600401610560919061225d565b600054610100900460ff16611b895760405162461bcd60e51b81526004016105609061200c565b6097805460ff19169055565b600060208284031215611ba757600080fd5b81356001600160e01b03198116811461066c57600080fd5b6001600160a01b03811681146105fd57600080fd5b600060208284031215611be657600080fd5b813561066c81611bbf565b600080600060608486031215611c0657600080fd5b8335611c1181611bbf565b92506020840135611c2181611bbf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7157611c71611c32565b604052919050565b60008060408385031215611c8c57600080fd5b8235611c9781611bbf565b915060208381013567ffffffffffffffff80821115611cb557600080fd5b818601915086601f830112611cc957600080fd5b813581811115611cdb57611cdb611c32565b611ced601f8201601f19168501611c48565b91508082528784828501011115611d0357600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060808587031215611d3757600080fd5b8435611d4281611bbf565b93506020850135611d5281611bbf565b92506040850135611d6281611bbf565b9396929550929360600135925050565b600060808284031215611d8457600080fd5b50919050565b60008060a08385031215611d9d57600080fd5b8235611da881611bbf565b9150611db78460208501611d72565b90509250929050565b600060808284031215611dd257600080fd5b61066c8383611d72565b634e487b7160e01b600052602160045260246000fd5b60038110611e1057634e487b7160e01b600052602160045260246000fd5b9052565b611e1f828251611df2565b6020810151611e316020840182611df2565b506040810151611e446040840182611df2565b506060810151610c9e6060840182611df2565b608081016105128284611e14565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611f0f57600080fd5b815161066c81611bbf565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b600381106105fd57600080fd5b600060808284031215611f6357600080fd5b6040516080810181811067ffffffffffffffff82111715611f8657611f86611c32565b6040528235611f9481611f44565b81526020830135611fa481611f44565b60208201526040830135611fb781611f44565b60408201526060830135611fca81611f44565b60608201529392505050565b600060208284031215611fe857600080fd5b5051919050565b6001600160a01b038316815260a0810161066c6020830184611e14565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561206957600080fd5b813561066c81611f44565b6000813561051281611f44565b6003821061209f57634e487b7160e01b600052602160045260246000fd5b805462ff00008360101b1662ff0000198216178255505050565b600382106120d757634e487b7160e01b600052602160045260246000fd5b805463ff0000008360181b1663ff000000198216178255505050565b81356120fe81611f44565b6003811061211c57634e487b7160e01b600052602160045260246000fd5b815460ff821691508160ff198216178355602084013561213b81611f44565b6003811061215957634e487b7160e01b600052602160045260246000fd5b61ff008160081b168361ffff1984161717845550505061218461217e60408401612074565b82612081565b6107a961219360608401612074565b826120b9565b6001600160a01b038316815260a0810182356121b481611f44565b6121c16020840182611df2565b5060208301356121d081611f44565b6121dd6040840182611df2565b5060408301356121ec81611f44565b6121f96060840182611df2565b50606083013561220881611f44565b6122156080840182611df2565b509392505050565b60005b83811015612238578181015183820152602001612220565b50506000910152565b6000825161225381846020870161221d565b9190910192915050565b602081526000825180602084015261227c81604085016020870161221d565b601f01601f1916919091016040019291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212209d8e7e225e8fda000c166f5f0311960220729ec38657290252ef8ccd38865ad764736f6c63430008100033",
644
- "deployedBytecode": "0x60806040526004361061014b5760003560e01c80635c975abb116100b6578063aa2f92fb1161006f578063aa2f92fb1461040d578063aad4148c1461042d578063cf273ca614610461578063e5a6b10f14610481578063ed716bf414610496578063f67b2bad146104b857600080fd5b80635c975abb146103535780635fcdca371461036b5780637ed5acfa1461038b5780638456cb59146103b8578063896ce44c146103cd5780639051c763146103ed57600080fd5b8063468a8c9f11610108578063468a8c9f146102405780634a47a3e01461027c5780634d15eb03146102b05780634f1ef286146102f757806352d1902d1461030a5780635b494dd51461031f57600080fd5b806301ffc9a7146101505780631e3b9c5e1461018557806324ea54f4146101c75780633659cfe6146101e957806337ee20dd1461020b5780633f4ba83a1461022b575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b95565b6104ec565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101b97f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b60405190815260200161017c565b3480156101d357600080fd5b506101b96000805160206122f883398151915281565b3480156101f557600080fd5b50610209610204366004611bd4565b610518565b005b34801561021757600080fd5b50610170610226366004611bf1565b610600565b34801561023757600080fd5b50610209610673565b34801561024c57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161017c565b34801561028857600080fd5b506101b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b3480156102bc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161017c565b610209610305366004611c79565b6107ad565b34801561031657600080fd5b506101b9610879565b34801561032b57600080fd5b506101b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561035f57600080fd5b5060975460ff16610170565b34801561037757600080fd5b50610170610386366004611d21565b61092c565b34801561039757600080fd5b506103a26201518081565b60405164ffffffffff909116815260200161017c565b3480156103c457600080fd5b50610209610a2f565b3480156103d957600080fd5b506102096103e8366004611d8a565b610b2a565b3480156103f957600080fd5b50610170610408366004611bf1565b610ca3565b34801561041957600080fd5b50610209610428366004611dc0565b610d05565b34801561043957600080fd5b506101b97fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561046d57600080fd5b5061020961047c366004611dc0565b610e18565b34801561048d57600080fd5b506102df610f3a565b3480156104a257600080fd5b506104ab610fc3565b60405161017c9190611e57565b3480156104c457600080fd5b506101b97fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b60006104f7826110e1565b8061051257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105695760405162461bcd60e51b815260040161056090611e65565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105b26000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146105d85760405162461bcd60e51b815260040161056090611eb1565b6105e181611117565b604080516000808252602082019092526105fd9183919061124e565b50565b6001600160a01b038216600090815260fb602052604081205460ff168181600281111561062f5761062f611ddc565b0361065257506000805260fb6020526000805160206122918339815191525460ff165b60015b81600281111561066757610667611ddc565b149150505b9392505050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506107a96113b9565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107f55760405162461bcd60e51b815260040161056090611e65565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083e6000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146108645760405162461bcd60e51b815260040161056090611eb1565b61086d82611117565b6107a98282600161124e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610560565b506000805160206122b183398151915290565b6001600160a01b038316600090815260fb602052604081205462010000900460ff168181600281111561096157610961611ddc565b0361098a57506000805260fb6020526000805160206122918339815191525462010000900460ff165b600181600281111561099e5761099e611ddc565b146109ad576000915050610a27565b506001600160a01b038316600090815260fb60205260408120546301000000900460ff16908160028111156109e4576109e4611ddc565b03610a0e57506000805260fb602052600080516020612291833981519152546301000000900460ff165b6001816002811115610a2257610a22611ddc565b149150505b949350505050565b6000805160206122f88339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611efd565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610af29493929190611f1a565b60006040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506105fd61140b565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610bff9493929190611f1a565b60006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b5050506001600160a01b0384169050610c865760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c74730000006044820152606401610560565b610c9e83610c9936859003850185611f51565b611448565b505050565b6001600160a01b038216600090815260fb6020526040812054610100900460ff1681816002811115610cd757610cd7611ddc565b0361065257506000805260fb60205260008051602061229183398151915254610100900460ff166001610655565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce82611539565b80156107a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610eed9493929190611f1a565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b50505050610f2682611571565b6107a96000610c9936859003850185611f51565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190611efd565b905090565b610fee6040805160808101909152806000815260200160008152602001600081526020016000905290565b6000805260fb60205260408051608081019091526000805160206122918339815191528054829060ff16600281111561102957611029611ddc565b600281111561103a5761103a611ddc565b81528154602090910190610100900460ff16600281111561105d5761105d611ddc565b600281111561106e5761106e611ddc565b8152815460209091019062010000900460ff16600281111561109257611092611ddc565b60028111156110a3576110a3611ddc565b815281546020909101906301000000900460ff1660028111156110c8576110c8611ddc565b60028111156110d9576110d9611ddc565b905250919050565b60006001600160e01b031982166301ffc9a760e01b148061051257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561122d57600080fd5b505afa158015611241573d6000803e3d6000fd5b50505050610c9e8361168c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561128157610c9e8361177d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112db575060408051601f3d908101601f191682019092526112d891810190611fd6565b60015b61133e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610560565b6000805160206122b183398151915281146113ad5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610560565b50610c9e838383611819565b6113c1611844565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61141361188f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ee3390565b6001600160a01b038216600090815260fb602052604090208151815483929190829060ff1916600183600281111561148257611482611ddc565b021790555060208201518154829061ff0019166101008360028111156114aa576114aa611ddc565b021790555060408201518154829062ff00001916620100008360028111156114d4576114d4611ddc565b021790555060608201518154829063ff0000001916630100000083600281111561150057611500611ddc565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610e0c929190611fef565b600054610100900460ff166115605760405162461bcd60e51b81526004016105609061200c565b6115686118d5565b6105fd8161190c565b60006115806020830183612057565b600281111561159157611591611ddc565b141580156115c0575060006115ac6040830160208401612057565b60028111156115bd576115bd611ddc565b14155b80156115ed575060006115d96060830160408401612057565b60028111156115ea576115ea611ddc565b14155b801561161a575060006116066080830160608401612057565b600281111561161757611617611ddc565b14155b6105fd5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e73000000006064820152608401610560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190611efd565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b6064820152608401610560565b6001600160a01b0381163b6117ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610560565b6000805160206122b183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118228361199f565b60008251118061182f5750805b15610c9e5761183e83836119df565b50505050565b60975460ff1661188d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610560565b565b60975460ff161561188d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610560565b600054610100900460ff166118fc5760405162461bcd60e51b81526004016105609061200c565b611904611ad3565b61188d611afa565b600054610100900460ff166119335760405162461bcd60e51b81526004016105609061200c565b61193c81611571565b6000805260fb6020528060008051602061229183398151915261195f82826120f3565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a600082604051611994929190612199565b60405180910390a150565b6119a88161177d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610560565b600080846001600160a01b031684604051611a629190612241565b600060405180830381855af49150503d8060008114611a9d576040519150601f19603f3d011682016040523d82523d6000602084013e611aa2565b606091505b5091509150611aca82826040518060600160405280602781526020016122d160279139611b29565b95945050505050565b600054610100900460ff1661188d5760405162461bcd60e51b81526004016105609061200c565b600054610100900460ff16611b215760405162461bcd60e51b81526004016105609061200c565b61188d611b62565b60608315611b3857508161066c565b825115611b485782518084602001fd5b8160405162461bcd60e51b8152600401610560919061225d565b600054610100900460ff16611b895760405162461bcd60e51b81526004016105609061200c565b6097805460ff19169055565b600060208284031215611ba757600080fd5b81356001600160e01b03198116811461066c57600080fd5b6001600160a01b03811681146105fd57600080fd5b600060208284031215611be657600080fd5b813561066c81611bbf565b600080600060608486031215611c0657600080fd5b8335611c1181611bbf565b92506020840135611c2181611bbf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7157611c71611c32565b604052919050565b60008060408385031215611c8c57600080fd5b8235611c9781611bbf565b915060208381013567ffffffffffffffff80821115611cb557600080fd5b818601915086601f830112611cc957600080fd5b813581811115611cdb57611cdb611c32565b611ced601f8201601f19168501611c48565b91508082528784828501011115611d0357600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060808587031215611d3757600080fd5b8435611d4281611bbf565b93506020850135611d5281611bbf565b92506040850135611d6281611bbf565b9396929550929360600135925050565b600060808284031215611d8457600080fd5b50919050565b60008060a08385031215611d9d57600080fd5b8235611da881611bbf565b9150611db78460208501611d72565b90509250929050565b600060808284031215611dd257600080fd5b61066c8383611d72565b634e487b7160e01b600052602160045260246000fd5b60038110611e1057634e487b7160e01b600052602160045260246000fd5b9052565b611e1f828251611df2565b6020810151611e316020840182611df2565b506040810151611e446040840182611df2565b506060810151610c9e6060840182611df2565b608081016105128284611e14565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611f0f57600080fd5b815161066c81611bbf565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b600381106105fd57600080fd5b600060808284031215611f6357600080fd5b6040516080810181811067ffffffffffffffff82111715611f8657611f86611c32565b6040528235611f9481611f44565b81526020830135611fa481611f44565b60208201526040830135611fb781611f44565b60408201526060830135611fca81611f44565b60608201529392505050565b600060208284031215611fe857600080fd5b5051919050565b6001600160a01b038316815260a0810161066c6020830184611e14565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561206957600080fd5b813561066c81611f44565b6000813561051281611f44565b6003821061209f57634e487b7160e01b600052602160045260246000fd5b805462ff00008360101b1662ff0000198216178255505050565b600382106120d757634e487b7160e01b600052602160045260246000fd5b805463ff0000008360181b1663ff000000198216178255505050565b81356120fe81611f44565b6003811061211c57634e487b7160e01b600052602160045260246000fd5b815460ff821691508160ff198216178355602084013561213b81611f44565b6003811061215957634e487b7160e01b600052602160045260246000fd5b61ff008160081b168361ffff1984161717845550505061218461217e60408401612074565b82612081565b6107a961219360608401612074565b826120b9565b6001600160a01b038316815260a0810182356121b481611f44565b6121c16020840182611df2565b5060208301356121d081611f44565b6121dd6040840182611df2565b5060408301356121ec81611f44565b6121f96060840182611df2565b50606083013561220881611f44565b6122156080840182611df2565b509392505050565b60005b83811015612238578181015183820152602001612220565b50506000910152565b6000825161225381846020870161221d565b9190910192915050565b602081526000825180602084015261227c81604085016020870161221d565b601f01601f1916919091016040019291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212209d8e7e225e8fda000c166f5f0311960220729ec38657290252ef8ccd38865ad764736f6c63430008100033",
643
+ "bytecode": "0x60c0604052306080523480156200001557600080fd5b506040516200258938038062002589833981016040819052620000389162000197565b806001600160a01b038116620000bb5760405162461bcd60e51b815260206004820152603660248201527f506f6c696379506f6f6c436f6d706f6e656e743a20706f6c696379506f6f6c2060448201527f63616e6e6f74206265207a65726f20616464726573730000000000000000000060648201526084015b60405180910390fd5b620000c5620000d8565b6001600160a01b031660a05250620001c9565b600054610100900460ff1615620001425760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000b2565b60005460ff908116101562000195576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001aa57600080fd5b81516001600160a01b0381168114620001c257600080fd5b9392505050565b60805160a05161234d6200023c600039600081816102bf015281816106a501528181610a4001528181610b4d01528181610e3b01528181610f3e01528181611149015261168e0152600081816105220152818161056b015281816107b7015281816107f70152610886015261234d6000f3fe60806040526004361061014b5760003560e01c80635c975abb116100b6578063aa2f92fb1161006f578063aa2f92fb1461040d578063aad4148c1461042d578063cf273ca614610461578063e5a6b10f14610481578063ed716bf414610496578063f67b2bad146104b857600080fd5b80635c975abb146103535780635fcdca371461036b5780637ed5acfa1461038b5780638456cb59146103b8578063896ce44c146103cd5780639051c763146103ed57600080fd5b8063468a8c9f11610108578063468a8c9f146102405780634a47a3e01461027c5780634d15eb03146102b05780634f1ef286146102f757806352d1902d1461030a5780635b494dd51461031f57600080fd5b806301ffc9a7146101505780631e3b9c5e1461018557806324ea54f4146101c75780633659cfe6146101e957806337ee20dd1461020b5780633f4ba83a1461022b575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b95565b6104ec565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101b97f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b60405190815260200161017c565b3480156101d357600080fd5b506101b96000805160206122f883398151915281565b3480156101f557600080fd5b50610209610204366004611bd4565b610518565b005b34801561021757600080fd5b50610170610226366004611bf1565b610600565b34801561023757600080fd5b50610209610673565b34801561024c57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161017c565b34801561028857600080fd5b506101b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b3480156102bc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161017c565b610209610305366004611c79565b6107ad565b34801561031657600080fd5b506101b9610879565b34801561032b57600080fd5b506101b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561035f57600080fd5b5060975460ff16610170565b34801561037757600080fd5b50610170610386366004611d21565b61092c565b34801561039757600080fd5b506103a26201518081565b60405164ffffffffff909116815260200161017c565b3480156103c457600080fd5b50610209610a2f565b3480156103d957600080fd5b506102096103e8366004611d8a565b610b2a565b3480156103f957600080fd5b50610170610408366004611bf1565b610ca3565b34801561041957600080fd5b50610209610428366004611dc0565b610d05565b34801561043957600080fd5b506101b97fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561046d57600080fd5b5061020961047c366004611dc0565b610e18565b34801561048d57600080fd5b506102df610f3a565b3480156104a257600080fd5b506104ab610fc3565b60405161017c9190611e57565b3480156104c457600080fd5b506101b97fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b60006104f7826110e1565b8061051257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105695760405162461bcd60e51b815260040161056090611e65565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105b26000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146105d85760405162461bcd60e51b815260040161056090611eb1565b6105e181611117565b604080516000808252602082019092526105fd9183919061124e565b50565b6001600160a01b038216600090815260fb602052604081205460ff168181600281111561062f5761062f611ddc565b0361065257506000805260fb6020526000805160206122918339815191525460ff165b60015b81600281111561066757610667611ddc565b149150505b9392505050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506107a96113b9565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107f55760405162461bcd60e51b815260040161056090611e65565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083e6000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146108645760405162461bcd60e51b815260040161056090611eb1565b61086d82611117565b6107a98282600161124e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610560565b506000805160206122b183398151915290565b6001600160a01b038316600090815260fb602052604081205462010000900460ff168181600281111561096157610961611ddc565b0361098a57506000805260fb6020526000805160206122918339815191525462010000900460ff165b600181600281111561099e5761099e611ddc565b146109ad576000915050610a27565b506001600160a01b038316600090815260fb60205260408120546301000000900460ff16908160028111156109e4576109e4611ddc565b03610a0e57506000805260fb602052600080516020612291833981519152546301000000900460ff165b6001816002811115610a2257610a22611ddc565b149150505b949350505050565b6000805160206122f88339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611efd565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610af29493929190611f1a565b60006040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506105fd61140b565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610bff9493929190611f1a565b60006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b5050506001600160a01b0384169050610c865760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c74730000006044820152606401610560565b610c9e83610c9936859003850185611f51565b611448565b505050565b6001600160a01b038216600090815260fb6020526040812054610100900460ff1681816002811115610cd757610cd7611ddc565b0361065257506000805260fb60205260008051602061229183398151915254610100900460ff166001610655565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce82611539565b80156107a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610eed9493929190611f1a565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b50505050610f2682611571565b6107a96000610c9936859003850185611f51565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190611efd565b905090565b610fee6040805160808101909152806000815260200160008152602001600081526020016000905290565b6000805260fb60205260408051608081019091526000805160206122918339815191528054829060ff16600281111561102957611029611ddc565b600281111561103a5761103a611ddc565b81528154602090910190610100900460ff16600281111561105d5761105d611ddc565b600281111561106e5761106e611ddc565b8152815460209091019062010000900460ff16600281111561109257611092611ddc565b60028111156110a3576110a3611ddc565b815281546020909101906301000000900460ff1660028111156110c8576110c8611ddc565b60028111156110d9576110d9611ddc565b905250919050565b60006001600160e01b031982166301ffc9a760e01b148061051257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561122d57600080fd5b505afa158015611241573d6000803e3d6000fd5b50505050610c9e8361168c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561128157610c9e8361177d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112db575060408051601f3d908101601f191682019092526112d891810190611fd6565b60015b61133e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610560565b6000805160206122b183398151915281146113ad5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610560565b50610c9e838383611819565b6113c1611844565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61141361188f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ee3390565b6001600160a01b038216600090815260fb602052604090208151815483929190829060ff1916600183600281111561148257611482611ddc565b021790555060208201518154829061ff0019166101008360028111156114aa576114aa611ddc565b021790555060408201518154829062ff00001916620100008360028111156114d4576114d4611ddc565b021790555060608201518154829063ff0000001916630100000083600281111561150057611500611ddc565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610e0c929190611fef565b600054610100900460ff166115605760405162461bcd60e51b81526004016105609061200c565b6115686118d5565b6105fd8161190c565b60006115806020830183612057565b600281111561159157611591611ddc565b141580156115c0575060006115ac6040830160208401612057565b60028111156115bd576115bd611ddc565b14155b80156115ed575060006115d96060830160408401612057565b60028111156115ea576115ea611ddc565b14155b801561161a575060006116066080830160608401612057565b600281111561161757611617611ddc565b14155b6105fd5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e73000000006064820152608401610560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190611efd565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b6064820152608401610560565b6001600160a01b0381163b6117ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610560565b6000805160206122b183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118228361199f565b60008251118061182f5750805b15610c9e5761183e83836119df565b50505050565b60975460ff1661188d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610560565b565b60975460ff161561188d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610560565b600054610100900460ff166118fc5760405162461bcd60e51b81526004016105609061200c565b611904611ad3565b61188d611afa565b600054610100900460ff166119335760405162461bcd60e51b81526004016105609061200c565b61193c81611571565b6000805260fb6020528060008051602061229183398151915261195f82826120f3565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a600082604051611994929190612199565b60405180910390a150565b6119a88161177d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610560565b600080846001600160a01b031684604051611a629190612241565b600060405180830381855af49150503d8060008114611a9d576040519150601f19603f3d011682016040523d82523d6000602084013e611aa2565b606091505b5091509150611aca82826040518060600160405280602781526020016122d160279139611b29565b95945050505050565b600054610100900460ff1661188d5760405162461bcd60e51b81526004016105609061200c565b600054610100900460ff16611b215760405162461bcd60e51b81526004016105609061200c565b61188d611b62565b60608315611b3857508161066c565b825115611b485782518084602001fd5b8160405162461bcd60e51b8152600401610560919061225d565b600054610100900460ff16611b895760405162461bcd60e51b81526004016105609061200c565b6097805460ff19169055565b600060208284031215611ba757600080fd5b81356001600160e01b03198116811461066c57600080fd5b6001600160a01b03811681146105fd57600080fd5b600060208284031215611be657600080fd5b813561066c81611bbf565b600080600060608486031215611c0657600080fd5b8335611c1181611bbf565b92506020840135611c2181611bbf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7157611c71611c32565b604052919050565b60008060408385031215611c8c57600080fd5b8235611c9781611bbf565b915060208381013567ffffffffffffffff80821115611cb557600080fd5b818601915086601f830112611cc957600080fd5b813581811115611cdb57611cdb611c32565b611ced601f8201601f19168501611c48565b91508082528784828501011115611d0357600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060808587031215611d3757600080fd5b8435611d4281611bbf565b93506020850135611d5281611bbf565b92506040850135611d6281611bbf565b9396929550929360600135925050565b600060808284031215611d8457600080fd5b50919050565b60008060a08385031215611d9d57600080fd5b8235611da881611bbf565b9150611db78460208501611d72565b90509250929050565b600060808284031215611dd257600080fd5b61066c8383611d72565b634e487b7160e01b600052602160045260246000fd5b60038110611e1057634e487b7160e01b600052602160045260246000fd5b9052565b611e1f828251611df2565b6020810151611e316020840182611df2565b506040810151611e446040840182611df2565b506060810151610c9e6060840182611df2565b608081016105128284611e14565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611f0f57600080fd5b815161066c81611bbf565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b600381106105fd57600080fd5b600060808284031215611f6357600080fd5b6040516080810181811067ffffffffffffffff82111715611f8657611f86611c32565b6040528235611f9481611f44565b81526020830135611fa481611f44565b60208201526040830135611fb781611f44565b60408201526060830135611fca81611f44565b60608201529392505050565b600060208284031215611fe857600080fd5b5051919050565b6001600160a01b038316815260a0810161066c6020830184611e14565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561206957600080fd5b813561066c81611f44565b6000813561051281611f44565b6003821061209f57634e487b7160e01b600052602160045260246000fd5b805462ff00008360101b1662ff0000198216178255505050565b600382106120d757634e487b7160e01b600052602160045260246000fd5b805463ff0000008360181b1663ff000000198216178255505050565b81356120fe81611f44565b6003811061211c57634e487b7160e01b600052602160045260246000fd5b815460ff821691508160ff198216178355602084013561213b81611f44565b6003811061215957634e487b7160e01b600052602160045260246000fd5b61ff008160081b168361ffff1984161717845550505061218461217e60408401612074565b82612081565b6107a961219360608401612074565b826120b9565b6001600160a01b038316815260a0810182356121b481611f44565b6121c16020840182611df2565b5060208301356121d081611f44565b6121dd6040840182611df2565b5060408301356121ec81611f44565b6121f96060840182611df2565b50606083013561220881611f44565b6122156080840182611df2565b509392505050565b60005b83811015612238578181015183820152602001612220565b50506000910152565b6000825161225381846020870161221d565b9190910192915050565b602081526000825180602084015261227c81604085016020870161221d565b601f01601f1916919091016040019291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a264697066735822122045b1e7d37e64e0e18faf2ed58dddf4f15d5055d22036737c4d2ca3f2e4c9e6e364736f6c63430008100033",
644
+ "deployedBytecode": "0x60806040526004361061014b5760003560e01c80635c975abb116100b6578063aa2f92fb1161006f578063aa2f92fb1461040d578063aad4148c1461042d578063cf273ca614610461578063e5a6b10f14610481578063ed716bf414610496578063f67b2bad146104b857600080fd5b80635c975abb146103535780635fcdca371461036b5780637ed5acfa1461038b5780638456cb59146103b8578063896ce44c146103cd5780639051c763146103ed57600080fd5b8063468a8c9f11610108578063468a8c9f146102405780634a47a3e01461027c5780634d15eb03146102b05780634f1ef286146102f757806352d1902d1461030a5780635b494dd51461031f57600080fd5b806301ffc9a7146101505780631e3b9c5e1461018557806324ea54f4146101c75780633659cfe6146101e957806337ee20dd1461020b5780633f4ba83a1461022b575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b95565b6104ec565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101b97f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b60405190815260200161017c565b3480156101d357600080fd5b506101b96000805160206122f883398151915281565b3480156101f557600080fd5b50610209610204366004611bd4565b610518565b005b34801561021757600080fd5b50610170610226366004611bf1565b610600565b34801561023757600080fd5b50610209610673565b34801561024c57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161017c565b34801561028857600080fd5b506101b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b3480156102bc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161017c565b610209610305366004611c79565b6107ad565b34801561031657600080fd5b506101b9610879565b34801561032b57600080fd5b506101b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561035f57600080fd5b5060975460ff16610170565b34801561037757600080fd5b50610170610386366004611d21565b61092c565b34801561039757600080fd5b506103a26201518081565b60405164ffffffffff909116815260200161017c565b3480156103c457600080fd5b50610209610a2f565b3480156103d957600080fd5b506102096103e8366004611d8a565b610b2a565b3480156103f957600080fd5b50610170610408366004611bf1565b610ca3565b34801561041957600080fd5b50610209610428366004611dc0565b610d05565b34801561043957600080fd5b506101b97fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561046d57600080fd5b5061020961047c366004611dc0565b610e18565b34801561048d57600080fd5b506102df610f3a565b3480156104a257600080fd5b506104ab610fc3565b60405161017c9190611e57565b3480156104c457600080fd5b506101b97fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b60006104f7826110e1565b8061051257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105695760405162461bcd60e51b815260040161056090611e65565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105b26000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146105d85760405162461bcd60e51b815260040161056090611eb1565b6105e181611117565b604080516000808252602082019092526105fd9183919061124e565b50565b6001600160a01b038216600090815260fb602052604081205460ff168181600281111561062f5761062f611ddc565b0361065257506000805260fb6020526000805160206122918339815191525460ff165b60015b81600281111561066757610667611ddc565b149150505b9392505050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506107a96113b9565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107f55760405162461bcd60e51b815260040161056090611e65565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083e6000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146108645760405162461bcd60e51b815260040161056090611eb1565b61086d82611117565b6107a98282600161124e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610560565b506000805160206122b183398151915290565b6001600160a01b038316600090815260fb602052604081205462010000900460ff168181600281111561096157610961611ddc565b0361098a57506000805260fb6020526000805160206122918339815191525462010000900460ff165b600181600281111561099e5761099e611ddc565b146109ad576000915050610a27565b506001600160a01b038316600090815260fb60205260408120546301000000900460ff16908160028111156109e4576109e4611ddc565b03610a0e57506000805260fb602052600080516020612291833981519152546301000000900460ff165b6001816002811115610a2257610a22611ddc565b149150505b949350505050565b6000805160206122f88339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611efd565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610af29493929190611f1a565b60006040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506105fd61140b565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610bff9493929190611f1a565b60006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b5050506001600160a01b0384169050610c865760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c74730000006044820152606401610560565b610c9e83610c9936859003850185611f51565b611448565b505050565b6001600160a01b038216600090815260fb6020526040812054610100900460ff1681816002811115610cd757610cd7611ddc565b0361065257506000805260fb60205260008051602061229183398151915254610100900460ff166001610655565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce82611539565b80156107a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610eed9493929190611f1a565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b50505050610f2682611571565b6107a96000610c9936859003850185611f51565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190611efd565b905090565b610fee6040805160808101909152806000815260200160008152602001600081526020016000905290565b6000805260fb60205260408051608081019091526000805160206122918339815191528054829060ff16600281111561102957611029611ddc565b600281111561103a5761103a611ddc565b81528154602090910190610100900460ff16600281111561105d5761105d611ddc565b600281111561106e5761106e611ddc565b8152815460209091019062010000900460ff16600281111561109257611092611ddc565b60028111156110a3576110a3611ddc565b815281546020909101906301000000900460ff1660028111156110c8576110c8611ddc565b60028111156110d9576110d9611ddc565b905250919050565b60006001600160e01b031982166301ffc9a760e01b148061051257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561122d57600080fd5b505afa158015611241573d6000803e3d6000fd5b50505050610c9e8361168c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561128157610c9e8361177d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112db575060408051601f3d908101601f191682019092526112d891810190611fd6565b60015b61133e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610560565b6000805160206122b183398151915281146113ad5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610560565b50610c9e838383611819565b6113c1611844565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61141361188f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ee3390565b6001600160a01b038216600090815260fb602052604090208151815483929190829060ff1916600183600281111561148257611482611ddc565b021790555060208201518154829061ff0019166101008360028111156114aa576114aa611ddc565b021790555060408201518154829062ff00001916620100008360028111156114d4576114d4611ddc565b021790555060608201518154829063ff0000001916630100000083600281111561150057611500611ddc565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610e0c929190611fef565b600054610100900460ff166115605760405162461bcd60e51b81526004016105609061200c565b6115686118d5565b6105fd8161190c565b60006115806020830183612057565b600281111561159157611591611ddc565b141580156115c0575060006115ac6040830160208401612057565b60028111156115bd576115bd611ddc565b14155b80156115ed575060006115d96060830160408401612057565b60028111156115ea576115ea611ddc565b14155b801561161a575060006116066080830160608401612057565b600281111561161757611617611ddc565b14155b6105fd5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e73000000006064820152608401610560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190611efd565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b6064820152608401610560565b6001600160a01b0381163b6117ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610560565b6000805160206122b183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118228361199f565b60008251118061182f5750805b15610c9e5761183e83836119df565b50505050565b60975460ff1661188d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610560565b565b60975460ff161561188d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610560565b600054610100900460ff166118fc5760405162461bcd60e51b81526004016105609061200c565b611904611ad3565b61188d611afa565b600054610100900460ff166119335760405162461bcd60e51b81526004016105609061200c565b61193c81611571565b6000805260fb6020528060008051602061229183398151915261195f82826120f3565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a600082604051611994929190612199565b60405180910390a150565b6119a88161177d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610560565b600080846001600160a01b031684604051611a629190612241565b600060405180830381855af49150503d8060008114611a9d576040519150601f19603f3d011682016040523d82523d6000602084013e611aa2565b606091505b5091509150611aca82826040518060600160405280602781526020016122d160279139611b29565b95945050505050565b600054610100900460ff1661188d5760405162461bcd60e51b81526004016105609061200c565b600054610100900460ff16611b215760405162461bcd60e51b81526004016105609061200c565b61188d611b62565b60608315611b3857508161066c565b825115611b485782518084602001fd5b8160405162461bcd60e51b8152600401610560919061225d565b600054610100900460ff16611b895760405162461bcd60e51b81526004016105609061200c565b6097805460ff19169055565b600060208284031215611ba757600080fd5b81356001600160e01b03198116811461066c57600080fd5b6001600160a01b03811681146105fd57600080fd5b600060208284031215611be657600080fd5b813561066c81611bbf565b600080600060608486031215611c0657600080fd5b8335611c1181611bbf565b92506020840135611c2181611bbf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7157611c71611c32565b604052919050565b60008060408385031215611c8c57600080fd5b8235611c9781611bbf565b915060208381013567ffffffffffffffff80821115611cb557600080fd5b818601915086601f830112611cc957600080fd5b813581811115611cdb57611cdb611c32565b611ced601f8201601f19168501611c48565b91508082528784828501011115611d0357600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060808587031215611d3757600080fd5b8435611d4281611bbf565b93506020850135611d5281611bbf565b92506040850135611d6281611bbf565b9396929550929360600135925050565b600060808284031215611d8457600080fd5b50919050565b60008060a08385031215611d9d57600080fd5b8235611da881611bbf565b9150611db78460208501611d72565b90509250929050565b600060808284031215611dd257600080fd5b61066c8383611d72565b634e487b7160e01b600052602160045260246000fd5b60038110611e1057634e487b7160e01b600052602160045260246000fd5b9052565b611e1f828251611df2565b6020810151611e316020840182611df2565b506040810151611e446040840182611df2565b506060810151610c9e6060840182611df2565b608081016105128284611e14565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611f0f57600080fd5b815161066c81611bbf565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b600381106105fd57600080fd5b600060808284031215611f6357600080fd5b6040516080810181811067ffffffffffffffff82111715611f8657611f86611c32565b6040528235611f9481611f44565b81526020830135611fa481611f44565b60208201526040830135611fb781611f44565b60408201526060830135611fca81611f44565b60608201529392505050565b600060208284031215611fe857600080fd5b5051919050565b6001600160a01b038316815260a0810161066c6020830184611e14565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561206957600080fd5b813561066c81611f44565b6000813561051281611f44565b6003821061209f57634e487b7160e01b600052602160045260246000fd5b805462ff00008360101b1662ff0000198216178255505050565b600382106120d757634e487b7160e01b600052602160045260246000fd5b805463ff0000008360181b1663ff000000198216178255505050565b81356120fe81611f44565b6003811061211c57634e487b7160e01b600052602160045260246000fd5b815460ff821691508160ff198216178355602084013561213b81611f44565b6003811061215957634e487b7160e01b600052602160045260246000fd5b61ff008160081b168361ffff1984161717845550505061218461217e60408401612074565b82612081565b6107a961219360608401612074565b826120b9565b6001600160a01b038316815260a0810182356121b481611f44565b6121c16020840182611df2565b5060208301356121d081611f44565b6121dd6040840182611df2565b5060408301356121ec81611f44565b6121f96060840182611df2565b50606083013561220881611f44565b6122156080840182611df2565b509392505050565b60005b83811015612238578181015183820152602001612220565b50506000910152565b6000825161225381846020870161221d565b9190910192915050565b602081526000825180602084015261227c81604085016020870161221d565b601f01601f1916919091016040019291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a264697066735822122045b1e7d37e64e0e18faf2ed58dddf4f15d5055d22036737c4d2ca3f2e4c9e6e364736f6c63430008100033",
645
645
  "linkReferences": {},
646
646
  "deployedLinkReferences": {}
647
647
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "Policy",
4
4
  "sourceName": "contracts/Policy.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c296a2d70e6708f6d99cf56cdaf4cad198bfd6e91a110e9709dec45102a019564736f6c63430008100033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c296a2d70e6708f6d99cf56cdaf4cad198bfd6e91a110e9709dec45102a019564736f6c63430008100033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205abf2819de4c7aaca87eef714462c03d906ec3d94fff6385dba645258b7a317964736f6c63430008100033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205abf2819de4c7aaca87eef714462c03d906ec3d94fff6385dba645258b7a317964736f6c63430008100033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }