solc-0.8.36-memorymasking-07 0xd86756dbb01e75a11aadacb75c8495759ed92033 optimized
9060 bytes
5f1960805260a0604052348015610014575f5ffd5b5060043610610202575f3560e01c806370a0823111610119578063c2376dff116100ae578063dd62ed3e1161007e578063dd62ed3e14610475578063e5c4fffe146104a8578063e696393a146104d8578063f51b0fd4146104e1578063f9854bfc146104e9575f5ffd5b8063c2376dff1461043f578063c7af335214610447578063cd6dc6871461044f578063d38bfff414610462575f5ffd5b80639d01fc72116100e95780639d01fc72146103f35780639dc29fac14610406578063a9059cbb14610419578063baa9c9db1461042c575f5ffd5b806370a08231146103b05780637a46a9c5146103c35780637d0d66ff146103cb57806395d89b41146103d3575f5ffd5b806339a7919f1161019a5780635d36b1901161016a5780635d36b190146103375780635f5a85771461033f578063609350cd146103625780636691cb3d146103855780636b96be391461038d575f5ffd5b806339a7919f146102d457806340c10f19146102e7578063430bf08a146102fa578063456ee28614610308575f5ffd5b80630c340a24116101d55780630c340a241461028e57806318160ddd146102a957806323b872dd146102b2578063313ce567146102c5575f5ffd5b806306a2da3d1461020657806306fdde031461021b578063077f22b714610255578063095ea7b31461026b575b5f5ffd5b610219610214366004611ffe565b610511565b005b60408051808201909152600c81526b27b934b3b4b71022ba3432b960a11b60208201525b60405161024c9190612019565b60405180910390f35b61025d610753565b60405190815260200161024c565b61027e61027936600461204e565b61076b565b604051901515815260200161024c565b6102966107d2565b604051607451909116815260200161024c565b61025d609a5481565b61027e6102c0366004612078565b6107e8565b6040516012815260200161024c565b6102196102e23660046120b6565b610900565b6102196102f536600461204e565b610ac7565b609c54610296906074511681565b61032a610316366004611ffe565b60a26020525f908152604090205460ff1681565b60405161024c91906120e1565b610219610bde565b61029661034d366004611ffe565b60a46020525f90815260409020546074511681565b61025d610370366004611ffe565b607451165f90815260a1602052604090205490565b61025d610c7a565b61029661039b366004611ffe565b60a56020525f90815260409020546074511681565b61025d6103be366004611ffe565b610c8d565b609f5461025d565b609e5461025d565b60408051808201909152600481526309e8aa8960e31b602082015261023f565b610219610401366004612107565b610d62565b61021961041436600461204e565b6112a1565b61027e61042736600461204e565b61137d565b61021961043a366004611ffe565b6113fa565b610219611473565b61027e61147c565b61021961045d36600461204e565b6114a1565b610219610470366004611ffe565b611575565b61025d610483366004612107565b6074519182165f908152609b6020908152604080832093909416825291909152205490565b6104bb6104b6366004611ffe565b61160e565b60408051938452602084019290925215159082015260600161024c565b61025d60a05481565b61021961163c565b6104fc6104f7366004611ffe565b611645565b6040805192835260208301919091520161024c565b61051961147c565b806105925750609c5f9054906101000a9004607451166074511663570d8e1d604051816064511660e01b8152600401602060405180830381865afa158015610563573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610587919061213e565b607451163360745116145b6105b75760405162461bcd60e51b81526004016105ae90612159565b60405180910390fd5b6074518181165f90815260a46020526040902054166106135760405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105ae565b6074518082165f90815260a460205260408120549091169061063483610c8d565b90505f61064083610c8d565b60745184165f908152609d602052604081205491925061065f836116ba565b6074518681165f81815260a56020908152604080832080546001600160a01b0319908116909155948c16835260a48252808320805490951690945560a2808252848320805460ff19908116600117909155609d8084528685208c905594845290825284832080549091166002179055919091529081208290559091506106e4836116fa565b6106ed836116fa565b6106f791906121b5565b905061070b81610706876116fa565b611767565b60408051607480518a16825251881660208201527fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3910160405180910390a150505050505050565b5f633b9aca00609e5461076691906121db565b905090565b335f818152609b602090815260408083206074518716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107c09086815260200190565b60405180910390a35060015b92915050565b5f6107665f5160206123445f395f51905f525490565b5f60745183166108355760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b60448201526064016105ae565b60745184165f908152609b60209081526040808320338452909152902054808311156108985760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b60448201526064016105ae565b60745185165f908152609b60209081526040808320338452909152902083820390556108c58585856117ab565b836074511685607451165f5160206123245f395f51905f52856040516108ed91815260200190565b60405180910390a3506001949350505050565b609c546074511633146109255760405162461bcd60e51b81526004016105ae906121fa565b5f609a54116109765760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420696e637265617365203020737570706c79000000000000000060448201526064016105ae565b80609a54036109c957609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a150565b60705181116109d857806109dc565b6070515b609a81905560a0545f916109f09190612231565b905080600182609e54670de0b6b3a7640000610a0c9190612244565b610a16919061225b565b610a209190612231565b610a2a91906121db565b609f819055610a7b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206368616e676520696e20737570706c79000000000000000060448201526064016105ae565b609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a1505b50565b609c54607451163314610aec5760405162461bcd60e51b81526004016105ae906121fa565b6074518216610b3d5760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016105ae565b5f5f610b5184610b4c856116fa565b6117f2565b91509150610b5f8282611767565b82609a54610b6d919061225b565b609a81905560705111610baf5760405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b60448201526064016105ae565b6040518381526074518516905f905f5160206123245f395f51905f52906020015b60405180910390a350505050565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db5460745116336074511614610c6f5760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b60648201526084016105ae565b610c7833611a94565b565b5f633b9aca00609f5461076691906121db565b60745181165f90815260a2602052604081205460ff166003816004811115610cb757610cb76120cd565b03610cd3575050607451165f908152609d602052604090205490565b5f610cdd84611aee565b60745185165f908152609d6020526040902054610d0290670de0b6b3a7640000612244565b610d0c91906121db565b90506004826004811115610d2257610d226120cd565b03610d5b576074518085165f90815260a560209081526040808320549093168252609d90522054610d539082612231565b949350505050565b9392505050565b610d6a61147c565b80610de35750609c5f9054906101000a9004607451166074511663570d8e1d604051816064511660e01b8152600401602060405180830381865afa158015610db4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd8919061213e565b607451163360745116145b610dff5760405162461bcd60e51b81526004016105ae90612159565b6074518216610e505760405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f77656400000060448201526064016105ae565b6074518116610ea15760405162461bcd60e51b815260206004820152601b60248201527f5a65726f20746f2061646472657373206e6f7420616c6c6f776564000000000060448201526064016105ae565b8060745116826074511603610ef85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f742064656c656761746520746f2073656c6600000000000000000060448201526064016105ae565b6074518181165f90815260a5602052604090205416158015610f2c57506074518181165f90815260a4602052604090205416155b8015610f4a57506074518281165f90815260a5602052604090205416155b8015610f6857506074518281165f90815260a4602052604090205416155b610fc05760405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c6567616044820152633a34b7b760e11b60648201526084016105ae565b6074518083165f90815260a2602052604080822054928416825281205460ff928316921690826004811115610ff757610ff76120cd565b148061101457506001826004811115611012576110126120cd565b145b806110305750600282600481111561102e5761102e6120cd565b145b61107c5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642072656261736553746174652066726f6d000000000000000060448201526064016105ae565b5f81600481111561108f5761108f6120cd565b14806110ac575060018160048111156110aa576110aa6120cd565b145b806110c8575060028160048111156110c6576110c66120cd565b145b61110d5760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726562617365537461746520746f60501b60448201526064016105ae565b60745184165f90815260a16020526040812054900361112f5761112f84611b17565b60745183165f90815260a16020526040902054156111505761115083611cd4565b5f61115a85610c8d565b90505f61116685610c8d565b60745186165f908152609d602052604081205491925061118e611189848661225b565b6116ba565b6074518981165f81815260a46020908152604080832080546001600160a01b0319908116968f1696871790915585845260a5835281842080549091168517905592825260a2808252838320805460ff1990811660031790915560a18352848420670de0b6b3a76400009055609d8084528585208c90559584529082528383208054909116600417905592909252812082905590915061122c836116fa565b611235836116fa565b61123f91906121b5565b90506112578161124e876116fa565b6107069061226e565b60408051607480518c168252518a1660208201527f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3910160405180910390a1505050505050505050565b609c546074511633146112c65760405162461bcd60e51b81526004016105ae906121fa565b60745182166113175760405162461bcd60e51b815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f206164647265737300000000000060448201526064016105ae565b8015611379575f5f6113358461132c856116fa565b610b4c9061226e565b915091506113438282611767565b82609a546113519190612231565b609a556040518381525f906074518616905f5160206123245f395f51905f5290602001610bd0565b5050565b5f60745183166113ca5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b60448201526064016105ae565b6113d53384846117ab565b60405182815260745184169033905f5160206123245f395f51905f52906020016107c0565b61140261147c565b61141e5760405162461bcd60e51b81526004016105ae90612288565b607451811661146a5760405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105ae565b610ac481611cd4565b610c7833611b17565b5f6114925f5160206123445f395f51905f525490565b60745116336074511614905090565b6114a961147c565b6114c55760405162461bcd60e51b81526004016105ae90612288565b607451821661150b5760405162461bcd60e51b81526020600482015260126024820152715a65726f207661756c74206164647265737360701b60448201526064016105ae565b609c5460745116156115555760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016105ae565b609f55609c80546001600160a01b03191660745192909216919091179055565b61157d61147c565b6115995760405162461bcd60e51b81526004016105ae90612288565b6115c1817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b80607451166115db5f5160206123445f395f51905f525490565b607451167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b60745181165f908152609d60205260408120548190819061162e85611aee565b909590945060019350915050565b610c7833611cd4565b5f5f5f61165184611aee565b9050806b033b2e3c9fd0803ce800000003611680576074519093165f908152609d602052604090205493915050565b60745184165f908152609d60205260409020546116a290633b9aca00906121db565b6116b0633b9aca00836121db565b9250925050915091565b5f670de0b6b3a76400006001609f54846116d49190612244565b6116e690670de0b6b3a764000061225b565b6116f09190612231565b6107cc91906121db565b5f6001600160ff1b038211156117635760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016105ae565b5090565b811561178f5761178b8261177c609e546116fa565b61178691906122bf565b611e8f565b609e555b8015611379576117a48161177c60a0546116fa565b60a0555050565b5f5f6117ba8561132c856116fa565b915091505f5f6117cd86610b4c876116fa565b90925090506117e96117df83866122bf565b61070683866122bf565b50505050505050565b60745182165f90815260a26020526040812054819060ff168161181c61181787610c8d565b6116fa565b90505f61182986836122bf565b12156118775760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016105ae565b5f61188561178687846122bf565b9050600383600481111561189b5761189b6120cd565b0361192d576074518088165f90815260a46020526040812054909116906118c182610c8d565b90505f6118d1611189858461225b565b60745184165f908152609d60205260409020549091506118f0906116fa565b6118f9826116fa565b61190391906121b5565b607451808c165f908152609d60205260408082208890559590911681529390932055509450611a8a565b6004836004811115611941576119416120cd565b036119c7576074518088165f90815260a560209081526040808320549093168252609d90529081205461197890611189908461225b565b60745189165f908152609d6020526040902054909150611997906116fa565b6119a0826116fa565b6119aa91906121b5565b60745189165f908152609d60205260409020919091559450611a8a565b6119d087611ee0565b60745187165f90815260a160205260409020548015611a335786945080670de0b6b3a764000014611a195760745188165f90815260a160205260409020670de0b6b3a764000090555b60745188165f908152609d60205260409020829055611a88565b5f611a3d836116ba565b6074518a165f908152609d6020526040902054909150611a5c906116fa565b611a65826116fa565b611a6f91906121b5565b6074518a165f908152609d602052604090209190915595505b505b5050509250929050565b6074518116611ae55760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f72206973206164647265737328302900000000000060448201526064016105ae565b610ac481611f94565b60745181165f90815260a160205260408120548015611b0d5792915050565b5050609f54919050565b60745181165f90815260a1602052604090205415611b775760405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265207265626173696e67000000000000000060448201526064016105ae565b60745181165f90815260a2602052604090205460ff166002816004811115611ba157611ba16120cd565b1480611bbd57505f816004811115611bbb57611bbb6120cd565b145b611c1d5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201526a18d85b881bdc1d081bdd5d60aa1b60648201526084016105ae565b60745182165f908152609d602052604081205490611c3a84610c8d565b60745185165f90815260a260209081526040808320805460ff1916600117905560a18252808320670de0b6b3a76400009055609d90915290208190559050611c96611c84836116fa565b611c8d9061226e565b610706836116fa565b604051607451851681527f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e906020015b60405180910390a150505050565b5f611cde82610c8d565b60745183165f90815260a16020526040902054909150151580611d11575060745182165f908152609d6020526040902054155b611d5d5760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e74206d757374206265206e6f6e2d7265626173696e670000000060448201526064016105ae565b60745182165f90815260a2602052604090205460ff166001816004811115611d8757611d876120cd565b1480611da357505f816004811115611da157611da16120cd565b145b611e065760405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201526d373a399031b0b71037b83a1034b760911b60648201526084016105ae565b5f611e10836116ba565b60745185165f90815260a260209081526040808320805460ff1916600217905560a18252808320839055609d90915290208190559050611e5b611e52826116fa565b61124e856116fa565b604051607451851681527f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f90602001611cc6565b5f5f8212156117635760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016105ae565b60745181163b5f811580611f315750816017148015611f3157508260745116803b806020016040519081016040528181525f908060200190933c611f23906122e6565b607d51191662ef010060e81b145b905080158015611f65575060745183165f90815260a2602052604081205460ff166004811115611f6357611f636120cd565b145b8015611f81575060745183165f90815260a16020526040902054155b15611f8f57611f8f83611b17565b505050565b8060745116611fae5f5160206123445f395f51905f525490565b607451167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a35f5160206123445f395f51905f5255565b60745181168114610ac4575f5ffd5b5f6020828403121561200e575f5ffd5b8135610d5b81611fef565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f6040838503121561205f575f5ffd5b823561206a81611fef565b946020939093013593505050565b5f5f5f6060848603121561208a575f5ffd5b833561209581611fef565b925060208401356120a581611fef565b929592945050506040919091013590565b5f602082840312156120c6575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b602081016005831061210157634e487b7160e01b5f52602160045260245ffd5b91905290565b5f5f60408385031215612118575f5ffd5b823561212381611fef565b9150602083013561213381611fef565b809150509250929050565b5f6020828403121561214e575f5ffd5b8151610d5b81611fef565b60208082526028908201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060408201526723b7bb32b93737b960c11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8181035f8312801583831316838312821617156121d4576121d46121a1565b5092915050565b5f826121f557634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526017908201527f43616c6c6572206973206e6f7420746865205661756c74000000000000000000604082015260600190565b818103818111156107cc576107cc6121a1565b80820281158282048414176107cc576107cc6121a1565b808201808211156107cc576107cc6121a1565b5f600160ff1b8201612282576122826121a1565b505f0390565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b8082018281125f8312801582168215821617156122de576122de6121a1565b505092915050565b805160208201516001600160e81b031981169190600382101561231c576001600160e81b03196003838103901b81901b82161692505b505091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a