60806040523480156200001157600080fd5b506040518060400160405280600881526020017f506570654275726e0000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f504550454255524e00000000000000000000000000000000000000000000000081525081600390816200008f919062001122565b508060049081620000a1919062001122565b5050506000620000b662000b1060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000603846036200017d577310ed43c718714eb63d5aa57b78b54704e256024e9050620001dd565b60614603620001a35773d99d1c33f9fc3444f8101754abc46c52416550d19050620001dc565b6001461480620001b35750600546145b15620001d657737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001db565b600080fd5b5b5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000256919062001273565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e4919062001273565b6040518363ffffffff1660e01b815260040162000303929190620012b6565b6020604051808303816000875af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062001273565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000b1860201b60201c565b60026009819055506002600a819055506017600b81905550602d600c81905550600b5460095462000454919062001312565b600d81905550600c54600a546200046c919062001312565b600e8190555073e8b6e01e9f8a7d69c6dd0a1cf040643c435f6df3601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460006101000a81548160ff0219169083151502179055506001601760006101000a81548160ff0219169083151502179055506001601660006200051362000ce960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016016600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000620006a662000ce960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860006200083962000ce960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000a05620009ca62000ce960201b60201c565b620009da62000d1360201b60201c565b600a620009e89190620014ae565b633b9aca00620009f99190620014ff565b62000d1c60201b60201c565b61271060c862000a1a62000e9460201b60201c565b62000a269190620014ff565b62000a32919062001579565b60118190555061271060c862000a4d62000e9460201b60201c565b62000a599190620014ff565b62000a65919062001579565b60188190555061271060c862000a8062000e9460201b60201c565b62000a8c9190620014ff565b62000a98919062001579565b60198190555061271060c862000ab362000e9460201b60201c565b62000abf9190620014ff565b62000acb919062001579565b6015819055506000601260026101000a81548160ff0219169083151502179055506000601260016101000a81548160ff02191690831515021790555050505062001792565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b819062001638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000bfc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bf390620016d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000cdc919062001703565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d859062001770565b60405180910390fd5b62000da26000838362000e9e60201b60201c565b806002600082825462000db6919062001312565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000e0d919062001312565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000e74919062001703565b60405180910390a362000e906000838362000ea360201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f2a57607f821691505b60208210810362000f405762000f3f62000ee2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000faa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f6b565b62000fb6868362000f6b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200100362000ffd62000ff78462000fce565b62000fd8565b62000fce565b9050919050565b6000819050919050565b6200101f8362000fe2565b620010376200102e826200100a565b84845462000f78565b825550505050565b600090565b6200104e6200103f565b6200105b81848462001014565b505050565b5b8181101562001083576200107760008262001044565b60018101905062001061565b5050565b601f821115620010d2576200109c8162000f46565b620010a78462000f5b565b81016020851015620010b7578190505b620010cf620010c68562000f5b565b83018262001060565b50505b505050565b600082821c905092915050565b6000620010f760001984600802620010d7565b1980831691505092915050565b6000620011128383620010e4565b9150826002028217905092915050565b6200112d8262000ea8565b67ffffffffffffffff81111562001149576200114862000eb3565b5b62001155825462000f11565b6200116282828562001087565b600060209050601f8311600181146200119a576000841562001185578287015190505b62001191858262001104565b86555062001201565b601f198416620011aa8662000f46565b60005b82811015620011d457848901518255600182019150602085019450602081019050620011ad565b86831015620011f45784890151620011f0601f891682620010e4565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200123b826200120e565b9050919050565b6200124d816200122e565b81146200125957600080fd5b50565b6000815190506200126d8162001242565b92915050565b6000602082840312156200128c576200128b62001209565b5b60006200129c848285016200125c565b91505092915050565b620012b0816200122e565b82525050565b6000604082019050620012cd6000830185620012a5565b620012dc6020830184620012a5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200131f8262000fce565b91506200132c8362000fce565b9250828201905080821115620013475762001346620012e3565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115620013ac57808604811115620013845762001383620012e3565b5b6001851615620013945780820291505b8081029050620013a4856200134d565b945062001364565b94509492505050565b600082620013c757600190506200149a565b81620013d757600090506200149a565b8160018114620013f05760028114620013fb5762001431565b60019150506200149a565b60ff84111562001410576200140f620012e3565b5b8360020a9150848211156200142a5762001429620012e3565b5b506200149a565b5060208310610133831016604e8410600b84101617156200146b5782820a905083811115620014655762001464620012e3565b5b6200149a565b6200147a84848460016200135a565b92509050818404811115620014945762001493620012e3565b5b81810290505b9392505050565b600060ff82169050919050565b6000620014bb8262000fce565b9150620014c883620014a1565b9250620014f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013b5565b905092915050565b60006200150c8262000fce565b9150620015198362000fce565b9250828202620015298162000fce565b91508282048414831517620015435762001542620012e3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015868262000fce565b9150620015938362000fce565b925082620015a657620015a56200154a565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062001620602483620015b1565b91506200162d82620015c2565b604082019050919050565b60006020820190508181036000830152620016538162001611565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620016b8602283620015b1565b9150620016c5826200165a565b604082019050919050565b60006020820190508181036000830152620016eb81620016a9565b9050919050565b620016fd8162000fce565b82525050565b60006020820190506200171a6000830184620016f2565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001758601f83620015b1565b9150620017658262001720565b602082019050919050565b600060208201905081810360008301526200178b8162001749565b9050919050565b6154d480620017a26000396000f3fe6080604052600436106102765760003560e01c8063702509fd1161014f578063aacebbe3116100c1578063dc4c7dbc1161007a578063dc4c7dbc14610989578063dd62ed3e146109b4578063e2f45605146109f1578063e81ea6a914610a1c578063f2fde38b14610a45578063f9d0831a14610a6e5761027d565b8063aacebbe314610891578063afa4f3b2146108ba578063c0246668146108e3578063c6616ba11461090c578063cc9be3cd14610935578063d2fcc001146109605761027d565b80638da5cb5b116101135780638da5cb5b1461075957806395d89b4114610784578063a457c2d7146107af578063a8a69b9d146107ec578063a9059cbb14610829578063aa4bde28146108665761027d565b8063702509fd1461068657806370a08231146106b1578063715018a6146106ee57806375f0a87414610705578063880bcbc1146107305761027d565b8063313ce567116101e85780634ada218b116101ac5780634ada218b146105745780634fbee1931461059f57806356a6cabf146105dc57806359136fa5146106055780635fc2e596146106305780636ddd17131461065b5761027d565b8063313ce5671461048f57806336a0f8a5146104ba57806339509351146104e357806347f687951461052057806349bd5a5e146105495761027d565b806318d9ceae1161023a57806318d9ceae1461036b57806321a9d82a146103a857806323b872dd146103d35780632a16de21146104105780632a6c7dba1461043b5780632ba86bf2146104645761027d565b80630105d0fd1461028257806306fdde03146102ad578063095ea7b3146102d85780631694505e1461031557806318160ddd146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a97565b6040516102a49190613c01565b60405180910390f35b3480156102b957600080fd5b506102c2610a9d565b6040516102cf9190613cac565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613d5d565b610b2f565b60405161030c9190613db8565b60405180910390f35b34801561032157600080fd5b5061032a610b4d565b6040516103379190613e32565b60405180910390f35b34801561034c57600080fd5b50610355610b73565b6040516103629190613c01565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190613e4d565b610b7d565b60405161039f9190613db8565b60405180910390f35b3480156103b457600080fd5b506103bd610bd3565b6040516103ca9190613db8565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190613e7a565b610be6565b6040516104079190613db8565b60405180910390f35b34801561041c57600080fd5b50610425610d05565b6040516104329190613c01565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190613ef9565b610d0b565b005b34801561047057600080fd5b50610479610e5a565b6040516104869190613db8565b60405180910390f35b34801561049b57600080fd5b506104a4610e6d565b6040516104b19190613f42565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190613f5d565b610e76565b005b3480156104ef57600080fd5b5061050a60048036038101906105059190613d5d565b61111e565b6040516105179190613db8565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190613ef9565b6111ca565b005b34801561055557600080fd5b5061055e6112a1565b60405161056b9190613fbf565b60405180910390f35b34801561058057600080fd5b506105896112c7565b6040516105969190613db8565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613e4d565b6112da565b6040516105d39190613db8565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190613ef9565b611330565b005b34801561061157600080fd5b5061061a61147f565b6040516106279190613c01565b60405180910390f35b34801561063c57600080fd5b50610645611485565b6040516106529190613c01565b60405180910390f35b34801561066757600080fd5b5061067061148b565b60405161067d9190613db8565b60405180910390f35b34801561069257600080fd5b5061069b61149e565b6040516106a89190613c01565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190613e4d565b6114a4565b6040516106e59190613c01565b60405180910390f35b3480156106fa57600080fd5b506107036114ec565b005b34801561071157600080fd5b5061071a611644565b6040516107279190613fbf565b60405180910390f35b34801561073c57600080fd5b5061075760048036038101906107529190613fda565b61166a565b005b34801561076557600080fd5b5061076e61183c565b60405161077b9190613fbf565b60405180910390f35b34801561079057600080fd5b50610799611866565b6040516107a69190613cac565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d19190613d5d565b6118f8565b6040516107e39190613db8565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190613e4d565b6119e3565b6040516108209190613db8565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613d5d565b611a39565b60405161085d9190613db8565b60405180910390f35b34801561087257600080fd5b5061087b611a57565b6040516108889190613c01565b60405180910390f35b34801561089d57600080fd5b506108b860048036038101906108b39190613e4d565b611a5d565b005b3480156108c657600080fd5b506108e160048036038101906108dc919061401a565b611c90565b005b3480156108ef57600080fd5b5061090a60048036038101906109059190613fda565b611d89565b005b34801561091857600080fd5b50610933600480360381019061092e9190614047565b611f5b565b005b34801561094157600080fd5b5061094a612160565b6040516109579190613c01565b60405180910390f35b34801561096c57600080fd5b5061098760048036038101906109829190613fda565b612166565b005b34801561099557600080fd5b5061099e612338565b6040516109ab9190613c01565b60405180910390f35b3480156109c057600080fd5b506109db60048036038101906109d691906140ae565b61233e565b6040516109e89190613c01565b60405180910390f35b3480156109fd57600080fd5b50610a066123c5565b604051610a139190613c01565b60405180910390f35b348015610a2857600080fd5b50610a436004803603810190610a3e9190613ef9565b6123cb565b005b348015610a5157600080fd5b50610a6c6004803603810190610a679190613e4d565b61247f565b005b348015610a7a57600080fd5b50610a956004803603810190610a909190613e4d565b612645565b005b60185481565b606060038054610aac9061411d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad89061411d565b8015610b255780601f10610afa57610100808354040283529160200191610b25565b820191906000526020600020905b815481529060010190602001808311610b0857829003601f168201915b5050505050905090565b6000610b43610b3c6128b4565b84846128bc565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601460009054906101000a900460ff1681565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c326128b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cee5782811015610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd0906141c0565b60405180910390fd5b610ced85610ce56128b4565b8584036128bc565b5b610cf9858585612a85565b60019150509392505050565b600a5481565b610d136128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d999061422c565b60405180910390fd5b601460009054906101000a900460ff16151581151503610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee906142be565b60405180910390fd5b80601460006101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1601460009054906101000a900460ff16604051610e4f9190613db8565b60405180910390a150565b601760009054906101000a900460ff1681565b60006012905090565b610e7e6128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f049061422c565b60405180910390fd5b6103e8610f18610e6d565b600a610f249190614440565b610f2c610b73565b610f3691906144ba565b610f4091906144ba565b8310158015610f8157506103e8610f55610e6d565b600a610f619190614440565b610f69610b73565b610f7391906144ba565b610f7d91906144ba565b8210155b610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb79061455d565b60405180910390fd5b610fc8610e6d565b600a610fd49190614440565b83610fdf919061457d565b601881905550610fed610e6d565b600a610ff99190614440565b82611004919061457d565b6019819055506064611014610e6d565b600a6110209190614440565b611028610b73565b61103291906144ba565b61103c91906144ba565b81101561107e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107590614631565b60405180910390fd5b611086610e6d565b600a6110929190614440565b8161109d919061457d565b6015819055507f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59426015546040516110d49190613c01565b60405180910390a17f8c8cbc911b80df94332ececb8eb0945274d76fa965600a0f01f42af3f8afb131601854601954604051611111929190614651565b60405180910390a1505050565b60006111c061112b6128b4565b8484600160006111396128b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111bb919061467a565b6128bc565b6001905092915050565b6111d26128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112589061422c565b60405180910390fd5b801561129e576001601260026101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055505b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6113386128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be9061422c565b60405180910390fd5b601760009054906101000a900460ff1615158115150361141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390614720565b60405180910390fd5b80601760006101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf601760009054906101000a900460ff166040516114749190613db8565b60405180910390a150565b60195481565b600b5481565b601260019054906101000a900460ff1681565b600f5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114f46128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a9061422c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116726128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f89061422c565b60405180910390fd5b801515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a906147b2565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c10826040516118309190613db8565b60405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546118759061411d565b80601f01602080910402602001604051908101604052809291908181526020018280546118a19061411d565b80156118ee5780601f106118c3576101008083540402835291602001916118ee565b820191906000526020600020905b8154815290600101906020018083116118d157829003601f168201915b5050505050905090565b600080600160006119076128b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb90614844565b60405180910390fd5b6119d86119cf6128b4565b858584036128bc565b600191505092915050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611a4d611a466128b4565b8484612a85565b6001905092915050565b60155481565b611a656128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aeb9061422c565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b906148d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90614968565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611c859190613fbf565b60405180910390a150565b611c986128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e9061422c565b60405180910390fd5b61271081611d33610b73565b611d3d919061457d565b611d4791906144ba565b6011819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145601154604051611d7e9190613c01565b60405180910390a150565b611d916128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e179061422c565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea9906149fa565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f4f9190613db8565b60405180910390a25050565b611f636128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe99061422c565b60405180910390fd5b8360098190555082600b81905550600b54600954612010919061467a565b600d8190555081600a8190555080600c81905550600c54600a54612034919061467a565b600e81905550602d600e54600d5461204c919061467a565b111561208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208490614a8c565b60405180910390fd5b602d600e54600d5461209f919061467a565b11156120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d790614a8c565b60405180910390fd5b7fccd61cb5df2cb048d1a7af40a431d6f247af01b6cf048f7a3f2aa9d313e2bc50600954600b54604051612115929190614651565b60405180910390a17f12dd4f8337f0c236c7994706854cca8cd53921c0032cb0fba8cdb797e73f67c6600a54600c54604051612152929190614651565b60405180910390a150505050565b60095481565b61216e6128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f49061422c565b60405180910390fd5b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361228f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612286906147b2565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c8260405161232c9190613db8565b60405180910390a25050565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b6123d36128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612462576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124599061422c565b60405180910390fd5b80601260016101000a81548160ff02191690831515021790555050565b6124876128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250d9061422c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257c90614b1e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61264d6128b4565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d39061422c565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361274a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274190614bb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127ac576127a7473373ffffffffffffffffffffffffffffffffffffffff1661332690919063ffffffff16565b6128b1565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127ec9190613fbf565b602060405180830381865afa158015612809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282d9190614be5565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161286a929190614c12565b6020604051808303816000875af1158015612889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ad9190614c50565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292290614cef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361299a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299190614d81565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a789190613c01565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb90614e13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5a90614ea5565b60405180910390fd5b601260029054906101000a900460ff1680612bc75750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612c1b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5190614f11565b60405180910390fd5b60008103612c7357612c6e8383600061341a565b613321565b601760009054906101000a900460ff1615612ec957600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612d315750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015612d875750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ddd5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ec857600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e8157601854811115612e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7390614fa3565b60405180910390fd5b612ec7565b601954811115612ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebd90614fa3565b60405180910390fd5b5b5b5b6000612ed4306114a4565b905060006011548210159050808015612efa5750601260009054906101000a900460ff16155b8015612f535750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612f6e57506000600e54600d54612f6c919061467a565b115b8015612f865750601260019054906101000a900460ff165b15612fcd576001601260006101000a81548160ff021916908315150217905550612fb1601154613699565b6000601260006101000a81548160ff0219169083151502179055505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130705750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806130875750601260009054906101000a900460ff165b15613095576000905061315a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036130f457600d549050613159565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361315357600e549050613158565b600090505b5b5b600081111561319a57600060648286613173919061457d565b61317d91906144ba565b9050808561318b9190614fc3565b945061319887308361341a565b505b601460009054906101000a900460ff161561331257601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132535750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132ad5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156133115760006132bd866114a4565b905060155485826132ce919061467a565b111561330f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330690615069565b60405180910390fd5b505b5b61331d86868661341a565b5050505b505050565b80471015613369576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613360906150d5565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161338f90615126565b60006040518083038185875af1925050503d80600081146133cc576040519150601f19603f3d011682016040523d82523d6000602084013e6133d1565b606091505b5050905080613415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340c906151ad565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348090614e13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036134f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ef90614ea5565b60405180910390fd5b613503838383613bde565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135809061523f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461361c919061467a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136809190613c01565b60405180910390a3613693848484613be3565b50505050565b60004790506000600267ffffffffffffffff8111156136bb576136ba61525f565b5b6040519080825280602002602001820160405280156136e95781602001602082028036833780820191505090505b50905030816000815181106137015761370061528e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137cc91906152d2565b816001815181106137e0576137df61528e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040161387e9594939291906153f8565b600060405180830381600087803b15801561389857600080fd5b505af11580156138ac573d6000803e3d6000fd5b50505050600082476138be9190614fc3565b90506000600e54600d546138d2919061467a565b600c54600b546138e2919061467a565b836138ed919061457d565b6138f791906144ba565b9050600081836139079190614fc3565b9050600082111561395e5761395d82601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661332690919063ffffffff16565b5b6000811115613b9d576000600267ffffffffffffffff8111156139845761398361525f565b5b6040519080825280602002602001820160405280156139b25781602001602082028036833780820191505090505b509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4691906152d2565b81600081518110613a5a57613a5961528e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050736982508145454ce325ddbe47a25d4ec3d231193381600181518110613abd57613abc61528e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead61012c42613b4a919061467a565b6040518663ffffffff1660e01b8152600401613b699493929190615452565b6000604051808303818588803b158015613b8257600080fd5b505af1158015613b96573d6000803e3d6000fd5b5050505050505b7f94b0d5a5b2879507b25bbfd8a3bfed636aeb5ef2386d2c5368585e22e60d3d188684604051613bce929190614651565b60405180910390a1505050505050565b505050565b505050565b6000819050919050565b613bfb81613be8565b82525050565b6000602082019050613c166000830184613bf2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c56578082015181840152602081019050613c3b565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c7e82613c1c565b613c888185613c27565b9350613c98818560208601613c38565b613ca181613c62565b840191505092915050565b60006020820190508181036000830152613cc68184613c73565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613cfe82613cd3565b9050919050565b613d0e81613cf3565b8114613d1957600080fd5b50565b600081359050613d2b81613d05565b92915050565b613d3a81613be8565b8114613d4557600080fd5b50565b600081359050613d5781613d31565b92915050565b60008060408385031215613d7457613d73613cce565b5b6000613d8285828601613d1c565b9250506020613d9385828601613d48565b9150509250929050565b60008115159050919050565b613db281613d9d565b82525050565b6000602082019050613dcd6000830184613da9565b92915050565b6000819050919050565b6000613df8613df3613dee84613cd3565b613dd3565b613cd3565b9050919050565b6000613e0a82613ddd565b9050919050565b6000613e1c82613dff565b9050919050565b613e2c81613e11565b82525050565b6000602082019050613e476000830184613e23565b92915050565b600060208284031215613e6357613e62613cce565b5b6000613e7184828501613d1c565b91505092915050565b600080600060608486031215613e9357613e92613cce565b5b6000613ea186828701613d1c565b9350506020613eb286828701613d1c565b9250506040613ec386828701613d48565b9150509250925092565b613ed681613d9d565b8114613ee157600080fd5b50565b600081359050613ef381613ecd565b92915050565b600060208284031215613f0f57613f0e613cce565b5b6000613f1d84828501613ee4565b91505092915050565b600060ff82169050919050565b613f3c81613f26565b82525050565b6000602082019050613f576000830184613f33565b92915050565b600080600060608486031215613f7657613f75613cce565b5b6000613f8486828701613d48565b9350506020613f9586828701613d48565b9250506040613fa686828701613d48565b9150509250925092565b613fb981613cf3565b82525050565b6000602082019050613fd46000830184613fb0565b92915050565b60008060408385031215613ff157613ff0613cce565b5b6000613fff85828601613d1c565b925050602061401085828601613ee4565b9150509250929050565b6000602082840312156140305761402f613cce565b5b600061403e84828501613d48565b91505092915050565b6000806000806080858703121561406157614060613cce565b5b600061406f87828801613d48565b945050602061408087828801613d48565b935050604061409187828801613d48565b92505060606140a287828801613d48565b91505092959194509250565b600080604083850312156140c5576140c4613cce565b5b60006140d385828601613d1c565b92505060206140e485828601613d1c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061413557607f821691505b602082108103614148576141476140ee565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006141aa602883613c27565b91506141b58261414e565b604082019050919050565b600060208201905081810360008301526141d98161419d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614216602083613c27565b9150614221826141e0565b602082019050919050565b6000602082019050818103600083015261424581614209565b9050919050565b7f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060008201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b60006142a8602d83613c27565b91506142b38261424c565b604082019050919050565b600060208201905081810360008301526142d78161429b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614364578086048111156143405761433f6142de565b5b600185161561434f5780820291505b808102905061435d8561430d565b9450614324565b94509492505050565b60008261437d5760019050614439565b8161438b5760009050614439565b81600181146143a157600281146143ab576143da565b6001915050614439565b60ff8411156143bd576143bc6142de565b5b8360020a9150848211156143d4576143d36142de565b5b50614439565b5060208310610133831016604e8410600b841016171561440f5782820a90508381111561440a576144096142de565b5b614439565b61441c848484600161431a565b92509050818404811115614433576144326142de565b5b81810290505b9392505050565b600061444b82613be8565b915061445683613f26565b92506144837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461436d565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144c582613be8565b91506144d083613be8565b9250826144e0576144df61448b565b5b828204905092915050565b7f4d6178205472616e73616374696f6e206c696d69732063616e6e6f742062652060008201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b6000614547603f83613c27565b9150614552826144eb565b604082019050919050565b600060208201905081810360008301526145768161453a565b9050919050565b600061458882613be8565b915061459383613be8565b92508282026145a181613be8565b915082820484148315176145b8576145b76142de565b5b5092915050565b7f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b600061461b602d83613c27565b9150614626826145bf565b604082019050919050565b6000602082019050818103600083015261464a8161460e565b9050919050565b60006040820190506146666000830185613bf2565b6146736020830184613bf2565b9392505050565b600061468582613be8565b915061469083613be8565b92508282019050808211156146a8576146a76142de565b5b92915050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c726561647960008201527f2073657420746f20746861742073746174650000000000000000000000000000602082015250565b600061470a603283613c27565b9150614715826146ae565b604082019050919050565b60006020820190508181036000830152614739816146fd565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b600061479c602483613c27565b91506147a782614740565b604082019050919050565b600060208201905081810360008301526147cb8161478f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061482e602583613c27565b9150614839826147d2565b604082019050919050565b6000602082019050818103600083015261485d81614821565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006148c0602883613c27565b91506148cb82614864565b604082019050919050565b600060208201905081810360008301526148ef816148b3565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000614952602b83613c27565b915061495d826148f6565b604082019050919050565b6000602082019050818103600083015261498181614945565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006149e4602a83613c27565b91506149ef82614988565b604082019050919050565b60006020820190508181036000830152614a13816149d7565b9050919050565b7f546f74616c20466565732063616e6e6f742065786365656420746865206d617860008201527f696d756d00000000000000000000000000000000000000000000000000000000602082015250565b6000614a76602483613c27565b9150614a8182614a1a565b604082019050919050565b60006020820190508181036000830152614aa581614a69565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b08602683613c27565b9150614b1382614aac565b604082019050919050565b60006020820190508181036000830152614b3781614afb565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b6000614b9a603783613c27565b9150614ba582614b3e565b604082019050919050565b60006020820190508181036000830152614bc981614b8d565b9050919050565b600081519050614bdf81613d31565b92915050565b600060208284031215614bfb57614bfa613cce565b5b6000614c0984828501614bd0565b91505092915050565b6000604082019050614c276000830185613fb0565b614c346020830184613bf2565b9392505050565b600081519050614c4a81613ecd565b92915050565b600060208284031215614c6657614c65613cce565b5b6000614c7484828501614c3b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614cd9602483613c27565b9150614ce482614c7d565b604082019050919050565b60006020820190508181036000830152614d0881614ccc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d6b602283613c27565b9150614d7682614d0f565b604082019050919050565b60006020820190508181036000830152614d9a81614d5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614dfd602583613c27565b9150614e0882614da1565b604082019050919050565b60006020820190508181036000830152614e2c81614df0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614e8f602383613c27565b9150614e9a82614e33565b604082019050919050565b60006020820190508181036000830152614ebe81614e82565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000614efb601883613c27565b9150614f0682614ec5565b602082019050919050565b60006020820190508181036000830152614f2a81614eee565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000602082015250565b6000614f8d603b83613c27565b9150614f9882614f31565b604082019050919050565b60006020820190508181036000830152614fbc81614f80565b9050919050565b6000614fce82613be8565b9150614fd983613be8565b9250828203905081811115614ff157614ff06142de565b5b92915050565b7f4d617857616c6c65743a20526563697069656e7420657863656564732074686560008201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b6000615053603083613c27565b915061505e82614ff7565b604082019050919050565b6000602082019050818103600083015261508281615046565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006150bf601d83613c27565b91506150ca82615089565b602082019050919050565b600060208201905081810360008301526150ee816150b2565b9050919050565b600081905092915050565b50565b60006151106000836150f5565b915061511b82615100565b600082019050919050565b600061513182615103565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000615197603a83613c27565b91506151a28261513b565b604082019050919050565b600060208201905081810360008301526151c68161518a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615229602683613c27565b9150615234826151cd565b604082019050919050565b600060208201905081810360008301526152588161521c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506152cc81613d05565b92915050565b6000602082840312156152e8576152e7613cce565b5b60006152f6848285016152bd565b91505092915050565b6000819050919050565b600061532461531f61531a846152ff565b613dd3565b613be8565b9050919050565b61533481615309565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61536f81613cf3565b82525050565b60006153818383615366565b60208301905092915050565b6000602082019050919050565b60006153a58261533a565b6153af8185615345565b93506153ba83615356565b8060005b838110156153eb5781516153d28882615375565b97506153dd8361538d565b9250506001810190506153be565b5085935050505092915050565b600060a08201905061540d6000830188613bf2565b61541a602083018761532b565b818103604083015261542c818661539a565b905061543b6060830185613fb0565b6154486080830184613bf2565b9695505050505050565b6000608082019050615467600083018761532b565b8181036020830152615479818661539a565b90506154886040830185613fb0565b6154956060830184613bf2565b9594505050505056fea26469706673582212201a0134b98157214382e28eb2039b57bb61689fc8abaa7e31e1d3fc2286e254ef64736f6c63430008110033