60806040523480156200001157600080fd5b506040518060400160405280600681526020016536394e49434560d01b8152506040518060400160405280600681526020016536394e49434560d01b815250336c08cc07d22484865507058400008383836000620000746200018760201b60201c565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508251620000d7906008906020860190620002a8565b50600a80546001600160a01b0319166001600160a01b038316179055815162000108906009906020850190620002a8565b50600f805461ff0019166101001781556001600160a01b039091166000908152600260209081526040808320805460ff199081166001908117909255855462ff00ff19169091178555600390925290912080549091169055805466ff0000ff00000019169055506200017d905082826200018b565b5050505062000401565b3390565b6001600160a01b038216620001e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b600b8054600a916001918491906000906200020390849062000364565b90915550506001600160a01b038416600090815260046020526040812080548592906200023290849062000364565b9091555050600b54600c8190556200024c9083906200037f565b600d8190556200025e908290620003a2565b600e556040518381526001600160a01b038516906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b828054620002b690620003c4565b90600052602060002090601f016020900481019282620002da576000855562000325565b82601f10620002f557805160ff191683800117855562000325565b8280016001018555821562000325579182015b828111156200032557825182559160200191906001019062000308565b506200033392915062000337565b5090565b5b8082111562000333576000815560010162000338565b634e487b7160e01b600052601160045260246000fd5b600082198211156200037a576200037a6200034e565b500190565b6000826200039d57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615620003bf57620003bf6200034e565b500290565b600181811c90821680620003d957607f821691505b60208210811415620003fb57634e487b7160e01b600052602260045260246000fd5b50919050565b610fcb80620004116000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101aa578063a457c2d7146101b2578063a9059cbb146101c5578063dd62ed3e146101d857600080fd5b806370a082311461015c578063715018a6146101855780638da5cb5b1461018f57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610211565b6040516100e99190610d59565b60405180910390f35b610105610100366004610dca565b6102a3565b60405190151581526020016100e9565b600b545b6040519081526020016100e9565b610105610135366004610df4565b6102b9565b604051601281526020016100e9565b610105610157366004610dca565b61036f565b61011961016a366004610e30565b6001600160a01b031660009081526004602052604090205490565b61018d6103a6565b005b6001546040516001600160a01b0390911681526020016100e9565b6100dc61044a565b6101056101c0366004610dca565b610459565b6101056101d3366004610dca565b6104f4565b6101196101e6366004610e52565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60606008805461022090610e85565b80601f016020809104026020016040519081016040528092919081815260200182805461024c90610e85565b80156102995780601f1061026e57610100808354040283529160200191610299565b820191906000526020600020905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b60006102b0338484610501565b50600192915050565b60006102c684848461074e565b6001600160a01b0384166000908152600660209081526040808320338452909152902054828110156103505760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610364853361035f8685610ed6565b610501565b506001949350505050565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916102b091859061035f908690610eed565b6001546001600160a01b031633146104005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610347565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b60606009805461022090610e85565b3360009081526006602090815260408083206001600160a01b0386168452909152812054828110156104db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610347565b6104ea338561035f8685610ed6565b5060019392505050565b60006102b033848461074e565b6001600160a01b0383166105635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610347565b6001600160a01b0382166105c45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610347565b600a546001600160a01b0384811691161480156105e85750600f5460ff1615156001145b610624576001600160a01b038216600090815260026020908152604080832054600390925290912054600f5460ff92831692918216911661062a565b60016000805b6001600160a01b03808616600081815260026020908152604080832060038352818420600f805498151560ff19998a1617815581549915159989169990991790558054981515989096169790971790945591881682526006835284822090825290915291909120829055546301000000900460ff166106c1576001600160a01b0383166000908152600460205260409020546106f3565b6106cc613e80610a86565b6001600160a01b0384166000908152600460205260409020546106f39161ffff1690610f1b565b6001600160a01b0384811660008181526004602090815260409182902094909455518481529185169290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107b25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610347565b6001600160a01b0382166108145760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610347565b6001600160a01b0383166000908152600460205260409020548181101561088c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610347565b600a546001600160a01b0385811691161480156108b15750600f54610100900460ff16155b6108c957600c54600f5462010000900460ff166108cf565b600d5460015b600f8054911515620100000262ff000019909216919091179055600c55600a546001600160a01b0385811691161480156109165750600f5460ff6101009091041615156001145b610948576001600160a01b038316600090815260026020526040902054600f5460ff918216916101009091041661094d565b600160005b6001600160a01b0385166000908152600260205260409020600f805461ff0019166101009315159390930292909217909155805460ff19169115159190911790556109988483610b04565b6109a184610b45565b600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0385161790556109f68282610ed6565b6001600160a01b038086166000908152600460205260408082209390935590851681529081208054849290610a2c908490610eed565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a7891815260200190565b60405180910390a350505050565b600060c88261ffff164244604051602001610aab929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c610ace9190610f2f565b610ad89190610f43565b600f805465ffff00000000191664010000000061ffff9384168102919091179182905590041692915050565b6001600160a01b03821660009081526002602052604090205460ff16610b4157600e54811115610b3357600080fd5b600c548110610b4157600080fd5b5050565b6001600160a01b03811660009081526002602052604090205460ff1615156001148015610b805750600a546001600160a01b03828116911614155b8015610b965750600f546301000000900460ff16155b80610baf5750600f54600160301b900460ff1615156001145b15610d5657610bbf610258610a86565b61ffff1660011480610bdf5750600f54600160301b900460ff1615156001145b15610d565760005b600754811015610cdd576002600060078381548110610c0857610c08610f64565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161515600114610ccb57610c44613e80610a86565b61ffff166004600060078481548110610c5f57610c5f610f64565b60009182526020808320909101546001600160a01b03168352820192909252604001902054610c8e9190610f1b565b6004600060078481548110610ca557610ca5610f64565b60009182526020808320909101546001600160a01b031683528201929092526040019020555b80610cd581610f7a565b915050610be7565b50600f546301000000900460ff16610cf6576001610cf9565b60005b600f8054911515600160301b0266ff0000000000001990921691909117908190556301000000900460ff16610d3057600e54610d3f565b6014600e54610d3f9190610f1b565b600e55600f805463ff000000191663010000001790555b50565b600060208083528351808285015260005b81811015610d8657858101830151858201604001528201610d6a565b81811115610d98576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610dc557600080fd5b919050565b60008060408385031215610ddd57600080fd5b610de683610dae565b946020939093013593505050565b600080600060608486031215610e0957600080fd5b610e1284610dae565b9250610e2060208501610dae565b9150604084013590509250925092565b600060208284031215610e4257600080fd5b610e4b82610dae565b9392505050565b60008060408385031215610e6557600080fd5b610e6e83610dae565b9150610e7c60208401610dae565b90509250929050565b600181811c90821680610e9957607f821691505b60208210811415610eba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610ee857610ee8610ec0565b500390565b60008219821115610f0057610f00610ec0565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610f2a57610f2a610f05565b500490565b600082610f3e57610f3e610f05565b500690565b600061ffff80841680610f5857610f58610f05565b92169190910492915050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610f8e57610f8e610ec0565b506001019056fea264697066735822122031e6402a1d92f4325713f9226e74b8eaf8ff165eb73f01ffe839f5cd9cc449c064736f6c634300080a0033