60806040526040518060400160405280601081526020017f556e6973776170204469616d6f6e6473000000000000000000000000000000008152505f9081620000499190620003a7565b506040518060400160405280600781526020017f4449414d4f4e440000000000000000000000000000000000000000000000000081525060019081620000909190620003a7565b506401cf8b9a406002556006600355620f4240600455612710600555348015620000b8575f80fd5b50600254600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200048b565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001bf57607f821691505b602082108103620001d557620001d46200017a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001fc565b620002458683620001fc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200028f6200028962000283846200025d565b62000266565b6200025d565b9050919050565b5f819050919050565b620002aa836200026f565b620002c2620002b98262000296565b84845462000208565b825550505050565b5f90565b620002d8620002ca565b620002e58184846200029f565b505050565b5b818110156200030c57620003005f82620002ce565b600181019050620002eb565b5050565b601f8211156200035b576200032581620001db565b6200033084620001ed565b8101602085101562000340578190505b620003586200034f85620001ed565b830182620002ea565b50505b505050565b5f82821c905092915050565b5f6200037d5f198460080262000360565b1980831691505092915050565b5f6200039783836200036c565b9150826002028217905092915050565b620003b28262000143565b67ffffffffffffffff811115620003ce57620003cd6200014d565b5b620003da8254620001a7565b620003e782828562000310565b5f60209050601f8311600181146200041d575f841562000408578287015190505b6200041485826200038a565b86555062000483565b601f1984166200042d86620001db565b5f5b8281101562000456578489015182556001820191506020850194506020810190506200042f565b8683101562000476578489015162000472601f8916826200036c565b8355505b6001600288020188555050505b505050505050565b6133ef80620004995f395ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806370a08231116100b6578063a9059cbb1161007a578063a9059cbb14610361578063af640d0f14610391578063b91ac788146103af578063dd62ed3e146103df578063e985e9c51461040f578063efa9a1ad1461043f57610135565b806370a08231146102bd57806391cca3db146102ed57806393f690741461030b57806395d89b4114610327578063a22cb4651461034557610135565b80631a72b87d116100fd5780631a72b87d1461020557806323b872dd14610235578063313ce567146102655780633ccfd60b146102835780636352211e1461028d57610135565b806306fdde03146101395780630739440114610157578063081812fc14610187578063095ea7b3146101b757806318160ddd146101e7575b5f80fd5b61014161045d565b60405161014e9190612962565b60405180910390f35b610171600480360381019061016c9190612a17565b6104ec565b60405161017e9190612a81565b60405180910390f35b6101a1600480360381019061019c9190612acd565b6105b1565b6040516101ae9190612b07565b60405180910390f35b6101d160048036038101906101cc9190612b20565b610651565b6040516101de9190612a81565b60405180910390f35b6101ef6108ca565b6040516101fc9190612b6d565b60405180910390f35b61021f600480360381019061021a9190612b20565b6108d3565b60405161022c9190612b95565b60405180910390f35b61024f600480360381019061024a9190612bae565b610915565b60405161025c9190612a81565b60405180910390f35b61026d6109fb565b60405161027a9190612b6d565b60405180910390f35b61028b610a04565b005b6102a760048036038101906102a29190612acd565b610b71565b6040516102b49190612b07565b60405180910390f35b6102d760048036038101906102d29190612bfe565b610ba1565b6040516102e49190612b6d565b60405180910390f35b6102f5610be7565b6040516103029190612b07565b60405180910390f35b61032560048036038101906103209190612c29565b610c0c565b005b61032f610d9b565b60405161033c9190612962565b60405180910390f35b61035f600480360381019061035a9190612ca3565b610e2b565b005b61037b60048036038101906103769190612b20565b610f23565b6040516103889190612a81565b60405180910390f35b610399610ffd565b6040516103a69190612b6d565b60405180910390f35b6103c960048036038101906103c49190612acd565b611003565b6040516103d69190612b07565b60405180910390f35b6103f960048036038101906103f49190612ce1565b611037565b6040516104069190612b6d565b60405180910390f35b61042960048036038101906104249190612ce1565b6110b9565b6040516104369190612a81565b60405180910390f35b610447611147565b6040516104549190612b6d565b60405180910390f35b60605f805461046b90612d4c565b80601f016020809104026020016040519081016040528092919081815260200182805461049790612d4c565b80156104e25780601f106104b9576101008083540402835291602001916104e2565b820191905f5260205f20905b8154815290600101906020018083116104c557829003601f168201915b5050505050905090565b5f6104fc84848461ffff1661118e565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461054a9190612da9565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461059f9190612ddc565b92505081905550600190509392505050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610619575f80fd5b60115f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f620f42408211156107505781600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506106e5836001610e2b565b818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a75f6040516107439190612e51565b60405180910390a46108c0565b5f60105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107c757506107c581336110b9565b155b15610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90612eb4565b60405180910390fd5b8360115f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004548473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7866040516108b69190612f02565b60405180910390a4505b6001905092915050565b5f600254905090565b6013602052815f5260405f2081815481106108ec575f80fd5b905f5260205f209060109182820401919006600202915091509054906101000a900461ffff1681565b5f600554821061093a5761092a843384611532565b610935848484611680565b6109f0565b61094584848461118e565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109939190612da9565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109e89190612ddc565b925050819055505b600190509392505050565b5f600354905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90612f65565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610af7573d5f803e3d5ffd5b505f600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811115610b6e57610b6d3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611680565b5b50565b6010602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290612f65565b60405180910390fd5b8260095f60038110610cb057610caf612f83565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816009600160038110610d0457610d03612f83565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806009600260038110610d5857610d57612f83565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b606060018054610daa90612d4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd690612d4c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b5050505050905090565b8060125f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f179190612a81565b60405180910390a35050565b5f6005548210610f3d57610f38338484611680565b610ff3565b610f4833848461118e565b600454600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f969190612da9565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610feb9190612ddc565b925050819055505b6001905092915050565b60065481565b60098160038110611012575f80fd5b015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f60135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050905090565b60095f600381106111a2576111a1612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061125c5750600960016003811061120c5761120b612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806112c75750600960026003811061127757611276612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b600d5f6101000a81548160ff02191690831515021790555060105f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612ffa565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113ea57506113bb816105b1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806113fb57506113fa83336110b9565b5b806114115750600d5f9054906101000a900460ff165b611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790613088565b60405180910390fd5b60115f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558160105f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490613116565b60405180910390fd5b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116749190612da9565b92505081905550505050565b6005548161168e9190613161565b600781905550600754816116a29190612da9565b905060095f600381106116b8576116b7612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117725750600960016003811061172257611721612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806117dd5750600960026003811061178d5761178c612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b600d5f6101000a81548160ff02191690831515021790555060095f6003811061180957611808612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118c35750600960016003811061187357611872612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061192e575060096002600381106118de576118dd612f83565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b600d60016101000a81548160ff0219169083151502179055505f600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119939190613161565b14600d60026101000a81548160ff0219169083151502179055505f600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119f99190613161565b14600d60036101000a81548160ff0219169083151502179055505f60045482600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a609190612da9565b611a6a9190613161565b14600d60046101000a81548160ff0219169083151502179055505f60045482600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ad19190612ddc565b611adb9190613161565b14600d60056101000a81548160ff02191690831515021790555080600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613201565b60405180910390fd5b600d60019054906101000a900460ff168015611b9d5750600d60029054906101000a900460ff165b8015611bb65750600d60049054906101000a900460ff16155b80611bfd5750600d5f9054906101000a900460ff168015611be45750600d60039054906101000a900460ff16155b8015611bfc5750600d60059054906101000a900460ff165b5b80611c9c5750600d5f9054906101000a900460ff168015611c2b5750600d60039054906101000a900460ff16155b8015611c9b575060045460045482611c439190613161565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c8e9190613161565b611c989190612ddc565b10155b5b80611d2e5750600d60019054906101000a900460ff168015611ccb5750600d60029054906101000a900460ff16155b8015611d2d575060045481611ce09190613161565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d2b9190613161565b105b5b1561216d575f60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81548110611d8357611d82612f83565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff16905060105f8261ffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090613269565b60405180910390fd5b60115f8261ffff1681526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558260105f8361ffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050611f5d9190612da9565b81548110611f6e57611f6d612f83565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1660135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81548110611fdf57611fde612f83565b5b905f5260205f2090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548061205957612058613287565b5b600190038181905f5260205f2090601091828204019190066002026101000a81549061ffff0219169055905560135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f2090601091828204019190066002029091909190916101000a81548161ffff021916908361ffff1602179055508061ffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45061226e565b600d60049054906101000a900460ff161515600d60029054906101000a900460ff1615151415806122025750600454600454826121aa9190613161565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121f59190613161565b6121ff9190612ddc565b10155b1561226d57600d60019054906101000a900460ff168061222d5750600d5f9054906101000a900460ff165b61226c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226390613324565b60405180910390fd5b5b5b5f6004548261227d9190613342565b9050600d5f9054906101000a900460ff1680156122d957508060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050105b15612445575f5b8181101561243f57600c5f8154809291906122fa90613372565b91905055508360105f600c5481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600c54908060018154018082558091505060019003905f5260205f2090601091828204019190066002029091909190916101000a81548161ffff021916908361ffff160217905550600c548473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806001019150506122e0565b506127c7565b5f5b818110801561249557505f60135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050115b156127c5575f60135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815481106124ea576124e9612f83565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff16905061251d86868361ffff1661118e565b8061ffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a460135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160135f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506126069190612da9565b8154811061261757612616612f83565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1660135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154811061268857612687612f83565b5b905f5260205f2090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548061270257612701613287565b5b600190038181905f5260205f2090601091828204019190066002026101000a81549061ffff0219169055905560135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f2090601091828204019190066002029091909190916101000a81548161ffff021916908361ffff1602179055505080806127bd90613372565b915050612447565b505b81600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128139190612da9565b9250508190555081600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128669190612ddc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487846040516128ca9190612b6d565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561290f5780820151818401526020810190506128f4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612934826128d8565b61293e81856128e2565b935061294e8185602086016128f2565b6129578161291a565b840191505092915050565b5f6020820190508181035f83015261297a818461292a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129af82612986565b9050919050565b6129bf816129a5565b81146129c9575f80fd5b50565b5f813590506129da816129b6565b92915050565b5f61ffff82169050919050565b6129f6816129e0565b8114612a00575f80fd5b50565b5f81359050612a11816129ed565b92915050565b5f805f60608486031215612a2e57612a2d612982565b5b5f612a3b868287016129cc565b9350506020612a4c868287016129cc565b9250506040612a5d86828701612a03565b9150509250925092565b5f8115159050919050565b612a7b81612a67565b82525050565b5f602082019050612a945f830184612a72565b92915050565b5f819050919050565b612aac81612a9a565b8114612ab6575f80fd5b50565b5f81359050612ac781612aa3565b92915050565b5f60208284031215612ae257612ae1612982565b5b5f612aef84828501612ab9565b91505092915050565b612b01816129a5565b82525050565b5f602082019050612b1a5f830184612af8565b92915050565b5f8060408385031215612b3657612b35612982565b5b5f612b43858286016129cc565b9250506020612b5485828601612ab9565b9150509250929050565b612b6781612a9a565b82525050565b5f602082019050612b805f830184612b5e565b92915050565b612b8f816129e0565b82525050565b5f602082019050612ba85f830184612b86565b92915050565b5f805f60608486031215612bc557612bc4612982565b5b5f612bd2868287016129cc565b9350506020612be3868287016129cc565b9250506040612bf486828701612ab9565b9150509250925092565b5f60208284031215612c1357612c12612982565b5b5f612c20848285016129cc565b91505092915050565b5f805f60608486031215612c4057612c3f612982565b5b5f612c4d868287016129cc565b9350506020612c5e868287016129cc565b9250506040612c6f868287016129cc565b9150509250925092565b612c8281612a67565b8114612c8c575f80fd5b50565b5f81359050612c9d81612c79565b92915050565b5f8060408385031215612cb957612cb8612982565b5b5f612cc6858286016129cc565b9250506020612cd785828601612c8f565b9150509250929050565b5f8060408385031215612cf757612cf6612982565b5b5f612d04858286016129cc565b9250506020612d15858286016129cc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d6357607f821691505b602082108103612d7657612d75612d1f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612db382612a9a565b9150612dbe83612a9a565b9250828203905081811115612dd657612dd5612d7c565b5b92915050565b5f612de682612a9a565b9150612df183612a9a565b9250828201905080821115612e0957612e08612d7c565b5b92915050565b5f819050919050565b5f819050919050565b5f612e3b612e36612e3184612e0f565b612e18565b612a9a565b9050919050565b612e4b81612e21565b82525050565b5f602082019050612e645f830184612e42565b92915050565b7f734552654332303732313a20596f7520617265206e6f7420617070726f7665645f82015250565b5f612e9e6020836128e2565b9150612ea982612e6a565b602082019050919050565b5f6020820190508181035f830152612ecb81612e92565b9050919050565b5f612eec612ee7612ee2846129e0565b612e18565b612a9a565b9050919050565b612efc81612ed2565b82525050565b5f602082019050612f155f830184612ef3565b92915050565b7f4e6f742074686520646576656c6f7065720000000000000000000000000000005f82015250565b5f612f4f6011836128e2565b9150612f5a82612f1b565b602082019050919050565b5f6020820190508181035f830152612f7c81612f43565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f734552654332303732313a20496e636f7272656374206f776e657200000000005f82015250565b5f612fe4601b836128e2565b9150612fef82612fb0565b602082019050919050565b5f6020820190508181035f83015261301181612fd8565b9050919050565b7f734552654332303732313a20596f7520646f6e277420686176652074686520725f8201527f6967687400000000000000000000000000000000000000000000000000000000602082015250565b5f6130726024836128e2565b915061307d82613018565b604082019050919050565b5f6020820190508181035f83015261309f81613066565b9050919050565b7f734552654332303732313a20696e73756666696369656e7420616c6c6f77616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131006022836128e2565b915061310b826130a6565b604082019050919050565b5f6020820190508181035f83015261312d816130f4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61316b82612a9a565b915061317683612a9a565b92508261318657613185613134565b5b828206905092915050565b7f734552654332303732313a207472616e7366657220616d6f756e7420657863655f8201527f6564732062616c616e6365000000000000000000000000000000000000000000602082015250565b5f6131eb602b836128e2565b91506131f682613191565b604082019050919050565b5f6020820190508181035f830152613218816131df565b9050919050565b7f4e4654206e6f7420666f756e64000000000000000000000000000000000000005f82015250565b5f613253600d836128e2565b915061325e8261321f565b602082019050919050565b5f6020820190508181035f83015261328081613247565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f734552654332303732313a20627265616b2f6d616b6520746f6b656e732077695f8201527f7468206e6f6e7061697220616464726573730000000000000000000000000000602082015250565b5f61330e6032836128e2565b9150613319826132b4565b604082019050919050565b5f6020820190508181035f83015261333b81613302565b9050919050565b5f61334c82612a9a565b915061335783612a9a565b92508261336757613366613134565b5b828204905092915050565b5f61337c82612a9a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133ae576133ad612d7c565b5b60018201905091905056fea26469706673582212208c75da79804e70dbb8ebcca304e18aefecd5f451986fd6b21e510595c4641c1764736f6c63430008180033