60e0604052602b6006557f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6600755348015610038575f80fd5b506040516138ed3803806138ed8339810160408190526100579161034b565b80516001600160a01b0390811660a0908152602083015190911660c0908152604083015160015560608301516080908152830151600280549385015192850151600480546001600160801b039283166001600160801b03199182161790915560e08701516101008801516001600160401b039081166801000000000000000002968416600160801b0290921690821617949094176003556101208601519093166501000000000002600160281b600160681b0319939092166d01000000000000000000000000000292909216600160281b600160e81b03199093169290921791909117905561014081015160059061014f90826104d9565b5061015a5f3361016f565b50600754610168903361016f565b5050610598565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1661020f575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101c73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610212565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561024f5761024f610218565b60405290565b604051601f8201601f191681016001600160401b038111828210171561027d5761027d610218565b604052919050565b80516001600160a01b038116811461029b575f80fd5b919050565b80516001600160801b038116811461029b575f80fd5b80516001600160401b038116811461029b575f80fd5b5f82601f8301126102db575f80fd5b81516001600160401b038111156102f4576102f4610218565b6020610308601f8301601f19168201610255565b828152858284870101111561031b575f80fd5b5f5b8381101561033857858101830151828201840152820161031d565b505f928101909101919091529392505050565b5f6020828403121561035b575f80fd5b81516001600160401b0380821115610371575f80fd5b908301906101608286031215610385575f80fd5b61038d61022c565b61039683610285565b81526103a460208401610285565b602082015260408301516040820152606083015160608201526103c9608084016102a0565b60808201526103da60a084016102a0565b60a08201526103eb60c084016102a0565b60c08201526103fc60e084016102b6565b60e082015261010061040f8185016102b6565b908201526101206104218482016102b6565b908201526101408381015183811115610438575f80fd5b610444888287016102cc565b918301919091525095945050505050565b600181811c9082168061046957607f821691505b60208210810361048757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104d457805f5260205f20601f840160051c810160208510156104b25750805b601f840160051c820191505b818110156104d1575f81556001016104be565b50505b505050565b81516001600160401b038111156104f2576104f2610218565b610506816105008454610455565b8461048d565b602080601f831160018114610539575f84156105225750858301515b5f19600386901b1c1916600185901b178555610590565b5f85815260208120601f198616915b8281101561056757888601518255948401946001909101908401610548565b508582101561058457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c05161331d6105d05f395f8181610cb4015261272101525f6126ae01525f818161044b01526125ee015261331d5ff3fe6080604052600436106102ed575f3560e01c80639a0a508311610186578063ceca52be116100dc578063e985e9c511610087578063f8e6f95e11610062578063f8e6f95e14610983578063fc1a1c36146109a2578063ffc9896b146109de575f80fd5b8063e985e9c51461091c578063ec0d755714610950578063f5aa406d14610964575f80fd5b8063e1c29fb5116100b7578063e1c29fb5146108cb578063e2f46ff3146108de578063e58306f9146108fd575f80fd5b8063ceca52be1461086e578063d18d50e91461088d578063d547741f146108ac575f80fd5b8063a5d33df41161013c578063c2ca0ac511610117578063c2ca0ac514610802578063c582951414610821578063c87b56dd1461084f575f80fd5b8063a5d33df4146107b1578063b38a45b9146107d0578063b88d4fde146107ef575f80fd5b8063a0bcfc7f1161016c578063a0bcfc7f14610760578063a217fddf1461077f578063a22cb46514610792575f80fd5b80639a0a5083146106fb578063a035b1fe14610727575f80fd5b806342842e0e116102465780637501f741116101f157806391d14854116101cc57806391d148541461064e578063957aa58c1461069d57806395d89b41146106b6575f80fd5b80637501f741146105cd5780637a95f5bf1461060f5780637db3aecc1461062e575f80fd5b80636dc92b65116102215780636dc92b651461050657806370a0823114610565578063719be3eb14610584575f80fd5b806342842e0e146104b557806348758697146104c85780636352211e146104e7575f80fd5b8063248a9ca3116102a657806336568abe1161028157806336568abe1461046d578063386bfc981461048c5780633ccfd60b146104a1575f80fd5b8063248a9ca3146103df5780632f2ff15d1461041b57806332cb6b0c1461043a575f80fd5b8063081812fc116102d6578063081812fc14610373578063095ea7b3146103b757806323b872dd146103cc575f80fd5b806301ffc9a7146102f157806306fdde0314610325575b5f80fd5b3480156102fc575f80fd5b5061031061030b366004612a5a565b610a18565b60405190151581526020015b60405180910390f35b348015610330575f80fd5b5060408051808201909152601e81527f43727970746f56616c6c65797320416476656e747572657273204e465473000060208201525b60405161031c9190612abb565b34801561037e575f80fd5b5061039261038d366004612b0b565b610a54565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161031c565b6103ca6103c5366004612b45565b610aa4565b005b6103ca6103da366004612b6d565b610ab3565b3480156103ea575f80fd5b5061040d6103f9366004612b0b565b5f9081526020819052604090206001015490565b60405190815260200161031c565b348015610426575f80fd5b506103ca610435366004612ba6565b610bf9565b348015610445575f80fd5b5061040d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610478575f80fd5b506103ca610487366004612ba6565b610c23565b348015610497575f80fd5b5061040d60015481565b3480156104ac575f80fd5b506103ca610c7c565b6103ca6104c3366004612b6d565b610dce565b3480156104d3575f80fd5b5061040d6104e2366004612b0b565b610dfa565b3480156104f2575f80fd5b50610392610501366004612b0b565b610ea0565b348015610511575f80fd5b5060025460035460ff821691610100900463ffffffff169067ffffffffffffffff8082169168010000000000000000900416604080519415158552602085019390935291830152606082015260800161031c565b348015610570575f80fd5b5061040d61057f366004612bd0565b610efe565b34801561058f575f80fd5b506004546105ac906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff909116815260200161031c565b3480156105d8575f80fd5b506002546105f69065010000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161031c565b34801561061a575f80fd5b506103ca610629366004612be9565b610f4b565b348015610639575f80fd5b506003546105f69067ffffffffffffffff1681565b348015610659575f80fd5b50610310610668366004612ba6565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156106a8575f80fd5b506002546103109060ff1681565b3480156106c1575f80fd5b5060408051808201909152600781527f4356534f554c53000000000000000000000000000000000000000000000000006020820152610366565b348015610706575f80fd5b506003546105f69068010000000000000000900467ffffffffffffffff1681565b348015610732575f80fd5b506002546105ac906d010000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b34801561076b575f80fd5b506103ca61077a366004612c4e565b611190565b34801561078a575f80fd5b5061040d5f81565b34801561079d575f80fd5b506103ca6107ac366004612c9a565b6111a7565b3480156107bc575f80fd5b506103106107cb366004612d10565b6111fa565b3480156107db575f80fd5b506103ca6107ea366004612b0b565b611265565b6103ca6107fd366004612d58565b611275565b34801561080d575f80fd5b506103ca61081c366004612b0b565b6112cf565b34801561082c575f80fd5b5061084061083b366004612b0b565b61147b565b60405161031c93929190612dc2565b34801561085a575f80fd5b50610366610869366004612b0b565b61165a565b348015610879575f80fd5b506103ca610888366004612e65565b6117a7565b348015610898575f80fd5b506103ca6108a7366004612e9d565b6117f6565b3480156108b7575f80fd5b506103ca6108c6366004612ba6565b6118a3565b6103ca6108d9366004612edd565b6118c7565b3480156108e9575f80fd5b506103ca6108f8366004612ef8565b61199b565b348015610908575f80fd5b506103ca610917366004612b45565b611a86565b348015610927575f80fd5b50610310610936366004612f20565b601c52670a5a2e7a000000006008525f526030600c205490565b34801561095b575f80fd5b506103ca611aeb565b34801561096f575f80fd5b506103ca61097e366004612b0b565b611b28565b34801561098e575f80fd5b506103ca61099d366004612f48565b611b38565b3480156109ad575f80fd5b506003546105ac9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b3480156109e9575f80fd5b506109fd6109f8366004612bd0565b611d67565b6040805193845260208401929092529082015260600161031c565b5f610a3f826301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b80610a4e5750610a4e82611db3565b92915050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b610a9a5763ceea21b65f526004601cfd5b6001015492915050565b610aaf338383611e49565b5050565b610abe838383611ef8565b5f8181527f7d8825530a5a2e7a0000000000000000000000000000000000000000000000003317601c526020902081018101805473ffffffffffffffffffffffffffffffffffffffff9485169493841693811691908286148302610b315767ceea21b6a1148100831560021b526004601cfd5b855f528160010154925082331486331417610b5d576030600c2054610b5d57634b6e7f185f526004601cfd5b8215610b6a575f82600101555b85851818905550601c600c81812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555f84905220805460010163ffffffff81168402610bca5767ea553b3401336cea841560021b526004601cfd5b90558082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45b505050565b5f82815260208190526040902060010154610c1381611fac565b610c1d8383611fb6565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610c72576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf482826120af565b5f610c8681611fac565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb90339083906370a08231906024016020604051808303815f875af1158015610d19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3d9190612fa3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303815f875af1158015610daa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612fba565b610dd9838383610ab3565b813b15610bf457610bf483838360405180602001604052805f815250612168565b5f8082610e37845f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b604051602001610e7692919091825260a01b7fffffffffffffffffffffffff0000000000000000000000000000000000000000166020820152602c0190565b604051602081830303815290604052805190602001205f1c9050610e99816121e9565b9392505050565b5f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260209020810181015473ffffffffffffffffffffffffffffffffffffffff1680610ef95763ceea21b65f526004601cfd5b919050565b5f81610f1157638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b5f610f5581611fac565b5f8381527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260209020830183015460601b610fbf576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260209020830183015460a081901c9060e01c15611030576040517f5a049a9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110ba846b3fffffffffffffffffffffff868660405160200161105d929190918252602082015260400190565b604051602081830303815290604052805190602001205f1c16815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208201820180548060a01c831860a01b8118825550505050565b5f6110c485610ea0565b90505f8061111e611104847f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b63ffffffff81811692602083901c82169260401c90911690565b919350909150611187905083604083901b6bffffffff00000000000000001663ffffffff8516175b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f52601c600c2080548060201c831860201b8118825550505050565b50505050505050565b5f61119a81611fac565b6005610c1d838583613091565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018290525f90819060540160405160208183030381529060405280519060200120905061125c85856001548461224a565b95945050505050565b5f61126f81611fac565b50600655565b611280858585610ab3565b833b156112c8576112c885858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061216892505050565b5050505050565b336112d982610ea0565b73ffffffffffffffffffffffffffffffffffffffff1614611326576040517f4b6e7f1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80611364611104337f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b92505091505f6113a4845f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b6bffffffffffffffffffffffff169050604081901c5f146113f1576040517f5a049a9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80408061142a576040517f3e068cb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611457856b3fffffffffffffffffffffff878460405160200161105d929190918252602082015260400190565b6112c833604085901b6bffffffff00000000000000001663ffffffff871617611146565b5f6114af6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6060740100000008000000080000000800000008000000085f85611503815f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b60405160200161154292919091825260a01b7fffffffffffffffffffffffff0000000000000000000000000000000000000000166020820152602c0190565b604051602081830303815290604052805190602001205f1c9050611565816121e9565b94505f858015611594576001811461159d57600281146115a657600381146115af57600481146115b8576115bd565b600a91506115bd565b600f91506115bd565b601691506115bd565b602091506115bd565b602d91505b506115c9838284612282565b92506040518060c001604052806115e95f8661232d90919063ffffffff16565b81526020016116018560016020021c63ffffffff1690565b815260200163ffffffff604086901c16815260200163ffffffff606086901c16815260200163ffffffff608086901c16815260200163ffffffff60a086901c169052945061164f828761233a565b959794965050505050565b6060611698825f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460601b151590565b6116ce576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600580546116dc90613002565b80601f016020809104026020016040519081016040528092919081815260200182805461170890613002565b80156117535780601f1061172a57610100808354040283529160200191611753565b820191905f5260205f20905b81548152906001019060200180831161173657829003601f168201915b5050505050905080515f036117765760405180602001604052805f815250610e99565b80611780846124d3565b6040516020016117919291906131a7565b6040516020818303038152906040529392505050565b5f6117b181611fac565b506002805467ffffffffffffffff90921665010000000000027fffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffff909216919091179055565b5f61180081611fac565b50600280547fffffff00000000000000000000000000000000ffffffffffffffffffffffffff166d01000000000000000000000000006fffffffffffffffffffffffffffffffff958616021790556003805484167001000000000000000000000000000000009385169390930292909217909155600480547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691909216179055565b5f828152602081905260409020600101546118bd81611fac565b610c1d83836120af565b60025460ff16611903576040517f0aea1c5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035468010000000000000000900467ffffffffffffffff16421015611955576040517f10d3e4c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611998815f611993337f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b612533565b50565b5f6119a581611fac565b8167ffffffffffffffff168367ffffffffffffffff1611156119f3576040517f80784dd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8267ffffffffffffffff165f03611a36576040517f80784dd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506003805467ffffffffffffffff92831668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009091169290931691909117919091179055565b600754611a9281611fac565b60028054610bf4918591610100900463ffffffff16906001611ab383613202565b91906101000a81548163ffffffff021916908363ffffffff16021790555063ffffffff166b3fffffffffffffffffffffff851661292a565b5f611af581611fac565b50600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055565b5f611b3281611fac565b50600155565b60025460ff16611b74576040517f0aea1c5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035467ffffffffffffffff16421015611bba576040517f1e94bf2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035468010000000000000000900467ffffffffffffffff16421115611c0c576040517f1e94bf2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80611c4a611104337f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b50909250905083611c5c836001613224565b1115611c94576040517fb9213f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b16602082015260348101869052611cf39188918891906054016040516020818303038152906040528051906020012061224a565b611d29576040517facab000c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d5f836001604087901b6bffffffff000000000000000016602085901b67ffffffff000000001663ffffffff87161717612533565b505050505050565b5f805f611da6611104857f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b9250925092509193909250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610a4e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a4e565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216915081611ea15763ceea21b65f526004601cfd5b818514851517611ec557815f526030600c2054611ec557634b6e7f185f526004601cfd5b6001018390558183827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a450505050565b73ffffffffffffffffffffffffffffffffffffffff831615801590611f7557506040611f54825f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b6bffffffffffffffffffffffff16901c6bffffffffffffffffffffffff165f145b15610bf4576040517f0ea6dccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61199881336129d1565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff166120a8575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556120463390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610a4e565b505f610a4e565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16156120a8575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610a4e565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a084015280156121af578060c08401826020870160045afa505b60208360a48301601c86015f8a5af16121d0573d156121d0573d5f843e3d83fd5b508060e01b825114611d5f5763d1a57ed65f526004601cfd5b5f806121f6606484613264565b9050602d811015612209575f9150612244565b604b81101561221b5760019150612244565b605a81101561222d5760029150612244565b606281101561223f5760039150612244565b600491505b50919050565b5f831561227a578360051b8501855b803580851160051b94855260209485185260405f2093018181106122595750505b501492915050565b5f805f805b851561232257612298600686613264565b9250826005036122ab57600191506122ff565b600a86106122ba5760046122bd565b60025b60ff169050826004036122d8576122d5600282613277565b90505b8086106122e557806122e7565b855b6122f19086613264565b6122fc906001613224565b91505b612309828761328a565b95506020830282901b87019650600585901c9450612287565b509495945050505050565b6020021c63ffffffff1690565b60605f6064840683801561236d576001811461237857600281146123835760038114612391576004811461239f576123a4565b6019821092506123a4565b6032821092506123a4565b600a821060010192506123a4565b604b821060010192506123a4565b600292505b5050805f036123b35750610a4e565b8067ffffffffffffffff8111156123cc576123cc612fd5565b6040519080825280602002602001820160405280156123f5578160200160208202803683370190505b509150600654846124069190613264565b612411906001613224565b825f815181106124235761242361329d565b602002602001018181525050806002036124cc575f600654600886901c61244a9190613264565b612455906001613224565b90505b825f8151811061246a5761246a61329d565b602002602001015181036124a057600654600886901c9561248e919060101c613264565b612499906001613224565b9050612458565b6124ab816001613224565b836001815181106124be576124be61329d565b602002602001018181525050505b5092915050565b60606080604051019050602081016040525f8152805f19835b928101926030600a8206018453600a9004806124ec5750508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b63ffffffff81811690602083901c811690604084901c16612555600184613224565b9250811561258f576040517f0ea6dccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025465010000000000900467ffffffffffffffff168311156125de576040517f024fcb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254610100900463ffffffff167f00000000000000000000000000000000000000000000000000000000000000006126188260016132ca565b63ffffffff161115612656576040517f7d3d824900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b861561271f57600480546040517f49a01c290000000000000000000000000000000000000000000000000000000081523392810192909252600160248301526fffffffffffffffffffffffffffffffff1660448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906349a01c29906064015f604051808303815f87803b158015612704575f80fd5b505af1158015612716573d5f803e3d5ffd5b5050505061289d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308961278d576002546d010000000000000000000000000090046fffffffffffffffffffffffffffffffff166127b7565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff93841660048201529290911660248301526fffffffffffffffffffffffffffffffff1660448201526064016020604051808303815f875af115801561283f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128639190612fba565b15155f0361289d576040517ff499da2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6128d133604084901b6bffffffff000000000000000016602084901b67ffffffff000000001663ffffffff88161717611146565b6128f63363ffffffff831667ffffffffffffffff6128f0436005613224565b1661292a565b6129018160016132ca565b600260016101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b6129355f8484611ef8565b8260601b60601c9250815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52828160a01b1760205f208301830155825f52601c600c20600181540163ffffffff811685026129a35767ea553b3401336cea851560021b526004601cfd5b905581835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8138a4505050565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610aaf576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5f60208284031215612a6a575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e99575f80fd5b5f5b83811015612ab3578181015183820152602001612a9b565b50505f910152565b602081525f8251806020840152612ad9816040850160208701612a99565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b5f60208284031215612b1b575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ef9575f80fd5b5f8060408385031215612b56575f80fd5b612b5f83612b22565b946020939093013593505050565b5f805f60608486031215612b7f575f80fd5b612b8884612b22565b9250612b9660208501612b22565b9150604084013590509250925092565b5f8060408385031215612bb7575f80fd5b82359150612bc760208401612b22565b90509250929050565b5f60208284031215612be0575f80fd5b610e9982612b22565b5f8060408385031215612bfa575f80fd5b50508035926020909101359150565b5f8083601f840112612c19575f80fd5b50813567ffffffffffffffff811115612c30575f80fd5b602083019150836020828501011115612c47575f80fd5b9250929050565b5f8060208385031215612c5f575f80fd5b823567ffffffffffffffff811115612c75575f80fd5b612c8185828601612c09565b90969095509350505050565b8015158114611998575f80fd5b5f8060408385031215612cab575f80fd5b612cb483612b22565b91506020830135612cc481612c8d565b809150509250929050565b5f8083601f840112612cdf575f80fd5b50813567ffffffffffffffff811115612cf6575f80fd5b6020830191508360208260051b8501011115612c47575f80fd5b5f805f60408486031215612d22575f80fd5b833567ffffffffffffffff811115612d38575f80fd5b612d4486828701612ccf565b909790965060209590950135949350505050565b5f805f805f60808688031215612d6c575f80fd5b612d7586612b22565b9450612d8360208701612b22565b935060408601359250606086013567ffffffffffffffff811115612da5575f80fd5b612db188828901612c09565b969995985093965092949392505050565b5f610100808301868452602086516020860152602087015160408601526040870151606086015260608701516080860152608087015160a086015260a087015160c08601528260e08601528192508551808352610120860193506020870192505f5b81811015612e4057835185529382019392820192600101612e24565b509298975050505050505050565b803567ffffffffffffffff81168114610ef9575f80fd5b5f60208284031215612e75575f80fd5b610e9982612e4e565b80356fffffffffffffffffffffffffffffffff81168114610ef9575f80fd5b5f805f60608486031215612eaf575f80fd5b612eb884612e7e565b9250612ec660208501612e7e565b9150612ed460408501612e7e565b90509250925092565b5f60208284031215612eed575f80fd5b8135610e9981612c8d565b5f8060408385031215612f09575f80fd5b612f1283612e4e565b9150612bc760208401612e4e565b5f8060408385031215612f31575f80fd5b612f3a83612b22565b9150612bc760208401612b22565b5f805f8060608587031215612f5b575f80fd5b843567ffffffffffffffff811115612f71575f80fd5b612f7d87828801612ccf565b909550935050602085013591506040850135612f9881612c8d565b939692955090935050565b5f60208284031215612fb3575f80fd5b5051919050565b5f60208284031215612fca575f80fd5b8151610e9981612c8d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061301657607f821691505b602082108103612244577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f821115610bf457805f5260205f20601f840160051c810160208510156130725750805b601f840160051c820191505b818110156112c8575f815560010161307e565b67ffffffffffffffff8311156130a9576130a9612fd5565b6130bd836130b78354613002565b8361304d565b5f601f84116001811461310d575f85156130d75750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556112c8565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b8281101561315a578685013582556020948501946001909201910161313a565b5086821015613195577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f83516131b8818460208801612a99565b8351908301906131cc818360208801612a99565b01949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f63ffffffff80831681810361321a5761321a6131d5565b6001019392505050565b80820180821115610a4e57610a4e6131d5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f8261327257613272613237565b500690565b5f8261328557613285613237565b500490565b81810381811115610a4e57610a4e6131d5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b63ffffffff8181168382160190808211156124cc576124cc6131d556fea26469706673582212203428732351274f270894c8f784972de23d070b53ebd42717bf2521cc14e0275864736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000004a0633143df750d5116c081d9925f64dd2a7affe000000000000000000000000ba399d1eea8b4268a0bc2f9cc1f6093ca13510c0c197bdc9e0ef9bfb8143761da009492a768b4804ad2834f249e4ebc7378649330000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000663089c4000000000000000000000000000000000000000000000000000000006631db44000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001368747470733a2f2f736f756c6e66742e696f2f00000000000000000000000000