solc-0.8.36-memorymasking-03 0xd86756dbb01e75a11aadacb75c8495759ed92033 optimized-low-runs

8903 bytes

60a06040525f19608052348015610014575f5ffd5b5060043610610199575f3560e01c806306a2da3d1461019d57806306fdde03146101b2578063077f22b7146101ec578063095ea7b3146102025780630c340a241461022557806318160ddd1461023a57806323b872dd14610243578063313ce5671461025657806339a7919f1461026557806340c10f1914610278578063430bf08a1461028b578063456ee286146102995780635d36b190146102c85780635f5a8577146102d0578063609350cd146102f35780636691cb3d146103165780636b96be391461031e57806370a08231146103415780637a46a9c5146103545780637d0d66ff1461035c57806395d89b41146103645780639d01fc72146103845780639dc29fac14610397578063a9059cbb146103aa578063baa9c9db146103bd578063c2376dff146103d0578063c7af3352146103d8578063cd6dc687146103e0578063d38bfff4146103f3578063dd62ed3e14610406578063e5c4fffe14610439578063e696393a14610469578063f51b0fd414610472578063f9854bfc1461047a575b5f5ffd5b6101b06101ab366004611e32565b6104a2565b005b60408051808201909152600c81526b27b934b3b4b71022ba3432b960a11b60208201525b6040516101e39190611e4d565b60405180910390f35b6101f46106b5565b6040519081526020016101e3565b610215610210366004611e82565b6106cd565b60405190151581526020016101e3565b61022d610734565b6040516101e39190611eac565b6101f4609a5481565b610215610251366004611ebb565b61073d565b604051601281526020016101e3565b6101b0610273366004611ef9565b61082a565b6101b0610286366004611e82565b6109b5565b609c5461022d906074511681565b6102bb6102a7366004611e32565b60a26020525f908152604090205460ff1681565b6040516101e39190611f24565b6101b0610ac7565b61022d6102de366004611e32565b60a46020525f90815260409020546074511681565b6101f4610301366004611e32565b607451165f90815260a1602052604090205490565b6101f4610b50565b61022d61032c366004611e32565b60a56020525f90815260409020546074511681565b6101f461034f366004611e32565b610b63565b609f546101f4565b609e546101f4565b60408051808201909152600481526309e8aa8960e31b60208201526101d6565b6101b0610392366004611f4a565b610c38565b6101b06103a5366004611e82565b611166565b6102156103b8366004611e82565b61123f565b6101b06103cb366004611e32565b611291565b6101b06112df565b6102156112e8565b6101b06103ee366004611e82565b611300565b6101b0610401366004611e32565b6113d4565b6101f4610414366004611f4a565b6074519182165f908152609b6020908152604080832093909416825291909152205490565b61044c610447366004611e32565b61144d565b6040805193845260208401929092521515908201526060016101e3565b6101f460a05481565b6101b061147b565b61048d610488366004611e32565b611484565b604080519283526020830191909152016101e3565b6104aa6112e8565b806105255750609c5f9054906101000a9004607451166074511663570d8e1d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051a9190611f81565b607451163360745116145b61054a5760405162461bcd60e51b815260040161054190611f9c565b60405180910390fd5b6074518181165f90815260a460205260409020541661057b5760405162461bcd60e51b815260040161054190611fe4565b6074518082165f90815260a460205260408120549091169061059c83610b63565b90505f6105a883610b63565b60745184165f908152609d60205260408120549192506105c7836114f8565b6074518681165f81815260a56020908152604080832080546001600160a01b0319908116909155948c16835260a48252808320805490951690945560a2808252848320805460ff19908116600117909155609d8084528685208c9055948452908252848320805490911660021790559190915290812082905590915061064c83611538565b61065583611538565b61065f919061202a565b90506106738161066e87611538565b6115a5565b7fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd387876040516106a4929190612050565b60405180910390a150505050505050565b5f633b9aca00609e546106c89190612065565b905090565b335f818152609b602090815260408083206074518716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107229086815260200190565b60405180910390a35060015b92915050565b5f6106c86115e9565b5f607451831661075f5760405162461bcd60e51b815260040161054190612084565b60745184165f908152609b60209081526040808320338452909152902054808311156107c25760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b6044820152606401610541565b60745185165f908152609b60209081526040808320338452909152902083820390556107ef8585856115fb565b836074511685607451165f5160206121ed5f395f51905f528560405161081791815260200190565b60405180910390a3506001949350505050565b609c5460745116331461084f5760405162461bcd60e51b8152600401610541906120b6565b5f609a541161089b5760405162461bcd60e51b815260206004820152601860248201527743616e6e6f7420696e637265617365203020737570706c7960401b6044820152606401610541565b80609a54036108d5575f51602061222d5f395f51905f52609a54609e54609f546040516108ca939291906120e7565b60405180910390a150565b60705181116108e457806108e8565b6070515b609a81905560a0545f916108fc91906120fd565b905080600182609e54670de0b6b3a76400006109189190612110565b6109229190612127565b61092c91906120fd565b6109369190612065565b609f8190556109825760405162461bcd60e51b8152602060048201526018602482015277496e76616c6964206368616e676520696e20737570706c7960401b6044820152606401610541565b5f51602061222d5f395f51905f52609a54609e54609f546040516109a8939291906120e7565b60405180910390a1505b50565b609c546074511633146109da5760405162461bcd60e51b8152600401610541906120b6565b6074518216610a265760405162461bcd60e51b81526020600482015260186024820152774d696e7420746f20746865207a65726f206164647265737360401b6044820152606401610541565b5f5f610a3a84610a3585611538565b611642565b91509150610a4882826115a5565b82609a54610a569190612127565b609a81905560705111610a985760405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b6044820152606401610541565b6040518381526074518516905f905f5160206121ed5f395f51905f52906020015b60405180910390a350505050565b5f51602061224d5f395f51905f525460745116336074511614610b455760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b6064820152608401610541565b610b4e336118e4565b565b5f633b9aca00609f546106c89190612065565b60745181165f90815260a2602052604081205460ff166003816004811115610b8d57610b8d611f10565b03610ba9575050607451165f908152609d602052604090205490565b5f610bb38461193b565b60745185165f908152609d6020526040902054610bd890670de0b6b3a7640000612110565b610be29190612065565b90506004826004811115610bf857610bf8611f10565b03610c31576074518085165f90815260a560209081526040808320549093168252609d90522054610c2990826120fd565b949350505050565b9392505050565b610c406112e8565b80610cbb5750609c5f9054906101000a9004607451166074511663570d8e1d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb09190611f81565b607451163360745116145b610cd75760405162461bcd60e51b815260040161054190611f9c565b6074518216610d285760405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f7765640000006044820152606401610541565b6074518116610d775760405162461bcd60e51b815260206004820152601b60248201527a16995c9bc81d1bc81859191c995cdcc81b9bdd08185b1b1bddd959602a1b6044820152606401610541565b8060745116826074511603610dc85760405162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b6044820152606401610541565b6074518181165f90815260a5602052604090205416158015610dfc57506074518181165f90815260a4602052604090205416155b8015610e1a57506074518281165f90815260a5602052604090205416155b8015610e3857506074518281165f90815260a4602052604090205416155b610e905760405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c6567616044820152633a34b7b760e11b6064820152608401610541565b6074518083165f90815260a2602052604080822054928416825281205460ff928316921690826004811115610ec757610ec7611f10565b1480610ee457506001826004811115610ee257610ee2611f10565b145b80610f0057506002826004811115610efe57610efe611f10565b145b610f475760405162461bcd60e51b8152602060048201526018602482015277496e76616c69642072656261736553746174652066726f6d60401b6044820152606401610541565b5f816004811115610f5a57610f5a611f10565b1480610f7757506001816004811115610f7557610f75611f10565b145b80610f9357506002816004811115610f9157610f91611f10565b145b610fd85760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726562617365537461746520746f60501b6044820152606401610541565b60745184165f90815260a160205260408120549003610ffa57610ffa84611964565b60745183165f90815260a160205260409020541561101b5761101b83611b1b565b5f61102585610b63565b90505f61103185610b63565b60745186165f908152609d60205260408120549192506110596110548486612127565b6114f8565b6074518981165f81815260a46020908152604080832080546001600160a01b0319908116968f1696871790915585845260a5835281842080549091168517905592825260a2808252838320805460ff1990811660031790915560a18352848420670de0b6b3a76400009055609d8084528585208c9055958452908252838320805490911660041790559290925281208290559091506110f783611538565b61110083611538565b61110a919061202a565b90506111228161111987611538565b61066e9061213a565b7f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a38989604051611153929190612050565b60405180910390a1505050505050505050565b609c5460745116331461118b5760405162461bcd60e51b8152600401610541906120b6565b60745182166111d95760405162461bcd60e51b815260206004820152601a6024820152794275726e2066726f6d20746865207a65726f206164647265737360301b6044820152606401610541565b801561123b575f5f6111f7846111ee85611538565b610a359061213a565b9150915061120582826115a5565b82609a5461121391906120fd565b609a556040518381525f906074518616905f5160206121ed5f395f51905f5290602001610ab9565b5050565b5f60745183166112615760405162461bcd60e51b815260040161054190612084565b61126c3384846115fb565b60405182815260745184169033905f5160206121ed5f395f51905f5290602001610722565b6112996112e8565b6112b55760405162461bcd60e51b815260040161054190612154565b60745181166112d65760405162461bcd60e51b815260040161054190611fe4565b6109b281611b1b565b610b4e33611964565b5f6112f16115e9565b60745116336074511614905090565b6113086112e8565b6113245760405162461bcd60e51b815260040161054190612154565b607451821661136a5760405162461bcd60e51b81526020600482015260126024820152715a65726f207661756c74206164647265737360701b6044820152606401610541565b609c5460745116156113b45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610541565b609f55609c80546001600160a01b03191660745192909216919091179055565b6113dc6112e8565b6113f85760405162461bcd60e51b815260040161054190612154565b61140d815f51602061224d5f395f51905f5255565b806074511661141a6115e9565b607451167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b60745181165f908152609d60205260408120548190819061146d8561193b565b909590945060019350915050565b610b4e33611b1b565b5f5f5f6114908461193b565b905080676765c793fa10079d601b1b036114be576074519093165f908152609d602052604090205493915050565b60745184165f908152609d60205260409020546114e090633b9aca0090612065565b6114ee633b9aca0083612065565b9250925050915091565b5f670de0b6b3a76400006001609f54846115129190612110565b61152490670de0b6b3a7640000612127565b61152e91906120fd565b61072e9190612065565b5f6001600160ff1b038211156115a15760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610541565b5090565b81156115cd576115c9826115ba609e54611538565b6115c49190612188565b611cd0565b609e555b801561123b576115e2816115ba60a054611538565b60a0555050565b5f51602061220d5f395f51905f525490565b5f5f61160a856111ee85611538565b915091505f5f61161d86610a3587611538565b909250905061163961162f8386612188565b61066e8386612188565b50505050505050565b60745182165f90815260a26020526040812054819060ff168161166c61166787610b63565b611538565b90505f6116798683612188565b12156116c75760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610541565b5f6116d56115c48784612188565b905060038360048111156116eb576116eb611f10565b0361177d576074518088165f90815260a460205260408120549091169061171182610b63565b90505f6117216110548584612127565b60745184165f908152609d602052604090205490915061174090611538565b61174982611538565b611753919061202a565b607451808c165f908152609d602052604080822088905595909116815293909320555094506118da565b600483600481111561179157611791611f10565b03611817576074518088165f90815260a560209081526040808320549093168252609d9052908120546117c8906110549084612127565b60745189165f908152609d60205260409020549091506117e790611538565b6117f082611538565b6117fa919061202a565b60745189165f908152609d602052604090209190915594506118da565b61182087611d21565b60745187165f90815260a1602052604090205480156118835786945080670de0b6b3a7640000146118695760745188165f90815260a160205260409020670de0b6b3a764000090555b60745188165f908152609d602052604090208290556118d8565b5f61188d836114f8565b6074518a165f908152609d60205260409020549091506118ac90611538565b6118b582611538565b6118bf919061202a565b6074518a165f908152609d602052604090209190915595505b505b5050509250929050565b60745181166119325760405162461bcd60e51b815260206004820152601a6024820152794e657720476f7665726e6f72206973206164647265737328302960301b6044820152606401610541565b6109b281611dd5565b60745181165f90815260a16020526040812054801561195a5792915050565b5050609f54919050565b60745181165f90815260a16020526040902054156119bf5760405162461bcd60e51b81526020600482015260186024820152774163636f756e74206d757374206265207265626173696e6760401b6044820152606401610541565b60745181165f90815260a2602052604090205460ff1660028160048111156119e9576119e9611f10565b1480611a0557505f816004811115611a0357611a03611f10565b145b611a655760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201526a18d85b881bdc1d081bdd5d60aa1b6064820152608401610541565b60745182165f908152609d602052604081205490611a8284610b63565b60745185165f90815260a260209081526040808320805460ff1916600117905560a18252808320670de0b6b3a76400009055609d90915290208190559050611ade611acc83611538565b611ad59061213a565b61066e83611538565b7f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e84604051611b0d9190611eac565b60405180910390a150505050565b5f611b2582610b63565b60745183165f90815260a16020526040902054909150151580611b58575060745182165f908152609d6020526040902054155b611ba35760405162461bcd60e51b815260206004820152601c60248201527b4163636f756e74206d757374206265206e6f6e2d7265626173696e6760201b6044820152606401610541565b60745182165f90815260a2602052604090205460ff166001816004811115611bcd57611bcd611f10565b1480611be957505f816004811115611be757611be7611f10565b145b611c4c5760405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201526d373a399031b0b71037b83a1034b760911b6064820152608401610541565b5f611c56836114f8565b60745185165f90815260a260209081526040808320805460ff1916600217905560a18252808320839055609d90915290208190559050611ca1611c9882611538565b61111985611538565b7f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f84604051611b0d9190611eac565b5f5f8212156115a15760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610541565b60745181163b5f811580611d725750816017148015611d7257508260745116803b806020016040519081016040528181525f908060200190933c611d64906121af565b607d51191662ef010060e81b145b905080158015611da6575060745183165f90815260a2602052604081205460ff166004811115611da457611da4611f10565b145b8015611dc2575060745183165f90815260a16020526040902054155b15611dd057611dd083611964565b505050565b8060745116611de26115e9565b607451167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a35f51602061220d5f395f51905f5255565b607451811681146109b2575f5ffd5b5f60208284031215611e42575f5ffd5b8135610c3181611e23565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215611e93575f5ffd5b8235611e9e81611e23565b946020939093013593505050565b60745191909116815260200190565b5f5f5f60608486031215611ecd575f5ffd5b8335611ed881611e23565b92506020840135611ee881611e23565b929592945050506040919091013590565b5f60208284031215611f09575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b6020810160058310611f4457634e487b7160e01b5f52602160045260245ffd5b91905290565b5f5f60408385031215611f5b575f5ffd5b8235611f6681611e23565b91506020830135611f7681611e23565b809150509250929050565b5f60208284031215611f91575f5ffd5b8151610c3181611e23565b60208082526028908201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060408201526723b7bb32b93737b960c11b606082015260800190565b60208082526018908201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181035f83128015838313168383128216171561204957612049612016565b5092915050565b60745192831681529116602082015260400190565b5f8261207f57634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252601890820152775472616e7366657220746f207a65726f206164647265737360401b604082015260600190565b60208082526017908201527610d85b1b195c881a5cc81b9bdd081d1a194815985d5b1d604a1b604082015260600190565b9283526020830191909152604082015260600190565b8181038181111561072e5761072e612016565b808202811582820484141761072e5761072e612016565b8082018082111561072e5761072e612016565b5f600160ff1b820161214e5761214e612016565b505f0390565b6020808252601a908201527921b0b63632b91034b9903737ba103a34329023b7bb32b93737b960311b604082015260600190565b8082018281125f8312801582168215821617156121a7576121a7612016565b505092915050565b805160208201516001600160e81b03198116919060038210156121e5576001600160e81b03196003838103901b81901b82161692505b505091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e25723544c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51dba2646970667358221220252a6805b791a8d6d95e7ad327b512fcf3d3ac143fa79e860590b09216c2ee8564736f6c637827302e382e33362d6d656d6f72796d61736b696e672d30332b636f6d6d69742e62633866633738330058