60a06040525f6007556040518060400160405280600481526020017ff09f9880000000000000000000000000000000000000000000000000000000008152506008908161004c9190611541565b506040518060400160405280600481526020017ff09f989400000000000000000000000000000000000000000000000000000000815250600990816100919190611541565b506040518060400160405280600481526020017ff09f989100000000000000000000000000000000000000000000000000000000815250600a90816100d69190611541565b506040518061020001604052806040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f320000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f330000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f340000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f350000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f360000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f380000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f610000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f620000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f630000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f640000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f650000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f6600000000000000000000000000000000000000000000000000000000000000815250815250600c9060106104a1929190611235565b506040518060400160405280600781526020017f2330303030303000000000000000000000000000000000000000000000000000815250600d90816104e69190611541565b50622625a0600f601c6101000a81548163ffffffff021916908363ffffffff160217905550600360105f6101000a81548161ffff021916908361ffff1602179055506006601060026101000a81548163ffffffff021916908363ffffffff160217905550739ddfaca8183c41ad55329bdeed9f6a8d53168b1b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f787d74caea10b2b357790d5b5247c2f63d1d91572a9846f780606e4d953677ae5f1b6014553480156105cf575f80fd5b50604051614a60380380614a6083398181016040528101906105f19190611651565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600d81526020017f45544820576174636820535647000000000000000000000000000000000000008152506040518060400160405280600581526020017f6577535647000000000000000000000000000000000000000000000000000000815250815f908161068d9190611541565b50806001908161069d9190611541565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050730715a7794a1dc8e42615f059dd6e406a6594651a600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061082460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f61082a60201b60201c565b5061185d565b610849828260405180602001604052805f81525061084d60201b60201c565b5050565b61085d838361087460201b60201c565b61086f5f84848461096d60201b60201c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108e4575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016108db91906116bb565b60405180910390fd5b5f6108f683835f610b2560201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610968575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161095f91906116bb565b60405180910390fd5b505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610b1f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026109b6610d4260201b60201c565b8685856040518563ffffffff1660e01b81526004016109d89493929190611753565b6020604051808303815f875af1925050508015610a1357506040513d601f19601f82011682018060405250810190610a1091906117f2565b60015b610a94573d805f8114610a41576040519150601f19603f3d011682016040523d82523d5f602084013e610a46565b606091505b505f815103610a8c57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610a8391906116bb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610b1d57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610b1491906116bb565b60405180910390fd5b505b50505050565b5f80610b3684610d4960201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610b7d57610b7c818486610d8260201b60201c565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c0e57610bc25f855f80610e4b60201b60201c565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610c8d57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f33905090565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610d9383838361101660201b60201c565b610e46575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e0757806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610dfe919061181d565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401610e3d929190611836565b60405180910390fd5b505050565b8080610e8357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610fc1575f610e98846110e260201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f0257508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610f1b5750610f19818461116e60201b60201c565b155b15610f5d57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610f5491906116bb565b60405180910390fd5b8115610fbf57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110d957508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806110945750611093848461116e60201b60201c565b5b806110d857508273ffffffffffffffffffffffffffffffffffffffff166110c0836111fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f806110f383610d4960201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116557826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161115c919061181d565b60405180910390fd5b80915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b828054828255905f5260205f2090810192821561127b579160200282015b8281111561127a57825182908161126a9190611541565b5091602001919060010190611253565b5b509050611288919061128c565b5090565b5b808211156112ab575f81816112a291906112af565b5060010161128d565b5090565b5080546112bb9061136b565b5f825580601f106112cc57506112e9565b601f0160209004905f5260205f20908101906112e891906112ec565b5b50565b5b80821115611303575f815f9055506001016112ed565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061138257607f821691505b6020821081036113955761139461133e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026113f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826113bc565b61140186836113bc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61144561144061143b84611419565b611422565b611419565b9050919050565b5f819050919050565b61145e8361142b565b61147261146a8261144c565b8484546113c8565b825550505050565b5f90565b61148661147a565b611491818484611455565b505050565b5b818110156114b4576114a95f8261147e565b600181019050611497565b5050565b601f8211156114f9576114ca8161139b565b6114d3846113ad565b810160208510156114e2578190505b6114f66114ee856113ad565b830182611496565b50505b505050565b5f82821c905092915050565b5f6115195f19846008026114fe565b1980831691505092915050565b5f611531838361150a565b9150826002028217905092915050565b61154a82611307565b67ffffffffffffffff81111561156357611562611311565b5b61156d825461136b565b6115788282856114b8565b5f60209050601f8311600181146115a9575f8415611597578287015190505b6115a18582611526565b865550611608565b601f1984166115b78661139b565b5f5b828110156115de578489015182556001820191506020850194506020810190506115b9565b868310156115fb57848901516115f7601f89168261150a565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f67ffffffffffffffff82169050919050565b61163081611614565b811461163a575f80fd5b50565b5f8151905061164b81611627565b92915050565b5f6020828403121561166657611665611610565b5b5f6116738482850161163d565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116a58261167c565b9050919050565b6116b58161169b565b82525050565b5f6020820190506116ce5f8301846116ac565b92915050565b6116dd81611419565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611725826116e3565b61172f81856116ed565b935061173f8185602086016116fd565b6117488161170b565b840191505092915050565b5f6080820190506117665f8301876116ac565b61177360208301866116ac565b61178060408301856116d4565b8181036060830152611792818461171b565b905095945050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117d18161179d565b81146117db575f80fd5b50565b5f815190506117ec816117c8565b92915050565b5f6020828403121561180757611806611610565b5b5f611814848285016117de565b91505092915050565b5f6020820190506118305f8301846116d4565b92915050565b5f6040820190506118495f8301856116ac565b61185660208301846116d4565b9392505050565b6080516131e461187c5f395f818161047701526104cb01526131e45ff3fe608060405234801561000f575f80fd5b5060043610610114575f3560e01c806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146102ec578063e0c862891461031c578063e923b05b14610326578063e985e9c514610344578063f6eaffc81461037457610114565b806395d89b4114610266578063a22cb46514610284578063ae294c68146102a0578063b88d4fde146102d057610114565b80631fe543e3116100e75780631fe543e3146101b257806323b872dd146101ce57806342842e0e146101ea5780636352211e1461020657806370a082311461023657610114565b806301ffc9a71461011857806306fdde0314610148578063081812fc14610166578063095ea7b314610196575b5f80fd5b610132600480360381019061012d9190611c2b565b6103a4565b60405161013f9190611c70565b60405180910390f35b6101506103b5565b60405161015d9190611cf9565b60405180910390f35b610180600480360381019061017b9190611d4c565b610444565b60405161018d9190611db6565b60405180910390f35b6101b060048036038101906101ab9190611df9565b61045f565b005b6101cc60048036038101906101c79190611f77565b610475565b005b6101e860048036038101906101e39190611fd1565b610535565b005b61020460048036038101906101ff9190611fd1565b610634565b005b610220600480360381019061021b9190611d4c565b610653565b60405161022d9190611db6565b60405180910390f35b610250600480360381019061024b9190612021565b610664565b60405161025d919061205b565b60405180910390f35b61026e61071a565b60405161027b9190611cf9565b60405180910390f35b61029e6004803603810190610299919061209e565b6107aa565b005b6102ba60048036038101906102b59190611d4c565b6107c0565b6040516102c79190611cf9565b60405180910390f35b6102ea60048036038101906102e5919061218c565b610866565b005b61030660048036038101906103019190611d4c565b610883565b6040516103139190611cf9565b60405180910390f35b61032461090d565b005b61032e6109fd565b60405161033b9190611cf9565b60405180910390f35b61035e6004803603810190610359919061220c565b610a89565b60405161036b9190611c70565b60405180910390f35b61038e60048036038101906103899190611d4c565b610b17565b60405161039b919061205b565b60405180910390f35b5f6103ae82610b37565b9050919050565b60605f80546103c390612277565b80601f01602080910402602001604051908101604052809291908181526020018280546103ef90612277565b801561043a5780601f106104115761010080835404028352916020019161043a565b820191905f5260205f20905b81548152906001019060200180831161041d57829003601f168201915b5050505050905090565b5f61044e82610b97565b5061045882610c1d565b9050919050565b610471828261046c610c56565b610c5d565b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461052757337f00000000000000000000000000000000000000000000000000000000000000006040517f1cf993f400000000000000000000000000000000000000000000000000000000815260040161051e9291906122a7565b60405180910390fd5b6105318282610c6f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105a5575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161059c9190611db6565b60405180910390fd5b5f6105b883836105b3610c56565b610c9b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461062e578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610625939291906122ce565b60405180910390fd5b50505050565b61064e83838360405180602001604052805f815250610866565b505050565b5f61065d82610b97565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d5575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016106cc9190611db6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461072990612277565b80601f016020809104026020016040519081016040528092919081815260200182805461075590612277565b80156107a05780601f10610777576101008083540402835291602001916107a0565b820191905f5260205f20905b81548152906001019060200180831161078357829003601f168201915b5050505050905090565b6107bc6107b5610c56565b8383610ea6565b5050565b600c81815481106107cf575f80fd5b905f5260205f20015f9150905080546107e790612277565b80601f016020809104026020016040519081016040528092919081815260200182805461081390612277565b801561085e5780601f106108355761010080835404028352916020019161085e565b820191905f5260205f20905b81548152906001019060200180831161084157829003601f168201915b505050505081565b610871848484610535565b61087d8484848461100f565b50505050565b60605f600d600b60405160200161089b929190612667565b60405160208183030381529060405290505f6108dd6108b9836111c1565b6040516020016108c99190612865565b6040516020818303038152906040526111c1565b90505f816040516020016108f191906128f1565b6040516020818303038152906040529050809350505050919050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d3b1d30601454600f60149054906101000a900467ffffffffffffffff1660105f9054906101000a900461ffff16600f601c9054906101000a900463ffffffff16601060029054906101000a900463ffffffff166040518663ffffffff1660e01b81526004016109ba959493929190612986565b6020604051808303815f875af11580156109d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fa91906129eb565b50565b600d8054610a0a90612277565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3690612277565b8015610a815780601f10610a5857610100808354040283529160200191610a81565b820191905f5260205f20905b815481529060010190602001808311610a6457829003601f168201915b505050505081565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60118181548110610b26575f80fd5b905f5260205f20015f915090505481565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b905750610b8f8261132e565b5b9050919050565b5f80610ba28361140f565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c1457826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610c0b919061205b565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610c6a8383836001611448565b505050565b8060119080519060200190610c85929190611b5f565b50610c8e611607565b610c9661171f565b505050565b5f80610ca68461140f565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ce757610ce6818486611815565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d7257610d265f855f80611448565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610df157600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f1657816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610f0d9190611db6565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110029190611c70565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156111bb578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611052610c56565b8685856040518563ffffffff1660e01b81526004016110749493929190612a68565b6020604051808303815f875af19250505080156110af57506040513d601f19601f820116820180604052508101906110ac9190612ac6565b60015b611130573d805f81146110dd576040519150601f19603f3d011682016040523d82523d5f602084013e6110e2565b606091505b505f81510361112857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161111f9190611db6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146111b957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016111b09190611db6565b60405180910390fd5b505b50505050565b60605f8251036111e15760405180602001604052805f8152509050611329565b5f60405180606001604052806040815260200161316f6040913990505f60036002855161120e9190612b1e565b6112189190612b7e565b60046112249190612bae565b67ffffffffffffffff81111561123d5761123c611e3b565b5b6040519080825280601f01601f19166020018201604052801561126f5781602001600182028036833780820191505090505b509050600182016020820185865187016020810180515f82525b828410156112e4576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611289565b80825260038a51066001811461130157600281146113145761131c565b603d6001870353603d600287035361131c565b603d60018703535b5050505050505080925050505b919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113f857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114085750611407826118d8565b5b9050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061148057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115b2575f61148f84610b97565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114f957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561150c575061150a8184610a89565b155b1561154e57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016115459190611db6565b60405180910390fd5b81156115b057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61162c60115f8154811061161e5761161d612bef565b5b905f5260205f200154611941565b611652601160018154811061164457611643612bef565b5b905f5260205f200154611941565b611678601160028154811061166a57611669612bef565b5b905f5260205f200154611941565b61169e60116003815481106116905761168f612bef565b5b905f5260205f200154611941565b6116c460116004815481106116b6576116b5612bef565b5b905f5260205f200154611941565b6116ea60116005815481106116dc576116db612bef565b5b905f5260205f200154611941565b6040516020016116ff96959493929190612c66565b604051602081830303815290604052600d908161171c9190612e53565b50565b60605f61172a611a02565b905060075481131561174c576008600b90816117469190612f49565b5061177f565b60075481121561176c576009600b90816117669190612f49565b5061177e565b600a600b908161177c9190612f49565b505b5b80600781905550600b805461179390612277565b80601f01602080910402602001604051908101604052809291908181526020018280546117bf90612277565b801561180a5780601f106117e15761010080835404028352916020019161180a565b820191905f5260205f20905b8154815290600101906020018083116117ed57829003601f168201915b505050505091505090565b611820838383611a9f565b6118d3575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361189457806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161188b919061205b565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016118ca92919061302e565b60405180910390fd5b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60605f600c80549050836119559190613055565b9050600c818154811061196b5761196a612bef565b5b905f5260205f2001805461197e90612277565b80601f01602080910402602001604051908101604052809291908181526020018280546119aa90612277565b80156119f55780601f106119cc576101008083540402835291602001916119f5565b820191905f5260205f20905b8154815290600101906020018083116119d857829003601f168201915b5050505050915050919050565b5f80600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611a6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9291906130f7565b5050509150508091505090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b175750611b168484610a89565b5b80611b5557508273ffffffffffffffffffffffffffffffffffffffff16611b3d83610c1d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b828054828255905f5260205f20908101928215611b99579160200282015b82811115611b98578251825591602001919060010190611b7d565b5b509050611ba69190611baa565b5090565b5b80821115611bc1575f815f905550600101611bab565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c0a81611bd6565b8114611c14575f80fd5b50565b5f81359050611c2581611c01565b92915050565b5f60208284031215611c4057611c3f611bce565b5b5f611c4d84828501611c17565b91505092915050565b5f8115159050919050565b611c6a81611c56565b82525050565b5f602082019050611c835f830184611c61565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ccb82611c89565b611cd58185611c93565b9350611ce5818560208601611ca3565b611cee81611cb1565b840191505092915050565b5f6020820190508181035f830152611d118184611cc1565b905092915050565b5f819050919050565b611d2b81611d19565b8114611d35575f80fd5b50565b5f81359050611d4681611d22565b92915050565b5f60208284031215611d6157611d60611bce565b5b5f611d6e84828501611d38565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611da082611d77565b9050919050565b611db081611d96565b82525050565b5f602082019050611dc95f830184611da7565b92915050565b611dd881611d96565b8114611de2575f80fd5b50565b5f81359050611df381611dcf565b92915050565b5f8060408385031215611e0f57611e0e611bce565b5b5f611e1c85828601611de5565b9250506020611e2d85828601611d38565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611e7182611cb1565b810181811067ffffffffffffffff82111715611e9057611e8f611e3b565b5b80604052505050565b5f611ea2611bc5565b9050611eae8282611e68565b919050565b5f67ffffffffffffffff821115611ecd57611ecc611e3b565b5b602082029050602081019050919050565b5f80fd5b5f611ef4611eef84611eb3565b611e99565b90508083825260208201905060208402830185811115611f1757611f16611ede565b5b835b81811015611f405780611f2c8882611d38565b845260208401935050602081019050611f19565b5050509392505050565b5f82601f830112611f5e57611f5d611e37565b5b8135611f6e848260208601611ee2565b91505092915050565b5f8060408385031215611f8d57611f8c611bce565b5b5f611f9a85828601611d38565b925050602083013567ffffffffffffffff811115611fbb57611fba611bd2565b5b611fc785828601611f4a565b9150509250929050565b5f805f60608486031215611fe857611fe7611bce565b5b5f611ff586828701611de5565b935050602061200686828701611de5565b925050604061201786828701611d38565b9150509250925092565b5f6020828403121561203657612035611bce565b5b5f61204384828501611de5565b91505092915050565b61205581611d19565b82525050565b5f60208201905061206e5f83018461204c565b92915050565b61207d81611c56565b8114612087575f80fd5b50565b5f8135905061209881612074565b92915050565b5f80604083850312156120b4576120b3611bce565b5b5f6120c185828601611de5565b92505060206120d28582860161208a565b9150509250929050565b5f80fd5b5f67ffffffffffffffff8211156120fa576120f9611e3b565b5b61210382611cb1565b9050602081019050919050565b828183375f83830152505050565b5f61213061212b846120e0565b611e99565b90508281526020810184848401111561214c5761214b6120dc565b5b612157848285612110565b509392505050565b5f82601f83011261217357612172611e37565b5b813561218384826020860161211e565b91505092915050565b5f805f80608085870312156121a4576121a3611bce565b5b5f6121b187828801611de5565b94505060206121c287828801611de5565b93505060406121d387828801611d38565b925050606085013567ffffffffffffffff8111156121f4576121f3611bd2565b5b6122008782880161215f565b91505092959194509250565b5f806040838503121561222257612221611bce565b5b5f61222f85828601611de5565b925050602061224085828601611de5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061228e57607f821691505b6020821081036122a1576122a061224a565b5b50919050565b5f6040820190506122ba5f830185611da7565b6122c76020830184611da7565b9392505050565b5f6060820190506122e15f830186611da7565b6122ee602083018561204c565b6122fb6040830184611da7565b949350505050565b5f81905092915050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f32305f8201527f30302f737667272076657273696f6e3d27312e312720786d6c6e733a786c696e60208201527f6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b2760408201527f20786d6c6e733a7376676a733d27687474703a2f2f7376676a732e636f6d2f7360608201527f76676a73272077696474683d2735303027206865696768743d2735303027207060808201527f72657365727665417370656374526174696f3d276e6f6e65272076696577426f60a08201527f783d273020302035303020353030273e203c726563742077696474683d27313060c08201527f302527206865696768743d2731303025272066696c6c3d27000000000000000060e082015250565b5f61244b60f883612303565b91506124568261230d565b60f882019050919050565b5f819050815f5260205f209050919050565b5f815461247f81612277565b6124898186612303565b9450600182165f81146124a357600181146124b8576124ea565b60ff19831686528115158202860193506124ea565b6124c185612461565b5f5b838110156124e2578154818901526001820191506020810190506124c3565b838801955050505b50505092915050565b7f27202f3e000000000000000000000000000000000000000000000000000000005f82015250565b5f612527600483612303565b9150612532826124f3565b600482019050919050565b7f3c7465787420783d273530252720793d273530252720666f6e742d73697a653d5f8201527f273132382720646f6d696e616e742d626173656c696e653d276d6964646c652760208201527f20746578742d616e63686f723d276d6964646c65273e00000000000000000000604082015250565b5f6125bd605683612303565b91506125c88261253d565b605682019050919050565b7f3c2f746578743e000000000000000000000000000000000000000000000000005f82015250565b5f612607600783612303565b9150612612826125d3565b600782019050919050565b7f3c2f7376673e00000000000000000000000000000000000000000000000000005f82015250565b5f612651600683612303565b915061265c8261261d565b600682019050919050565b5f6126718261243f565b915061267d8285612473565b91506126888261251b565b9150612693826125b1565b915061269f8284612473565b91506126aa826125fb565b91506126b582612645565b91508190509392505050565b7f7b226e616d65223a2022455448205761746368696e6720535647222c000000005f82015250565b5f6126f5601c83612303565b9150612700826126c1565b601c82019050919050565b7f226465736372697074696f6e223a2022416e204175746f6d61746564204554485f8201527f20747261636b696e6720535647222c0000000000000000000000000000000000602082015250565b5f612765602f83612303565b91506127708261270b565b602f82019050919050565b7f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b6261735f8201527f6536342c00000000000000000000000000000000000000000000000000000000602082015250565b5f6127d5602483612303565b91506127e08261277b565b602482019050919050565b5f6127f582611c89565b6127ff8185612303565b935061280f818560208601611ca3565b80840191505092915050565b7f227d0000000000000000000000000000000000000000000000000000000000005f82015250565b5f61284f600283612303565b915061285a8261281b565b600282019050919050565b5f61286f826126e9565b915061287a82612759565b9150612885826127c9565b915061289182846127eb565b915061289c82612843565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f6128db601d83612303565b91506128e6826128a7565b601d82019050919050565b5f6128fb826128cf565b915061290782846127eb565b915081905092915050565b5f819050919050565b61292481612912565b82525050565b5f67ffffffffffffffff82169050919050565b6129468161292a565b82525050565b5f61ffff82169050919050565b6129628161294c565b82525050565b5f63ffffffff82169050919050565b61298081612968565b82525050565b5f60a0820190506129995f83018861291b565b6129a6602083018761293d565b6129b36040830186612959565b6129c06060830185612977565b6129cd6080830184612977565b9695505050505050565b5f815190506129e581611d22565b92915050565b5f60208284031215612a00576129ff611bce565b5b5f612a0d848285016129d7565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612a3a82612a16565b612a448185612a20565b9350612a54818560208601611ca3565b612a5d81611cb1565b840191505092915050565b5f608082019050612a7b5f830187611da7565b612a886020830186611da7565b612a95604083018561204c565b8181036060830152612aa78184612a30565b905095945050505050565b5f81519050612ac081611c01565b92915050565b5f60208284031215612adb57612ada611bce565b5b5f612ae884828501612ab2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b2882611d19565b9150612b3383611d19565b9250828201905080821115612b4b57612b4a612af1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b8882611d19565b9150612b9383611d19565b925082612ba357612ba2612b51565b5b828204905092915050565b5f612bb882611d19565b9150612bc383611d19565b9250828202612bd181611d19565b91508282048414831517612be857612be7612af1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f23000000000000000000000000000000000000000000000000000000000000005f82015250565b5f612c50600183612303565b9150612c5b82612c1c565b600182019050919050565b5f612c7082612c44565b9150612c7c82896127eb565b9150612c8882886127eb565b9150612c9482876127eb565b9150612ca082866127eb565b9150612cac82856127eb565b9150612cb882846127eb565b9150819050979650505050505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612d127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612cd7565b612d1c8683612cd7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612d57612d52612d4d84611d19565b612d34565b611d19565b9050919050565b5f819050919050565b612d7083612d3d565b612d84612d7c82612d5e565b848454612ce3565b825550505050565b5f90565b612d98612d8c565b612da3818484612d67565b505050565b5b81811015612dc657612dbb5f82612d90565b600181019050612da9565b5050565b601f821115612e0b57612ddc81612461565b612de584612cc8565b81016020851015612df4578190505b612e08612e0085612cc8565b830182612da8565b50505b505050565b5f82821c905092915050565b5f612e2b5f1984600802612e10565b1980831691505092915050565b5f612e438383612e1c565b9150826002028217905092915050565b612e5c82611c89565b67ffffffffffffffff811115612e7557612e74611e3b565b5b612e7f8254612277565b612e8a828285612dca565b5f60209050601f831160018114612ebb575f8415612ea9578287015190505b612eb38582612e38565b865550612f1a565b601f198416612ec986612461565b5f5b82811015612ef057848901518255600182019150602085019450602081019050612ecb565b86831015612f0d5784890151612f09601f891682612e1c565b8355505b6001600288020188555050505b505050505050565b5f81549050612f3081612277565b9050919050565b5f819050815f5260205f209050919050565b818103612f5757505061302c565b612f6082612f22565b67ffffffffffffffff811115612f7957612f78611e3b565b5b612f838254612277565b612f8e828285612dca565b5f601f831160018114612fbb575f8415612fa9578287015490505b612fb38582612e38565b865550613025565b601f198416612fc987612f37565b9650612fd486612461565b5f5b82811015612ffb57848901548255600182019150600185019450602081019050612fd6565b868310156130185784890154613014601f891682612e1c565b8355505b6001600288020188555050505b5050505050505b565b5f6040820190506130415f830185611da7565b61304e602083018461204c565b9392505050565b5f61305f82611d19565b915061306a83611d19565b92508261307a57613079612b51565b5b828206905092915050565b5f69ffffffffffffffffffff82169050919050565b6130a381613085565b81146130ad575f80fd5b50565b5f815190506130be8161309a565b92915050565b5f819050919050565b6130d6816130c4565b81146130e0575f80fd5b50565b5f815190506130f1816130cd565b92915050565b5f805f805f60a086880312156131105761310f611bce565b5b5f61311d888289016130b0565b955050602061312e888289016130e3565b945050604061313f888289016129d7565b9350506060613150888289016129d7565b9250506080613161888289016130b0565b915050929550929590935056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220c4ce9701116b30e3c400869467f3a2a6968f6f2a13e42f8f8ca81f51b93ecd6664736f6c634300081a00330000000000000000000000000000000000000000000000000000000000002c11