60c06040526001600960006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600d81526020017f536f6c61722045636c69707365000000000000000000000000000000000000008152506040518060400160405280600581526020017f534f4c41520000000000000000000000000000000000000000000000000000008152508160039081620000aa919062000d64565b508060049081620000bc919062000d64565b5050506000620000d1620004e060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600062000182620004e860201b60201c565b90506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000243919062000eb5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d1919062000eb5565b6040518363ffffffff1660e01b8152600401620002f092919062000ef8565b6020604051808303816000875af115801562000310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000336919062000eb5565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200037e60a05160016200051260201b60201c565b600060019050600080600190506000806c0c9f2c9cd04674edea4000000090506064600382620003af919062000f54565b620003bb919062000fce565b6007819055506b033b2e3c9fd0803ce800000060088190555084600b8190555083600c81905550600c54600b54620003f4919062001006565b600a8190555082600e8190555081600f81905550600f54600e546200041a919062001006565b600d8190555073fefc098540eeeb0f41866698257af008c7228940600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000488876001620005b360201b60201c565b6200049b306001620005b360201b60201c565b620004b061dead6001620005b360201b60201c565b620004c287826200070060201b60201c565b620004d387620008ae60201b60201c565b50505050505050620012a8565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620005c3620004e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064c90620010a2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620006f49190620010e1565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000769906200114e565b60405180910390fd5b620007866000838362000a8260201b60201c565b620007a28160025462000a8760201b62001b871790919060201c565b60028190555062000800816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a8760201b62001b871790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008a2919062001181565b60405180910390a35050565b620008be620004e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200094790620010a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620009c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b99062001214565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b600080828462000a98919062001006565b90508381101562000ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ad79062001286565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b6c57607f821691505b60208210810362000b825762000b8162000b24565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bad565b62000bf8868362000bad565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c4562000c3f62000c398462000c10565b62000c1a565b62000c10565b9050919050565b6000819050919050565b62000c618362000c24565b62000c7962000c708262000c4c565b84845462000bba565b825550505050565b600090565b62000c9062000c81565b62000c9d81848462000c56565b505050565b5b8181101562000cc55762000cb960008262000c86565b60018101905062000ca3565b5050565b601f82111562000d145762000cde8162000b88565b62000ce98462000b9d565b8101602085101562000cf9578190505b62000d1162000d088562000b9d565b83018262000ca2565b50505b505050565b600082821c905092915050565b600062000d396000198460080262000d19565b1980831691505092915050565b600062000d54838362000d26565b9150826002028217905092915050565b62000d6f8262000aea565b67ffffffffffffffff81111562000d8b5762000d8a62000af5565b5b62000d97825462000b53565b62000da482828562000cc9565b600060209050601f83116001811462000ddc576000841562000dc7578287015190505b62000dd3858262000d46565b86555062000e43565b601f19841662000dec8662000b88565b60005b8281101562000e165784890151825560018201915060208501945060208101905062000def565b8683101562000e36578489015162000e32601f89168262000d26565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e7d8262000e50565b9050919050565b62000e8f8162000e70565b811462000e9b57600080fd5b50565b60008151905062000eaf8162000e84565b92915050565b60006020828403121562000ece5762000ecd62000e4b565b5b600062000ede8482850162000e9e565b91505092915050565b62000ef28162000e70565b82525050565b600060408201905062000f0f600083018562000ee7565b62000f1e602083018462000ee7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f618262000c10565b915062000f6e8362000c10565b925082820262000f7e8162000c10565b9150828204841483151762000f985762000f9762000f25565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fdb8262000c10565b915062000fe88362000c10565b92508262000ffb5762000ffa62000f9f565b5b828204905092915050565b6000620010138262000c10565b9150620010208362000c10565b92508282019050808211156200103b576200103a62000f25565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200108a60208362001041565b9150620010978262001052565b602082019050919050565b60006020820190508181036000830152620010bd816200107b565b9050919050565b60008115159050919050565b620010db81620010c4565b82525050565b6000602082019050620010f86000830184620010d0565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001136601f8362001041565b91506200114382620010fe565b602082019050919050565b60006020820190508181036000830152620011698162001127565b9050919050565b6200117b8162000c10565b82525050565b600060208201905062001198600083018462001170565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620011fc60268362001041565b915062001209826200119e565b604082019050919050565b600060208201905081810360008301526200122f81620011ed565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200126e601b8362001041565b91506200127b8262001236565b602082019050919050565b60006020820190508181036000830152620012a1816200125f565b9050919050565b60805160a051613ff8620012ff60003960008181610ce90152818161125a0152611f86015260008181610b1401528181612bd001528181612cb101528181612cd801528181612d740152612d9b0152613ff86000f3fe6080604052600436106102345760003560e01c80637bce5a041161012e578063b62496f5116100ab578063e2f456051161006f578063e2f4560514610888578063f11a24d3146108b3578063f2fde38b146108de578063f637434214610907578063f8b45b05146109325761023b565b8063b62496f51461077d578063c0246668146107ba578063d257b34f146107e3578063d85ba06314610820578063dd62ed3e1461084b5761023b565b80639a7a23d6116100f25780639a7a23d6146106885780639f34a5b4146106b1578063a457c2d7146106da578063a9059cbb14610717578063aacebbe3146107545761023b565b80637bce5a04146105b35780638da5cb5b146105de5780639213691314610609578063924de9b71461063457806395d89b411461065d5761023b565b8063313ce567116101bc5780636a486a8e116101805780636a486a8e146104de5780636ddd17131461050957806370a0823114610534578063715018a61461057157806375f0a874146105885761023b565b8063313ce567146103e5578063395093511461041057806349bd5a5e1461044d5780634fbee1931461047857806366ca9b83146104b55761023b565b806318160ddd1161020357806318160ddd146102fc5780631a8145bb146103275780631f3fed8f1461035257806323b872dd1461037d57806327c8f835146103ba5761023b565b806302dbd8f81461024057806306fdde0314610269578063095ea7b3146102945780631694505e146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190612ee8565b61095d565b005b34801561027557600080fd5b5061027e610a62565b60405161028b9190612fb8565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b69190613038565b610af4565b6040516102c89190613093565b60405180910390f35b3480156102dd57600080fd5b506102e6610b12565b6040516102f3919061310d565b60405180910390f35b34801561030857600080fd5b50610311610b36565b60405161031e9190613137565b60405180910390f35b34801561033357600080fd5b5061033c610b40565b6040516103499190613137565b60405180910390f35b34801561035e57600080fd5b50610367610b46565b6040516103749190613137565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190613152565b610b4c565b6040516103b19190613093565b60405180910390f35b3480156103c657600080fd5b506103cf610c25565b6040516103dc91906131b4565b60405180910390f35b3480156103f157600080fd5b506103fa610c2b565b60405161040791906131eb565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613038565b610c34565b6040516104449190613093565b60405180910390f35b34801561045957600080fd5b50610462610ce7565b60405161046f91906131b4565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190613206565b610d0b565b6040516104ac9190613093565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190612ee8565b610d61565b005b3480156104ea57600080fd5b506104f3610e66565b6040516105009190613137565b60405180910390f35b34801561051557600080fd5b5061051e610e6c565b60405161052b9190613093565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613206565b610e7f565b6040516105689190613137565b60405180910390f35b34801561057d57600080fd5b50610586610ec7565b005b34801561059457600080fd5b5061059d61101f565b6040516105aa91906131b4565b60405180910390f35b3480156105bf57600080fd5b506105c8611045565b6040516105d59190613137565b60405180910390f35b3480156105ea57600080fd5b506105f361104b565b60405161060091906131b4565b60405180910390f35b34801561061557600080fd5b5061061e611075565b60405161062b9190613137565b60405180910390f35b34801561064057600080fd5b5061065b6004803603810190610656919061325f565b61107b565b005b34801561066957600080fd5b5061067261112f565b60405161067f9190612fb8565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa919061328c565b6111c1565b005b3480156106bd57600080fd5b506106d860048036038101906106d391906132cc565b6112f4565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190613038565b61140a565b60405161070e9190613093565b60405180910390f35b34801561072357600080fd5b5061073e60048036038101906107399190613038565b6114d7565b60405161074b9190613093565b60405180910390f35b34801561076057600080fd5b5061077b60048036038101906107769190613206565b6114f5565b005b34801561078957600080fd5b506107a4600480360381019061079f9190613206565b61164c565b6040516107b19190613093565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061328c565b61166c565b005b3480156107ef57600080fd5b5061080a600480360381019061080591906132cc565b6117ac565b6040516108179190613093565b60405180910390f35b34801561082c57600080fd5b5061083561191c565b6040516108429190613137565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d91906132f9565b611922565b60405161087f9190613137565b60405180910390f35b34801561089457600080fd5b5061089d6119a9565b6040516108aa9190613137565b60405180910390f35b3480156108bf57600080fd5b506108c86119af565b6040516108d59190613137565b60405180910390f35b3480156108ea57600080fd5b5061090560048036038101906109009190613206565b6119b5565b005b34801561091357600080fd5b5061091c611b7b565b6040516109299190613137565b60405180910390f35b34801561093e57600080fd5b50610947611b81565b6040516109549190613137565b60405180910390f35b610965611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90613385565b60405180910390fd5b81600e8190555080600f81905550600f54600e54610a1291906133d4565b600d819055506019600d541115610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590613454565b60405180910390fd5b5050565b606060038054610a71906134a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9d906134a3565b8015610aea5780601f10610abf57610100808354040283529160200191610aea565b820191906000526020600020905b815481529060010190602001808311610acd57829003601f168201915b5050505050905090565b6000610b08610b01611be5565b8484611bed565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60115481565b60105481565b6000610b59848484611db6565b610c1a84610b65611be5565b610c1585604051806060016040528060288152602001613f7660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bcb611be5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c99092919063ffffffff16565b611bed565b600190509392505050565b61dead81565b60006012905090565b6000610cdd610c41611be5565b84610cd88560016000610c52611be5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b611bed565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d69611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def90613385565b60405180910390fd5b81600b8190555080600c81905550600c54600b54610e1691906133d4565b600a819055506019600a541115610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5990613454565b60405180910390fd5b5050565b600d5481565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ecf611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5590613385565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b611083611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990613385565b60405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b60606004805461113e906134a3565b80601f016020809104026020016040519081016040528092919081815260200182805461116a906134a3565b80156111b75780601f1061118c576101008083540402835291602001916111b7565b820191906000526020600020905b81548152906001019060200180831161119a57829003601f168201915b5050505050905090565b6111c9611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f90613385565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613546565b60405180910390fd5b6112f0828261252d565b5050565b6112fc611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290613385565b60405180910390fd5b60646003611397610b36565b6113a19190613566565b6113ab91906135d7565b8111156113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e49061367a565b60405180910390fd5b670de0b6b3a7640000816114019190613566565b60078190555050565b60006114cd611417611be5565b846114c885604051806060016040528060258152602001613f9e6025913960016000611441611be5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c99092919063ffffffff16565b611bed565b6001905092915050565b60006114eb6114e4611be5565b8484611db6565b6001905092915050565b6114fd611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390613385565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60136020528060005260406000206000915054906101000a900460ff1681565b611674611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90613385565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117a09190613093565b60405180910390a25050565b60006117b6611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90613385565b60405180910390fd5b620186a06001611853610b36565b61185d9190613566565b61186791906135d7565b8210156118a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a09061370c565b60405180910390fd5b6103e860056118b6610b36565b6118c09190613566565b6118ca91906135d7565b82111561190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061379e565b60405180910390fd5b8160088190555060019050919050565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600c5481565b6119bd611be5565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4390613385565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab290613830565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60075481565b6000808284611b9691906133d4565b905083811015611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd29061389c565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c539061392e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc2906139c0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611da99190613137565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613a52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b90613ae4565b60405180910390fd5b611e9c61104b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f0a5750611eda61104b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f435750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612039576000611fe583610e7f565b90506007548282611ff691906133d4565b1115612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e90613b76565b60405180910390fd5b505b600081036120525761204d838360006125ce565b6124c4565b600061205d30610e7f565b9050600060085482101590508080156120825750600960009054906101000a900460ff165b801561209b5750600560149054906101000a900460ff16155b80156120f15750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121475750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561219d5750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e1576001600560146101000a81548160ff0219169083151502179055506121c5612861565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122975750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122a157600090505b600081156124b457601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561230457506000600d54115b1561239e576123316064612323600d5488612a1e90919063ffffffff16565b612a9890919063ffffffff16565b9050600d54600f54826123449190613566565b61234e91906135d7565b6011600082825461235f91906133d4565b92505081905550600d54600e54826123779190613566565b61238191906135d7565b6010600082825461239291906133d4565b92505081905550612490565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123f957506000600a54115b1561248f576124266064612418600a5488612a1e90919063ffffffff16565b612a9890919063ffffffff16565b9050600a54600c54826124399190613566565b61244391906135d7565b6011600082825461245491906133d4565b92505081905550600a54600b548261246c9190613566565b61247691906135d7565b6010600082825461248791906133d4565b925050819055505b5b60008111156124a5576124a48730836125ce565b5b80856124b19190613b96565b94505b6124bf8787876125ce565b505050505b505050565b6000838311158290612511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125089190612fb8565b60405180910390fd5b50600083856125209190613b96565b9050809150509392505050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361263d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263490613a52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a390613ae4565b60405180910390fd5b6126b7838383612ae2565b61272281604051806060016040528060268152602001613f50602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c99092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127b5816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128549190613137565b60405180910390a3505050565b600061286c30610e7f565b9050600060105460115461288091906133d4565b905060008214806128915750600081145b1561289d575050612a1c565b6000600282601154856128b09190613566565b6128ba91906135d7565b6128c491906135d7565b905060006128db8285612ae790919063ffffffff16565b905060004790506128eb82612b31565b60006129008247612ae790919063ffffffff16565b9050600061292b8661291d60105485612a1e90919063ffffffff16565b612a9890919063ffffffff16565b90506000818361293b9190613b96565b905060006011819055506000601081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156129b5573d6000803e3d6000fd5b506000861180156129c65750600081115b15612a13576129d58682612d6e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601154604051612a0a93929190613bca565b60405180910390a15b50505050505050505b565b6000808303612a305760009050612a92565b60008284612a3e9190613566565b9050828482612a4d91906135d7565b14612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490613c73565b60405180910390fd5b809150505b92915050565b6000612ada83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e4a565b905092915050565b505050565b6000612b2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124c9565b905092915050565b6000600267ffffffffffffffff811115612b4e57612b4d613c93565b5b604051908082528060200260200182016040528015612b7c5781602001602082028036833780820191505090505b5090503081600081518110612b9457612b93613cc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5d9190613d06565b81600181518110612c7157612c70613cc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cd6307f000000000000000000000000000000000000000000000000000000000000000084611bed565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d38959493929190613e2c565b600060405180830381600087803b158015612d5257600080fd5b505af1158015612d66573d6000803e3d6000fd5b505050505050565b612d99307f000000000000000000000000000000000000000000000000000000000000000084611bed565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612e0096959493929190613e86565b60606040518083038185885af1158015612e1e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e439190613efc565b5050505050565b60008083118290612e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e889190612fb8565b60405180910390fd5b5060008385612ea091906135d7565b9050809150509392505050565b600080fd5b6000819050919050565b612ec581612eb2565b8114612ed057600080fd5b50565b600081359050612ee281612ebc565b92915050565b60008060408385031215612eff57612efe612ead565b5b6000612f0d85828601612ed3565b9250506020612f1e85828601612ed3565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f62578082015181840152602081019050612f47565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f8a82612f28565b612f948185612f33565b9350612fa4818560208601612f44565b612fad81612f6e565b840191505092915050565b60006020820190508181036000830152612fd28184612f7f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061300582612fda565b9050919050565b61301581612ffa565b811461302057600080fd5b50565b6000813590506130328161300c565b92915050565b6000806040838503121561304f5761304e612ead565b5b600061305d85828601613023565b925050602061306e85828601612ed3565b9150509250929050565b60008115159050919050565b61308d81613078565b82525050565b60006020820190506130a86000830184613084565b92915050565b6000819050919050565b60006130d36130ce6130c984612fda565b6130ae565b612fda565b9050919050565b60006130e5826130b8565b9050919050565b60006130f7826130da565b9050919050565b613107816130ec565b82525050565b600060208201905061312260008301846130fe565b92915050565b61313181612eb2565b82525050565b600060208201905061314c6000830184613128565b92915050565b60008060006060848603121561316b5761316a612ead565b5b600061317986828701613023565b935050602061318a86828701613023565b925050604061319b86828701612ed3565b9150509250925092565b6131ae81612ffa565b82525050565b60006020820190506131c960008301846131a5565b92915050565b600060ff82169050919050565b6131e5816131cf565b82525050565b600060208201905061320060008301846131dc565b92915050565b60006020828403121561321c5761321b612ead565b5b600061322a84828501613023565b91505092915050565b61323c81613078565b811461324757600080fd5b50565b60008135905061325981613233565b92915050565b60006020828403121561327557613274612ead565b5b60006132838482850161324a565b91505092915050565b600080604083850312156132a3576132a2612ead565b5b60006132b185828601613023565b92505060206132c28582860161324a565b9150509250929050565b6000602082840312156132e2576132e1612ead565b5b60006132f084828501612ed3565b91505092915050565b600080604083850312156133105761330f612ead565b5b600061331e85828601613023565b925050602061332f85828601613023565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061336f602083612f33565b915061337a82613339565b602082019050919050565b6000602082019050818103600083015261339e81613362565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133df82612eb2565b91506133ea83612eb2565b9250828201905080821115613402576134016133a5565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b600061343e601d83612f33565b915061344982613408565b602082019050919050565b6000602082019050818103600083015261346d81613431565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134bb57607f821691505b6020821081036134ce576134cd613474565b5b50919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613530603983612f33565b915061353b826134d4565b604082019050919050565b6000602082019050818103600083015261355f81613523565b9050919050565b600061357182612eb2565b915061357c83612eb2565b925082820261358a81612eb2565b915082820484148315176135a1576135a06133a5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135e282612eb2565b91506135ed83612eb2565b9250826135fd576135fc6135a8565b5b828204905092915050565b7f536d617820746f6b656e2063616e6e6f74206265206c6f776572207468616e2060008201527f312520746f74616c20737570706c792e00000000000000000000000000000000602082015250565b6000613664603083612f33565b915061366f82613608565b604082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006136f6603583612f33565b91506137018261369a565b604082019050919050565b60006020820190508181036000830152613725816136e9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613788603483612f33565b91506137938261372c565b604082019050919050565b600060208201905081810360008301526137b78161377b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061381a602683612f33565b9150613825826137be565b604082019050919050565b600060208201905081810360008301526138498161380d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613886601b83612f33565b915061389182613850565b602082019050919050565b600060208201905081810360008301526138b581613879565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613918602483612f33565b9150613923826138bc565b604082019050919050565b600060208201905081810360008301526139478161390b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139aa602283612f33565b91506139b58261394e565b604082019050919050565b600060208201905081810360008301526139d98161399d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a3c602583612f33565b9150613a47826139e0565b604082019050919050565b60006020820190508181036000830152613a6b81613a2f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ace602383612f33565b9150613ad982613a72565b604082019050919050565b60006020820190508181036000830152613afd81613ac1565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b6000613b60602483612f33565b9150613b6b82613b04565b604082019050919050565b60006020820190508181036000830152613b8f81613b53565b9050919050565b6000613ba182612eb2565b9150613bac83612eb2565b9250828203905081811115613bc457613bc36133a5565b5b92915050565b6000606082019050613bdf6000830186613128565b613bec6020830185613128565b613bf96040830184613128565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5d602183612f33565b9150613c6882613c01565b604082019050919050565b60006020820190508181036000830152613c8c81613c50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613d008161300c565b92915050565b600060208284031215613d1c57613d1b612ead565b5b6000613d2a84828501613cf1565b91505092915050565b6000819050919050565b6000613d58613d53613d4e84613d33565b6130ae565b612eb2565b9050919050565b613d6881613d3d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613da381612ffa565b82525050565b6000613db58383613d9a565b60208301905092915050565b6000602082019050919050565b6000613dd982613d6e565b613de38185613d79565b9350613dee83613d8a565b8060005b83811015613e1f578151613e068882613da9565b9750613e1183613dc1565b925050600181019050613df2565b5085935050505092915050565b600060a082019050613e416000830188613128565b613e4e6020830187613d5f565b8181036040830152613e608186613dce565b9050613e6f60608301856131a5565b613e7c6080830184613128565b9695505050505050565b600060c082019050613e9b60008301896131a5565b613ea86020830188613128565b613eb56040830187613d5f565b613ec26060830186613d5f565b613ecf60808301856131a5565b613edc60a0830184613128565b979650505050505050565b600081519050613ef681612ebc565b92915050565b600080600060608486031215613f1557613f14612ead565b5b6000613f2386828701613ee7565b9350506020613f3486828701613ee7565b9250506040613f4586828701613ee7565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209d09731bc26c1ea605539277052601c1834451d0c7dcb9378985fb88d8e01d9a64736f6c63430008110033