60a06040526001600960006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600581526020017f4249424f540000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42425400000000000000000000000000000000000000000000000000000000008152508160039081620000aa9190620008fb565b508060049081620000bc9190620008fb565b505050620000df620000d3620002cd60201b60201c565b620002d560201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060006004905060006006905060006004905060006006905060006a52b7d2dcc80cd2e400000090506298968060058262000167919062000a11565b62000173919062000a8b565b60088190555084600b8190555083600c81905550600c54600b5462000199919062000ac3565b600a8190555082600e8190555081600f81905550600f54600e54620001bf919062000ac3565b600d81905550620001d56200039b60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002256200039b60201b60201c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000287620002796200039b60201b60201c565b6001620003c560201b60201c565b6200029a306001620003c560201b60201c565b620002af61dead6001620003c560201b60201c565b620002c13382620004ff60201b60201c565b50505050505062000c5b565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003d5620002cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003fb6200039b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000454576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044b9062000b5f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004f3919062000b9e565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005689062000c0b565b60405180910390fd5b62000585600083836200067760201b60201c565b806002600082825462000599919062000ac3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620005f0919062000ac3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000657919062000c3e565b60405180910390a362000673600083836200067c60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200070357607f821691505b602082108103620007195762000718620006bb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000744565b6200078f868362000744565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007dc620007d6620007d084620007a7565b620007b1565b620007a7565b9050919050565b6000819050919050565b620007f883620007bb565b620008106200080782620007e3565b84845462000751565b825550505050565b600090565b6200082762000818565b62000834818484620007ed565b505050565b5b818110156200085c57620008506000826200081d565b6001810190506200083a565b5050565b601f821115620008ab5762000875816200071f565b620008808462000734565b8101602085101562000890578190505b620008a86200089f8562000734565b83018262000839565b50505b505050565b600082821c905092915050565b6000620008d060001984600802620008b0565b1980831691505092915050565b6000620008eb8383620008bd565b9150826002028217905092915050565b620009068262000681565b67ffffffffffffffff8111156200092257620009216200068c565b5b6200092e8254620006ea565b6200093b82828562000860565b600060209050601f8311600181146200097357600084156200095e578287015190505b6200096a8582620008dd565b865550620009da565b601f19841662000983866200071f565b60005b82811015620009ad5784890151825560018201915060208501945060208101905062000986565b86831015620009cd5784890151620009c9601f891682620008bd565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a1e82620007a7565b915062000a2b83620007a7565b925082820262000a3b81620007a7565b9150828204841483151762000a555762000a54620009e2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a9882620007a7565b915062000aa583620007a7565b92508262000ab85762000ab762000a5c565b5b828204905092915050565b600062000ad082620007a7565b915062000add83620007a7565b925082820190508082111562000af85762000af7620009e2565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000b4760208362000afe565b915062000b548262000b0f565b602082019050919050565b6000602082019050818103600083015262000b7a8162000b38565b9050919050565b60008115159050919050565b62000b988162000b81565b82525050565b600060208201905062000bb5600083018462000b8d565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000bf3601f8362000afe565b915062000c008262000bbb565b602082019050919050565b6000602082019050818103600083015262000c268162000be4565b9050919050565b62000c3881620007a7565b82525050565b600060208201905062000c55600083018462000c2d565b92915050565b608051613d3662000c8c60003960008181610b5301528181612af301528181612bd40152612bfb0152613d366000f3fe60806040526004361061024a5760003560e01c8063782c4e9911610139578063adee28ff116100b6578063d729715f1161007a578063d729715f1461089f578063d85ba063146108ca578063dd62ed3e146108f5578063e2f4560514610932578063f2fde38b1461095d578063fde83a341461098657610251565b8063adee28ff146107aa578063b62496f5146107d3578063bc205ad314610810578063c024666814610839578063d257b34f1461086257610251565b806395d89b41116100fd57806395d89b41146106b15780639a7a23d6146106dc5780639c2e4ac614610705578063a457c2d714610730578063a9059cbb1461076d57610251565b8063782c4e99146105e05780637ca8448a1461060b5780637cb332bb146106345780638da5cb5b1461065d578063924de9b71461068857610251565b8063313ce567116101c757806366ca9b831161018b57806366ca9b831461050d5780636a486a8e146105365780636ddd17131461056157806370a082311461058c578063715018a6146105c957610251565b8063313ce5671461042657806339509351146104515780634fbee1931461048e57806359927044146104cb57806363858df2146104f657610251565b806318160ddd1161020e57806318160ddd1461033d57806319eab0421461036857806323b872dd1461039357806324b9f3c1146103d057806327c8f835146103fb57610251565b806302dbd8f81461025657806306fdde031461027f578063095ea7b3146102aa578063156c2f35146102e75780631694505e1461031257610251565b3661025157005b600080fd5b34801561026257600080fd5b5061027d60048036038101906102789190612ccc565b6109b1565b005b34801561028b57600080fd5b50610294610a9b565b6040516102a19190612d9c565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612e1c565b610b2d565b6040516102de9190612e77565b60405180910390f35b3480156102f357600080fd5b506102fc610b4b565b6040516103099190612ea1565b60405180910390f35b34801561031e57600080fd5b50610327610b51565b6040516103349190612f1b565b60405180910390f35b34801561034957600080fd5b50610352610b75565b60405161035f9190612ea1565b60405180910390f35b34801561037457600080fd5b5061037d610b7f565b60405161038a9190612ea1565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b59190612f36565b610b85565b6040516103c79190612e77565b60405180910390f35b3480156103dc57600080fd5b506103e5610c7d565b6040516103f29190612ea1565b60405180910390f35b34801561040757600080fd5b50610410610c83565b60405161041d9190612f98565b60405180910390f35b34801561043257600080fd5b5061043b610c89565b6040516104489190612fcf565b60405180910390f35b34801561045d57600080fd5b5061047860048036038101906104739190612e1c565b610c92565b6040516104859190612e77565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b09190612fea565b610d3e565b6040516104c29190612e77565b60405180910390f35b3480156104d757600080fd5b506104e0610d94565b6040516104ed9190612f98565b60405180910390f35b34801561050257600080fd5b5061050b610dba565b005b34801561051957600080fd5b50610534600480360381019061052f9190612ccc565b610f7d565b005b34801561054257600080fd5b5061054b611067565b6040516105589190612ea1565b60405180910390f35b34801561056d57600080fd5b5061057661106d565b6040516105839190612e77565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190612fea565b611080565b6040516105c09190612ea1565b60405180910390f35b3480156105d557600080fd5b506105de6110c8565b005b3480156105ec57600080fd5b506105f5611150565b6040516106029190612f98565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d9190612fea565b611176565b005b34801561064057600080fd5b5061065b60048036038101906106569190612fea565b61126c565b005b34801561066957600080fd5b506106726113a8565b60405161067f9190612f98565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190613043565b6113d2565b005b3480156106bd57600080fd5b506106c661146b565b6040516106d39190612d9c565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe9190613070565b6114fd565b005b34801561071157600080fd5b5061071a611587565b6040516107279190612ea1565b60405180910390f35b34801561073c57600080fd5b5061075760048036038101906107529190612e1c565b61158d565b6040516107649190612e77565b60405180910390f35b34801561077957600080fd5b50610794600480360381019061078f9190612e1c565b611678565b6040516107a19190612e77565b60405180910390f35b3480156107b657600080fd5b506107d160048036038101906107cc9190612fea565b611696565b005b3480156107df57600080fd5b506107fa60048036038101906107f59190612fea565b6117d2565b6040516108079190612e77565b60405180910390f35b34801561081c57600080fd5b50610837600480360381019061083291906130b0565b6117f2565b005b34801561084557600080fd5b50610860600480360381019061085b9190613070565b6119df565b005b34801561086e57600080fd5b50610889600480360381019061088491906130f0565b611b04565b6040516108969190612e77565b60405180910390f35b3480156108ab57600080fd5b506108b4611c59565b6040516108c19190612ea1565b60405180910390f35b3480156108d657600080fd5b506108df611c5f565b6040516108ec9190612ea1565b60405180910390f35b34801561090157600080fd5b5061091c600480360381019061091791906130b0565b611c65565b6040516109299190612ea1565b60405180910390f35b34801561093e57600080fd5b50610947611cec565b6040516109549190612ea1565b60405180910390f35b34801561096957600080fd5b50610984600480360381019061097f9190612fea565b611cf2565b005b34801561099257600080fd5b5061099b611de9565b6040516109a89190612ea1565b60405180910390f35b6109b9611def565b73ffffffffffffffffffffffffffffffffffffffff166109d76113a8565b73ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490613169565b60405180910390fd5b81600e8190555080600f81905550600f54600e54610a4b91906131b8565b600d819055506005600e541115610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90613238565b60405180910390fd5b5050565b606060038054610aaa90613287565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad690613287565b8015610b235780601f10610af857610100808354040283529160200191610b23565b820191906000526020600020905b815481529060010190602001808311610b0657829003601f168201915b5050505050905090565b6000610b41610b3a611def565b8484611df7565b6001905092915050565b600b5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b600e5481565b6000610b92848484611fc0565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdd611def565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c549061332a565b60405180910390fd5b610c7185610c69611def565b858403611df7565b60019150509392505050565b60105481565b61dead81565b60006012905090565b6000610d34610c9f611def565b848460016000610cad611def565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d2f91906131b8565b611df7565b6001905092915050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dc2611def565b73ffffffffffffffffffffffffffffffffffffffff16610de06113a8565b73ffffffffffffffffffffffffffffffffffffffff1614610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2d90613169565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e719190612f98565b602060405180830381865afa158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb2919061335f565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610eef92919061338c565b6020604051808303816000875af1158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3291906133ca565b503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f79573d6000803e3d6000fd5b5050565b610f85611def565b73ffffffffffffffffffffffffffffffffffffffff16610fa36113a8565b73ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090613169565b60405180910390fd5b81600b8190555080600c81905550600c54600b5461101791906131b8565b600a819055506005600a541115611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a90613443565b60405180910390fd5b5050565b600d5481565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110d0611def565b73ffffffffffffffffffffffffffffffffffffffff166110ee6113a8565b73ffffffffffffffffffffffffffffffffffffffff1614611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113b90613169565b60405180910390fd5b61114e600061252b565b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61117e611def565b73ffffffffffffffffffffffffffffffffffffffff1661119c6113a8565b73ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990613169565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff164760405161121890613494565b60006040518083038185875af1925050503d8060008114611255576040519150601f19603f3d011682016040523d82523d6000602084013e61125a565b606091505b505090508061126857600080fd5b5050565b611274611def565b73ffffffffffffffffffffffffffffffffffffffff166112926113a8565b73ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90613169565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8aa0f85050aca99be43beb823e0457e77966b3baf697a289b03681978f96166860405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113da611def565b73ffffffffffffffffffffffffffffffffffffffff166113f86113a8565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590613169565b60405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b60606004805461147a90613287565b80601f01602080910402602001604051908101604052809291908181526020018280546114a690613287565b80156114f35780601f106114c8576101008083540402835291602001916114f3565b820191906000526020600020905b8154815290600101906020018083116114d657829003601f168201915b5050505050905090565b611505611def565b73ffffffffffffffffffffffffffffffffffffffff166115236113a8565b73ffffffffffffffffffffffffffffffffffffffff1614611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090613169565b60405180910390fd5b61158382826125f1565b5050565b600c5481565b6000806001600061159c611def565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611659576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116509061351b565b60405180910390fd5b61166d611664611def565b85858403611df7565b600191505092915050565b600061168c611685611def565b8484611fc0565b6001905092915050565b61169e611def565b73ffffffffffffffffffffffffffffffffffffffff166116bc6113a8565b73ffffffffffffffffffffffffffffffffffffffff1614611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990613169565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fc9f2d63eee8632b33d7a7db5252eb29036e81ee4fbe29260febe0c49ffb8a7bb60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60136020528060005260406000206000915054906101000a900460ff1681565b6117fa611def565b73ffffffffffffffffffffffffffffffffffffffff166118186113a8565b73ffffffffffffffffffffffffffffffffffffffff161461186e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186590613169565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d490613587565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119189190612f98565b602060405180830381865afa158015611935573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611959919061335f565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b815260040161199692919061338c565b6020604051808303816000875af11580156119b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d991906133ca565b50505050565b6119e7611def565b73ffffffffffffffffffffffffffffffffffffffff16611a056113a8565b73ffffffffffffffffffffffffffffffffffffffff1614611a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5290613169565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611af89190612e77565b60405180910390a25050565b6000611b0e611def565b73ffffffffffffffffffffffffffffffffffffffff16611b2c6113a8565b73ffffffffffffffffffffffffffffffffffffffff1614611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990613169565b60405180910390fd5b620186a06001611b90610b75565b611b9a91906135a7565b611ba49190613618565b821015611be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdd906136bb565b60405180910390fd5b6103e86005611bf3610b75565b611bfd91906135a7565b611c079190613618565b821115611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c409061374d565b60405180910390fd5b8160088190555060019050919050565b600f5481565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611cfa611def565b73ffffffffffffffffffffffffffffffffffffffff16611d186113a8565b73ffffffffffffffffffffffffffffffffffffffff1614611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6590613169565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd4906137df565b60405180910390fd5b611de68161252b565b50565b60115481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d90613871565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc90613903565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fb39190612ea1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690613995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361209e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209590613a27565b60405180910390fd5b600081036120b7576120b283836000612692565b612526565b60006120c230611080565b9050600060085482101590508080156120e75750600960009054906101000a900460ff165b80156121005750600560149054906101000a900460ff16155b80156121565750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121ac5750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122025750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612246576001600560146101000a81548160ff02191690831515021790555061222a612911565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122fc5750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561230657600090505b6000811561251657601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561236957506000600d54115b15612400576123976103e8612389600d5488612a1e90919063ffffffff16565b612a3490919063ffffffff16565b9050600d54600f54826123aa91906135a7565b6123b49190613618565b601160008282546123c591906131b8565b92505081905550600d54600e54826123dd91906135a7565b6123e79190613618565b601060008282546123f891906131b8565b925050819055505b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561245b57506000600a54115b156124f2576124896103e861247b600a5488612a1e90919063ffffffff16565b612a3490919063ffffffff16565b9050600a54600c548261249c91906135a7565b6124a69190613618565b601160008282546124b791906131b8565b92505081905550600a54600b54826124cf91906135a7565b6124d99190613618565b601060008282546124ea91906131b8565b925050819055505b600081111561250757612506873083612692565b5b80856125139190613a47565b94505b612521878787612692565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f890613995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276790613a27565b60405180910390fd5b61277b838383612a4a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f890613aed565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461289491906131b8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128f89190612ea1565b60405180910390a361290b848484612a4f565b50505050565b600061291c30611080565b9050600060115490506000808314806129355750600082145b1561294257505050612a1c565b61294b82612a54565b600060118190555061298230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601054612692565b6000601081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516129d090613494565b60006040518083038185875af1925050503d8060008114612a0d576040519150601f19603f3d011682016040523d82523d6000602084013e612a12565b606091505b5050809150505050505b565b60008183612a2c91906135a7565b905092915050565b60008183612a429190613618565b905092915050565b505050565b505050565b6000600267ffffffffffffffff811115612a7157612a70613b0d565b5b604051908082528060200260200182016040528015612a9f5781602001602082028036833780820191505090505b5090503081600081518110612ab757612ab6613b3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b809190613b80565b81600181518110612b9457612b93613b3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bf9307f000000000000000000000000000000000000000000000000000000000000000084611df7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c5b959493929190613ca6565b600060405180830381600087803b158015612c7557600080fd5b505af1158015612c89573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b612ca981612c96565b8114612cb457600080fd5b50565b600081359050612cc681612ca0565b92915050565b60008060408385031215612ce357612ce2612c91565b5b6000612cf185828601612cb7565b9250506020612d0285828601612cb7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d46578082015181840152602081019050612d2b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d6e82612d0c565b612d788185612d17565b9350612d88818560208601612d28565b612d9181612d52565b840191505092915050565b60006020820190508181036000830152612db68184612d63565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612de982612dbe565b9050919050565b612df981612dde565b8114612e0457600080fd5b50565b600081359050612e1681612df0565b92915050565b60008060408385031215612e3357612e32612c91565b5b6000612e4185828601612e07565b9250506020612e5285828601612cb7565b9150509250929050565b60008115159050919050565b612e7181612e5c565b82525050565b6000602082019050612e8c6000830184612e68565b92915050565b612e9b81612c96565b82525050565b6000602082019050612eb66000830184612e92565b92915050565b6000819050919050565b6000612ee1612edc612ed784612dbe565b612ebc565b612dbe565b9050919050565b6000612ef382612ec6565b9050919050565b6000612f0582612ee8565b9050919050565b612f1581612efa565b82525050565b6000602082019050612f306000830184612f0c565b92915050565b600080600060608486031215612f4f57612f4e612c91565b5b6000612f5d86828701612e07565b9350506020612f6e86828701612e07565b9250506040612f7f86828701612cb7565b9150509250925092565b612f9281612dde565b82525050565b6000602082019050612fad6000830184612f89565b92915050565b600060ff82169050919050565b612fc981612fb3565b82525050565b6000602082019050612fe46000830184612fc0565b92915050565b60006020828403121561300057612fff612c91565b5b600061300e84828501612e07565b91505092915050565b61302081612e5c565b811461302b57600080fd5b50565b60008135905061303d81613017565b92915050565b60006020828403121561305957613058612c91565b5b60006130678482850161302e565b91505092915050565b6000806040838503121561308757613086612c91565b5b600061309585828601612e07565b92505060206130a68582860161302e565b9150509250929050565b600080604083850312156130c7576130c6612c91565b5b60006130d585828601612e07565b92505060206130e685828601612e07565b9150509250929050565b60006020828403121561310657613105612c91565b5b600061311484828501612cb7565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613153602083612d17565b915061315e8261311d565b602082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131c382612c96565b91506131ce83612c96565b92508282019050808211156131e6576131e5613189565b5b92915050565b7f53656c6c2066656573206d757374206265203c3d2035302e0000000000000000600082015250565b6000613222601883612d17565b915061322d826131ec565b602082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061329f57607f821691505b6020821081036132b2576132b1613258565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613314602883612d17565b915061331f826132b8565b604082019050919050565b6000602082019050818103600083015261334381613307565b9050919050565b60008151905061335981612ca0565b92915050565b60006020828403121561337557613374612c91565b5b60006133838482850161334a565b91505092915050565b60006040820190506133a16000830185612f89565b6133ae6020830184612e92565b9392505050565b6000815190506133c481613017565b92915050565b6000602082840312156133e0576133df612c91565b5b60006133ee848285016133b5565b91505092915050565b7f4275792066656573206d757374206265203c3d2035302e000000000000000000600082015250565b600061342d601783612d17565b9150613438826133f7565b602082019050919050565b6000602082019050818103600083015261345c81613420565b9050919050565b600081905092915050565b50565b600061347e600083613463565b91506134898261346e565b600082019050919050565b600061349f82613471565b9150819050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613505602583612d17565b9150613510826134a9565b604082019050919050565b60006020820190508181036000830152613534816134f8565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b6000613571601a83612d17565b915061357c8261353b565b602082019050919050565b600060208201905081810360008301526135a081613564565b9050919050565b60006135b282612c96565b91506135bd83612c96565b92508282026135cb81612c96565b915082820484148315176135e2576135e1613189565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061362382612c96565b915061362e83612c96565b92508261363e5761363d6135e9565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006136a5603583612d17565b91506136b082613649565b604082019050919050565b600060208201905081810360008301526136d481613698565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613737603483612d17565b9150613742826136db565b604082019050919050565b600060208201905081810360008301526137668161372a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137c9602683612d17565b91506137d48261376d565b604082019050919050565b600060208201905081810360008301526137f8816137bc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061385b602483612d17565b9150613866826137ff565b604082019050919050565b6000602082019050818103600083015261388a8161384e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138ed602283612d17565b91506138f882613891565b604082019050919050565b6000602082019050818103600083015261391c816138e0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061397f602583612d17565b915061398a82613923565b604082019050919050565b600060208201905081810360008301526139ae81613972565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a11602383612d17565b9150613a1c826139b5565b604082019050919050565b60006020820190508181036000830152613a4081613a04565b9050919050565b6000613a5282612c96565b9150613a5d83612c96565b9250828203905081811115613a7557613a74613189565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ad7602683612d17565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b7a81612df0565b92915050565b600060208284031215613b9657613b95612c91565b5b6000613ba484828501613b6b565b91505092915050565b6000819050919050565b6000613bd2613bcd613bc884613bad565b612ebc565b612c96565b9050919050565b613be281613bb7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c1d81612dde565b82525050565b6000613c2f8383613c14565b60208301905092915050565b6000602082019050919050565b6000613c5382613be8565b613c5d8185613bf3565b9350613c6883613c04565b8060005b83811015613c99578151613c808882613c23565b9750613c8b83613c3b565b925050600181019050613c6c565b5085935050505092915050565b600060a082019050613cbb6000830188612e92565b613cc86020830187613bd9565b8181036040830152613cda8186613c48565b9050613ce96060830185612f89565b613cf66080830184612e92565b969550505050505056fea264697066735822122087b4b5d030a298f01574271ff28d0be57ad51fc32a8d5dd16b901acfaf49c61564736f6c63430008130033