0x60a060405230608052348015601357600080fd5b506080516134fa61003d60003960008181610b9501528181610bbe0152610dda01526134fa6000f3fe6080604052600436106100e85760003560e01c80638500fc871161008a578063d77cc0bf11610059578063d77cc0bf146102fc578063e4da6f2e1461031c578063ece696921461034a578063f2fde38b1461036057600080fd5b80638500fc871461021c5780638da5cb5b1461023c578063ad3cb1cc14610286578063b0cddf03146102dc57600080fd5b80634f1ef286116100c65780634f1ef286146101bc57806352d1902d146101cf578063715018a6146101f25780638129fc1c1461020757600080fd5b80630fea3806146100ed57806343ae962b1461015a578063463f99d61461017c575b600080fd5b3480156100f957600080fd5b50610130610108366004611f70565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561016657600080fd5b5061017a610175366004611f8b565b610380565b005b34801561018857600080fd5b506101ac610197366004611f70565b60026020526000908152604090205460ff1681565b6040519015158152602001610151565b61017a6101ca36600461217e565b61038d565b3480156101db57600080fd5b506101e46103ac565b604051908152602001610151565b3480156101fe57600080fd5b5061017a6103db565b34801561021357600080fd5b5061017a6103ef565b34801561022857600080fd5b5061017a6102373660046121ce565b61057b565b34801561024857600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff16610130565b34801561029257600080fd5b506102cf6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101519190612273565b3480156102e857600080fd5b5061017a6102f736600461231d565b6105fa565b34801561030857600080fd5b5061017a6103173660046123d3565b610739565b34801561032857600080fd5b5061033c61033736600461245e565b6107e5565b6040516101519291906124d6565b34801561035657600080fd5b506101e460015481565b34801561036c57600080fd5b5061017a61037b3660046124f9565b610a8b565b610388610aef565b600155565b610395610b7d565b61039e82610c81565b6103a88282610c89565b5050565b60006103b6610dc2565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103e3610aef565b6103ed6000610e31565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561043a5750825b905060008267ffffffffffffffff1660011480156104575750303b155b905081158015610465575080155b1561049c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104fd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61050633610ec7565b61050e610ed8565b600260015583156105745784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610583610aef565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b610602610aef565b8051825114610672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964206c656e67746800000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b82518110156107345781818151811061069057610690612516565b60200260200101516000808584815181106106ad576106ad612516565b6020908102919091018101517fffffffff0000000000000000000000000000000000000000000000000000000016825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600101610675565b505050565b610741610aef565b60005b828110156107df57816002600086868581811061076357610763612516565b90506020020160208101906107789190611f70565b7fffffffff00000000000000000000000000000000000000000000000000000000168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610744565b50505050565b60006060816107f76004828789612545565b6108009161256f565b9050366000610812876004818b612545565b90925090507f1de02f17000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084160161094557600061086e8284018461274a565b90506108978160600151826040015189610892856060015161012001516020610ee0565b610eec565b604084015260608301529550856108c7576000604051806020016040528060008152509550955050505050610a83565b600184826040516024016108db91906129bd565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509550955050505050610a83565b7f750fcc05000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000841601610a6957600080808061099f85870187612a61565b93509350935093506109b483838c6001610eec565b919a5093509150886109e2576000604051806020016040528060008152509850985050505050505050610a83565b600187858585856040516024016109fc9493929190612afc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509850985050505050505050610a83565b600060405180602001604052806000815250945094505050505b935093915050565b610a93610aef565b73ffffffffffffffffffffffffffffffffffffffff8116610ae3576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610669565b610aec81610e31565b50565b33610b2e7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146103ed576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610669565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610c4a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614155b156103ed576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aec610aef565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d0e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610d0b91810190612b5c565b60015b610d5c576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610669565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610db8576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610669565b6107348383611040565b3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103ed576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610ecf6110a3565b610aec8161110a565b6103ed6110a3565b81811615155b92915050565b6000610f8d604051806101600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001606081525090565b60e0860151606090858103610fac576001888893509350935050611036565b8415610ff657610fbd878288611112565b909450915083610fe0575050604080516020810190915260008082529250611036565b83610fec898389611202565b9350935050611036565b6110018782886113c7565b909450915083611024575050604080516020810190915260008082529250611036565b83611030898389611202565b93509350505b9450945094915050565b61104982611aa6565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561109b576107348282611b75565b6103a8611bf8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103ed576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a936110a3565b6000606060008580602001905181019061112c9190612d0c565b80515190915060005b8181101561119a5786868460200151838151811061115557611155612516565b60200260200101516111679190612e0f565b6111719190612e26565b8360200151828151811061118757611187612516565b6020908102919091010152600101611135565b506111aa82608001518787611c30565b60808401529350836111d357600060405180602001604052806000815250935093505050610a83565b83826040516020016111e59190612e61565b604051602081830303815290604052935093505050935093915050565b6112a1604051806101600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001606081525090565b82828561010001516112b39190612e0f565b6112bd9190612e26565b61010085018190526000036112d55760016101008501525b60e0840182905260608401515160005b8181101561134a5784848760600151838151811061130557611305612516565b60200260200101516113179190612e0f565b6113219190612e26565b8660600151828151811061133757611337612516565b60209081029190910101526001016112e5565b505060a08401515160005b818110156113ba5784848760a00151838151811061137557611375612516565b60200260200101516113879190612e0f565b6113919190612e26565b8660a0015182815181106113a7576113a7612516565b6020908102919091010152600101611355565b50849150505b9392505050565b600060606000858060200190518101906113e191906130c3565b90506113f28160a001518686611c30565b60a0830152925061144b604080516101208101909152606060e0820190815260006101008301528190815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81515160c082015285851060608201526000805b8260c0015181101561174857835180518290811061147f5761147f612516565b602002602001015160008151811061149957611499612516565b6020908102919091018101518085528101517fffffffff0000000000000000000000000000000000000000000000000000000016848201819052600090815290819052604090205473ffffffffffffffffffffffffffffffffffffffff1660808401526060830151806115505750826060015115801561155057506020808401517fffffffff000000000000000000000000000000000000000000000000000000001660009081526002909152604090205460ff16155b158015604085018190529061157e5750608083015173ffffffffffffffffffffffffffffffffffffffff1615155b1561173957600080846080015173ffffffffffffffffffffffffffffffffffffffff1685602001518660000151600001516000806040516020016115c493929190613191565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052611602916000906024016131be565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161168b91906131e3565b600060405180830381855afa9150503d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b5091509150816116f65760006040518060200160405280600081525097509750505050505050610a83565b8080602001905181019061170a91906131ff565b80602001905181019061171d9190612b5c565b8560a00181815161172e9190613234565b905250611740915050565b8160010191505b60010161145f565b508160c0015181036117725760006040518060200160405280600081525094509450505050610a83565b60a08201516117819088613247565b86116117a55760006040518060200160405280600081525094509450505050610a83565b60a0820151860187900360005b8360c00151811015611a735784518051829081106117d2576117d2612516565b60200260200101516000815181106117ec576117ec612516565b6020908102919091018101518086528101517fffffffff0000000000000000000000000000000000000000000000000000000016858201819052600090815290819052604090205473ffffffffffffffffffffffffffffffffffffffff1660808501526060840151806118a3575083606001511580156118a357506020808501517fffffffff000000000000000000000000000000000000000000000000000000001660009081526002909152604090205460ff16155b15801560408601819052906118d15750608084015173ffffffffffffffffffffffffffffffffffffffff1615155b15611a6b57600080856080015173ffffffffffffffffffffffffffffffffffffffff168660000151602001518760000151600001518860a001518760405160200161191e9392919061325a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261195c916000906024016131be565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516119e591906131e3565b600060405180830381855afa9150503d8060008114611a20576040519150601f19603f3d011682016040523d82523d6000602084013e611a25565b606091505b509150915081611a51576000604051806020016040528060008152509850985050505050505050610a83565b80806020019051810190611a6591906131ff565b86515250505b6001016117b2565b50600184604051602001611a87919061327f565b6040516020818303038152906040529550955050505050935093915050565b8073ffffffffffffffffffffffffffffffffffffffff163b600003611b0f576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610669565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606000808473ffffffffffffffffffffffffffffffffffffffff1684604051611b9f91906131e3565b600060405180830381855af49150503d8060008114611bda576040519150601f19603f3d011682016040523d82523d6000602084013e611bdf565b606091505b5091509150611bef858383611dff565b95945050505050565b34156103ed576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060606000602086511115611d8057600154600203611cce57600086806020019051810190611c609190613430565b9050611c7181602001518787611e8e565b909450915083611c9857600060405180602001604052806000815250935093505050610a83565b6020818101838152604080518451938101939093529051908201526060015b604051602081830303815290604052925050611df2565b600154600303611d6757600086806020019051810190611cee9190613462565b9050611cff81602001518787611e8e565b909450915083611d2657600060405180602001604052806000815250935093505050610a83565b60208181018381526040805184519381019390935290518282015282015173ffffffffffffffffffffffffffffffffffffffff166060820152608001611cb7565b5050604080516020810190915260008082529150610a83565b8551602003611df257600086806020019051810190611d9f9190612b5c565b9050611dac818787611e8e565b909450915083611dd357600060405180602001604052806000815250935093505050610a83565b6040805160208101849052016040516020818303038152906040529250505b6001925050935093915050565b606082611e1457611e0f82611ef9565b6113c0565b8151158015611e38575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611e87576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610669565b50806113c0565b600080608085901c8185611eb4866fffffffffffffffffffffffffffffffff8a16612e0f565b611ebe9190612e26565b90506fffffffffffffffffffffffffffffffff811115611ee657600080935093505050610a83565b60019760809290921b1795509350505050565b805115611f095780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114611f6b57600080fd5b919050565b600060208284031215611f8257600080fd5b6113c082611f3b565b600060208284031215611f9d57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610aec57600080fd5b8035611f6b81611fa4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610160810167ffffffffffffffff8111828210171561202457612024611fd1565b60405290565b60405160a0810167ffffffffffffffff8111828210171561202457612024611fd1565b6040805190810167ffffffffffffffff8111828210171561202457612024611fd1565b60405160c0810167ffffffffffffffff8111828210171561202457612024611fd1565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156120da576120da611fd1565b604052919050565b600067ffffffffffffffff8211156120fc576120fc611fd1565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261213957600080fd5b813561214c612147826120e2565b612093565b81815284602083860101111561216157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561219157600080fd5b823561219c81611fa4565b9150602083013567ffffffffffffffff8111156121b857600080fd5b6121c485828601612128565b9150509250929050565b600080604083850312156121e157600080fd5b6121ea83611f3b565b915060208301356121fa81611fa4565b809150509250929050565b60005b83811015612220578181015183820152602001612208565b50506000910152565b60008151808452612241816020860160208601612205565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113c06020830184612229565b600067ffffffffffffffff8211156122a0576122a0611fd1565b5060051b60200190565b600082601f8301126122bb57600080fd5b813560206122cb61214783612286565b8083825260208201915060208460051b8701019350868411156122ed57600080fd5b602086015b8481101561231257803561230581611fa4565b83529183019183016122f2565b509695505050505050565b6000806040838503121561233057600080fd5b823567ffffffffffffffff8082111561234857600080fd5b818501915085601f83011261235c57600080fd5b8135602061236c61214783612286565b82815260059290921b8401810191818101908984111561238b57600080fd5b948201945b838610156123b0576123a186611f3b565b82529482019490820190612390565b965050860135925050808211156123c657600080fd5b506121c4858286016122aa565b6000806000604084860312156123e857600080fd5b833567ffffffffffffffff8082111561240057600080fd5b818601915086601f83011261241457600080fd5b81358181111561242357600080fd5b8760208260051b850101111561243857600080fd5b60209283019550935050840135801515811461245357600080fd5b809150509250925092565b60008060006040848603121561247357600080fd5b833567ffffffffffffffff8082111561248b57600080fd5b818601915086601f83011261249f57600080fd5b8135818111156124ae57600080fd5b8760208285010111156124c057600080fd5b6020928301989097509590910135949350505050565b82151581526040602082015260006124f16040830184612229565b949350505050565b60006020828403121561250b57600080fd5b81356113c081611fa4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808585111561255557600080fd5b8386111561256257600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156125af5780818660040360031b1b83161692505b505092915050565b600082601f8301126125c857600080fd5b813560206125d861214783612286565b8083825260208201915060208460051b8701019350868411156125fa57600080fd5b602086015b8481101561231257803583529183019183016125ff565b6000610160828403121561262957600080fd5b612631612000565b905061263c82611fc6565b815261264a60208301611fc6565b6020820152604082013567ffffffffffffffff8082111561266a57600080fd5b612676858386016122aa565b6040840152606084013591508082111561268f57600080fd5b61269b858386016125b7565b606084015260808401359150808211156126b457600080fd5b6126c0858386016122aa565b608084015260a08401359150808211156126d957600080fd5b6126e5858386016125b7565b60a08401526126f660c08501611fc6565b60c084015260e08481013590840152610100808501359084015261012080850135908401526101409150818401358181111561273157600080fd5b61273d86828701612128565b8385015250505092915050565b60006020828403121561275c57600080fd5b813567ffffffffffffffff8082111561277457600080fd5b9083019060a0828603121561278857600080fd5b61279061202a565b61279983611fc6565b81526127a760208401611fc6565b60208201526040830135828111156127be57600080fd5b6127ca87828601612128565b6040830152506060830135828111156127e257600080fd5b6127ee87828601612616565b60608301525060808301358281111561280657600080fd5b61281287828601612128565b60808301525095945050505050565b60008151808452602080850194506020840160005b8381101561286857815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612836565b509495945050505050565b60008151808452602080850194506020840160005b8381101561286857815187529582019590820190600101612888565b805173ffffffffffffffffffffffffffffffffffffffff168252600061016060208301516128ea602086018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015181604086015261290282860182612821565b9150506060830151848203606086015261291c8282612873565b915050608083015184820360808601526129368282612821565b91505060a083015184820360a08601526129508282612873565b91505060c083015161297a60c086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083810151908501526101008084015190850152610120808401519085015261014080840151858303828701526129b38382612229565b9695505050505050565b60208152600073ffffffffffffffffffffffffffffffffffffffff80845116602084015280602085015116604084015250604083015160a06060840152612a0760c0840182612229565b905060608401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080858403016080860152612a4383836128a4565b925060808601519150808584030160a086015250611bef8282612229565b60008060008060808587031215612a7757600080fd5b8435612a8281611fa4565b9350602085013567ffffffffffffffff80821115612a9f57600080fd5b612aab88838901612616565b94506040870135915080821115612ac157600080fd5b612acd88838901612128565b93506060870135915080821115612ae357600080fd5b50612af087828801612128565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000612b2b60808301866128a4565b8281036040840152612b3d8186612229565b90508281036060840152612b518185612229565b979650505050505050565b600060208284031215612b6e57600080fd5b5051919050565b8051611f6b81611fa4565b600082601f830112612b9157600080fd5b81516020612ba161214783612286565b8083825260208201915060208460051b870101935086841115612bc357600080fd5b602086015b84811015612312578051612bdb81611fa4565b8352918301918301612bc8565b600082601f830112612bf957600080fd5b81516020612c0961214783612286565b8083825260208201915060208460051b870101935086841115612c2b57600080fd5b602086015b848110156123125780518352918301918301612c30565b600082601f830112612c5857600080fd5b8151612c66612147826120e2565b818152846020838601011115612c7b57600080fd5b6124f1826020830160208701612205565b600082601f830112612c9d57600080fd5b81516020612cad61214783612286565b82815260059290921b84018101918181019086841115612ccc57600080fd5b8286015b8481101561231257805167ffffffffffffffff811115612cf05760008081fd5b612cfe8986838b0101612c47565b845250918301918301612cd0565b600060208284031215612d1e57600080fd5b815167ffffffffffffffff80821115612d3657600080fd5b9083019060a08286031215612d4a57600080fd5b612d5261202a565b825182811115612d6157600080fd5b612d6d87828601612b80565b825250602083015182811115612d8257600080fd5b612d8e87828601612be8565b602083015250604083015182811115612da657600080fd5b612db287828601612c8c565b60408301525060608301516060820152608083015182811115612dd457600080fd5b61281287828601612c47565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610ee657610ee6612de0565b600082612e5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020808352835160a082850152612e7d60c0850182612821565b9050818501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080868403016040870152612eb88383612873565b60408801518782038301606089015280518083529194508501925084840190600581901b8501860160005b82811015612f0f5784878303018452612efd828751612229565b95880195938801939150600101612ee3565b5060608a015160808a015260808a01519650838982030160a08a0152612f358188612229565b9a9950505050505050505050565b600082601f830112612f5457600080fd5b8151612f6261214782612286565b808282526020820191508560208460051b8701011115612f8157600080fd5b602085015b60208460051b8701018110156130b957805167ffffffffffffffff811115612fad57600080fd5b8601603f81018813612fbe57600080fd5b6020810151612fcf61214782612286565b808282526020820191508a60408460051b8601011115612fee57600080fd5b604084015b60408460051b8601018110156130a357805167ffffffffffffffff81111561301a57600080fd5b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08288018f0301121561304e57600080fd5b61305661204d565b6040828801015167ffffffffffffffff81111561307257600080fd5b6130838f604083868c010101612c47565b825250908601606001516020808301919091529084529283019201612ff3565b5086525050602093840193919091019050612f86565b5095945050505050565b6000602082840312156130d557600080fd5b815167ffffffffffffffff808211156130ed57600080fd5b9083019060c0828603121561310157600080fd5b613109612070565b82518281111561311857600080fd5b61312487828601612f43565b82525061313360208401612b75565b602082015261314460408401612b75565b604082015261315560608401612b75565b60608201526080830151608082015260a08301518281111561317657600080fd5b61318287828601612c47565b60a08301525095945050505050565b6060815260006131a46060830186612229565b60ff94851660208401529290931660409091015292915050565b6040815260006131d16040830185612229565b905060ff831660208301529392505050565b600082516131f5818460208701612205565b9190910192915050565b60006020828403121561321157600080fd5b815167ffffffffffffffff81111561322857600080fd5b6124f184828501612c47565b80820180821115610ee657610ee6612de0565b81810381811115610ee657610ee6612de0565b60608152600061326d6060830186612229565b60208301949094525060400152919050565b6020808252825160c083830152805160e0840181905260009291600582811b860161010090810193928501929087019186805b83811015613378578987037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001855285518051808952908901908989019080861b8a018b01855b82811015613362577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08c830301845284516040815181855261333d82860182612229565b9150508e8201518f85015280935050508c850194508c840193506001810190506132f9565b50995050509588019550938701936001016132b2565b505050509286015173ffffffffffffffffffffffffffffffffffffffff8116604087015292506133a59050565b604085015173ffffffffffffffffffffffffffffffffffffffff811660608601529150606085015173ffffffffffffffffffffffffffffffffffffffff811660808601529150608085015160a085015260a085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160c0850152611bef8183612229565b60006040828403121561344257600080fd5b61344a61204d565b82518152602083015160208201528091505092915050565b60006060828403121561347457600080fd5b6040516060810181811067ffffffffffffffff8211171561349757613497611fd1565b8060405250825181526020830151602082015260408301516134b881611fa4565b6040820152939250505056fea264697066735822122086687d1f819c048380f96432b7f7ed8fd9919e377f30a1802c67a6de0cef557d64736f6c63430008190033