0x6080604052348015600f57600080fd5b50610bc38061001f6000396000f3fe60806040526004361061001e5760003560e01c80631249c58b14610023575b600080fd5b61002b61002d565b005b6040805160a0810182527f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833816d805460ff908116151583527f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833816e5460208401527f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833816f54838501527f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833817054166060808401919091528351908101938490526000938493929160808401917f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca210904783381719060039082845b81546001600160a01b03168152600190910190602001808311610119575050505050815250509050600061016a7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90565b82519091506101cb5760405162461bcd60e51b815260206004820152602260248201527f44617461496e746572666163654661636574204e6f7420696e697469616c697a604482015261195960f21b60648201526084015b60405180910390fd5b826101d46103fc565b6101de9190610a33565b341461021c5760405162461bcd60e51b815260206004820152600d60248201526c1999595cc81b9bdd081c185a59609a1b60448201526064016101c2565b600381015460ff16156102665760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b60448201526064016101c2565b60038101805460ff19166001179055600061028c600080516020610b6e83398151915290565b336000908152600c8201602052604090205490915060ff16156102e35760405162461bcd60e51b815260206004820152600f60248201526e155cd95c881a185cc81b5a5b9d1959608a1b60448201526064016101c2565b7f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca210904783381705460038201547f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833816d9160009161033c9160ff1690610a4c565b836004015461034b9190610a33565b9050826005015481106103a957620f424083600401600082825461036f9190610a33565b92505081905550620f424083600501600082825461038d9190610a33565b9091555050600060038401556103a6620dbba082610a33565b90505b6103b33382610582565b6003830180549060006103c583610a63565b9091555050336000908152600c909301602052505060409020805460ff199081166001179091556003909101805490911690555050565b7f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833816e546000907f8a844ca8e3dafb64110f153693c7adac59ba5369fa9e8075ca2109047833816d90825b60038160ff16101561057b5760006004840160ff83166003811061046b5761046b610a7c565b01546001600160a01b031614610569576000836004018260ff166003811061049557610495610a7c565b0160009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156104e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050b9190610ab1565b5050509150508160ff1660000361053c578061052f84670de0b6b3a7640000610a4c565b6105399190610b03565b92505b8160ff1660010361056757670de0b6b3a764000061055a8285610a4c565b6105649190610b03565b92505b505b8061057381610b25565b915050610445565b5092915050565b600080516020610b6e8339815191526001600160a01b0383166105e75760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016101c2565b60008281526008820160205260409020546001600160a01b0316156106455760405162461bcd60e51b8152602060048201526014602482015273151bdad95b88185b1c9958591e481b5a5b9d195960621b60448201526064016101c2565b610651600084846106c1565b6001600160a01b0383166000818152600d830160209081526040808320805460010190558583526008850190915280822080546001600160a01b0319168417905551849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b6001600160a01b03831661075a57610755817f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c3080805460008381527f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c308460205260408120829055600182018355919091527f14a315ad8d9af6ddc65485ff5cb05c2923070133ce7d4abfbd61a0a8782a6a180155565b61077d565b816001600160a01b0316836001600160a01b03161461077d5761077d838261084d565b6001600160a01b0382166107995761079481610934565b505050565b826001600160a01b0316826001600160a01b031614610794576001600160a01b039190911660009081527f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c308660209081526040808320547f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c3083835281842081855283528184208590559383527f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c308290915290205550565b6001600160a01b03821660009081527f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c30866020526040812054600080516020610b6e83398151915291906108a290600190610b44565b60008481526009840160205260409020549091508082146108fb576001600160a01b0385166000908152600a84016020908152604080832085845282528083205484845281842081905583526009860190915290208190555b50600092835260098201602090815260408085208590556001600160a01b039095168452600a9092018252838320908352905290812055565b7f7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c308054600080516020610b6e8339815191529060009061097590600190610b44565b6000848152600b840160205260408120546007850180549394509092849081106109a1576109a1610a7c565b90600052602060002001549050808460070183815481106109c4576109c4610a7c565b6000918252602080832090910192909255828152600b8601909152604080822084905586825281205560078401805480610a0057610a00610b57565b600190038181906000526020600020016000905590555050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4657610a46610a1d565b92915050565b8082028115828204841417610a4657610a46610a1d565b600060018201610a7557610a75610a1d565b5060010190565b634e487b7160e01b600052603260045260246000fd5b805169ffffffffffffffffffff81168114610aac57600080fd5b919050565b600080600080600060a08688031215610ac957600080fd5b610ad286610a92565b60208701516040880151606089015192975090955093509150610af760808701610a92565b90509295509295909350565b600082610b2057634e487b7160e01b600052601260045260246000fd5b500490565b600060ff821660ff8103610b3b57610b3b610a1d565b60010192915050565b81810381811115610a4657610a46610a1d565b634e487b7160e01b600052603160045260246000fdfe7cdd259a1dd9611ce9d90388172634af6fcb06705bb297b751bf3c9df62c3079a2646970667358221220acd14ee12c378853146ce330742ad3f009a614773896af8e506f19a0c402bfd164736f6c634300081b0033