0x6101a0604052348015610010575f80fd5b506040516160fc3803806160fc83398101604081905261002f9161077d565b85858585858b6040518060400160405280601781526020017f416476656e7475726520476f6c6420476f7665726e6f720000000000000000008152508061007a61019460201b60201c565b610084825f6101af565b610120526100938160016101af565b61014052815160208084019190912060e052815190820120610100524660a05261011f60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526003610134828261089d565b50506001600160a01b03166101605261014c816101e1565b506101568361024a565b61015f826102b0565b61016881610354565b50505061017a8161039560201b60201c565b506001600160a01b031661018052506109fd945050505050565b6040805180820190915260018152603160f81b602082015290565b5f6020835110156101ca576101c38361042a565b90506101db565b816101d5848261089d565b5060ff90505b92915050565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b600c546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600c805465ffffffffffff191665ffffffffffff92909216919091179055565b8063ffffffff165f036102dd5760405163f1cfbf0560e01b81525f60048201526024015b60405180910390fd5b600c546040805163ffffffff66010000000000009093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600c805463ffffffff90921666010000000000000263ffffffff60301b19909216919091179055565b600b5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600b55565b6064808211156103c25760405163243e544560e01b815260048101839052602481018290526044016102d4565b5f6103cb610467565b90506103ea6103d8610480565b6103e1856104fa565b600d9190610531565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b5f80829050601f81511115610454578260405163305a27a960e01b81526004016102d49190610957565b805161045f826109a2565b179392505050565b5f610472600d61054b565b6001600160d01b0316905090565b5f61048b6101605190565b6001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104e4575060408051601f3d908101601f191682019092526104e1918101906109c5565b60015b6104f5576104f0610593565b905090565b919050565b5f6001600160d01b0382111561052d576040516306dfcc6560e41b815260d06004820152602481018390526044016102d4565b5090565b5f8061053e85858561059d565b915091505b935093915050565b80545f90801561058a57610571836105646001846109de565b5f91825260209091200190565b54660100000000000090046001600160d01b031661058c565b5f5b9392505050565b5f6104f04361071f565b82545f90819080156106c2575f6105b9876105646001856109de565b60408051808201909152905465ffffffffffff80821680845266010000000000009092046001600160d01b03166020840152919250908716101561061057604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff80881691160361065f5784610633886105646001866109de565b80546001600160d01b039290921666010000000000000265ffffffffffff9092169190911790556106b2565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d555f8d815291909120945191519092166601000000000000029216919091179101555b6020015192508391506105439050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a8152918220955192519093166601000000000000029190931617920191909155905081610543565b5f65ffffffffffff82111561052d576040516306dfcc6560e41b815260306004820152602481018390526044016102d4565b6001600160a01b0381168114610765575f80fd5b50565b805165ffffffffffff811681146104f5575f80fd5b5f805f805f805f60e0888a031215610793575f80fd5b875161079e81610751565b602089015190975095506107b460408901610768565b9450606088015163ffffffff811681146107cc575f80fd5b608089015160a08a015191955093506107e481610751565b60c08901519092506107f581610751565b8091505092959891949750929550565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061082d57607f821691505b60208210810361084b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561089857805f5260205f20601f840160051c810160208510156108765750805b601f840160051c820191505b81811015610895575f8155600101610882565b50505b505050565b81516001600160401b038111156108b6576108b6610805565b6108ca816108c48454610819565b84610851565b6020601f8211600181146108fc575f83156108e55750848201515b5f19600385901b1c1916600184901b178455610895565b5f84815260208120601f198516915b8281101561092b578785015182556020948501946001909201910161090b565b508482101561094857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401525f5b818110156109835760208186018101516040868401015201610966565b505f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561084b575f1960209190910360031b1b16919050565b5f602082840312156109d5575f80fd5b61058c82610768565b818103818111156101db57634e487b7160e01b5f52601160045260245ffd5b60805160a05160c05160e0516101005161012051610140516101605161018051615677610a855f395f81816109fa015261110f01525f8181610bba0152818161121d0152818161188901528181611c5d015261295b01525f61292801525f6128fc01525f61338701525f61335f01525f6132ba01525f6132e401525f61330e01526156775ff3fe60806040526004361061031c575f3560e01c80637ecebe001161019c578063bc197c81116100e7578063deaaa7cc11610092578063ece40cc11161006d578063ece40cc114610b4f578063f23a6e6114610b6e578063f8ce560a14610b8d578063fc0c546a14610bac575f80fd5b8063deaaa7cc14610ade578063e540d01d14610b11578063eb9019d414610b30575f80fd5b8063c59057e4116100c2578063c59057e414610a81578063d33219b414610aa0578063dd4e2ba514610aca575f80fd5b8063bc197c8114610a30578063c01f9e3714610a4f578063c28bc2fa14610a6e575f80fd5b8063a7713a7011610147578063ab58fb8e11610122578063ab58fb8e146109b3578063b38b8c86146109e9578063b58131b014610a1c575f80fd5b8063a7713a7014610961578063a890c91014610975578063a9a9529414610994575f80fd5b806391ddadf41161017757806391ddadf41461090457806397c3d3341461092f5780639a802a6d14610942575f80fd5b80637ecebe001461087d57806384b0196e146108be5780638ff262e3146108e5575f80fd5b80633e4f49e611610267578063567813881161021257806360c4247f116101ed57806360c4247f1461080157806379051887146108205780637b3c71d31461083f5780637d5e81e21461085e575f80fd5b806356781388146107a45780635b8d0e0d146107c35780635f398a14146107e2575f80fd5b80634bf5d7e9116102425780634bf5d7e9146106cf578063544ffc9c146106e357806354fd4d501461075f575f80fd5b80633e4f49e614610622578063438596321461064e578063452115d6146106b0575f80fd5b8063160cbed7116102c75780632fe3e261116102a25780632fe3e26114610552578063342cfab6146105855780633932abb114610606575f80fd5b8063160cbed7146104d55780632656227d146104f45780632d63f69314610507575f80fd5b806306fdde03116102f757806306fdde03146103fe578063143489d01461041f578063150b7a0214610485575f80fd5b806301ffc9a71461037d57806302a251a3146103b157806306f3f9e6146103df575f80fd5b36610379573061032a610bde565b73ffffffffffffffffffffffffffffffffffffffff1614610377576040517fe90a651e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b5f80fd5b348015610388575f80fd5b5061039c610397366004614464565b610c03565b60405190151581526020015b60405180910390f35b3480156103bc575f80fd5b50600c546601000000000000900463ffffffff165b6040519081526020016103a8565b3480156103ea575f80fd5b506103776103f93660046144a3565b610ce7565b348015610409575f80fd5b50610412610cfb565b6040516103a89190614507565b34801561042a575f80fd5b506104606104393660046144a3565b5f9081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103a8565b348015610490575f80fd5b506104a461049f366004614618565b610d8b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103a8565b3480156104e0575f80fd5b506103d16104ef3660046147e1565b610e0d565b6103d16105023660046147e1565b610f0b565b348015610512575f80fd5b506103d16105213660046144a3565b5f9081526004602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b34801561055d575f80fd5b506103d17f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a81181565b348015610590575f80fd5b506105e561059f366004614877565b5f91825260086020908152604080842073ffffffffffffffffffffffffffffffffffffffff9390931684529190529020546fffffffffffffffffffffffffffffffff1690565b6040516fffffffffffffffffffffffffffffffff90911681526020016103a8565b348015610611575f80fd5b50600c5465ffffffffffff166103d1565b34801561062d575f80fd5b5061064161063c3660046144a3565b6110f3565b6040516103a8919061490b565b348015610659575f80fd5b5061039c610668366004614877565b5f91825260086020908152604080842073ffffffffffffffffffffffffffffffffffffffff9390931684529190529020546fffffffffffffffffffffffffffffffff16151590565b3480156106bb575f80fd5b506103d16106ca3660046147e1565b6110fd565b3480156106da575f80fd5b50610412611219565b3480156106ee575f80fd5b506107446106fd3660046144a3565b5f90815260076020526040902080546001909101546fffffffffffffffffffffffffffffffff80831693700100000000000000000000000000000000909304811692911690565b604080519384526020840192909252908201526060016103a8565b34801561076a575f80fd5b5060408051808201909152600181527f31000000000000000000000000000000000000000000000000000000000000006020820152610412565b3480156107af575f80fd5b506103d16107be366004614929565b6112e6565b3480156107ce575f80fd5b506103d16107dd366004614998565b611305565b3480156107ed575f80fd5b506103d16107fc366004614a57565b6114a1565b34801561080c575f80fd5b506103d161081b3660046144a3565b6114f4565b34801561082b575f80fd5b5061037761083a366004614aed565b6115bc565b34801561084a575f80fd5b506103d1610859366004614b08565b6115cd565b348015610869575f80fd5b506103d1610878366004614b5e565b611613565b348015610888575f80fd5b506103d1610897366004614c1e565b73ffffffffffffffffffffffffffffffffffffffff165f9081526002602052604090205490565b3480156108c9575f80fd5b506108d2611719565b6040516103a89796959493929190614c73565b3480156108f0575f80fd5b506103d16108ff366004614d09565b611777565b34801561090f575f80fd5b50610918611886565b60405165ffffffffffff90911681526020016103a8565b34801561093a575f80fd5b5060646103d1565b34801561094d575f80fd5b506103d161095c366004614d57565b61191a565b34801561096c575f80fd5b506103d1611926565b348015610980575f80fd5b5061037761098f366004614c1e565b611952565b34801561099f575f80fd5b5061039c6109ae3660046144a3565b611963565b3480156109be575f80fd5b506103d16109cd3660046144a3565b5f9081526004602052604090206001015465ffffffffffff1690565b3480156109f4575f80fd5b506104607f000000000000000000000000000000000000000000000000000000000000000081565b348015610a27575f80fd5b506103d161196b565b348015610a3b575f80fd5b506104a4610a4a366004614dac565b611975565b348015610a5a575f80fd5b506103d1610a693660046144a3565b6119f7565b610377610a7c366004614e46565b611a61565b348015610a8c575f80fd5b506103d1610a9b3660046147e1565b611aea565b348015610aab575f80fd5b5060095473ffffffffffffffffffffffffffffffffffffffff16610460565b348015610ad5575f80fd5b50610412611b23565b348015610ae9575f80fd5b506103d17ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d781565b348015610b1c575f80fd5b50610377610b2b366004614e86565b611b43565b348015610b3b575f80fd5b506103d1610b4a366004614ea9565b611b54565b348015610b5a575f80fd5b50610377610b693660046144a3565b611b7a565b348015610b79575f80fd5b506104a4610b88366004614ed3565b611b8b565b348015610b98575f80fd5b506103d1610ba73660046144a3565b611c0d565b348015610bb7575f80fd5b507f0000000000000000000000000000000000000000000000000000000000000000610460565b5f610bfe60095473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f65455a86000000000000000000000000000000000000000000000000000000001480610c9557507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b80610ce157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610cef611cda565b610cf881611d86565b50565b606060038054610d0a90614f2b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3690614f2b565b8015610d815780601f10610d5857610100808354040283529160200191610d81565b820191905f5260205f20905b815481529060010190602001808311610d6457829003601f168201915b5050505050905090565b5f30610d95610bde565b73ffffffffffffffffffffffffffffffffffffffff1614610de2576040517fe90a651e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f150b7a02000000000000000000000000000000000000000000000000000000005b949350505050565b5f80610e1b86868686611aea565b9050610e3081610e2b6004611e34565b611e56565b505f610e3f8288888888611eac565b905065ffffffffffff811615610ecf575f8281526004602090815260409182902060010180547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff85169081179091558251858152918201527f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892910160405180910390a1610f01565b6040517f90884a4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5095945050505050565b5f80610f1986868686611aea565b9050610f3981610f296005611e34565b610f336004611e34565b17611e56565b505f81815260046020526040902080547fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e0100000000000000000000000000000000000000000000000000000000000017905530610f97610bde565b73ffffffffffffffffffffffffffffffffffffffff1614611047575f5b8651811015611045573073ffffffffffffffffffffffffffffffffffffffff16878281518110610fe657610fe6614f7c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361103d5761103d85828151811061101e5761101e614f7c565b6020026020010151805190602001206005611eba90919063ffffffff16565b600101610fb4565b505b6110548187878787611f6f565b3061105d610bde565b73ffffffffffffffffffffffffffffffffffffffff16141580156110ac57506005546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009092041614155b156110b6575f6005555b6040518181527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906020015b60405180910390a195945050505050565b5f610ce182611f83565b5f8061110b86868686611aea565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036111925761117d816111586005611e34565b6111626004611e34565b61116c6001611e34565b6111755f611e34565b171717611e56565b5061118a86868686612108565b915050610e05565b61119f81610e2b5f611e34565b505f8181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff163314611203576040517f233d98e30000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b61120f86868686612108565b9695505050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bf5d7e96040518163ffffffff1660e01b81526004015f60405180830381865afa9250505080156112a557506040513d5f823e601f3d908101601f191682016040526112a29190810190614fa9565b60015b6112e1575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b5f80339050610e0584828560405180602001604052805f81525061211e565b5f80611400876113fa7f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a8118c8c8c6113658e73ffffffffffffffffffffffffffffffffffffffff165f90815260026020526040902080546001810190915590565b8d8d604051611375929190615012565b60405180910390208c805190602001206040516020016113df9796959493929190968752602087019590955260ff93909316604086015273ffffffffffffffffffffffffffffffffffffffff919091166060850152608084015260a083015260c082015260e00190565b6040516020818303038152906040528051906020012061213f565b85612186565b905080611451576040517f94ab6c0700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024016111fa565b61149489888a89898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508b92506121f5915050565b9998505050505050505050565b5f803390506114e987828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92506121f5915050565b979650505050505050565b600d80545f91829061150760018461504e565b8154811061151757611517614f7c565b5f918252602090912001805490915065ffffffffffff8116906601000000000000900479ffffffffffffffffffffffffffffffffffffffffffffffffffff168582116115825779ffffffffffffffffffffffffffffffffffffffffffffffffffff1695945050505050565b61159661158e8761230f565b600d9061235e565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff169695505050505050565b6115c4611cda565b610cf881612423565b5f8033905061120f86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061211e92505050565b5f3361161f81846124a2565b61166d576040517fd9b3955700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016111fa565b5f61169382600161167c611886565b6116869190615061565b65ffffffffffff16611b54565b90505f61169e61196b565b905080821015611700576040517fc242ee1600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604481018290526064016111fa565b61170d8888888887612610565b98975050505050505050565b5f6060805f805f606061172a6128f5565b611732612921565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b5f8061181b846113fa7ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d78989896117d78b73ffffffffffffffffffffffffffffffffffffffff165f90815260026020526040902080546001810190915590565b60408051602081019690965285019390935260ff909116606084015273ffffffffffffffffffffffffffffffffffffffff16608083015260a082015260c0016113df565b90508061186c576040517f94ab6c0700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016111fa565b61120f86858760405180602001604052805f81525061211e565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561190e575060408051601f3d908101601f1916820190925261190b9181019061507f565b60015b6112e157610bfe61294e565b5f610e05848484612958565b5f611931600d612a11565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16905090565b61195a611cda565b610cf881612a5e565b5f6001610ce1565b5f610bfe600b5490565b5f3061197f610bde565b73ffffffffffffffffffffffffffffffffffffffff16146119cc576040517fe90a651e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b5f81815260046020526040812054611a53907a010000000000000000000000000000000000000000000000000000810463ffffffff169074010000000000000000000000000000000000000000900465ffffffffffff1661509a565b65ffffffffffff1692915050565b611a69611cda565b5f808573ffffffffffffffffffffffffffffffffffffffff16858585604051611a93929190615012565b5f6040518083038185875af1925050503d805f8114611acd576040519150601f19603f3d011682016040523d82523d5f602084013e611ad2565b606091505b5091509150611ae18282612af9565b50505050505050565b5f84848484604051602001611b029493929190615158565b60408051601f19818403018152919052805160209091012095945050505050565b606060405180606001604052806032815260200161561060329139905090565b611b4b611cda565b610cf881612b15565b5f611b738383611b6e60408051602081019091525f815290565b612958565b9392505050565b611b82611cda565b610cf881612be5565b5f30611b95610bde565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517fe90a651e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b5f6064611c19836114f4565b6040517f8e539e8c0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690638e539e8c90602401602060405180830381865afa158015611ca2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc691906151a2565b611cd091906151b9565b610ce191906151fd565b33611ce3610bde565b73ffffffffffffffffffffffffffffffffffffffff1614611d32576040517f47096e470000000000000000000000000000000000000000000000000000000081523360048201526024016111fa565b30611d3b610bde565b73ffffffffffffffffffffffffffffffffffffffff1614611d84575f8036604051611d67929190615012565b604051809103902090505b80611d7d6005612c26565b03611d7257505b565b606480821115611dcc576040517f243e544500000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016111fa565b5f611dd5611926565b9050611df4611de2611886565b611deb85612ce9565b600d9190612d48565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b5f816007811115611e4757611e476148a5565b600160ff919091161b92915050565b5f80611e61846110f3565b90505f83611e6e83611e34565b1603611b73578381846040517f31b75e4d0000000000000000000000000000000000000000000000000000000081526004016111fa93929190615235565b5f61120f8686868686612d62565b81546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169181166001830190911603611f24576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff8082165f90815260018086016020526040909120939093558354919092018216700100000000000000000000000000000000029116179055565b611f7c8585858585612f6c565b5050505050565b5f80611f8e8361301c565b90506005816007811115611fa457611fa46148a5565b14611faf5792915050565b5f838152600a6020526040908190205460095491517f584b153e00000000000000000000000000000000000000000000000000000000815260048101829052909173ffffffffffffffffffffffffffffffffffffffff169063584b153e90602401602060405180830381865afa15801561202b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204f9190615257565b1561205e575060059392505050565b6009546040517f2ab0f5290000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff90911690632ab0f52990602401602060405180830381865afa1580156120cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ef9190615257565b156120fe575060079392505050565b5060029392505050565b5f612115858585856131e4565b95945050505050565b5f6121158585858561213a60408051602081019091525f815290565b6121f5565b5f610ce161214b6132a1565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f61219385856133d7565b5090925090505f8160038111156121ac576121ac6148a5565b1480156121e457508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061120f575061120f868686613420565b5f61220486610e2b6001611e34565b505f8681526004602052604081205461223f90879074010000000000000000000000000000000000000000900465ffffffffffff1685612958565b905061224e878787848761354a565b82515f036122af578573ffffffffffffffffffffffffffffffffffffffff167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4888784886040516122a29493929190615276565b60405180910390a261120f565b8573ffffffffffffffffffffffffffffffffffffffff167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871288878488886040516122fd95949392919061529d565b60405180910390a29695505050505050565b5f65ffffffffffff82111561235a576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260306004820152602481018390526044016111fa565b5090565b81545f90818160058111156123ba575f61237784613635565b612381908561504e565b5f8881526020902090915081015465ffffffffffff90811690871610156123aa578091506123b8565b6123b58160016152d6565b92505b505b5f6123c787878585613719565b90508015612417576123eb876123de60018461504e565b5f91825260209091200190565b546601000000000000900479ffffffffffffffffffffffffffffffffffffffffffffffffffff166114e9565b5f979650505050505050565b600c546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b80515f9060348110156124b9576001915050610ce1565b8281017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec01517fffffffffffffffffffffffff000000000000000000000000000000000000000081167f2370726f706f7365723d307800000000000000000000000000000000000000001461253357600192505050610ce1565b5f8061254060288561504e565b90505b838110156125d5575f8061258e88848151811061256257612562614f7c565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016613778565b91509150816125a65760019650505050505050610ce1565b8060ff1660048573ffffffffffffffffffffffffffffffffffffffff16901b1793505050806001019050612543565b508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614935050505092915050565b5f6126248686868680519060200120611aea565b90508451865114158061263957508351865114155b8061264357508551155b15612691578551845186516040517f447b05d00000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915260448201526064016111fa565b5f8181526004602052604090205474010000000000000000000000000000000000000000900465ffffffffffff161561270457806126ce826110f3565b6040517f31b75e4d0000000000000000000000000000000000000000000000000000000081526111fa9291905f90600401615235565b5f612716600c5465ffffffffffff1690565b61271e611886565b65ffffffffffff1661273091906152d6565b90505f61274d600c5463ffffffff66010000000000009091041690565b5f84815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87161781559091506127a48361230f565b815465ffffffffffff9190911674010000000000000000000000000000000000000000027fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff9091161781556127f882613862565b815463ffffffff919091167a010000000000000000000000000000000000000000000000000000027fffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff90911617815588517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e090859087908c908c9067ffffffffffffffff81111561288b5761288b61453a565b6040519080825280602002602001820160405280156128be57816020015b60608152602001906001900390816128a95790505b508c896128cb8a826152d6565b8e6040516128e1999897969594939291906152e9565b60405180910390a150505095945050505050565b6060610bfe7f00000000000000000000000000000000000000000000000000000000000000005f6138ab565b6060610bfe7f000000000000000000000000000000000000000000000000000000000000000060016138ab565b5f610bfe4361230f565b5f7f00000000000000000000000000000000000000000000000000000000000000006040517f3a46b1a800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690529190911690633a46b1a890604401602060405180830381865afa1580156129ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0591906151a2565b80545f908015612a5657612a2a836123de60018461504e565b546601000000000000900479ffffffffffffffffffffffffffffffffffffffffffffffffffff16611b73565b5f9392505050565b6009546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606082612b0e57612b0982613954565b610ce1565b5080610ce1565b8063ffffffff165f03612b56576040517ff1cfbf050000000000000000000000000000000000000000000000000000000081525f60048201526024016111fa565b600c546040805163ffffffff66010000000000009093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600c805463ffffffff9092166601000000000000027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff909216919091179055565b600b5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600b55565b80545f906fffffffffffffffffffffffffffffffff808216917001000000000000000000000000000000009004168103612c8c576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff8181165f908152600185810160205260408220805492905585547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169301909116919091179092555090565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff82111561235a576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260d06004820152602481018390526044016111fa565b5f80612d55858585613996565b915091505b935093915050565b5f8060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612df291906151a2565b90505f3060601b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001684186009546040517fb1c5f42700000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063b1c5f42790612e7c908a908a908a905f9088906004016153d0565b602060405180830381865afa158015612e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ebb91906151a2565b5f898152600a60205260408082209290925560095491517f8f2a0bb000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691638f2a0bb091612f2b918b918b918b919088908a9060040161541d565b5f604051808303815f87803b158015612f42575f80fd5b505af1158015612f54573d5f803e3d5ffd5b5050505061170d8242612f6791906152d6565b61230f565b60095473ffffffffffffffffffffffffffffffffffffffff1663e38335e5348686865f3060601b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001688186040518763ffffffff1660e01b8152600401612fd79594939291906153d0565b5f604051808303818588803b158015612fee575f80fd5b505af1158015613000573d5f803e3d5ffd5b5050505f9687525050600a602052505060408320929092555050565b5f818152600460205260408120805460ff7e0100000000000000000000000000000000000000000000000000000000000082048116917f0100000000000000000000000000000000000000000000000000000000000000900416811561308757506007949350505050565b801561309857506002949350505050565b5f8581526004602052604081205474010000000000000000000000000000000000000000900465ffffffffffff169050805f03613104576040517f6ad06075000000000000000000000000000000000000000000000000000000008152600481018790526024016111fa565b5f61310d611886565b65ffffffffffff16905080821061312a57505f9695505050505050565b5f613134886119f7565b905081811061314b57506001979650505050505050565b61315488613b7d565b158061319657505f888152600760205260409020546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009092041611155b156131a957506003979650505050505050565b5f8881526004602052604090206001015465ffffffffffff165f036131d657506004979650505050505050565b506005979650505050505050565b5f806131f286868686613c18565b5f818152600a60205260409020549091508015610f01576009546040517fc4d252f50000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff9091169063c4d252f5906024015f604051808303815f87803b158015613272575f80fd5b505af1158015613284573d5f803e3d5ffd5b5050505f838152600a602052604081205550509050949350505050565b5f3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561330657507f000000000000000000000000000000000000000000000000000000000000000046145b1561333057507f000000000000000000000000000000000000000000000000000000000000000090565b610bfe604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f805f835160410361340e576020840151604085015160608601515f1a61340088828585613cfb565b955095509550505050613419565b505081515f91506002905b9250925092565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16858560405160240161344d929190615474565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1626ba7e00000000000000000000000000000000000000000000000000000000179052516134b0919061548c565b5f60405180830381855afa9150503d805f81146134e8576040519150601f19603f3d011682016040523d82523d5f602084013e6134ed565b606091505b509150915081801561350157506020815110155b801561120f575080517f1626ba7e000000000000000000000000000000000000000000000000000000009061353f90830160209081019084016151a2565b149695505050505050565b815f03613583576040517fbfc325cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f85815260086020908152604080832073ffffffffffffffffffffffffffffffffffffffff881684529091529020546fffffffffffffffffffffffffffffffff1682116135fc576040517f6d7d29ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61360683613dd0565b905081515f036136215761361c86868387613e25565b61362d565b61362d8686838561407b565b505050505050565b5f815f0361364457505f919050565b5f600161365084614325565b901c6001901b90506001818481613669576136696151d0565b048201901c90506001818481613681576136816151d0565b048201901c90506001818481613699576136996151d0565b048201901c905060018184816136b1576136b16151d0565b048201901c905060018184816136c9576136c96151d0565b048201901c905060018184816136e1576136e16151d0565b048201901c905060018184816136f9576136f96151d0565b048201901c9050611b7381828581613713576137136151d0565b046143b8565b5f5b81831015613770575f61372e84846143cd565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff16111561375c5780925061376a565b6137678160016152d6565b93505b5061371b565b509392505050565b5f8060f883901c602f811180156137925750603a8160ff16105b156137c5576001947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd09091019350915050565b8060ff1660401080156137db575060478160ff16105b1561380e576001947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc99091019350915050565b8060ff166060108015613824575060678160ff16105b15613857576001947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa99091019350915050565b505f93849350915050565b5f63ffffffff82111561235a576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260206004820152602481018390526044016111fa565b606060ff83146138c5576138be836143e7565b9050610ce1565b8180546138d190614f2b565b80601f01602080910402602001604051908101604052809291908181526020018280546138fd90614f2b565b80156139485780601f1061391f57610100808354040283529160200191613948565b820191905f5260205f20905b81548152906001019060200180831161392b57829003601f168201915b50505050509050610ce1565b8051156139645780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82545f9081908015613b0d575f6139b2876123de60018561504e565b60408051808201909152905465ffffffffffff808216808452660100000000000090920479ffffffffffffffffffffffffffffffffffffffffffffffffffff1660208401529192509087161015613a35576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805165ffffffffffff808816911603613a975784613a58886123de60018661504e565b805479ffffffffffffffffffffffffffffffffffffffffffffffffffff9290921666010000000000000265ffffffffffff909216919091179055613afd565b6040805180820190915265ffffffffffff808816825279ffffffffffffffffffffffffffffffffffffffffffffffffffff80881660208085019182528b54600181018d555f8d815291909120945191519092166601000000000000029216919091179101555b602001519250839150612d5a9050565b50506040805180820190915265ffffffffffff808516825279ffffffffffffffffffffffffffffffffffffffffffffffffffff80851660208085019182528854600181018a555f8a8152918220955192519093166601000000000000029190931617920191909155905081612d5a565b5f81815260076020526040812060018101548154613bc4916fffffffffffffffffffffffffffffffff908116917001000000000000000000000000000000009004166154a7565b6fffffffffffffffffffffffffffffffff16613c0f610ba7855f9081526004602052604090205465ffffffffffff740100000000000000000000000000000000000000009091041690565b11159392505050565b5f80613c2686868686611aea565b9050613c7481613c366007611e34565b613c406006611e34565b613c4a6002611e34565b6001613c576007826154cf565b613c62906002615601565b613c6c919061504e565b181818611e56565b505f818152600460205260409081902080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0100000000000000000000000000000000000000000000000000000000000000179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906110e29083815260200190565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613d3457505f91506003905082613dc6565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613d85573d5f803e3d5ffd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116613dbd57505f925060019150829050613dc6565b92505f91508190505b9450945094915050565b5f6fffffffffffffffffffffffffffffffff82111561235a576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260806004820152602481018390526044016111fa565b5f84815260086020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091529020546fffffffffffffffffffffffffffffffff1615613e9d576040517f6d7d29ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84815260086020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff841617905560ff8116613f77575f8481526007602052604081208054849290613f3c9084906fffffffffffffffffffffffffffffffff166154a7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550614075565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff821601613fe7575f8481526007602052604090208054839190601090613f3c90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166154a7565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff821601614043575f8481526007602052604081206001018054849290613f3c9084906fffffffffffffffffffffffffffffffff166154a7565b6040517f06b337c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b80516030146140b6576040517fa653862c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020818101516040808401515f8881526008855282812073ffffffffffffffffffffffffffffffffffffffff8916825290945290832054608083811c946fffffffffffffffffffffffffffffffff948516949390911c9290911690818361411d86886152d6565b61412791906152d6565b61413191906152d6565b9050866fffffffffffffffffffffffffffffffff1681111561417f576040517f6d7d29ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f89815260086020908152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452825280832080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff868116919091179091558c84526007835292819020815160608082018452825480871683527001000000000000000000000000000000009004861694820194909452600191909101549093168382015280519182019052815181906142489089906154a7565b6fffffffffffffffffffffffffffffffff16815260200186836020015161426f91906154a7565b6fffffffffffffffffffffffffffffffff16815260200185836040015161429691906154a7565b6fffffffffffffffffffffffffffffffff9081169091525f9b8c526007602090815260409c8d902083519184015183167001000000000000000000000000000000000291831691909117815591909b01516001909101805491909b167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090911617909955505050505050505050565b5f80608083901c1561433957608092831c92015b604083901c1561434b57604092831c92015b602083901c1561435d57602092831c92015b601083901c1561436f57601092831c92015b600883901c1561438157600892831c92015b600483901c1561439357600492831c92015b600283901c156143a557600292831c92015b600183901c15610ce15760010192915050565b5f8183106143c65781611b73565b5090919050565b5f6143db60028484186151fd565b611b73908484166152d6565b60605f6143f383614424565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f811115610ce1576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215614474575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b73575f80fd5b5f602082840312156144b3575f80fd5b5035919050565b5f5b838110156144d45781810151838201526020016144bc565b50505f910152565b5f81518084526144f38160208601602086016144ba565b601f01601f19169290920160200192915050565b602081525f611b7360208301846144dc565b73ffffffffffffffffffffffffffffffffffffffff81168114610cf8575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156145905761459061453a565b604052919050565b5f67ffffffffffffffff8211156145b1576145b161453a565b50601f01601f191660200190565b5f6145d16145cc84614598565b614567565b90508281528383830111156145e4575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112614609575f80fd5b611b73838335602085016145bf565b5f805f806080858703121561462b575f80fd5b843561463681614519565b9350602085013561464681614519565b925060408501359150606085013567ffffffffffffffff811115614668575f80fd5b614674878288016145fa565b91505092959194509250565b5f67ffffffffffffffff8211156146995761469961453a565b5060051b60200190565b5f82601f8301126146b2575f80fd5b81356146c06145cc82614680565b8082825260208201915060208360051b8601019250858311156146e1575f80fd5b602085015b83811015610f015780356146f981614519565b8352602092830192016146e6565b5f82601f830112614716575f80fd5b81356147246145cc82614680565b8082825260208201915060208360051b860101925085831115614745575f80fd5b602085015b83811015610f0157803583526020928301920161474a565b5f82601f830112614771575f80fd5b813561477f6145cc82614680565b8082825260208201915060208360051b8601019250858311156147a0575f80fd5b602085015b83811015610f0157803567ffffffffffffffff8111156147c3575f80fd5b6147d2886020838a01016145fa565b845250602092830192016147a5565b5f805f80608085870312156147f4575f80fd5b843567ffffffffffffffff81111561480a575f80fd5b614816878288016146a3565b945050602085013567ffffffffffffffff811115614832575f80fd5b61483e87828801614707565b935050604085013567ffffffffffffffff81111561485a575f80fd5b61486687828801614762565b949793965093946060013593505050565b5f8060408385031215614888575f80fd5b82359150602083013561489a81614519565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60088110614907577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610ce182846148d2565b803560ff811681146112e1575f80fd5b5f806040838503121561493a575f80fd5b8235915061494a60208401614919565b90509250929050565b5f8083601f840112614963575f80fd5b50813567ffffffffffffffff81111561497a575f80fd5b602083019150836020828501011115614991575f80fd5b9250929050565b5f805f805f805f60c0888a0312156149ae575f80fd5b873596506149be60208901614919565b955060408801356149ce81614519565b9450606088013567ffffffffffffffff8111156149e9575f80fd5b6149f58a828b01614953565b909550935050608088013567ffffffffffffffff811115614a14575f80fd5b614a208a828b016145fa565b92505060a088013567ffffffffffffffff811115614a3c575f80fd5b614a488a828b016145fa565b91505092959891949750929550565b5f805f805f60808688031215614a6b575f80fd5b85359450614a7b60208701614919565b9350604086013567ffffffffffffffff811115614a96575f80fd5b614aa288828901614953565b909450925050606086013567ffffffffffffffff811115614ac1575f80fd5b614acd888289016145fa565b9150509295509295909350565b65ffffffffffff81168114610cf8575f80fd5b5f60208284031215614afd575f80fd5b8135611b7381614ada565b5f805f8060608587031215614b1b575f80fd5b84359350614b2b60208601614919565b9250604085013567ffffffffffffffff811115614b46575f80fd5b614b5287828801614953565b95989497509550505050565b5f805f8060808587031215614b71575f80fd5b843567ffffffffffffffff811115614b87575f80fd5b614b93878288016146a3565b945050602085013567ffffffffffffffff811115614baf575f80fd5b614bbb87828801614707565b935050604085013567ffffffffffffffff811115614bd7575f80fd5b614be387828801614762565b925050606085013567ffffffffffffffff811115614bff575f80fd5b8501601f81018713614c0f575f80fd5b614674878235602084016145bf565b5f60208284031215614c2e575f80fd5b8135611b7381614519565b5f8151808452602084019350602083015f5b82811015614c69578151865260209586019590910190600101614c4b565b5093949350505050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f614cad60e08301896144dc565b8281036040840152614cbf81896144dc565b905086606084015273ffffffffffffffffffffffffffffffffffffffff861660808401528460a084015282810360c0840152614cfb8185614c39565b9a9950505050505050505050565b5f805f8060808587031215614d1c575f80fd5b84359350614d2c60208601614919565b92506040850135614d3c81614519565b9150606085013567ffffffffffffffff811115614668575f80fd5b5f805f60608486031215614d69575f80fd5b8335614d7481614519565b925060208401359150604084013567ffffffffffffffff811115614d96575f80fd5b614da2868287016145fa565b9150509250925092565b5f805f805f60a08688031215614dc0575f80fd5b8535614dcb81614519565b94506020860135614ddb81614519565b9350604086013567ffffffffffffffff811115614df6575f80fd5b614e0288828901614707565b935050606086013567ffffffffffffffff811115614e1e575f80fd5b614e2a88828901614707565b925050608086013567ffffffffffffffff811115614ac1575f80fd5b5f805f8060608587031215614e59575f80fd5b8435614e6481614519565b935060208501359250604085013567ffffffffffffffff811115614b46575f80fd5b5f60208284031215614e96575f80fd5b813563ffffffff81168114611b73575f80fd5b5f8060408385031215614eba575f80fd5b8235614ec581614519565b946020939093013593505050565b5f805f805f60a08688031215614ee7575f80fd5b8535614ef281614519565b94506020860135614f0281614519565b93506040860135925060608601359150608086013567ffffffffffffffff811115614ac1575f80fd5b600181811c90821680614f3f57607f821691505b602082108103614f76577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215614fb9575f80fd5b815167ffffffffffffffff811115614fcf575f80fd5b8201601f81018413614fdf575f80fd5b8051614fed6145cc82614598565b818152856020838501011115615001575f80fd5b6121158260208301602086016144ba565b818382375f9101908152919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ce157610ce1615021565b65ffffffffffff8281168282160390811115610ce157610ce1615021565b5f6020828403121561508f575f80fd5b8151611b7381614ada565b65ffffffffffff8181168382160190811115610ce157610ce1615021565b5f8151808452602084019350602083015f5b82811015614c6957815173ffffffffffffffffffffffffffffffffffffffff168652602095860195909101906001016150ca565b5f82825180855260208501945060208160051b830101602085015f5b8381101561514c57601f198584030188526151368383516144dc565b602098890198909350919091019060010161511a565b50909695505050505050565b608081525f61516a60808301876150b8565b828103602084015261517c8187614c39565b9050828103604084015261519081866150fe565b91505082606083015295945050505050565b5f602082840312156151b2575f80fd5b5051919050565b8082028115828204841417610ce157610ce1615021565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615230577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8381526060810161524960208301856148d2565b826040830152949350505050565b5f60208284031215615267575f80fd5b81518015158114611b73575f80fd5b84815260ff84166020820152826040820152608060608201525f61120f60808301846144dc565b85815260ff8516602082015283604082015260a060608201525f6152c460a08301856144dc565b828103608084015261170d81856144dc565b80820180821115610ce157610ce1615021565b89815273ffffffffffffffffffffffffffffffffffffffff8916602082015261012060408201525f61531f61012083018a6150b8565b8281036060840152615331818a614c39565b9050828103608084015280885180835260208301915060208160051b84010160208b015f5b8381101561538857601f198684030185526153728383516144dc565b6020958601959093509190910190600101615356565b505085810360a087015261539c818b6150fe565b93505050508560c08401528460e08401528281036101008401526153c081856144dc565b9c9b505050505050505050505050565b60a081525f6153e260a08301886150b8565b82810360208401526153f48188614c39565b9050828103604084015261540881876150fe565b60608401959095525050608001529392505050565b60c081525f61542f60c08301896150b8565b82810360208401526154418189614c39565b9050828103604084015261545581886150fe565b60608401969096525050608081019290925260a0909101529392505050565b828152604060208201525f610e0560408301846144dc565b5f825161549d8184602087016144ba565b9190910192915050565b6fffffffffffffffffffffffffffffffff8181168382160190811115610ce157610ce1615021565b60ff8181168382160190811115610ce157610ce1615021565b6001815b6001841115612d5a5780850481111561550757615507615021565b600184161561551557908102905b60019390931c9280026154ec565b5f8261553157506001610ce1565b8161553d57505f610ce1565b8160018114615553576002811461555d57615579565b6001915050610ce1565b60ff84111561556e5761556e615021565b50506001821b610ce1565b5060208310610133831016604e8410600b841016171561559c575081810a610ce1565b6155c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846154e8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156155f9576155f9615021565b029392505050565b5f611b7360ff84168361552356fe737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e26706172616d733d6672616374696f6e616ca2646970667358221220d43959a8d2e8ebb7503248d18e69dc7eef8b32cbe7966cbe245728f4b99770f664736f6c634300081a0033000000000000000000000000970c30646e5c95dc77a3d768c4362e113ed92b5b000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000003f4800000000000000000000000000000000000000000000000000000000000093a800000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000ed4f981249dde7cd3c295fc28cb934d4682d7ef9000000000000000000000000930e980a918cba69abc07488a22f271ffc76476b