60c060405273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff021916908315150217905550348015620000b757600080fd5b506040518060400160405280601081526020017f53616d2042616e6b6d616e2d4a61696c000000000000000000000000000000008152506040518060400160405280600381526020017f53424a000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200013c92919062000980565b5080600490805190602001906200015592919062000980565b505050620001786200016c620004e160201b60201c565b620004e960201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001a4816001620005af60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024a919062000a9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401620002a892919062000add565b6020604051808303816000875af1158015620002c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ee919062000a9a565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033660a0516001620005af60201b60201c565b6000600490506000600f905060006a52b7d2dcc80cd2e40000009050606460028262000363919062000b43565b6200036f919062000bd3565b600881905550606460028262000386919062000b43565b62000392919062000bd3565b600a81905550612710600a82620003aa919062000b43565b620003b6919062000bd3565b60098190555082600d81905550600d54600c8190555081600f81905550600f54600e8190555073fe5a82dbeba136e48fae1d8bae385b0aafff9e0e600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000453620004456200069960201b60201c565b6001620006c360201b60201c565b62000466306001620006c360201b60201c565b6200047b61dead6001620006c360201b60201c565b6200049d6200048f6200069960201b60201c565b6001620005af60201b60201c565b620004b0306001620005af60201b60201c565b620004c561dead6001620005af60201b60201c565b620004d73382620007fd60201b60201c565b5050505062000e2a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005bf620004e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005e56200069960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200063e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006359062000c6c565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006d3620004e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006f96200069960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000752576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007499062000c6c565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620007f1919062000cab565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000870576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008679062000d18565b60405180910390fd5b62000884600083836200097660201b60201c565b806002600082825462000898919062000d3a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620008ef919062000d3a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000956919062000da8565b60405180910390a362000972600083836200097b60201b60201c565b5050565b505050565b505050565b8280546200098e9062000df4565b90600052602060002090601f016020900481019282620009b25760008555620009fe565b82601f10620009cd57805160ff1916838001178555620009fe565b82800160010185558215620009fe579182015b82811115620009fd578251825591602001919060010190620009e0565b5b50905062000a0d919062000a11565b5090565b5b8082111562000a2c57600081600090555060010162000a12565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a628262000a35565b9050919050565b62000a748162000a55565b811462000a8057600080fd5b50565b60008151905062000a948162000a69565b92915050565b60006020828403121562000ab35762000ab262000a30565b5b600062000ac38482850162000a83565b91505092915050565b62000ad78162000a55565b82525050565b600060408201905062000af4600083018562000acc565b62000b03602083018462000acc565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b508262000b0a565b915062000b5d8362000b0a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b995762000b9862000b14565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000be08262000b0a565b915062000bed8362000b0a565b92508262000c005762000bff62000ba4565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c5460208362000c0b565b915062000c618262000c1c565b602082019050919050565b6000602082019050818103600083015262000c878162000c45565b9050919050565b60008115159050919050565b62000ca58162000c8e565b82525050565b600060208201905062000cc2600083018462000c9a565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d00601f8362000c0b565b915062000d0d8262000cc8565b602082019050919050565b6000602082019050818103600083015262000d338162000cf1565b9050919050565b600062000d478262000b0a565b915062000d548362000b0a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d8c5762000d8b62000b14565b5b828201905092915050565b62000da28162000b0a565b82525050565b600060208201905062000dbf600083018462000d97565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e0d57607f821691505b6020821081141562000e245762000e2362000dc5565b5b50919050565b60805160a051613b0e62000e7a60003960008181610dab01528181611ed20152818161211b0152818161232401526123d2015260008181610a2b0152818161299701526129be0152613b0e6000f3fe60806040526004361061023f5760003560e01c806389a302711161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e14610874578063e2f45605146108b1578063eba4c333146108dc578063f2fde38b14610905578063f8b45b051461092e57610246565b8063c02466681461078f578063c18bc195146107b8578063c8c8ebe4146107e1578063d257b34f1461080c578063d85ba0631461084957610246565b806395d89b41116100f257806395d89b41146106a65780639c3b4fdc146106d1578063a0d82dc5146106fc578063a9059cbb14610727578063bbc0c7421461076457610246565b806389a30271146105e55780638a8c523c146106105780638da5cb5b146106275780638ea5220f14610652578063924de9b71461067d57610246565b806349bd5a5e116101bc57806370a082311161018057806370a0823114610514578063715018a61461055157806371fc468814610568578063751039fc146105915780637571336a146105bc57610246565b806349bd5a5e1461042b5780634a62bb65146104565780634fbee193146104815780636a486a8e146104be5780636ddd1713146104e957610246565b80631816467f116102035780631816467f14610346578063203e727e1461036f57806323b872dd1461039857806327c8f835146103d5578063313ce5671461040057610246565b806306fdde031461024b578063095ea7b31461027657806310d5de53146102b35780631694505e146102f057806318160ddd1461031b57610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610959565b60405161026d9190612b0f565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612bca565b6109eb565b6040516102aa9190612c25565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190612c40565b610a09565b6040516102e79190612c25565b60405180910390f35b3480156102fc57600080fd5b50610305610a29565b6040516103129190612ccc565b60405180910390f35b34801561032757600080fd5b50610330610a4d565b60405161033d9190612cf6565b60405180910390f35b34801561035257600080fd5b5061036d60048036038101906103689190612c40565b610a57565b005b34801561037b57600080fd5b5061039660048036038101906103919190612d11565b610b93565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190612d3e565b610ca2565b6040516103cc9190612c25565b60405180910390f35b3480156103e157600080fd5b506103ea610d9a565b6040516103f79190612da0565b60405180910390f35b34801561040c57600080fd5b50610415610da0565b6040516104229190612dd7565b60405180910390f35b34801561043757600080fd5b50610440610da9565b60405161044d9190612da0565b60405180910390f35b34801561046257600080fd5b5061046b610dcd565b6040516104789190612c25565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612c40565b610de0565b6040516104b59190612c25565b60405180910390f35b3480156104ca57600080fd5b506104d3610e36565b6040516104e09190612cf6565b60405180910390f35b3480156104f557600080fd5b506104fe610e3c565b60405161050b9190612c25565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612c40565b610e4f565b6040516105489190612cf6565b60405180910390f35b34801561055d57600080fd5b50610566610e97565b005b34801561057457600080fd5b5061058f600480360381019061058a9190612d11565b610f1f565b005b34801561059d57600080fd5b506105a6610ff4565b6040516105b39190612c25565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de9190612e1e565b611094565b005b3480156105f157600080fd5b506105fa61116b565b6040516106079190612da0565b60405180910390f35b34801561061c57600080fd5b50610625611191565b005b34801561063357600080fd5b5061063c611245565b6040516106499190612da0565b60405180910390f35b34801561065e57600080fd5b5061066761126f565b6040516106749190612da0565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f9190612e5e565b611295565b005b3480156106b257600080fd5b506106bb61132e565b6040516106c89190612b0f565b60405180910390f35b3480156106dd57600080fd5b506106e66113c0565b6040516106f39190612cf6565b60405180910390f35b34801561070857600080fd5b506107116113c6565b60405161071e9190612cf6565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612bca565b6113cc565b60405161075b9190612c25565b60405180910390f35b34801561077057600080fd5b506107796113ea565b6040516107869190612c25565b60405180910390f35b34801561079b57600080fd5b506107b660048036038101906107b19190612e1e565b6113fd565b005b3480156107c457600080fd5b506107df60048036038101906107da9190612d11565b611522565b005b3480156107ed57600080fd5b506107f6611631565b6040516108039190612cf6565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e9190612d11565b611637565b6040516108409190612c25565b60405180910390f35b34801561085557600080fd5b5061085e61178c565b60405161086b9190612cf6565b60405180910390f35b34801561088057600080fd5b5061089b60048036038101906108969190612e8b565b611792565b6040516108a89190612cf6565b60405180910390f35b3480156108bd57600080fd5b506108c6611819565b6040516108d39190612cf6565b60405180910390f35b3480156108e857600080fd5b5061090360048036038101906108fe9190612d11565b61181f565b005b34801561091157600080fd5b5061092c60048036038101906109279190612c40565b6118f4565b005b34801561093a57600080fd5b506109436119ec565b6040516109509190612cf6565b60405180910390f35b60606003805461096890612efa565b80601f016020809104026020016040519081016040528092919081815260200182805461099490612efa565b80156109e15780601f106109b6576101008083540402835291602001916109e1565b820191906000526020600020905b8154815290600101906020018083116109c457829003601f168201915b5050505050905090565b60006109ff6109f86119f2565b84846119fa565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610a5f6119f2565b73ffffffffffffffffffffffffffffffffffffffff16610a7d611245565b73ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612f78565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b9b6119f2565b73ffffffffffffffffffffffffffffffffffffffff16610bb9611245565b73ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612f78565b60405180910390fd5b670de0b6b3a76400006103e86001610c25610a4d565b610c2f9190612fc7565b610c399190613050565b610c439190613050565b811015610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906130f3565b60405180910390fd5b670de0b6b3a764000081610c999190612fc7565b60088190555050565b6000610caf848484611bc5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cfa6119f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190613185565b60405180910390fd5b610d8e85610d866119f2565b8584036119fa565b60019150509392505050565b61dead81565b60006012905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60009054906101000a900460ff1681565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e9f6119f2565b73ffffffffffffffffffffffffffffffffffffffff16610ebd611245565b73ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a90612f78565b60405180910390fd5b610f1d60006124b5565b565b610f276119f2565b73ffffffffffffffffffffffffffffffffffffffff16610f45611245565b73ffffffffffffffffffffffffffffffffffffffff1614610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9290612f78565b60405180910390fd5b80600d81905550600d54600c81905550600a600c541115610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe8906131f1565b60405180910390fd5b50565b6000610ffe6119f2565b73ffffffffffffffffffffffffffffffffffffffff1661101c611245565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612f78565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b61109c6119f2565b73ffffffffffffffffffffffffffffffffffffffff166110ba611245565b73ffffffffffffffffffffffffffffffffffffffff1614611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612f78565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111996119f2565b73ffffffffffffffffffffffffffffffffffffffff166111b7611245565b73ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490612f78565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61129d6119f2565b73ffffffffffffffffffffffffffffffffffffffff166112bb611245565b73ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612f78565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b60606004805461133d90612efa565b80601f016020809104026020016040519081016040528092919081815260200182805461136990612efa565b80156113b65780601f1061138b576101008083540402835291602001916113b6565b820191906000526020600020905b81548152906001019060200180831161139957829003601f168201915b5050505050905090565b600d5481565b600f5481565b60006113e06113d96119f2565b8484611bc5565b6001905092915050565b600b60019054906101000a900460ff1681565b6114056119f2565b73ffffffffffffffffffffffffffffffffffffffff16611423611245565b73ffffffffffffffffffffffffffffffffffffffff1614611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612f78565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516115169190612c25565b60405180910390a25050565b61152a6119f2565b73ffffffffffffffffffffffffffffffffffffffff16611548611245565b73ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590612f78565b60405180910390fd5b670de0b6b3a76400006103e860056115b4610a4d565b6115be9190612fc7565b6115c89190613050565b6115d29190613050565b811015611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613283565b60405180910390fd5b670de0b6b3a7640000816116289190612fc7565b600a8190555050565b60085481565b60006116416119f2565b73ffffffffffffffffffffffffffffffffffffffff1661165f611245565b73ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90612f78565b60405180910390fd5b620186a060016116c3610a4d565b6116cd9190612fc7565b6116d79190613050565b821015611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090613315565b60405180910390fd5b6103e86005611726610a4d565b6117309190612fc7565b61173a9190613050565b82111561177c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611773906133a7565b60405180910390fd5b8160098190555060019050919050565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b6118276119f2565b73ffffffffffffffffffffffffffffffffffffffff16611845611245565b73ffffffffffffffffffffffffffffffffffffffff161461189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290612f78565b60405180910390fd5b80600f81905550600f54600e81905550600a600e5411156118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906131f1565b60405180910390fd5b50565b6118fc6119f2565b73ffffffffffffffffffffffffffffffffffffffff1661191a611245565b73ffffffffffffffffffffffffffffffffffffffff1614611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196790612f78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d790613439565b60405180910390fd5b6119e9816124b5565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a61906134cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad19061355d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bb89190612cf6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c906135ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9c90613681565b60405180910390fd5b6000811415611cbf57611cba8383600061257b565b6124b0565b600b60009054906101000a900460ff16156120c957611cdc611245565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d4a5750611d1a611245565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d835750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dd65750600660149054906101000a900460ff16155b156120c857600b60019054906101000a900460ff16611ed057601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e905750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec6906136ed565b60405180910390fd5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f755750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561201c57600854811115611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb69061377f565b60405180910390fd5b600a54611fcb83610e4f565b82611fd6919061379f565b1115612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90613841565b60405180910390fd5b6120c7565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120c657600a5461207983610e4f565b82612084919061379f565b11156120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613841565b60405180910390fd5b5b5b5b5b60006120d430610e4f565b9050600060095482101590508080156120f95750600b60029054906101000a900460ff165b80156121125750600660149054906101000a900460ff16155b801561216957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156121bf5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122155750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612259576001600660146101000a81548160ff02191690831515021790555061223d6127fc565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061230f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561231957600090505b600080821561249f577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561237f57506000600e54115b156123d0576123ac606461239e600e548961284d90919063ffffffff16565b61286390919063ffffffff16565b9150600e54600f54836123bf9190612fc7565b6123c99190613050565b905061247b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614801561242d57506000600c54115b1561247a5761245a606461244c600c548961284d90919063ffffffff16565b61286390919063ffffffff16565b9150600c54600d548361246d9190612fc7565b6124779190613050565b90505b5b60008211156124905761248f88308461257b565b5b818661249c9190613861565b95505b6124aa88888861257b565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e2906135ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265290613681565b60405180910390fd5b612666838383612879565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e390613907565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461277f919061379f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127e39190612cf6565b60405180910390a36127f684848461287e565b50505050565b600061280730610e4f565b90506000811415612818575061284b565b60146009546128279190612fc7565b81111561284057601460095461283d9190612fc7565b90505b61284981612883565b505b565b6000818361285b9190612fc7565b905092915050565b600081836128719190613050565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156128a05761289f613927565b5b6040519080825280602002602001820160405280156128ce5781602001602082028036833780820191505090505b50905030816000815181106128e6576128e5613956565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061295757612956613956565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129bc307f0000000000000000000000000000000000000000000000000000000000000000846119fa565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a40959493929190613a7e565b600060405180830381600087803b158015612a5a57600080fd5b505af1158015612a6e573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ab0578082015181840152602081019050612a95565b83811115612abf576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ae182612a76565b612aeb8185612a81565b9350612afb818560208601612a92565b612b0481612ac5565b840191505092915050565b60006020820190508181036000830152612b298184612ad6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b6182612b36565b9050919050565b612b7181612b56565b8114612b7c57600080fd5b50565b600081359050612b8e81612b68565b92915050565b6000819050919050565b612ba781612b94565b8114612bb257600080fd5b50565b600081359050612bc481612b9e565b92915050565b60008060408385031215612be157612be0612b31565b5b6000612bef85828601612b7f565b9250506020612c0085828601612bb5565b9150509250929050565b60008115159050919050565b612c1f81612c0a565b82525050565b6000602082019050612c3a6000830184612c16565b92915050565b600060208284031215612c5657612c55612b31565b5b6000612c6484828501612b7f565b91505092915050565b6000819050919050565b6000612c92612c8d612c8884612b36565b612c6d565b612b36565b9050919050565b6000612ca482612c77565b9050919050565b6000612cb682612c99565b9050919050565b612cc681612cab565b82525050565b6000602082019050612ce16000830184612cbd565b92915050565b612cf081612b94565b82525050565b6000602082019050612d0b6000830184612ce7565b92915050565b600060208284031215612d2757612d26612b31565b5b6000612d3584828501612bb5565b91505092915050565b600080600060608486031215612d5757612d56612b31565b5b6000612d6586828701612b7f565b9350506020612d7686828701612b7f565b9250506040612d8786828701612bb5565b9150509250925092565b612d9a81612b56565b82525050565b6000602082019050612db56000830184612d91565b92915050565b600060ff82169050919050565b612dd181612dbb565b82525050565b6000602082019050612dec6000830184612dc8565b92915050565b612dfb81612c0a565b8114612e0657600080fd5b50565b600081359050612e1881612df2565b92915050565b60008060408385031215612e3557612e34612b31565b5b6000612e4385828601612b7f565b9250506020612e5485828601612e09565b9150509250929050565b600060208284031215612e7457612e73612b31565b5b6000612e8284828501612e09565b91505092915050565b60008060408385031215612ea257612ea1612b31565b5b6000612eb085828601612b7f565b9250506020612ec185828601612b7f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f1257607f821691505b60208210811415612f2657612f25612ecb565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f62602083612a81565b9150612f6d82612f2c565b602082019050919050565b60006020820190508181036000830152612f9181612f55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fd282612b94565b9150612fdd83612b94565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561301657613015612f98565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061305b82612b94565b915061306683612b94565b92508261307657613075613021565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006130dd602f83612a81565b91506130e882613081565b604082019050919050565b6000602082019050818103600083015261310c816130d0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061316f602883612a81565b915061317a82613113565b604082019050919050565b6000602082019050818103600083015261319e81613162565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b60006131db601d83612a81565b91506131e6826131a5565b602082019050919050565b6000602082019050818103600083015261320a816131ce565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b600061326d602483612a81565b915061327882613211565b604082019050919050565b6000602082019050818103600083015261329c81613260565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006132ff603583612a81565b915061330a826132a3565b604082019050919050565b6000602082019050818103600083015261332e816132f2565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613391603483612a81565b915061339c82613335565b604082019050919050565b600060208201905081810360008301526133c081613384565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613423602683612a81565b915061342e826133c7565b604082019050919050565b6000602082019050818103600083015261345281613416565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134b5602483612a81565b91506134c082613459565b604082019050919050565b600060208201905081810360008301526134e4816134a8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613547602283612a81565b9150613552826134eb565b604082019050919050565b600060208201905081810360008301526135768161353a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135d9602583612a81565b91506135e48261357d565b604082019050919050565b60006020820190508181036000830152613608816135cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061366b602383612a81565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006136d7601683612a81565b91506136e2826136a1565b602082019050919050565b60006020820190508181036000830152613706816136ca565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613769603583612a81565b91506137748261370d565b604082019050919050565b600060208201905081810360008301526137988161375c565b9050919050565b60006137aa82612b94565b91506137b583612b94565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137ea576137e9612f98565b5b828201905092915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061382b601383612a81565b9150613836826137f5565b602082019050919050565b6000602082019050818103600083015261385a8161381e565b9050919050565b600061386c82612b94565b915061387783612b94565b92508282101561388a57613889612f98565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138f1602683612a81565b91506138fc82613895565b604082019050919050565b60006020820190508181036000830152613920816138e4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006139aa6139a56139a084613985565b612c6d565b612b94565b9050919050565b6139ba8161398f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f581612b56565b82525050565b6000613a0783836139ec565b60208301905092915050565b6000602082019050919050565b6000613a2b826139c0565b613a3581856139cb565b9350613a40836139dc565b8060005b83811015613a71578151613a5888826139fb565b9750613a6383613a13565b925050600181019050613a44565b5085935050505092915050565b600060a082019050613a936000830188612ce7565b613aa060208301876139b1565b8181036040830152613ab28186613a20565b9050613ac16060830185612d91565b613ace6080830184612ce7565b969550505050505056fea2646970667358221220442005df7157e26281860086b2f952dc782b1081896289bc5dd23d1b1f32752064736f6c634300080a0033