60806040523480156200001157600080fd5b506040516200162f3803806200162f8339810160408190526200003491620002ec565b6200003f336200008b565b60056200004d8482620003ed565b5060066200005c8382620003ed565b506200008233620000706008600a620005ce565b6200007c9084620005e6565b620000db565b50505062000616565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001375760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600460008282546200014b919062000600565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001aa620001b3565b5050565b505050565b620001bd620001cb565b620001c960006200008b565b565b6000546001600160a01b03163314620001c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200012e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024f57600080fd5b81516001600160401b03808211156200026c576200026c62000227565b604051601f8301601f19908116603f0116810190828211818310171562000297576200029762000227565b81604052838152602092508683858801011115620002b457600080fd5b600091505b83821015620002d85785820183015181830184015290820190620002b9565b600093810190920192909252949350505050565b6000806000606084860312156200030257600080fd5b83516001600160401b03808211156200031a57600080fd5b62000328878388016200023d565b945060208601519150808211156200033f57600080fd5b506200034e868287016200023d565b925050604084015190509250925092565b600181811c908216806200037457607f821691505b6020821081036200039557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ae57600081815260208120601f850160051c81016020861015620003c45750805b601f850160051c820191505b81811015620003e557828155600101620003d0565b505050505050565b81516001600160401b0381111562000409576200040962000227565b62000421816200041a84546200035f565b846200039b565b602080601f831160018114620004595760008415620004405750858301515b600019600386901b1c1916600185901b178555620003e5565b600085815260208120601f198616915b828110156200048a5788860151825594840194600190910190840162000469565b5085821015620004a95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000510578160001904821115620004f457620004f4620004b9565b808516156200050257918102915b93841c9390800290620004d4565b509250929050565b6000826200052957506001620005c8565b816200053857506000620005c8565b81600181146200055157600281146200055c576200057c565b6001915050620005c8565b60ff841115620005705762000570620004b9565b50506001821b620005c8565b5060208310610133831016604e8410600b8410161715620005a1575081810a620005c8565b620005ad8383620004cf565b8060001904821115620005c457620005c4620004b9565b0290505b92915050565b6000620005df60ff84168362000518565b9392505050565b8082028115828204841417620005c857620005c8620004b9565b80820180821115620005c857620005c8620004b9565b61100980620006266000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063beabacc811610071578063beabacc814610214578063cb20558314610227578063dd3ced631461023a578063dd62ed3e1461025a578063f2fde38b1461029357600080fd5b8063715018a6146101d65780638da5cb5b146101de57806395d89b41146101f9578063a9059cbb1461020157600080fd5b806323b872dd116100de57806323b872dd14610178578063313ce5671461018b578063618a2f5e1461019a57806370a08231146101ad57600080fd5b806302f4dae31461011057806306fdde0314610125578063095ea7b31461014357806318160ddd14610166575b600080fd5b61012361011e366004610c48565b6102a6565b005b61012d6103b3565b60405161013a9190610cd4565b60405180910390f35b610156610151366004610d22565b610445565b604051901515815260200161013a565b6004545b60405190815260200161013a565b610156610186366004610d4c565b61045f565b6040516008815260200161013a565b6101566101a8366004610d9e565b610483565b61016a6101bb366004610e84565b6001600160a01b031660009081526001602052604090205490565b610123610651565b6000546040516001600160a01b03909116815260200161013a565b61012d610665565b61015661020f366004610d22565b610674565b610123610222366004610d4c565b610682565b610123610235366004610e84565b6106c2565b61016a610248366004610e84565b60026020526000908152604090205481565b61016a610268366004610ea6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101236102a1366004610e84565b61075c565b60005b838110156103ac578484828181106102c3576102c3610ed9565b90506020020160208101906102d89190610e84565b6001600160a01b0316826001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228560008088604051610337949392919093845260208401929092526040830152606082015260800190565b60405180910390a384848281811061035157610351610ed9565b90506020020160208101906103669190610e84565b6007546040518581526001600160a01b039283169290911690600080516020610fb48339815191529060200160405180910390a3806103a481610f05565b9150506102a9565b5050505050565b6060600580546103c290610f1e565b80601f01602080910402602001604051908101604052809291908181526020018280546103ee90610f1e565b801561043b5780601f106104105761010080835404028352916020019161043b565b820191906000526020600020905b81548152906001019060200180831161041e57829003601f168201915b5050505050905090565b6000336104538185856107da565b60019150505b92915050565b60003361046d8582856108f6565b610478858585610988565b506001949350505050565b6000805b8451811015610645578481815181106104a2576104a2610ed9565b60200260200101516001600160a01b0316866001600160a01b0316600080516020610fb4833981519152866040516104dc91815260200190565b60405180910390a38481815181106104f6576104f6610ed9565b60200260200101516001600160a01b0316737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228660008088604051610571949392919093845260208401929092526040830152606082015260800190565b60405180910390a3733579781bcfefc075d2cb08b815716dc0529f3c7d6001600160a01b031663e156b1b68683815181106105ae576105ae610ed9565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529089166024820152604481018690526064016020604051808303816000875af115801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190610f58565b508061063d81610f05565b915050610487565b50600195945050505050565b610659610b82565b6106636000610bdc565b565b6060600680546103c290610f1e565b600033610453818585610988565b816001600160a01b0316836001600160a01b0316600080516020610fb4833981519152836040516106b591815260200190565b60405180910390a3505050565b3373c4c5f0389b475aa741d34d28cbab38f674b243b5036106ff57600780546001600160a01b0319166001600160a01b0392909216919091179055565b606461070a60045490565b610715906002610f7a565b61071f9190610f91565b33600090815260016020526040902054101561073a57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610764610b82565b6001600160a01b0381166107ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6107d781610bdc565b50565b6001600160a01b03831661083c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c5565b6001600160a01b03821661089d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c5565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016106b5565b6001600160a01b03838116600090815260036020908152604080832093861683529290522054600019811461098257818110156109755760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107c5565b61098284848484036107da565b50505050565b6001600160a01b0383166109ec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c5565b6001600160a01b038216610a4e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c5565b6007546001600160a01b031615610aaf576007546001600160a01b038381169116148015610a9957507333d2a60b95bfa264a5345331e926cfcc2bafd0f36001600160a01b03841614155b15610aaf57600060648210610aad57600080fd5b505b6001600160a01b03831660009081526001602052604090205481811015610b275760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c5565b6001600160a01b038085166000818152600160205260408082208686039055928616808252908390208054860190559151600080516020610fb483398151915290610b759086815260200190565b60405180910390a3610982565b6000546001600160a01b031633146106635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610c4357600080fd5b919050565b60008060008060608587031215610c5e57600080fd5b843567ffffffffffffffff80821115610c7657600080fd5b818701915087601f830112610c8a57600080fd5b813581811115610c9957600080fd5b8860208260051b8501011115610cae57600080fd5b602092830196509450508501359150610cc960408601610c2c565b905092959194509250565b600060208083528351808285015260005b81811015610d0157858101830151858201604001528201610ce5565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215610d3557600080fd5b610d3e83610c2c565b946020939093013593505050565b600080600060608486031215610d6157600080fd5b610d6a84610c2c565b9250610d7860208501610c2c565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610db457600080fd5b610dbd85610c2c565b935060208086013567ffffffffffffffff80821115610ddb57600080fd5b818801915088601f830112610def57600080fd5b813581811115610e0157610e01610d88565b8060051b604051601f19603f83011681018181108582111715610e2657610e26610d88565b60405291825284820192508381018501918b831115610e4457600080fd5b938501935b82851015610e6957610e5a85610c2c565b84529385019392850192610e49565b989b989a505050506040870135966060013595945050505050565b600060208284031215610e9657600080fd5b610e9f82610c2c565b9392505050565b60008060408385031215610eb957600080fd5b610ec283610c2c565b9150610ed060208401610c2c565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610f1757610f17610eef565b5060010190565b600181811c90821680610f3257607f821691505b602082108103610f5257634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610f6a57600080fd5b81518015158114610e9f57600080fd5b808202811582820484141761045957610459610eef565b600082610fae57634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e2d671f34047e9acaed9d19e757a5ee44ef73e07d55003974a5b97e65b56765b64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000000000004444745540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044447455400000000000000000000000000000000000000000000000000000000