60e0604052600080553480156200001557600080fd5b50604051620036ba380380620036ba833981016040819052620000389162000191565b806040518060400160405280601881526020017f5641524941424c455f444542545f544f4b454e5f494d504c00000000000000008152506040518060400160405280601881526020017f5641524941424c455f444542545f544f4b454e5f494d504c0000000000000000815250600083838383838383834660808181525050836001600160a01b0316630542975c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011c919062000191565b6001600160a01b031660a05260466200013684826200025d565b5060476200014583826200025d565b506048805460ff191660ff9290921691909117905550506001600160a01b031660c0525062000329975050505050505050565b6001600160a01b03811681146200018e57600080fd5b50565b600060208284031215620001a457600080fd5b8151620001b18162000178565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001e357607f821691505b6020821081036200020457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200025857600081815260208120601f850160051c81016020861015620002335750805b601f850160051c820191505b8181101562000254578281556001016200023f565b5050505b505050565b81516001600160401b03811115620002795762000279620001b8565b62000291816200028a8454620001ce565b846200020a565b602080601f831160018114620002c95760008415620002b05750858301515b600019600386901b1c1916600185901b17855562000254565b600085815260208120601f198616915b82811015620002fa57888601518255948401946001909101908401620002d9565b5085821015620003195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05161333362000387600039600081816104e001528181610ced01528181610f3a0152818161109b015281816111e6015281816112e1015281816113b901526114cf0152600050506000610e6801526133336000f3fe608060405234801561001057600080fd5b50600436106102de5760003560e01c80637fdd585f11610186578063b3f1c93d116100e3578063dd62ed3e11610097578063f5298aca11610071578063f5298aca1461073a578063f77c47911461074d578063ff7291df1461076d57600080fd5b8063dd62ed3e146106a9578063e0753986146106b7578063f3bfc7381461071357600080fd5b8063c04a8a10116100c8578063c04a8a101461066d578063c8562f7214610680578063caa0b9ed1461068957600080fd5b8063b3f1c93d1461063b578063b9a7b6221461066557600080fd5b8063a457c2d71161013a578063b16a19de1161011f578063b16a19de146105f5578063b1bd608614610613578063b1bf962d1461063357600080fd5b8063a457c2d714610301578063a9059cbb1461030157600080fd5b8063958da8de1161016b578063958da8de146105ba57806395d89b41146105da5780639c46665c146105e257600080fd5b80637fdd585f146105945780637ff33dd9146105a757600080fd5b8063313ce5671161023f5780636bd76d24116101f35780637699b4cd116101cd5780637699b4cd1461050257806378160376146105225780637ecebe001461055e57600080fd5b80636bd76d241461048257806370a08231146104c85780637535d246146104db57600080fd5b8063395093511161022457806339509351146103015780634f2bfe5b1461045a57806366be23221461047a57600080fd5b8063313ce5671461043d5780633644e5151461045257600080fd5b806313715da8116102965780631da24f3e1161027b5780631da24f3e146104095780631fbae8401461041c57806323b872dd1461042f57600080fd5b806313715da8146103e057806318160ddd146103f357600080fd5b80630afbcdc9116102c75780630afbcdc9146103245780630b52d5581461038657806310c282b81461039b57600080fd5b806306fdde03146102e3578063095ea7b314610301575b600080fd5b6102eb61078d565b6040516102f89190612a9d565b60405180910390f35b61031461030f366004612ad2565b61081f565b60405190151581526020016102f8565b610371610332366004612afe565b73ffffffffffffffffffffffffffffffffffffffff166000908152604360205260409020546045546fffffffffffffffffffffffffffffffff90911691565b604080519283526020830191909152016102f8565b610399610394366004612b31565b61088f565b005b6038546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102f8565b6103996103ee366004612b9f565b610be0565b6103fb610c9e565b6040519081526020016102f8565b6103fb610417366004612afe565b610d68565b61039961042a366004612afe565b610da7565b61031461030f366004612c07565b60485460405160ff90911681526020016102f8565b6103fb610e64565b603a546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b6103fb610e9c565b6103fb610490366004612c48565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260366020908152604080832093909416825291909152205490565b6103fb6104d6366004612afe565b610ea6565b6103bb7f000000000000000000000000000000000000000000000000000000000000000081565b6103fb610510366004612afe565b603f6020526000908152604090205481565b6102eb6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b6103fb61056c366004612afe565b73ffffffffffffffffffffffffffffffffffffffff1660009081526034602052604090205490565b6103996105a2366004612d5b565b610fb3565b6103996105b5366004612afe565b6112aa565b6103fb6105c8366004612afe565b603c6020526000908152604090205481565b6102eb611358565b6103fb6105f0366004612afe565b611367565b60375473ffffffffffffffffffffffffffffffffffffffff166103bb565b6103fb610621366004612afe565b603e6020526000908152604090205481565b6103fb611372565b61064e610649366004612e4d565b61137d565b6040805192151583526020830191909152016102f8565b6103fb600181565b61039961067b366004612ad2565b611486565b6103fb603d5481565b6103fb610697366004612afe565b60406020819052600091825290205481565b6103fb61030f366004612c48565b6103fb6106c5366004612afe565b73ffffffffffffffffffffffffffffffffffffffff1660009081526043602052604090205470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690565b6103fb7f323db0410fecc107e39e2af5908671f4c8d106123b35a51501bb805c5fa36aa081565b6103fb610748366004612e93565b611495565b6039546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b6103fb61077b366004612ec8565b603b6020526000908152604090205481565b60606046805461079c90612ee1565b80601f01602080910402602001604051908101604052809291908181526020018280546107c890612ee1565b80156108155780601f106107ea57610100808354040283529160200191610815565b820191906000526020600020905b8154815290600101906020018083116107f857829003601f168201915b5050505050905090565b604080518082018252600281527f3830000000000000000000000000000000000000000000000000000000000000602082015290517f08c379a000000000000000000000000000000000000000000000000000000000815260009161088691600401612a9d565b60405180910390fd5b60408051808201909152600281527f3737000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8816610911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b50834211156040518060400160405280600281526020017f373800000000000000000000000000000000000000000000000000000000000081525090610984576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260346020526040812054906109b4610e64565b604080517f323db0410fecc107e39e2af5908671f4c8d106123b35a51501bb805c5fa36aa0602082015273ffffffffffffffffffffffffffffffffffffffff8b1691810191909152606081018990526080810184905260a0810188905260c00160405160208183030381529060405280519060200120604051602001610a6c9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa158015610af2573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f373900000000000000000000000000000000000000000000000000000000000081525090610b98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b50610ba4826001612f63565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260346020526040902055610bd589898961155a565b505050505050505050565b60385473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f393400000000000000000000000000000000000000000000000000000000000081525090610c7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b50610c998383610c9436859003850185612f76565b6115d1565b505050565b6037546040517f386497fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152600091610d63917f00000000000000000000000000000000000000000000000000000000000000009091169063386497fd90602401602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a9190612fe6565b604554906119e4565b905090565b73ffffffffffffffffffffffffffffffffffffffff81166000908152604360205260408120546fffffffffffffffffffffffffffffffff165b92915050565b60385473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f393400000000000000000000000000000000000000000000000000000000000081525090610e46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b50610e6181610e5483611367565b610e5c610e9c565b611a3b565b50565b60007f00000000000000000000000000000000000000000000000000000000000000004603610e94575060355490565b610d63611cac565b6000610d63610c9e565b73ffffffffffffffffffffffffffffffffffffffff81166000908152604360205260408120546fffffffffffffffffffffffffffffffff16808203610eee5750600092915050565b6037546040517f386497fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610fac917f0000000000000000000000000000000000000000000000000000000000000000169063386497fd90602401602060405180830381865afa158015610f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa59190612fe6565b82906119e4565b9392505050565b6001805460ff1680610fc45750303b155b80610fd0575060005481115b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a65640000000000000000000000000000000000006064820152608401610886565b60015460ff1615801561109957600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168117905560008290555b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f383700000000000000000000000000000000000000000000000000000000000081525090611156576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b5061116086611d71565b61116985611d7d565b604880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8916179055603780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a161790556111de611cac565b6035819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f5d8ce3e947367e84e7fa4f4ba36ebe75e6b6c6b93c25673faa4df0202b59c1388989898989604051611269959493929190612fff565b60405180910390a38015610bd557600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050505050565b60408051808201909152600281527f32330000000000000000000000000000000000000000000000000000000000006020820152337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b50610e6181611d89565b60606047805461079c90612ee1565b6000610da182610ea6565b6000610d6360455490565b60408051808201909152600281527f323300000000000000000000000000000000000000000000000000000000000060208201526000908190337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146114655761146585878661200b565b611471868686866120cb565b611479611372565b9150915094509492505050565b61149133838361155a565b5050565b60408051808201909152600281527f32330000000000000000000000000000000000000000000000000000000000006020820152600090337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461153c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b5061154a846000858561230c565b611552611372565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526036602090815260408083208786168085529083529281902086905560375490518681529416939192917fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1910160405180910390a4505050565b806020015142111561190e57603d546020820151600061163d6115f8620151806007613082565b611606620151806007613082565b611614620151806007613082565b87602001516116239190612f63565b61162d9190613099565b6116379190613082565b42612629565b905060005b6101f481101561190957600061165884846130d4565b9050600061166a620151806007613082565b611678620151806007613082565b6116829087613099565b61168c9190613082565b6000818152603b6020526040812054919250819003611756576039546038546040517f65c6046800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018590529116906365c6046890604401602060405180830381865afa15801561171e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117429190612fe6565b6000838152603b6020526040902081905590505b86156118c257858860800151101580156117735750848860800151105b15611863576b033b2e3c9fd0803ce800000087878a6080015161179691906130d4565b8b848c604001516117a79190613082565b6117b19190613082565b6117bb9190613082565b6117c59190613099565b6117cf9190613099565b604260008282546117e09190612f63565b90915550506060880151604089015260808801516b033b2e3c9fd0803ce800000090889061180e90886130d4565b8b848c6040015161181f9190613082565b6118299190613082565b6118339190613082565b61183d9190613099565b6118479190613099565b604260008282546118589190612f63565b909155506118c29050565b6b033b2e3c9fd0803ce800000087848b848c604001516118839190613082565b61188d9190613082565b6118979190613082565b6118a19190613099565b6118ab9190613099565b604260008282546118bc9190612f63565b90915550505b4285036118d157505050611909565b8495506118f16201518060076118e79190613082565b6116379087612f63565b94505050508080611901906130e7565b915050611642565b505050505b73ffffffffffffffffffffffffffffffffffffffff83166000908152603c6020908152604080832054603e90925290912054604254670de0b6b3a764000091611956916130d4565b6119609083613082565b61196a9190613099565b73ffffffffffffffffffffffffffffffffffffffff85166000908152604060208190528120805490919061199f908490612f63565b909155505060425473ffffffffffffffffffffffffffffffffffffffff9094166000908152603e6020908152604080832096909655603f905293909320429055505050565b600081157ffffffffffffffffffffffffffffffffffffffffffe6268e1b017bfe18bffffff83900484111517611a1957600080fd5b506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b603a546040517f3037408d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301524260248301526000921690633037408d90604401602060405180830381865afa158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190612fe6565b603a546040517fd2dcd93300000000000000000000000000000000000000000000000000000000815242600482015291925060009173ffffffffffffffffffffffffffffffffffffffff9091169063d2dcd93390602401602060405180830381865afa158015611b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6e9190612fe6565b905060006064611b7f602887613082565b611b899190613099565b90508115611bd457606482611b9f6028836130d4565b611ba98688613082565b611bb39190613082565b611bbd9190613099565b611bc79190613099565b611bd19082612f63565b90505b611bde8582612629565b73ffffffffffffffffffffffffffffffffffffffff87166000908152603c60205260408120805490839055603d54929350918290611c1d908590612f63565b611c2791906130d4565b603d8190556040805173ffffffffffffffffffffffffffffffffffffffff8b168152602081018a9052908101889052606081018590526080810182905260a0810187905260c081018690529091507f47211fe8b1eecabef1c013b28eb9caa892fd6bf2d3f1f5111d08cc115de841659060e00160405180910390a15050505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611cd761263f565b8051602091820120604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000090840152805192830193909352918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6046611491828261316d565b6047611491828261316d565b60415460ff1615611e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610886565b604180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556038805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155604080517ff77c4791000000000000000000000000000000000000000000000000000000008152905163f77c4791916004808201926020929091908290030181865afa158015611edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f039190613287565b603980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055603854604080517f4f2bfe5b00000000000000000000000000000000000000000000000000000000815290519190921691634f2bfe5b9160048083019260209291908290030181865afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc39190613287565b603a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff808416600090815260366020908152604080832093861683529290529081205461204b9083906130d4565b73ffffffffffffffffffffffffffffffffffffffff808616600081815260366020908152604080832089861680855292529182902085905560375491519495509216927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1906120bd9086815260200190565b60405180910390a450505050565b6000806120d88484612649565b60408051808201909152600281527f3234000000000000000000000000000000000000000000000000000000000000602082015290915081612147576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b5073ffffffffffffffffffffffffffffffffffffffff85166000908152604360205260408120546fffffffffffffffffffffffffffffffff80821692916121a49184917001000000000000000000000000000000009004166119e4565b6121ae83876119e4565b6121b891906130d4565b90506121c385612688565b73ffffffffffffffffffffffffffffffffffffffff8816600090815260436020526040902080546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561222b8761222685612688565b61272e565b60006122378288612f63565b90508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161229991815260200190565b60405180910390a3604080518281526020810184905290810187905273ffffffffffffffffffffffffffffffffffffffff808a1691908b16907f458f5fa412d0f69b08dd84872b0215675cc67bc1d5b6fd93300a1c3878b861969060600160405180910390a35050159695505050505050565b60006123188383612649565b60408051808201909152600281527f3235000000000000000000000000000000000000000000000000000000000000602082015290915081612387576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869190612a9d565b5073ffffffffffffffffffffffffffffffffffffffff85166000908152604360205260408120546fffffffffffffffffffffffffffffffff80821692916123e49184917001000000000000000000000000000000009004166119e4565b6123ee83866119e4565b6123f891906130d4565b905061240384612688565b73ffffffffffffffffffffffffffffffffffffffff8816600090815260436020526040902080546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561246b8761246685612688565b612931565b8481111561254a57600061247f86836130d4565b90508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e191815260200190565b60405180910390a3604080518281526020810184905290810186905273ffffffffffffffffffffffffffffffffffffffff89169081907f458f5fa412d0f69b08dd84872b0215675cc67bc1d5b6fd93300a1c3878b861969060600160405180910390a350612620565b600061255682876130d4565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125b891815260200190565b60405180910390a3604080518281526020810184905290810186905273ffffffffffffffffffffffffffffffffffffffff80891691908a16907f4cf25bc1d991c17529c25213d3cc0cda295eeaad5f13f361969b12ea48015f909060600160405180910390a3505b50505050505050565b60008183106126385781610fac565b5090919050565b6060610d6361078d565b600081156b033b2e3c9fd0803ce80000006002840419048411171561266d57600080fd5b506b033b2e3c9fd0803ce80000009190910260028204010490565b60006fffffffffffffffffffffffffffffffff82111561272a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610886565b5090565b60385473ffffffffffffffffffffffffffffffffffffffff16156127d2576038546040517f91451a4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152909116906391451a4990602401600060405180830381600087803b1580156127b957600080fd5b505af11580156127cd573d6000803e3d6000fd5b505050505b6045546127f16fffffffffffffffffffffffffffffffff831682612f63565b60455573ffffffffffffffffffffffffffffffffffffffff83166000908152604360205260409020546fffffffffffffffffffffffffffffffff1661283683826132a4565b73ffffffffffffffffffffffffffffffffffffffff858116600090815260436020526040902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9390931692909217909155603854161561292b576038546040517f8d56107e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015290911690638d56107e90602401600060405180830381600087803b15801561291257600080fd5b505af1158015612926573d6000803e3d6000fd5b505050505b50505050565b60385473ffffffffffffffffffffffffffffffffffffffff16156129d5576038546040517f91451a4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152909116906391451a4990602401600060405180830381600087803b1580156129bc57600080fd5b505af11580156129d0573d6000803e3d6000fd5b505050505b6045546129f46fffffffffffffffffffffffffffffffff8316826130d4565b60455573ffffffffffffffffffffffffffffffffffffffff83166000908152604360205260409020546fffffffffffffffffffffffffffffffff1661283683826132d4565b6000815180845260005b81811015612a5f57602081850181015186830182015201612a43565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610fac6020830184612a39565b73ffffffffffffffffffffffffffffffffffffffff81168114610e6157600080fd5b60008060408385031215612ae557600080fd5b8235612af081612ab0565b946020939093013593505050565b600060208284031215612b1057600080fd5b8135610fac81612ab0565b803560ff81168114612b2c57600080fd5b919050565b600080600080600080600060e0888a031215612b4c57600080fd5b8735612b5781612ab0565b96506020880135612b6781612ab0565b95506040880135945060608801359350612b8360808901612b1b565b925060a0880135915060c0880135905092959891949750929550565b600080600083850360e0811215612bb557600080fd5b8435612bc081612ab0565b93506020850135925060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215612bf957600080fd5b506040840190509250925092565b600080600060608486031215612c1c57600080fd5b8335612c2781612ab0565b92506020840135612c3781612ab0565b929592945050506040919091013590565b60008060408385031215612c5b57600080fd5b8235612c6681612ab0565b91506020830135612c7681612ab0565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612cc157600080fd5b813567ffffffffffffffff80821115612cdc57612cdc612c81565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612d2257612d22612c81565b81604052838152866020858801011115612d3b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600060c0888a031215612d7657600080fd5b8735612d8181612ab0565b96506020880135612d9181612ab0565b9550612d9f60408901612b1b565b9450606088013567ffffffffffffffff80821115612dbc57600080fd5b612dc88b838c01612cb0565b955060808a0135915080821115612dde57600080fd5b612dea8b838c01612cb0565b945060a08a0135915080821115612e0057600080fd5b818a0191508a601f830112612e1457600080fd5b813581811115612e2357600080fd5b8b6020828501011115612e3557600080fd5b60208301945080935050505092959891949750929550565b60008060008060808587031215612e6357600080fd5b8435612e6e81612ab0565b93506020850135612e7e81612ab0565b93969395505050506040820135916060013590565b600080600060608486031215612ea857600080fd5b8335612eb381612ab0565b95602085013595506040909401359392505050565b600060208284031215612eda57600080fd5b5035919050565b600181811c90821680612ef557607f821691505b602082108103612f2e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610da157610da1612f34565b600060a08284031215612f8857600080fd5b60405160a0810181811067ffffffffffffffff82111715612fab57612fab612c81565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b600060208284031215612ff857600080fd5b5051919050565b60ff8616815260806020820152600061301b6080830187612a39565b828103604084015261302d8187612a39565b905082810360608401528381528385602083013760006020858301015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168201019150509695505050505050565b8082028115828204841417610da157610da1612f34565b6000826130cf577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b81810381811115610da157610da1612f34565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361311857613118612f34565b5060010190565b601f821115610c9957600081815260208120601f850160051c810160208610156131465750805b601f850160051c820191505b8181101561316557828155600101613152565b505050505050565b815167ffffffffffffffff81111561318757613187612c81565b61319b816131958454612ee1565b8461311f565b602080601f8311600181146131ee57600084156131b85750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613165565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561323b5788860151825594840194600190910190840161321c565b508582101561327757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561329957600080fd5b8151610fac81612ab0565b6fffffffffffffffffffffffffffffffff8181168382160190808211156132cd576132cd612f34565b5092915050565b6fffffffffffffffffffffffffffffffff8281168282160390808211156132cd576132cd612f3456fea26469706673582212200c9e27c48a03ada5e3c8532c608c20d2e4075222f5e4babec7895e4f847e071e64736f6c6343000811003300000000000000000000000029a7abd56aab38feb4caf1852bb9a4aaebd10b8d