60806040526009600a62000014919062000cc0565b64174876e80062000026919062000d11565b6009556009546000196200003b919062000da1565b6000196200004a919062000dd9565b600a5560c86009546200005e919062000e14565b600b5561014d60095462000073919062000e14565b600c5560c860095462000087919062000e14565b600d556002600f556001601360146101000a81548160ff0219169083151502179055506107d0600954620000bc919062000e14565b6014556040518060800160405280600060ff168152602001600560ff168152602001600160ff168152602001600660ff16815250601560008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555050506040518060800160405280600060ff168152602001601860ff168152602001600160ff168152602001601960ff16815250601660008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff1602179055505050601560176000820160009054906101000a900460ff168160000160006101000a81548160ff021916908360ff1602179055506000820160019054906101000a900460ff168160000160016101000a81548160ff021916908360ff1602179055506000820160029054906101000a900460ff168160000160026101000a81548160ff021916908360ff1602179055506000820160039054906101000a900460ff168160000160036101000a81548160ff021916908360ff1602179055505050348015620002fc57600080fd5b506200031d6200031162000a3160201b60201c565b62000a3960201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037d57600080fd5b505afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000eb6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041b57600080fd5b505afa15801562000430573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000456919062000eb6565b6040518363ffffffff1660e01b81526004016200047592919062000ef9565b602060405180830381600087803b1580156200049057600080fd5b505af1158015620004a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004cb919062000eb6565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060011515601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a380601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600160006200064662000afd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620006db62000afd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660006200081462000afd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009c162000afd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000a22919062000f37565b60405180910390a35062000f54565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bb45780860481111562000b8c5762000b8b62000b26565b5b600185161562000b9c5780820291505b808102905062000bac8562000b55565b945062000b6c565b94509492505050565b60008262000bcf576001905062000ca2565b8162000bdf576000905062000ca2565b816001811462000bf8576002811462000c035762000c39565b600191505062000ca2565b60ff84111562000c185762000c1762000b26565b5b8360020a91508482111562000c325762000c3162000b26565b5b5062000ca2565b5060208310610133831016604e8410600b841016171562000c735782820a90508381111562000c6d5762000c6c62000b26565b5b62000ca2565b62000c82848484600162000b62565b9250905081840481111562000c9c5762000c9b62000b26565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ccd8262000ca9565b915062000cda8362000cb3565b925062000d097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bbd565b905092915050565b600062000d1e8262000ca9565b915062000d2b8362000ca9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d675762000d6662000b26565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dae8262000ca9565b915062000dbb8362000ca9565b92508262000dce5762000dcd62000d72565b5b828206905092915050565b600062000de68262000ca9565b915062000df38362000ca9565b92508282101562000e095762000e0862000b26565b5b828203905092915050565b600062000e218262000ca9565b915062000e2e8362000ca9565b92508262000e415762000e4062000d72565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e7e8262000e51565b9050919050565b62000e908162000e71565b811462000e9c57600080fd5b50565b60008151905062000eb08162000e85565b92915050565b60006020828403121562000ecf5762000ece62000e4c565b5b600062000edf8482850162000e9f565b91505092915050565b62000ef38162000e71565b82525050565b600060408201905062000f10600083018562000ee8565b62000f1f602083018462000ee8565b9392505050565b62000f318162000ca9565b82525050565b600060208201905062000f4e600083018462000f26565b92915050565b615f808062000f646000396000f3fe6080604052600436106102cd5760003560e01c806379eb8d1d11610175578063aa4bde28116100dc578063d44e586e11610095578063dd62ed3e1161006f578063dd62ed3e14610b42578063e22b62de14610b7f578063ea2f0b3714610ba8578063f2fde38b14610bd1576102d4565b8063d44e586e14610ac1578063d6c180bf14610aec578063d8dcac4f14610b17576102d4565b8063aa4bde28146109c5578063bd94545b146109f0578063c49b9a8014610a19578063c816841b14610a42578063d12a768814610a6d578063d2fcc00114610a98576102d4565b806395d89b411161012e57806395d89b41146108a05780639a7a23d6146108cb5780639ba5e4d5146108f4578063a457c2d714610920578063a5ece9411461095d578063a9059cbb14610988576102d4565b806379eb8d1d146107a457806388f82020146107cd5780638a0eef5a1461080a5780638da5cb5b14610835578063906e9dd014610860578063958b0f2014610889576102d4565b80633bbac579116102345780635342acb4116101ed578063713898cd116101c7578063713898cd146106f4578063715018a61461072257806373cafdc2146107395780637949a40314610767576102d4565b80635342acb41461063d5780636dd3d39f1461067a57806370a08231146106b7576102d4565b80633bbac5791461051d578063437823ec1461055a5780634549b039146105835780634a74bb02146105c057806350be7cdb146105eb57806352390c0214610614576102d4565b806323b872dd1161028657806323b872dd146103e957806327a14fc2146104265780632d8381191461044f578063313ce5671461048c5780633685d419146104b757806339509351146104e0576102d4565b806304679780146102d9578063055add0d1461030257806306fdde031461032d578063095ea7b31461035857806315952f541461039557806318160ddd146103be576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb91906144c0565b610bfa565b005b34801561030e57600080fd5b50610317610c98565b604051610324919061456c565b60405180910390f35b34801561033957600080fd5b50610342610cbe565b60405161034f9190614620565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a9190614680565b610cfb565b60405161038c91906146db565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b791906146f6565b610d19565b005b3480156103ca57600080fd5b506103d3610eb8565b6040516103e09190614732565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b919061474d565b610ec2565b60405161041d91906146db565b60405180910390f35b34801561043257600080fd5b5061044d600480360381019061044891906144c0565b610fba565b005b34801561045b57600080fd5b50610476600480360381019061047191906144c0565b611093565b6040516104839190614732565b60405180910390f35b34801561049857600080fd5b506104a16110fa565b6040516104ae91906147bc565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d991906146f6565b611103565b005b3480156104ec57600080fd5b5061050760048036038101906105029190614680565b611439565b60405161051491906146db565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f91906146f6565b6114e5565b60405161055191906146db565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c91906146f6565b611505565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190614803565b6115dc565b6040516105b79190614732565b60405180910390f35b3480156105cc57600080fd5b506105d5611662565b6040516105e291906146db565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d919061486f565b611675565b005b34801561062057600080fd5b5061063b600480360381019061063691906146f6565b611779565b005b34801561064957600080fd5b50610664600480360381019061065f91906146f6565b611a14565b60405161067191906146db565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c91906146f6565b611a6a565b6040516106ae91906146db565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906146f6565b611ac0565b6040516106eb9190614732565b60405180910390f35b34801561070057600080fd5b50610709611bab565b60405161071994939291906148c2565b60405180910390f35b34801561072e57600080fd5b50610737611bfd565b005b34801561074557600080fd5b5061074e611c85565b60405161075e94939291906148c2565b60405180910390f35b34801561077357600080fd5b5061078e600480360381019061078991906146f6565b611cd7565b60405161079b91906146db565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190614907565b611cf7565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906146f6565b611db9565b60405161080191906146db565b60405180910390f35b34801561081657600080fd5b5061081f611e0f565b60405161082c9190614732565b60405180910390f35b34801561084157600080fd5b5061084a611e15565b6040516108579190614956565b60405180910390f35b34801561086c57600080fd5b50610887600480360381019061088291906149af565b611e3e565b005b34801561089557600080fd5b5061089e611efe565b005b3480156108ac57600080fd5b506108b5611f8d565b6040516108c29190614620565b60405180910390f35b3480156108d757600080fd5b506108f260048036038101906108ed91906149dc565b611fca565b005b34801561090057600080fd5b50610909612213565b604051610917929190614a1c565b60405180910390f35b34801561092c57600080fd5b5061094760048036038101906109429190614680565b612225565b60405161095491906146db565b60405180910390f35b34801561096957600080fd5b50610972612310565b60405161097f9190614a54565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190614680565b612336565b6040516109bc91906146db565b60405180910390f35b3480156109d157600080fd5b506109da612354565b6040516109e79190614732565b60405180910390f35b3480156109fc57600080fd5b50610a176004803603810190610a129190614ad4565b61235a565b005b348015610a2557600080fd5b50610a406004803603810190610a3b9190614b34565b612596565b005b348015610a4e57600080fd5b50610a57612666565b604051610a649190614956565b60405180910390f35b348015610a7957600080fd5b50610a8261268c565b604051610a8f9190614732565b60405180910390f35b348015610aa457600080fd5b50610abf6004803603810190610aba91906149dc565b612692565b005b348015610acd57600080fd5b50610ad6612836565b604051610ae39190614732565b60405180910390f35b348015610af857600080fd5b50610b0161283c565b604051610b0e9190614732565b60405180910390f35b348015610b2357600080fd5b50610b2c612842565b604051610b399190614732565b60405180910390f35b348015610b4e57600080fd5b50610b696004803603810190610b649190614b61565b612848565b604051610b769190614732565b60405180910390f35b348015610b8b57600080fd5b50610ba66004803603810190610ba1919061486f565b6128cf565b005b348015610bb457600080fd5b50610bcf6004803603810190610bca91906146f6565b6129d3565b005b348015610bdd57600080fd5b50610bf86004803603810190610bf391906146f6565b612aaa565b005b610c02612ba2565b73ffffffffffffffffffffffffffffffffffffffff16610c20611e15565b73ffffffffffffffffffffffffffffffffffffffff1614610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90614bed565b60405180910390fd5b6009600a610c849190614d6f565b81610c8f9190614dba565b60148190555050565b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600c81526020017f44657374696e7920412e492e0000000000000000000000000000000000000000815250905090565b6000610d0f610d08612ba2565b8484612baa565b6001905092915050565b610d21612ba2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611e15565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90614bed565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990614e86565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600015157f3159dadbd8e2d720a851b412e3358e7e44bb11734c9bfd5715340e21798e8b2582604051610ead9190614956565b60405180910390a250565b6000600954905090565b6000610ecf848484612d75565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1a612ba2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190614f18565b60405180910390fd5b610fae85610fa6612ba2565b858403612baa565b60019150509392505050565b610fc2612ba2565b73ffffffffffffffffffffffffffffffffffffffff16610fe0611e15565b73ffffffffffffffffffffffffffffffffffffffff1614611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d90614bed565b60405180910390fd5b612710816009546110479190614dba565b6110519190614f67565b600d819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001600d546040516110889190614732565b60405180910390a150565b6000600a548211156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d19061500a565b60405180910390fd5b60006110e4613448565b905080836110f29190614f67565b915050919050565b60006009905090565b61110b612ba2565b73ffffffffffffffffffffffffffffffffffffffff16611129611e15565b73ffffffffffffffffffffffffffffffffffffffff161461117f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117690614bed565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290615076565b60405180910390fd5b60005b600880549050811015611435578173ffffffffffffffffffffffffffffffffffffffff166008828154811061124657611245615096565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561142257600860016008805490506112a191906150c5565b815481106112b2576112b1615096565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600882815481106112f1576112f0615096565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088054806113e8576113e76150f9565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611435565b808061142d90615128565b91505061120e565b5050565b60006114db611446612ba2565b848460036000611454612ba2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d69190615171565b612baa565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b61150d612ba2565b73ffffffffffffffffffffffffffffffffffffffff1661152b611e15565b73ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890614bed565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600954831115611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a90615213565b60405180910390fd5b8161164457600061163584600161346c565b9050806000015191505061165c565b600061165184600161346c565b905080602001519150505b92915050565b601360149054906101000a900460ff1681565b61167d612ba2565b73ffffffffffffffffffffffffffffffffffffffff1661169b611e15565b73ffffffffffffffffffffffffffffffffffffffff16146116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890614bed565b60405180910390fd5b82601560000160006101000a81548160ff021916908360ff16021790555081601560000160016101000a81548160ff021916908360ff16021790555080601560000160026101000a81548160ff021916908360ff16021790555080826117579190615233565b601560000160036101000a81548160ff021916908360ff160217905550505050565b611781612ba2565b73ffffffffffffffffffffffffffffffffffffffff1661179f611e15565b73ffffffffffffffffffffffffffffffffffffffff16146117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90614bed565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611879906152b6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561195657611912600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611093565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b5b57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611ba6565b611ba3600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611093565b90505b919050565b60168060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16905084565b611c05612ba2565b73ffffffffffffffffffffffffffffffffffffffff16611c23611e15565b73ffffffffffffffffffffffffffffffffffffffff1614611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7090614bed565b60405180910390fd5b611c8360006134bd565b565b60158060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16905084565b60116020528060005260406000206000915054906101000a900460ff1681565b611cff612ba2565b73ffffffffffffffffffffffffffffffffffffffff16611d1d611e15565b73ffffffffffffffffffffffffffffffffffffffff1614611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a90614bed565b60405180910390fd5b61271082600954611d849190614dba565b611d8e9190614f67565b600b8190555061271081600954611da59190614dba565b611daf9190614f67565b600c819055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611e46612ba2565b73ffffffffffffffffffffffffffffffffffffffff16611e64611e15565b73ffffffffffffffffffffffffffffffffffffffff1614611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb190614bed565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f06612ba2565b73ffffffffffffffffffffffffffffffffffffffff16611f24611e15565b73ffffffffffffffffffffffffffffffffffffffff1614611f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7190614bed565b60405180910390fd5b611f8b611f8630611ac0565b613581565b565b60606040518060400160405280600481526020017f4445535400000000000000000000000000000000000000000000000000000000815250905090565b611fd2612ba2565b73ffffffffffffffffffffffffffffffffffffffff16611ff0611e15565b73ffffffffffffffffffffffffffffffffffffffff1614612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d90614bed565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d090615348565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156121c9576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015157f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b2836040516121c09190614956565b60405180910390a25b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60188060000154908060010154905082565b60008060036000612234612ba2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e8906153da565b60405180910390fd5b6123056122fc612ba2565b85858403612baa565b600191505092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061234a612343612ba2565b8484612d75565b6001905092915050565b600d5481565b612362612ba2565b73ffffffffffffffffffffffffffffffffffffffff16612380611e15565b73ffffffffffffffffffffffffffffffffffffffff16146123d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cd90614bed565b60405180910390fd5b60005b8383905081101561259057811515600660008686858181106123fe576123fd615096565b5b905060200201602081019061241391906146f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561249e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249590615492565b60405180910390fd5b81600660008686858181106124b6576124b5615096565b5b90506020020160208101906124cb91906146f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508115157f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b285858481811061255357612552615096565b5b905060200201602081019061256891906146f6565b6040516125759190614956565b60405180910390a2808061258890615128565b9150506123d9565b50505050565b61259e612ba2565b73ffffffffffffffffffffffffffffffffffffffff166125bc611e15565b73ffffffffffffffffffffffffffffffffffffffff1614612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990614bed565b60405180910390fd5b80601360146101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161265b91906146db565b60405180910390a150565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b61269a612ba2565b73ffffffffffffffffffffffffffffffffffffffff166126b8611e15565b73ffffffffffffffffffffffffffffffffffffffff161461270e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270590614bed565b60405180910390fd5b801515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156127a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279890615524565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015157f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b28360405161282a9190614956565b60405180910390a25050565b600c5481565b600b5481565b600f5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6128d7612ba2565b73ffffffffffffffffffffffffffffffffffffffff166128f5611e15565b73ffffffffffffffffffffffffffffffffffffffff161461294b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294290614bed565b60405180910390fd5b82601660000160006101000a81548160ff021916908360ff16021790555081601660000160016101000a81548160ff021916908360ff16021790555080601660000160026101000a81548160ff021916908360ff16021790555080826129b19190615233565b601660000160036101000a81548160ff021916908360ff160217905550505050565b6129db612ba2565b73ffffffffffffffffffffffffffffffffffffffff166129f9611e15565b73ffffffffffffffffffffffffffffffffffffffff1614612a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4690614bed565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612ab2612ba2565b73ffffffffffffffffffffffffffffffffffffffff16612ad0611e15565b73ffffffffffffffffffffffffffffffffffffffff1614612b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1d90614bed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8d906155b6565b60405180910390fd5b612b9f816134bd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1190615648565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c81906156da565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d689190614732565b60405180910390a3505050565b6000600e54148015612dd05750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ddd5743600e819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e449061576c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb4906157fe565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f419061586a565b60405180910390fd5b60008111612f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f84906158fc565b60405180910390fd5b612f9683611ac0565b811115612fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcf9061598e565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061307b5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b159050801561339057601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561328a57600f54600e546130e69190615171565b431015613181576001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600115157f3159dadbd8e2d720a851b412e3358e7e44bb11734c9bfd5715340e21798e8b25846040516131789190614956565b60405180910390a25b601560176000820160009054906101000a900460ff168160000160006101000a81548160ff021916908360ff1602179055506000820160019054906101000a900460ff168160000160016101000a81548160ff021916908360ff1602179055506000820160029054906101000a900460ff168160000160026101000a81548160ff021916908360ff1602179055506000820160039054906101000a900460ff168160000160036101000a81548160ff021916908360ff160217905550905050600b54821115613285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327c906159fa565b60405180910390fd5b61338f565b601660176000820160009054906101000a900460ff168160000160006101000a81548160ff021916908360ff1602179055506000820160019054906101000a900460ff168160000160016101000a81548160ff021916908360ff1602179055506000820160029054906101000a900460ff168160000160026101000a81548160ff021916908360ff1602179055506000820160039054906101000a900460ff168160000160036101000a81548160ff021916908360ff160217905550905050600c5482111561338e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338590615a8c565b60405180910390fd5b5b5b60145461339c30611ac0565b101580156133b75750601260009054906101000a900460ff16155b801561340d5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156134255750601360149054906101000a900460ff165b1561343657613435601454613581565b5b613442848484846136e9565b50505050565b6000806000613455613aa6565b9150915080826134659190614f67565b9250505090565b613474614443565b61347e8383613d44565b905061349381848461348e613448565b613dfb565b84600001856020018660400187606001848152508481525084815250848152505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260006101000a81548160ff02191690831515021790555060006002601760000160039054906101000a900460ff166135bd9190615aac565b60ff169050600081601760000160029054906101000a900460ff1660ff16846135e69190614dba565b6135f09190614f67565b90506000818461360091906150c5565b9050600047905061361082613e6f565b6000814761361e91906150c5565b90506000601760000160029054906101000a900460ff1660ff168661364391906150c5565b601760000160029054906101000a900460ff1660ff16836136649190614dba565b61366e9190614f67565b905061367a85826140f7565b6136c547601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166141f790919063ffffffff16565b5050505050506000601260006101000a81548160ff02191690831515021790555050565b60006136f5838361346c565b9050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137a05782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461379891906150c5565b925050819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561384d578060800151600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138459190615171565b925050819055505b8060000151600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138a091906150c5565b925050819055508060200151600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138fa9190615171565b9250508190555081156139955761391981604001518260a001516142eb565b61392b81606001518260c00151614324565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161398c9190614732565b60405180910390a35b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139f75750600d546139f485611ac0565b11155b613a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a2d90615b59565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051613a979190614732565b60405180910390a35050505050565b6000806000600a5490506000600954905060005b600880549050811015613d0e57826001600060088481548110613ae057613adf615096565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613bce5750816002600060088481548110613b6657613b65615096565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613be557600a5460095494509450505050613d40565b6001600060088381548110613bfd57613bfc615096565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c6e91906150c5565b92506002600060088381548110613c8857613c87615096565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613cf991906150c5565b91508080613d0690615128565b915050613aba565b50600954600a54613d1f9190614f67565b821015613d3757600a54600954935093505050613d40565b81819350935050505b9091565b613d4c614443565b81613d605782816080018181525050613df5565b6064601760000160009054906101000a900460ff1660ff1684613d839190614dba565b613d8d9190614f67565b8160a00181815250506064601760000160039054906101000a900460ff1660ff1684613db99190614dba565b613dc39190614f67565b8160c00181815250508060c001518160a0015184613de191906150c5565b613deb91906150c5565b8160800181815250505b92915050565b6000806000808487613e0d9190614dba565b935085613e265783846000809350935093509350613e64565b848860a00151613e369190614dba565b9150848860c00151613e489190614dba565b9050808285613e5791906150c5565b613e6191906150c5565b92505b945094509450949050565b6000600267ffffffffffffffff811115613e8c57613e8b615b79565b5b604051908082528060200260200182016040528015613eba5781602001602082028036833780820191505090505b5090503081600081518110613ed257613ed1615096565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613f7457600080fd5b505afa158015613f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fac9190615bbd565b81600181518110613fc057613fbf615096565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508161402730601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612848565b101561405d5761405c30601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019612baa565b5b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016140c1959493929190615ce3565b600060405180830381600087803b1580156140db57600080fd5b505af11580156140ef573d6000803e3d6000fd5b505050505050565b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080614143611e15565b426040518863ffffffff1660e01b815260040161416596959493929190615d3d565b6060604051808303818588803b15801561417e57600080fd5b505af1158015614192573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906141b79190615db3565b5050507f38f8a0c92f4c5b0b6877f878cb4c0c8d348a47b76d716c8e78f425043df9515b82826040516141eb929190614a1c565b60405180910390a15050565b8047101561423a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161423190615e52565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161426090615ea3565b60006040518083038185875af1925050503d806000811461429d576040519150601f19603f3d011682016040523d82523d6000602084013e6142a2565b606091505b50509050806142e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142dd90615f2a565b60405180910390fd5b505050565b81600a60008282546142fd91906150c5565b9250508190555080601860000160008282546143199190615171565b925050819055505050565b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546143739190615171565b92505081905550600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156144235780600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461441b9190615171565b925050819055505b80601860010160008282546144389190615171565b925050819055505050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080fd5b600080fd5b6000819050919050565b61449d8161448a565b81146144a857600080fd5b50565b6000813590506144ba81614494565b92915050565b6000602082840312156144d6576144d5614480565b5b60006144e4848285016144ab565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061453261452d614528846144ed565b61450d565b6144ed565b9050919050565b600061454482614517565b9050919050565b600061455682614539565b9050919050565b6145668161454b565b82525050565b6000602082019050614581600083018461455d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145c15780820151818401526020810190506145a6565b838111156145d0576000848401525b50505050565b6000601f19601f8301169050919050565b60006145f282614587565b6145fc8185614592565b935061460c8185602086016145a3565b614615816145d6565b840191505092915050565b6000602082019050818103600083015261463a81846145e7565b905092915050565b600061464d826144ed565b9050919050565b61465d81614642565b811461466857600080fd5b50565b60008135905061467a81614654565b92915050565b6000806040838503121561469757614696614480565b5b60006146a58582860161466b565b92505060206146b6858286016144ab565b9150509250929050565b60008115159050919050565b6146d5816146c0565b82525050565b60006020820190506146f060008301846146cc565b92915050565b60006020828403121561470c5761470b614480565b5b600061471a8482850161466b565b91505092915050565b61472c8161448a565b82525050565b60006020820190506147476000830184614723565b92915050565b60008060006060848603121561476657614765614480565b5b60006147748682870161466b565b93505060206147858682870161466b565b9250506040614796868287016144ab565b9150509250925092565b600060ff82169050919050565b6147b6816147a0565b82525050565b60006020820190506147d160008301846147ad565b92915050565b6147e0816146c0565b81146147eb57600080fd5b50565b6000813590506147fd816147d7565b92915050565b6000806040838503121561481a57614819614480565b5b6000614828858286016144ab565b9250506020614839858286016147ee565b9150509250929050565b61484c816147a0565b811461485757600080fd5b50565b60008135905061486981614843565b92915050565b60008060006060848603121561488857614887614480565b5b60006148968682870161485a565b93505060206148a78682870161485a565b92505060406148b88682870161485a565b9150509250925092565b60006080820190506148d760008301876147ad565b6148e460208301866147ad565b6148f160408301856147ad565b6148fe60608301846147ad565b95945050505050565b6000806040838503121561491e5761491d614480565b5b600061492c858286016144ab565b925050602061493d858286016144ab565b9150509250929050565b61495081614642565b82525050565b600060208201905061496b6000830184614947565b92915050565b600061497c826144ed565b9050919050565b61498c81614971565b811461499757600080fd5b50565b6000813590506149a981614983565b92915050565b6000602082840312156149c5576149c4614480565b5b60006149d38482850161499a565b91505092915050565b600080604083850312156149f3576149f2614480565b5b6000614a018582860161466b565b9250506020614a12858286016147ee565b9150509250929050565b6000604082019050614a316000830185614723565b614a3e6020830184614723565b9392505050565b614a4e81614971565b82525050565b6000602082019050614a696000830184614a45565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112614a9457614a93614a6f565b5b8235905067ffffffffffffffff811115614ab157614ab0614a74565b5b602083019150836020820283011115614acd57614acc614a79565b5b9250929050565b600080600060408486031215614aed57614aec614480565b5b600084013567ffffffffffffffff811115614b0b57614b0a614485565b5b614b1786828701614a7e565b93509350506020614b2a868287016147ee565b9150509250925092565b600060208284031215614b4a57614b49614480565b5b6000614b58848285016147ee565b91505092915050565b60008060408385031215614b7857614b77614480565b5b6000614b868582860161466b565b9250506020614b978582860161466b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614bd7602083614592565b9150614be282614ba1565b602082019050919050565b60006020820190508181036000830152614c0681614bca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614c9357808604811115614c6f57614c6e614c0d565b5b6001851615614c7e5780820291505b8081029050614c8c85614c3c565b9450614c53565b94509492505050565b600082614cac5760019050614d68565b81614cba5760009050614d68565b8160018114614cd05760028114614cda57614d09565b6001915050614d68565b60ff841115614cec57614ceb614c0d565b5b8360020a915084821115614d0357614d02614c0d565b5b50614d68565b5060208310610133831016604e8410600b8410161715614d3e5782820a905083811115614d3957614d38614c0d565b5b614d68565b614d4b8484846001614c49565b92509050818404811115614d6257614d61614c0d565b5b81810290505b9392505050565b6000614d7a8261448a565b9150614d85836147a0565b9250614db27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614c9c565b905092915050565b6000614dc58261448a565b9150614dd08361448a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614e0957614e08614c0d565b5b828202905092915050565b7f616464726573732070726f766964656420697320616c7265616479206e6f742060008201527f626c61636b6c6973746564000000000000000000000000000000000000000000602082015250565b6000614e70602b83614592565b9150614e7b82614e14565b604082019050919050565b60006020820190508181036000830152614e9f81614e63565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614f02602883614592565b9150614f0d82614ea6565b604082019050919050565b60006020820190508181036000830152614f3181614ef5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f728261448a565b9150614f7d8361448a565b925082614f8d57614f8c614f38565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614ff4602a83614592565b9150614fff82614f98565b604082019050919050565b6000602082019050818103600083015261502381614fe7565b9050919050565b7f4163636f756e74206973206e6f74206578636c75646564000000000000000000600082015250565b6000615060601783614592565b915061506b8261502a565b602082019050919050565b6000602082019050818103600083015261508f81615053565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006150d08261448a565b91506150db8361448a565b9250828210156150ee576150ed614c0d565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006151338261448a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561516657615165614c0d565b5b600182019050919050565b600061517c8261448a565b91506151878361448a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151bc576151bb614c0d565b5b828201905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006151fd601f83614592565b9150615208826151c7565b602082019050919050565b6000602082019050818103600083015261522c816151f0565b9050919050565b600061523e826147a0565b9150615249836147a0565b92508260ff0382111561525f5761525e614c0d565b5b828201905092915050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b60006152a0601b83614592565b91506152ab8261526a565b602082019050919050565b600060208201905081810360008301526152cf81615293565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b6000615332603883614592565b915061533d826152d6565b604082019050919050565b6000602082019050818103600083015261536181615325565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006153c4602583614592565b91506153cf82615368565b604082019050919050565b600060208201905081810360008301526153f3816153b7565b9050919050565b7f5f69734578636c7564656446726f6d4d617857616c6c657420616c726561647960008201527f2073657420746f20746861742076616c756520666f72206f6e652077616c6c6560208201527f7400000000000000000000000000000000000000000000000000000000000000604082015250565b600061547c604183614592565b9150615487826153fa565b606082019050919050565b600060208201905081810360008301526154ab8161546f565b9050919050565b7f5f69734578636c7564656446726f6d4d617857616c6c657420616c726561647960008201527f2073657420746f20746861742076616c75650000000000000000000000000000602082015250565b600061550e603283614592565b9150615519826154b2565b604082019050919050565b6000602082019050818103600083015261553d81615501565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006155a0602683614592565b91506155ab82615544565b604082019050919050565b600060208201905081810360008301526155cf81615593565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615632602483614592565b915061563d826155d6565b604082019050919050565b6000602082019050818103600083015261566181615625565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006156c4602283614592565b91506156cf82615668565b604082019050919050565b600060208201905081810360008301526156f3816156b7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000615756602583614592565b9150615761826156fa565b604082019050919050565b6000602082019050818103600083015261578581615749565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006157e8602383614592565b91506157f38261578c565b604082019050919050565b60006020820190508181036000830152615817816157db565b9050919050565b7f45524332303a206164647265737320626c61636b6c69737465642028626f7429600082015250565b6000615854602083614592565b915061585f8261581e565b602082019050919050565b6000602082019050818103600083015261588381615847565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006158e6602983614592565b91506158f18261588a565b604082019050919050565b60006020820190508181036000830152615915816158d9565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000615978603183614592565b91506159838261591c565b604082019050919050565b600060208201905081810360008301526159a78161596b565b9050919050565b7f616d6f756e74206d757374206265203c3d206d61785478416d6f756e74427579600082015250565b60006159e4602083614592565b91506159ef826159ae565b602082019050919050565b60006020820190508181036000830152615a13816159d7565b9050919050565b7f616d6f756e74206d757374206265203c3d206d61785478416d6f756e7453656c60008201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b6000615a76602183614592565b9150615a8182615a1a565b604082019050919050565b60006020820190508181036000830152615aa581615a69565b9050919050565b6000615ab7826147a0565b9150615ac2836147a0565b92508160ff0483118215151615615adc57615adb614c0d565b5b828202905092915050565b7f526563697069656e742063616e6e6f7420686f6c64206d6f7265207468616e2060008201527f6d617857616c6c6574416d6f756e740000000000000000000000000000000000602082015250565b6000615b43602f83614592565b9150615b4e82615ae7565b604082019050919050565b60006020820190508181036000830152615b7281615b36565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050615bb781614654565b92915050565b600060208284031215615bd357615bd2614480565b5b6000615be184828501615ba8565b91505092915050565b6000819050919050565b6000615c0f615c0a615c0584615bea565b61450d565b61448a565b9050919050565b615c1f81615bf4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615c5a81614642565b82525050565b6000615c6c8383615c51565b60208301905092915050565b6000602082019050919050565b6000615c9082615c25565b615c9a8185615c30565b9350615ca583615c41565b8060005b83811015615cd6578151615cbd8882615c60565b9750615cc883615c78565b925050600181019050615ca9565b5085935050505092915050565b600060a082019050615cf86000830188614723565b615d056020830187615c16565b8181036040830152615d178186615c85565b9050615d266060830185614947565b615d336080830184614723565b9695505050505050565b600060c082019050615d526000830189614947565b615d5f6020830188614723565b615d6c6040830187615c16565b615d796060830186615c16565b615d866080830185614947565b615d9360a0830184614723565b979650505050505050565b600081519050615dad81614494565b92915050565b600080600060608486031215615dcc57615dcb614480565b5b6000615dda86828701615d9e565b9350506020615deb86828701615d9e565b9250506040615dfc86828701615d9e565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000615e3c601d83614592565b9150615e4782615e06565b602082019050919050565b60006020820190508181036000830152615e6b81615e2f565b9050919050565b600081905092915050565b50565b6000615e8d600083615e72565b9150615e9882615e7d565b600082019050919050565b6000615eae82615e80565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000615f14603a83614592565b9150615f1f82615eb8565b604082019050919050565b60006020820190508181036000830152615f4381615f07565b905091905056fea264697066735822122019336daae4141a54ad9c752e6dfaebee5b1df87ecb0e79dc8783d53c30ad346e64736f6c63430008090033