@1inch/solidity-utils 4.2.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/contracts/libraries/AddressArray.sol +12 -1
  2. package/contracts/libraries/AddressSet.sol +11 -1
  3. package/contracts/mixins/BySig.sol +1 -1
  4. package/dist/src/bySig.d.ts +50 -0
  5. package/dist/src/bySig.js +77 -0
  6. package/dist/src/bySig.js.map +1 -0
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.js +1 -0
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/typechain-types/contracts/tests/mocks/AddressArrayMock.d.ts +5 -1
  11. package/dist/typechain-types/contracts/tests/mocks/AddressSetMock.d.ts +5 -1
  12. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.d.ts +1 -1
  13. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.js +1 -1
  14. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.d.ts +15 -1
  15. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js +20 -1
  16. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js.map +1 -1
  17. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.d.ts +15 -1
  18. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js +20 -1
  19. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js.map +1 -1
  20. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +1 -1
  21. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +1 -1
  22. package/package.json +1 -1
@@ -46,12 +46,23 @@ library AddressArray {
46
46
  }
47
47
 
48
48
  /**
49
- * @notice Retrieves the address at a specified index in the array.
49
+ * @notice Retrieves the address at a specified index in the array. Reverts if the index is out of bounds.
50
50
  * @param self The instance of the Data struct.
51
51
  * @param i The index to retrieve the address from.
52
52
  * @return The address stored at the specified index.
53
53
  */
54
54
  function at(Data storage self, uint256 i) internal view returns (address) {
55
+ if (length(self) <= i) revert IndexOutOfBounds();
56
+ return address(uint160(self._raw[i] & _ADDRESS_MASK));
57
+ }
58
+
59
+ /**
60
+ * @notice Retrieves the address at a specified index in the array without bounds checking.
61
+ * @param self The instance of the Data struct.
62
+ * @param i The index to retrieve the address from.
63
+ * @return The address stored at the specified index.
64
+ */
65
+ function unsafeAt(Data storage self, uint256 i) internal view returns (address) {
55
66
  if (i >= 1 << 32) revert IndexOutOfBounds();
56
67
  return address(uint160(self._raw[i] & _ADDRESS_MASK));
57
68
  }
@@ -33,7 +33,7 @@ library AddressSet {
33
33
  }
34
34
 
35
35
  /**
36
- * @notice Retrieves the address at a specified index in the set.
36
+ * @notice Retrieves the address at a specified index in the set. Reverts if the index is out of bounds.
37
37
  * @param s The set of addresses.
38
38
  * @param index The index of the address to retrieve.
39
39
  * @return The address at the specified index.
@@ -42,6 +42,16 @@ library AddressSet {
42
42
  return s.items.at(index);
43
43
  }
44
44
 
45
+ /**
46
+ * @notice Retrieves the address at a specified index in the set without bounds checking.
47
+ * @param s The set of addresses.
48
+ * @param index The index of the address to retrieve.
49
+ * @return The address at the specified index.
50
+ */
51
+ function unsafeAt(Data storage s, uint256 index) internal view returns (address) {
52
+ return s.items.unsafeAt(index);
53
+ }
54
+
45
55
  /**
46
56
  * @notice Checks if the set contains the specified address.
47
57
  * @param s The set of addresses.
@@ -197,7 +197,7 @@ abstract contract BySig is Context, EIP712 {
197
197
  if (length == 0) {
198
198
  return super._msgSender();
199
199
  }
200
- return _msgSenders.at(length - 1);
200
+ return _msgSenders.unsafeAt(length - 1);
201
201
  }
202
202
 
203
203
  function _useNonce(address signer, BySigTraits.Value traits, bytes calldata data) private returns(bool) {
@@ -0,0 +1,50 @@
1
+ import { Wallet } from 'ethers';
2
+ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
3
+ /**
4
+ * Enum defining types of nonces.
5
+ */
6
+ export declare enum NonceType {
7
+ Account = 0,// Nonce for account
8
+ Selector = 1,// Nonce for selector
9
+ Unique = 2
10
+ }
11
+ /**
12
+ * Builds traits for {bySig} contract by combining params.
13
+ * @param nonceType The type of nonce to use. Default is NonceType.Account.
14
+ * @param deadline The deadline for the message. Default is 0.
15
+ * @param relayer The relayer address. Default is the zero address.
16
+ * @param nonce The nonce. Default is 0.
17
+ * @returns A bigint representing the combined traits.
18
+ * @throws Error if provided with invalid parameters.
19
+ */
20
+ export declare function buildBySigTraits({ nonceType, deadline, relayer, nonce, }?: {
21
+ nonceType?: NonceType | undefined;
22
+ deadline?: number | undefined;
23
+ relayer?: string | undefined;
24
+ nonce?: number | undefined;
25
+ }): bigint;
26
+ export interface SignedCallStruct {
27
+ traits: bigint;
28
+ data: string;
29
+ }
30
+ /**
31
+ * Computes the EIP-712 hash for a given bySig call.
32
+ * @param name The user readable name of EIP-712 domain.
33
+ * @param version The version of the EIP-712 domain.
34
+ * @param chainId The unique identifier for the blockchain network.
35
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
36
+ * @param sig The data to be signed.
37
+ * @returns The EIP-712 hash of the fully encoded data.
38
+ */
39
+ export declare function hashBySig(name: string, version: string, chainId: bigint, verifyingContract: string, sig: SignedCallStruct): string;
40
+ /**
41
+ * Signs a given data for {bySig} contract call using EIP-712 standard.
42
+ * @param name The user readable name of EIP-712 domain.
43
+ * @param version The version of the EIP-712 domain.
44
+ * @param chainId The unique identifier for the blockchain network.
45
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
46
+ * @param signer The wallet or signer to sign the data.
47
+ * @param signedCall The call data to be signed, consisting of traits and data.
48
+ * @returns A Promise that resolves to the signature.
49
+ */
50
+ export declare function signSignedCall(name: string, version: string, chainId: bigint | string, verifyingContract: string, signer: Wallet | SignerWithAddress, signedCall: SignedCallStruct): Promise<string>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signSignedCall = exports.hashBySig = exports.buildBySigTraits = exports.NonceType = void 0;
4
+ const hardhat_1 = require("hardhat");
5
+ const prelude_1 = require("./prelude");
6
+ /**
7
+ * Enum defining types of nonces.
8
+ */
9
+ var NonceType;
10
+ (function (NonceType) {
11
+ NonceType[NonceType["Account"] = 0] = "Account";
12
+ NonceType[NonceType["Selector"] = 1] = "Selector";
13
+ NonceType[NonceType["Unique"] = 2] = "Unique";
14
+ })(NonceType || (exports.NonceType = NonceType = {}));
15
+ /**
16
+ * Builds traits for {bySig} contract by combining params.
17
+ * @param nonceType The type of nonce to use. Default is NonceType.Account.
18
+ * @param deadline The deadline for the message. Default is 0.
19
+ * @param relayer The relayer address. Default is the zero address.
20
+ * @param nonce The nonce. Default is 0.
21
+ * @returns A bigint representing the combined traits.
22
+ * @throws Error if provided with invalid parameters.
23
+ */
24
+ function buildBySigTraits({ nonceType = NonceType.Account, deadline = 0, relayer = prelude_1.constants.ZERO_ADDRESS.toString(), nonce = 0, } = {}) {
25
+ if (nonceType > 3) {
26
+ throw new Error('Wrong nonce type, it should be less than 4');
27
+ }
28
+ if (deadline > 0xffffffffff) {
29
+ throw new Error('Wrong deadline, it should be less than 0xffffffff');
30
+ }
31
+ if (relayer.length > 42) {
32
+ throw new Error('Wrong relayer address, it should be less than 42 symbols');
33
+ }
34
+ if (nonce > 0xffffffffffffffffffffffffffffffffn) {
35
+ throw new Error('Wrong nonce, it should not be more than 128 bits');
36
+ }
37
+ return (BigInt(nonceType) << 254n) +
38
+ (BigInt(deadline) << 208n) +
39
+ ((BigInt(relayer) & 0xffffffffffffffffffffn) << 128n) +
40
+ BigInt(nonce);
41
+ }
42
+ exports.buildBySigTraits = buildBySigTraits;
43
+ /**
44
+ * Computes the EIP-712 hash for a given bySig call.
45
+ * @param name The user readable name of EIP-712 domain.
46
+ * @param version The version of the EIP-712 domain.
47
+ * @param chainId The unique identifier for the blockchain network.
48
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
49
+ * @param sig The data to be signed.
50
+ * @returns The EIP-712 hash of the fully encoded data.
51
+ */
52
+ function hashBySig(name, version, chainId, verifyingContract, sig) {
53
+ const domain = { name, version, chainId, verifyingContract };
54
+ const types = {
55
+ SignedCall: [
56
+ { name: 'traits', type: 'uint256' },
57
+ { name: 'data', type: 'bytes' },
58
+ ],
59
+ };
60
+ return hardhat_1.ethers.TypedDataEncoder.hash(domain, types, sig);
61
+ }
62
+ exports.hashBySig = hashBySig;
63
+ /**
64
+ * Signs a given data for {bySig} contract call using EIP-712 standard.
65
+ * @param name The user readable name of EIP-712 domain.
66
+ * @param version The version of the EIP-712 domain.
67
+ * @param chainId The unique identifier for the blockchain network.
68
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
69
+ * @param signer The wallet or signer to sign the data.
70
+ * @param signedCall The call data to be signed, consisting of traits and data.
71
+ * @returns A Promise that resolves to the signature.
72
+ */
73
+ function signSignedCall(name, version, chainId, verifyingContract, signer, signedCall) {
74
+ return signer.signTypedData({ name, version, chainId, verifyingContract }, { SignedCall: [{ name: 'traits', type: 'uint256' }, { name: 'data', type: 'bytes' }] }, signedCall);
75
+ }
76
+ exports.signSignedCall = signSignedCall;
77
+ //# sourceMappingURL=bySig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bySig.js","sourceRoot":"","sources":["../../src/bySig.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,uCAAsC;AAItC;;GAEG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,+CAAO,CAAA;IACP,iDAAQ,CAAA;IACR,6CAAM,CAAA;AACV,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAAC,EAC7B,SAAS,GAAG,SAAS,CAAC,OAAO,EAC7B,QAAQ,GAAG,CAAC,EACZ,OAAO,GAAG,mBAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,EAC3C,KAAK,GAAG,CAAC,GACZ,GAAG,EAAE;IACF,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,KAAK,GAAG,mCAAmC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QAC1B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,IAAI,IAAI,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAvBD,4CAuBC;AAOD;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,OAAe,EAAE,OAAe,EAAE,iBAAyB,EAAE,GAAqB;IACtH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG;QACV,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;SAClC;KACJ,CAAC;IACF,OAAO,gBAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AATD,8BASC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC1B,IAAY,EACZ,OAAe,EACf,OAAwB,EACxB,iBAAyB,EACzB,MAAkC,EAClC,UAA4B;IAE5B,OAAO,MAAM,CAAC,aAAa,CACvB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAC7C,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EACtF,UAAU,CACb,CAAC;AACN,CAAC;AAbD,wCAaC"}
@@ -1,3 +1,4 @@
1
+ export * from './bySig';
1
2
  export * from './expect';
2
3
  export * from './permit';
3
4
  export * from './prelude';
package/dist/src/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // created from 'create-ts-index'
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./bySig"), exports);
5
6
  tslib_1.__exportStar(require("./expect"), exports);
6
7
  tslib_1.__exportStar(require("./permit"), exports);
7
8
  tslib_1.__exportStar(require("./prelude"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,mDAAyB;AACzB,mDAAyB;AACzB,oDAA0B;AAC1B,uDAA6B;AAC7B,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,kDAAwB;AACxB,mDAAyB;AACzB,mDAAyB;AACzB,oDAA0B;AAC1B,uDAA6B;AAC7B,kDAAwB"}
@@ -1,19 +1,21 @@
1
1
  import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
2
  import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common";
3
3
  export interface AddressArrayMockInterface extends Interface {
4
- getFunction(nameOrSignature: "at" | "get" | "length" | "pop" | "push" | "set"): FunctionFragment;
4
+ getFunction(nameOrSignature: "at" | "get" | "length" | "pop" | "push" | "set" | "unsafeAt"): FunctionFragment;
5
5
  encodeFunctionData(functionFragment: "at", values: [BigNumberish]): string;
6
6
  encodeFunctionData(functionFragment: "get", values?: undefined): string;
7
7
  encodeFunctionData(functionFragment: "length", values?: undefined): string;
8
8
  encodeFunctionData(functionFragment: "pop", values?: undefined): string;
9
9
  encodeFunctionData(functionFragment: "push", values: [AddressLike]): string;
10
10
  encodeFunctionData(functionFragment: "set", values: [BigNumberish, AddressLike]): string;
11
+ encodeFunctionData(functionFragment: "unsafeAt", values: [BigNumberish]): string;
11
12
  decodeFunctionResult(functionFragment: "at", data: BytesLike): Result;
12
13
  decodeFunctionResult(functionFragment: "get", data: BytesLike): Result;
13
14
  decodeFunctionResult(functionFragment: "length", data: BytesLike): Result;
14
15
  decodeFunctionResult(functionFragment: "pop", data: BytesLike): Result;
15
16
  decodeFunctionResult(functionFragment: "push", data: BytesLike): Result;
16
17
  decodeFunctionResult(functionFragment: "set", data: BytesLike): Result;
18
+ decodeFunctionResult(functionFragment: "unsafeAt", data: BytesLike): Result;
17
19
  }
18
20
  export interface AddressArrayMock extends BaseContract {
19
21
  connect(runner?: ContractRunner | null): AddressArrayMock;
@@ -39,6 +41,7 @@ export interface AddressArrayMock extends BaseContract {
39
41
  ], [
40
42
  void
41
43
  ], "nonpayable">;
44
+ unsafeAt: TypedContractMethod<[i: BigNumberish], [string], "view">;
42
45
  getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
43
46
  getFunction(nameOrSignature: "at"): TypedContractMethod<[i: BigNumberish], [string], "view">;
44
47
  getFunction(nameOrSignature: "get"): TypedContractMethod<[], [string[]], "view">;
@@ -51,5 +54,6 @@ export interface AddressArrayMock extends BaseContract {
51
54
  ], [
52
55
  void
53
56
  ], "nonpayable">;
57
+ getFunction(nameOrSignature: "unsafeAt"): TypedContractMethod<[i: BigNumberish], [string], "view">;
54
58
  filters: {};
55
59
  }
@@ -1,19 +1,21 @@
1
1
  import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
2
  import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common";
3
3
  export interface AddressSetMockInterface extends Interface {
4
- getFunction(nameOrSignature: "add" | "at" | "contains" | "get" | "length" | "remove"): FunctionFragment;
4
+ getFunction(nameOrSignature: "add" | "at" | "contains" | "get" | "length" | "remove" | "unsafeAt"): FunctionFragment;
5
5
  encodeFunctionData(functionFragment: "add", values: [AddressLike]): string;
6
6
  encodeFunctionData(functionFragment: "at", values: [BigNumberish]): string;
7
7
  encodeFunctionData(functionFragment: "contains", values: [AddressLike]): string;
8
8
  encodeFunctionData(functionFragment: "get", values?: undefined): string;
9
9
  encodeFunctionData(functionFragment: "length", values?: undefined): string;
10
10
  encodeFunctionData(functionFragment: "remove", values: [AddressLike]): string;
11
+ encodeFunctionData(functionFragment: "unsafeAt", values: [BigNumberish]): string;
11
12
  decodeFunctionResult(functionFragment: "add", data: BytesLike): Result;
12
13
  decodeFunctionResult(functionFragment: "at", data: BytesLike): Result;
13
14
  decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result;
14
15
  decodeFunctionResult(functionFragment: "get", data: BytesLike): Result;
15
16
  decodeFunctionResult(functionFragment: "length", data: BytesLike): Result;
16
17
  decodeFunctionResult(functionFragment: "remove", data: BytesLike): Result;
18
+ decodeFunctionResult(functionFragment: "unsafeAt", data: BytesLike): Result;
17
19
  }
18
20
  export interface AddressSetMock extends BaseContract {
19
21
  connect(runner?: ContractRunner | null): AddressSetMock;
@@ -34,6 +36,7 @@ export interface AddressSetMock extends BaseContract {
34
36
  get: TypedContractMethod<[], [string[]], "view">;
35
37
  length: TypedContractMethod<[], [bigint], "view">;
36
38
  remove: TypedContractMethod<[item: AddressLike], [boolean], "nonpayable">;
39
+ unsafeAt: TypedContractMethod<[index: BigNumberish], [string], "view">;
37
40
  getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
38
41
  getFunction(nameOrSignature: "add"): TypedContractMethod<[item: AddressLike], [boolean], "nonpayable">;
39
42
  getFunction(nameOrSignature: "at"): TypedContractMethod<[index: BigNumberish], [string], "view">;
@@ -41,5 +44,6 @@ export interface AddressSetMock extends BaseContract {
41
44
  getFunction(nameOrSignature: "get"): TypedContractMethod<[], [string[]], "view">;
42
45
  getFunction(nameOrSignature: "length"): TypedContractMethod<[], [bigint], "view">;
43
46
  getFunction(nameOrSignature: "remove"): TypedContractMethod<[item: AddressLike], [boolean], "nonpayable">;
47
+ getFunction(nameOrSignature: "unsafeAt"): TypedContractMethod<[index: BigNumberish], [string], "view">;
44
48
  filters: {};
45
49
  }
@@ -14,7 +14,7 @@ export declare class AddressArray__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): AddressArray__factory;
17
- static readonly bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212206d8878694cb68a92a528a4658872ded9c144b824ef909996afc32681cea05a9464736f6c63430008190033";
17
+ static readonly bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ac40e8ed11ad952f383ac1aa1791ad65cc386cdbf08aadb5466ed1687991bf1664736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "IndexOutOfBounds";
@@ -22,7 +22,7 @@ const _abi = [
22
22
  type: "error",
23
23
  },
24
24
  ];
25
- const _bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212206d8878694cb68a92a528a4658872ded9c144b824ef909996afc32681cea05a9464736f6c63430008190033";
25
+ const _bytecode = "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ac40e8ed11ad952f383ac1aa1791ad65cc386cdbf08aadb5466ed1687991bf1664736f6c63430008190033";
26
26
  const isSuperArgs = (xs) => xs.length > 1;
27
27
  class AddressArray__factory extends ethers_1.ContractFactory {
28
28
  constructor(...args) {
@@ -14,7 +14,7 @@ export declare class AddressArrayMock__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): AddressArrayMock__factory;
17
- static readonly bytecode = "0x60808060405234601557610496908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c9081631f7b6d3214610420575080632f30c6f61461035c5780636d4ce63c1461027857806389b09de7146101ab578063a4ece52c146100ed5763e0886f9014610061575f80fd5b346100e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9578135916401000000008310156100c2575073ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b82346100e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9575f549063ffffffff8260a01c1690815f14610185575060011461015f577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346100e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9573573ffffffffffffffffffffffffffffffffffffffff811681036100e95760016020925f5463ffffffff8160a01c1693845f1461025957740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f5550610252565b50346100e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b850184528280865261032c575b5050509182939193519260208080860192818752875180945286019601925f905b8382106103155786880387f35b845181168852968201969382019390850190610308565b856020911660208601528660015b8481106103485750506102e7565b878154168382861b8901015201879061033a565b50346100e9577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9578035906024359073ffffffffffffffffffffffffffffffffffffffff80831683036100e9575f549163ffffffff8360a01c168510156103fa575083156103f25750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b346100e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e95760209063ffffffff5f5460a01c168152f3fea2646970667358221220759fd7c8a44db3e987b5db8738ec6d91c015202f799fae56e6f66aec681c930f64736f6c63430008190033";
17
+ static readonly bytecode = "0x60808060405234601557610554908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c9081631f7b6d321461049f575080632f30c6f6146103db5780636d4ce63c146102f757806389b09de71461022a578063a4ece52c1461016c578063e0886f90146101065763ec2fd5a11461006c575f80fd5b346101025760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102578135916401000000008310156100db575073ffffffffffffffffffffffffffffffffffffffff6100cc6020936104df565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101025760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102578135918263ffffffff5f5460a01c1611156100db575073ffffffffffffffffffffffffffffffffffffffff6100cc6020936104df565b8234610102575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102575f549063ffffffff8260a01c1690815f1461020457506001146101de577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346101025760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102573573ffffffffffffffffffffffffffffffffffffffff811681036101025760016020925f5463ffffffff8160a01c1693845f146102d857740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f55506102d1565b5034610102575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b85018452828086526103ab575b5050509182939193519260208080860192818752875180945286019601925f905b8382106103945786880387f35b845181168852968201969382019390850190610387565b856020911660208601528660015b8481106103c7575050610366565b878154168382861b890101520187906103b9565b5034610102577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102578035906024359073ffffffffffffffffffffffffffffffffffffffff8083168303610102575f549163ffffffff8360a01c16851015610479575083156104715750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b34610102575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101025760209063ffffffff5f5460a01c168152f35b6401000000008110156104f157905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220e5c45ad16eb25c7125b95e518a95d19878378e62e6985f11573bce7486b8927c64736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "IndexOutOfBounds";
@@ -91,6 +91,20 @@ export declare class AddressArrayMock__factory extends ContractFactory {
91
91
  readonly outputs: readonly [];
92
92
  readonly stateMutability: "nonpayable";
93
93
  readonly type: "function";
94
+ }, {
95
+ readonly inputs: readonly [{
96
+ readonly internalType: "uint256";
97
+ readonly name: "i";
98
+ readonly type: "uint256";
99
+ }];
100
+ readonly name: "unsafeAt";
101
+ readonly outputs: readonly [{
102
+ readonly internalType: "address";
103
+ readonly name: "";
104
+ readonly type: "address";
105
+ }];
106
+ readonly stateMutability: "view";
107
+ readonly type: "function";
94
108
  }];
95
109
  static createInterface(): AddressArrayMockInterface;
96
110
  static connect(address: string, runner?: ContractRunner | null): AddressArrayMock;
@@ -105,8 +105,27 @@ const _abi = [
105
105
  stateMutability: "nonpayable",
106
106
  type: "function",
107
107
  },
108
+ {
109
+ inputs: [
110
+ {
111
+ internalType: "uint256",
112
+ name: "i",
113
+ type: "uint256",
114
+ },
115
+ ],
116
+ name: "unsafeAt",
117
+ outputs: [
118
+ {
119
+ internalType: "address",
120
+ name: "",
121
+ type: "address",
122
+ },
123
+ ],
124
+ stateMutability: "view",
125
+ type: "function",
126
+ },
108
127
  ];
109
- const _bytecode = "0x60808060405234601557610496908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c9081631f7b6d3214610420575080632f30c6f61461035c5780636d4ce63c1461027857806389b09de7146101ab578063a4ece52c146100ed5763e0886f9014610061575f80fd5b346100e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9578135916401000000008310156100c2575073ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b82346100e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9575f549063ffffffff8260a01c1690815f14610185575060011461015f577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346100e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9573573ffffffffffffffffffffffffffffffffffffffff811681036100e95760016020925f5463ffffffff8160a01c1693845f1461025957740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f5550610252565b50346100e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b850184528280865261032c575b5050509182939193519260208080860192818752875180945286019601925f905b8382106103155786880387f35b845181168852968201969382019390850190610308565b856020911660208601528660015b8481106103485750506102e7565b878154168382861b8901015201879061033a565b50346100e9577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e9578035906024359073ffffffffffffffffffffffffffffffffffffffff80831683036100e9575f549163ffffffff8360a01c168510156103fa575083156103f25750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b346100e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e95760209063ffffffff5f5460a01c168152f3fea2646970667358221220759fd7c8a44db3e987b5db8738ec6d91c015202f799fae56e6f66aec681c930f64736f6c63430008190033";
128
+ const _bytecode = "0x60808060405234601557610554908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f3560e01c9081631f7b6d321461049f575080632f30c6f6146103db5780636d4ce63c146102f757806389b09de71461022a578063a4ece52c1461016c578063e0886f90146101065763ec2fd5a11461006c575f80fd5b346101025760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102578135916401000000008310156100db575073ffffffffffffffffffffffffffffffffffffffff6100cc6020936104df565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346101025760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102578135918263ffffffff5f5460a01c1611156100db575073ffffffffffffffffffffffffffffffffffffffff6100cc6020936104df565b8234610102575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102575f549063ffffffff8260a01c1690815f1461020457506001146101de577fffffffffffffffffffffffff0000000000000000000000000000000000000000015f55005b507f80000000000000000000000000000000000000000000000000000000000000005f55005b7f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b5090346101025760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102573573ffffffffffffffffffffffffffffffffffffffff811681036101025760016020925f5463ffffffff8160a01c1693845f146102d857740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551783555b5191018152f35b74010000000000000000000000000000000000000000175f55506102d1565b5034610102575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b85018452828086526103ab575b5050509182939193519260208080860192818752875180945286019601925f905b8382106103945786880387f35b845181168852968201969382019390850190610387565b856020911660208601528660015b8481106103c7575050610366565b878154168382861b890101520187906103b9565b5034610102577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610102578035906024359073ffffffffffffffffffffffffffffffffffffffff8083168303610102575f549163ffffffff8360a01c16851015610479575083156104715750507f8000000000000000000000000000000000000000000000000000000000000000179055005b811618175f55005b7f4e23d035000000000000000000000000000000000000000000000000000000005f525ffd5b34610102575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101025760209063ffffffff5f5460a01c168152f35b6401000000008110156104f157905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220e5c45ad16eb25c7125b95e518a95d19878378e62e6985f11573bce7486b8927c64736f6c63430008190033";
110
129
  const isSuperArgs = (xs) => xs.length > 1;
111
130
  class AddressArrayMock__factory extends ethers_1.ContractFactory {
112
131
  constructor(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"AddressArrayMock__factory.js","sourceRoot":"","sources":["../../../../../../typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddressArrayMock__factory.js","sourceRoot":"","sources":["../../../../../../typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare class AddressSetMock__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): AddressSetMock__factory;
17
- static readonly bytecode = "0x6080806040523460155761063b908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c80630a3b0a4f146103175780631f7b6d32146102d357806329092d0e1461026f5780635dbe47e8146101ce5780636d4ce63c146100ea5763e0886f901461005e575f80fd5b346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e6578135916401000000008310156100bf575073ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346100e6575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e6575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b850184528280865261019e575b5050509182939193519260208080860192818752875180945286019601925f905b8382106101875786880387f35b84518116885296820196938201939085019061017a565b856020911660208601528660015b8481106101ba575050610159565b878154168382861b890101520187906101ac565b5090346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e657359073ffffffffffffffffffffffffffffffffffffffff82168092036100e6576020915f526401000000008252805f2054908115159182610244575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141591505f61023b565b5090346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e657359073ffffffffffffffffffffffffffffffffffffffff821682036100e6576102ca602092610453565b90519015158152f35b50346100e6575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e65760209063ffffffff5f5460a01c169051908152f35b5090346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e657359073ffffffffffffffffffffffffffffffffffffffff821682036100e6576102ca60209273ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f209081548015159081610428575b50610422576001905f5463ffffffff8160a01c1691825f1461040357740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f55506103fb565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f6103a0565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809155841580156105fc575b6105f3575f549063ffffffff90818360a01c1680815f146105cb57859160011461059e5790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b838316948503610515575b50505050505050600190565b8601925f54918260a01c1684101561057657831561056a5750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610509565b811618175f5550610554565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f556104fe565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b508085146104ae56fea264697066735822122026299c3ba269a8f08a5ccb4cacc1577dbc7b9b543ea884720e864eedcab9ce4a64736f6c63430008190033";
17
+ static readonly bytecode = "0x608080604052346015576106f9908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c80630a3b0a4f146103965780631f7b6d321461035257806329092d0e146102ee5780635dbe47e81461024d5780636d4ce63c14610169578063e0886f90146101035763ec2fd5a114610069575f80fd5b346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff578135916401000000008310156100d8575073ffffffffffffffffffffffffffffffffffffffff6100c9602093610684565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff578135918263ffffffff5f5460a01c1611156100d8575073ffffffffffffffffffffffffffffffffffffffff6100c9602093610684565b50346100ff575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b850184528280865261021d575b5050509182939193519260208080860192818752875180945286019601925f905b8382106102065786880387f35b8451811688529682019693820193908501906101f9565b856020911660208601528660015b8481106102395750506101d8565b878154168382861b8901015201879061022b565b5090346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff57359073ffffffffffffffffffffffffffffffffffffffff82168092036100ff576020915f526401000000008252805f20549081151591826102c3575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141591505f6102ba565b5090346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff57359073ffffffffffffffffffffffffffffffffffffffff821682036100ff576103496020926104d2565b90519015158152f35b50346100ff575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff5760209063ffffffff5f5460a01c169051908152f35b5090346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff57359073ffffffffffffffffffffffffffffffffffffffff821682036100ff5761034960209273ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f2090815480151590816104a7575b506104a1576001905f5463ffffffff8160a01c1691825f1461048257740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f555061047a565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f61041f565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091558415801561067b575b610672575f549063ffffffff90818360a01c1680815f1461064a57859160011461061d5790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b838316948503610594575b50505050505050600190565b8601925f54918260a01c168410156105f55783156105e95750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610588565b811618175f55506105d3565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f5561057d565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b5080851461052d565b64010000000081101561069657905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122030f6547b429cc93ff163d91581a04b537659e627ade095d96d006d957a1db6d864736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "IndexOutOfBounds";
@@ -95,6 +95,20 @@ export declare class AddressSetMock__factory extends ContractFactory {
95
95
  }];
96
96
  readonly stateMutability: "nonpayable";
97
97
  readonly type: "function";
98
+ }, {
99
+ readonly inputs: readonly [{
100
+ readonly internalType: "uint256";
101
+ readonly name: "index";
102
+ readonly type: "uint256";
103
+ }];
104
+ readonly name: "unsafeAt";
105
+ readonly outputs: readonly [{
106
+ readonly internalType: "address";
107
+ readonly name: "";
108
+ readonly type: "address";
109
+ }];
110
+ readonly stateMutability: "view";
111
+ readonly type: "function";
98
112
  }];
99
113
  static createInterface(): AddressSetMockInterface;
100
114
  static connect(address: string, runner?: ContractRunner | null): AddressSetMock;
@@ -113,8 +113,27 @@ const _abi = [
113
113
  stateMutability: "nonpayable",
114
114
  type: "function",
115
115
  },
116
+ {
117
+ inputs: [
118
+ {
119
+ internalType: "uint256",
120
+ name: "index",
121
+ type: "uint256",
122
+ },
123
+ ],
124
+ name: "unsafeAt",
125
+ outputs: [
126
+ {
127
+ internalType: "address",
128
+ name: "",
129
+ type: "address",
130
+ },
131
+ ],
132
+ stateMutability: "view",
133
+ type: "function",
134
+ },
116
135
  ];
117
- const _bytecode = "0x6080806040523460155761063b908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c80630a3b0a4f146103175780631f7b6d32146102d357806329092d0e1461026f5780635dbe47e8146101ce5780636d4ce63c146100ea5763e0886f901461005e575f80fd5b346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e6578135916401000000008310156100bf575073ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346100e6575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e6575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b850184528280865261019e575b5050509182939193519260208080860192818752875180945286019601925f905b8382106101875786880387f35b84518116885296820196938201939085019061017a565b856020911660208601528660015b8481106101ba575050610159565b878154168382861b890101520187906101ac565b5090346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e657359073ffffffffffffffffffffffffffffffffffffffff82168092036100e6576020915f526401000000008252805f2054908115159182610244575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141591505f61023b565b5090346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e657359073ffffffffffffffffffffffffffffffffffffffff821682036100e6576102ca602092610453565b90519015158152f35b50346100e6575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e65760209063ffffffff5f5460a01c169051908152f35b5090346100e65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e657359073ffffffffffffffffffffffffffffffffffffffff821682036100e6576102ca60209273ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f209081548015159081610428575b50610422576001905f5463ffffffff8160a01c1691825f1461040357740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f55506103fb565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f6103a0565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809155841580156105fc575b6105f3575f549063ffffffff90818360a01c1680815f146105cb57859160011461059e5790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b838316948503610515575b50505050505050600190565b8601925f54918260a01c1684101561057657831561056a5750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610509565b811618175f5550610554565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f556104fe565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b508085146104ae56fea264697066735822122026299c3ba269a8f08a5ccb4cacc1577dbc7b9b543ea884720e864eedcab9ce4a64736f6c63430008190033";
136
+ const _bytecode = "0x608080604052346015576106f9908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c80630a3b0a4f146103965780631f7b6d321461035257806329092d0e146102ee5780635dbe47e81461024d5780636d4ce63c14610169578063e0886f90146101035763ec2fd5a114610069575f80fd5b346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff578135916401000000008310156100d8575073ffffffffffffffffffffffffffffffffffffffff6100c9602093610684565b92905490519260031b1c168152f35b90517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b5f80fd5b50346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff578135918263ffffffff5f5460a01c1611156100d8575073ffffffffffffffffffffffffffffffffffffffff6100c9602093610684565b50346100ff575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff575f549063ffffffff8260a01c1673ffffffffffffffffffffffffffffffffffffffff918051916001946005908260010160051b850184528280865261021d575b5050509182939193519260208080860192818752875180945286019601925f905b8382106102065786880387f35b8451811688529682019693820193908501906101f9565b856020911660208601528660015b8481106102395750506101d8565b878154168382861b8901015201879061022b565b5090346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff57359073ffffffffffffffffffffffffffffffffffffffff82168092036100ff576020915f526401000000008252805f20549081151591826102c3575b50519015158152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141591505f6102ba565b5090346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff57359073ffffffffffffffffffffffffffffffffffffffff821682036100ff576103496020926104d2565b90519015158152f35b50346100ff575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff5760209063ffffffff5f5460a01c169051908152f35b5090346100ff5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ff57359073ffffffffffffffffffffffffffffffffffffffff821682036100ff5761034960209273ffffffffffffffffffffffffffffffffffffffff81165f5264010000000060205260405f2090815480151590816104a7575b506104a1576001905f5463ffffffff8160a01c1691825f1461048257740100000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000092015f551781555b019055600190565b74010000000000000000000000000000000000000000175f555061047a565b50505f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915014155f61041f565b73ffffffffffffffffffffffffffffffffffffffff809116805f52640100000000908160205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091558415801561067b575b610672575f549063ffffffff90818360a01c1680815f1461064a57859160011461061d5790827fffffffffffffffffffffffff00000000000000000000000000000000000000009201541693015f555b838316948503610594575b50505050505050600190565b8601925f54918260a01c168410156105f55783156105e95750507f80000000000000000000000000000000000000000000000000000000000000001790555b5f5260205260405f20555f808080808080610588565b811618175f55506105d3565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b50909216917f80000000000000000000000000000000000000000000000000000000000000005f5561057d565b7f06a2af9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b50505050505f90565b5080851461052d565b64010000000081101561069657905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122030f6547b429cc93ff163d91581a04b537659e627ade095d96d006d957a1db6d864736f6c63430008190033";
118
137
  const isSuperArgs = (xs) => xs.length > 1;
119
138
  class AddressSetMock__factory extends ethers_1.ContractFactory {
120
139
  constructor(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"AddressSetMock__factory.js","sourceRoot":"","sources":["../../../../../../typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddressSetMock__factory.js","sourceRoot":"","sources":["../../../../../../typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare class TokenWithBySig__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): TokenWithBySig__factory;
17
- static readonly bytecode = "0x61016060408181523461042457612a5f803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122fa93846107658539608051846121d2015260a0518461229e015260c051846121a3015260e051846122210152518361224701525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611e00565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611db9565b926102be611e66565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e66565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611e00565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e66565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f9a565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120cf565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611e00565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611e00565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e66565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e66565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e66565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c30565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e66565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e66565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61218c565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b9190928360fe1c9160028311611c06576003831015611bd9576fffffffffffffffffffffffffffffffff8516918315611ba25760018414611b0d57505050600214611ab65750505f90565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b92509273ffffffffffffffffffffffffffffffffffffffff919450165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b8c575b50509050165f5260205260405f2090815491611b8683611a3e565b90551490565b8391925060040360031b1b161681905f80611b6b565b505092505073ffffffffffffffffffffffffffffffffffffffff165f5264010000000860205260405f2090815491611b8683611a3e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611daf57604093848414918215611da4575b82611cd7575b5050611ccd57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cc0575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d8c57604014611d4757505f805b611d00575b5016145f80611c67565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611cf65760209150608081895f935282805260015afa505f515f611cf6565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611cf1565b50868901355f1a602082015280878a81830137611cf1565b604185149250611c61565b5050505050505f90565b5f80611df593602081519101845af43d15611df8573d91611dd9836117a5565b92611de76040519485611713565b83523d5f602085013e611efa565b90565b606091611efa565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e23611e66565b1603611e2c5750565b602490611e37611e66565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ef5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ecb576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f395750805115611f0f57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580611f91575b611f4a575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f42565b60ff8114611ff05760ff811690601f8211611fc65760405191611fbc836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f61200283611679565b8083529260209060019081811690811561208c575060011461202d575b5050611df592500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612059565b905060209350611df59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f8061201f565b60ff81146120f15760ff811690601f8211611fc65760405191611fbc836116ca565b50604051600754815f61210383611679565b8083529260209060019081811690811561208c575060011461212d575050611df592500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612159565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061229b575b156121f4577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121cb56fea26469706673582212208a65b092836e1f5939c009688896508c421640ebd0bc63112364c8926163b45e64736f6c63430008190033";
17
+ static readonly bytecode = "0x61016060408181523461042457612a5f803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122fa93846107658539608051846121d2015260a0518461229e015260c051846121a3015260e051846122210152518361224701525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611e00565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611db9565b926102be611e66565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e66565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611e00565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e66565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f9a565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120cf565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611e00565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611e00565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e66565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e66565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e66565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c30565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e66565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e66565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61218c565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b9190928360fe1c9160028311611c06576003831015611bd9576fffffffffffffffffffffffffffffffff8516918315611ba25760018414611b0d57505050600214611ab65750505f90565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b92509273ffffffffffffffffffffffffffffffffffffffff919450165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b8c575b50509050165f5260205260405f2090815491611b8683611a3e565b90551490565b8391925060040360031b1b161681905f80611b6b565b505092505073ffffffffffffffffffffffffffffffffffffffff165f5264010000000860205260405f2090815491611b8683611a3e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611daf57604093848414918215611da4575b82611cd7575b5050611ccd57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cc0575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d8c57604014611d4757505f805b611d00575b5016145f80611c67565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611cf65760209150608081895f935282805260015afa505f515f611cf6565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611cf1565b50868901355f1a602082015280878a81830137611cf1565b604185149250611c61565b5050505050505f90565b5f80611df593602081519101845af43d15611df8573d91611dd9836117a5565b92611de76040519485611713565b83523d5f602085013e611efa565b90565b606091611efa565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e23611e66565b1603611e2c5750565b602490611e37611e66565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ef5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ecb576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f395750805115611f0f57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580611f91575b611f4a575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f42565b60ff8114611ff05760ff811690601f8211611fc65760405191611fbc836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f61200283611679565b8083529260209060019081811690811561208c575060011461202d575b5050611df592500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612059565b905060209350611df59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f8061201f565b60ff81146120f15760ff811690601f8211611fc65760405191611fbc836116ca565b50604051600754815f61210383611679565b8083529260209060019081811690811561208c575060011461212d575050611df592500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612159565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061229b575b156121f4577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121cb56fea2646970667358221220225d4fab8f5755a0bc717ec61516865e32baac7ce8fd7d92db7409581f38160364736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "string";
@@ -860,7 +860,7 @@ const _abi = [
860
860
  type: "function",
861
861
  },
862
862
  ];
863
- const _bytecode = "0x61016060408181523461042457612a5f803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122fa93846107658539608051846121d2015260a0518461229e015260c051846121a3015260e051846122210152518361224701525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611e00565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611db9565b926102be611e66565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e66565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611e00565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e66565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f9a565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120cf565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611e00565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611e00565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e66565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e66565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e66565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c30565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e66565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e66565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61218c565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b9190928360fe1c9160028311611c06576003831015611bd9576fffffffffffffffffffffffffffffffff8516918315611ba25760018414611b0d57505050600214611ab65750505f90565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b92509273ffffffffffffffffffffffffffffffffffffffff919450165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b8c575b50509050165f5260205260405f2090815491611b8683611a3e565b90551490565b8391925060040360031b1b161681905f80611b6b565b505092505073ffffffffffffffffffffffffffffffffffffffff165f5264010000000860205260405f2090815491611b8683611a3e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611daf57604093848414918215611da4575b82611cd7575b5050611ccd57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cc0575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d8c57604014611d4757505f805b611d00575b5016145f80611c67565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611cf65760209150608081895f935282805260015afa505f515f611cf6565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611cf1565b50868901355f1a602082015280878a81830137611cf1565b604185149250611c61565b5050505050505f90565b5f80611df593602081519101845af43d15611df8573d91611dd9836117a5565b92611de76040519485611713565b83523d5f602085013e611efa565b90565b606091611efa565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e23611e66565b1603611e2c5750565b602490611e37611e66565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ef5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ecb576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f395750805115611f0f57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580611f91575b611f4a575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f42565b60ff8114611ff05760ff811690601f8211611fc65760405191611fbc836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f61200283611679565b8083529260209060019081811690811561208c575060011461202d575b5050611df592500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612059565b905060209350611df59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f8061201f565b60ff81146120f15760ff811690601f8211611fc65760405191611fbc836116ca565b50604051600754815f61210383611679565b8083529260209060019081811690811561208c575060011461212d575050611df592500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612159565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061229b575b156121f4577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121cb56fea26469706673582212208a65b092836e1f5939c009688896508c421640ebd0bc63112364c8926163b45e64736f6c63430008190033";
863
+ const _bytecode = "0x61016060408181523461042457612a5f803803809161001e8286610428565b84398201916060818403126104245780516001600160401b039290838111610424578461004c91840161044b565b9160209081810151858111610424578661006791830161044b565b95838201518681116104245761007d920161044b565b9083518581116103475760038054906001928383811c9316801561041a575b8584101461040657601f928381116103c3575b508085848211600114610366575f9161035b575b505f1982841b1c191690841b1781555b885191888311610347576004998a548581811c9116801561033d575b8782101461032a578281116102e7575b5085918411600114610285579383949184925f9561027a575b50501b925f19911b1c19161786555b33156102645760058054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610178846104a0565b9261012093845261018883610628565b94610140958652828151910120928360e05282815191012096610100978089524660a0528251938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528385015260608401524660808401523060a084015260a0835260c08301968388109088111761025157508590525190206080523060c0526122fa93846107658539608051846121d2015260a0518461229e015260c051846121a3015260e051846122210152518361224701525182610867015251816108910152f35b604190634e487b7160e01b5f525260245ffd5b8251631e4fbdf760e01b81525f81880152602490fd5b015193505f80610118565b9190601f198416928b5f5284875f20945f5b89898383106102d057505050106102b7575b50505050811b018655610127565b01519060f8845f19921b161c191690555f8080806102a9565b868601518955909701969485019488935001610297565b8b5f52865f208380870160051c820192898810610321575b0160051c019086905b8281106103165750506100ff565b5f8155018690610308565b925081926102ff565b60228c634e487b7160e01b5f525260245ffd5b90607f16906100ef565b634e487b7160e01b5f52604160045260245ffd5b90508801515f6100c3565b859250601f19821690845f52875f20915f5b898d8383106103ae575050508311610397575b5050811b0181556100d3565b8a01515f1983861b60f8161c191690555f8061038b565b84015185558996909401939283019201610378565b825f52855f208480840160051c8201928885106103fd575b0160051c019085905b8281106103f25750506100af565b5f81550185906103e4565b925081926103db565b634e487b7160e01b5f52602260045260245ffd5b92607f169261009c565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034757604052565b81601f82011215610424578051906001600160401b038211610347576040519261047f601f8401601f191660200185610428565b8284526020838301011161042457815f9260208093018386015e8301015290565b8051602090818110156105165750601f8251116104d857808251920151908083106104ca57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161034757600654926001938481811c9116801561061e575b8382101461040657601f81116105ea575b5081601f841160011461058657509282939183925f9461057b575b50501b915f199060031b1c19161760065560ff90565b015192505f80610565565b919083601f19811660065f52845f20945f905b888383106105d057505050106105b8575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f80806105aa565b858701518855909601959485019487935090810190610599565b60065f5284601f845f20920160051c820191601f860160051c015b82811061061357505061054a565b5f8155018590610605565b90607f1690610539565b8051602090818110156106525750601f8251116104d857808251920151908083106104ca57501790565b906001600160401b03821161034757600754926001938481811c9116801561075a575b8382101461040657601f8111610726575b5081601f84116001146106c257509282939183925f946106b7575b50501b915f199060031b1c19161760075560ff90565b015192505f806106a1565b919083601f19811660075f52845f20945f905b8883831061070c57505050106106f4575b505050811b0160075560ff90565b01515f1960f88460031b161c191690555f80806106e6565b8587015188559096019594850194879350908101906106d5565b60075f5284601f845f20920160051c820191601f860160051c015b82811061074f575050610686565b5f8155018590610741565b90607f169061067556fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde03146114b75750806308b8ae3e14611439578063095ea7b3146113295780630acebbb3146112b757806318160ddd1461127b57806323b872dd146110ca5780632ca6f77114610e065780632dffc93814610dae578063313ce56714610d755780633408e47014610d3d57806334dd202614610ca25780633cc67ac714610c28578063404f551d14610b7c57806340c10f1914610aa057806370a0823114610a3f578063715018a6146109a357806384b0196e146108335780638c3adb0a146107b85780638d7e4ea0146107545780638da5cb5b1461070257806395d89b41146105df5780639dc29fac14610498578063a9059cbb14610443578063dd62ed3e146103ce578063e032e04f14610368578063eb24bae41461022f5763f2fde38b14610149575f80fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610180611605565b90610189611e00565b73ffffffffffffffffffffffffffffffffffffffff8092169283156101fc575050600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b5f80fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610262611605565b9160243567ffffffffffffffff60443581811161022b57610286903690860161164b565b919060643591821161022b576102b5926102a66102af933690890161164b565b505036916117df565b30611db9565b926102be611e66565b9473ffffffffffffffffffffffffffffffffffffffff809116913083036103415750948260809261033d976103157f91d424c26d66241302801829dc5d75ac3b3036414855f2088205e8f2705c051b963386611901565b865193168352336020840152858301526060820152a1519182916020835260208301906115c2565b0390f35b84517fa0f3feea000000000000000000000000000000000000000000000000000000008152fd5b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff6103b8611605565b165f526401000000088252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610408611605565b610410611628565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260018452825f2091165f528252805f20549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090610491610480611605565b6024359061048c611e66565b611901565b5160018152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576104d0611605565b90602435926104dd611e00565b73ffffffffffffffffffffffffffffffffffffffff83169283156105b057835f525f602052825f205491858310610551575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b6105ac868486519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b505f60249251917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57815191825f835461061e81611679565b90818452602095600191876001821691825f146106bd575050600114610661575b50505061033d9291610652910385611713565b519282849384528301906115c2565b5f90815286935091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106a5575050508201018161065261033d61063f565b8054848a01860152889550879490930192810161068c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610652915061033d905061063f565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b50903461022b577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9160208336011261022b5780359267ffffffffffffffff841161022b578290843603011261022b576020926107b1910161184f565b9051908152f35b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57359063ffffffff821680920361022b5761082f9073ffffffffffffffffffffffffffffffffffffffff610819611e66565b165f526401000000086020525f20918254611815565b9055005b503461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761088b7f0000000000000000000000000000000000000000000000000000000000000000611f9a565b916108b57f00000000000000000000000000000000000000000000000000000000000000006120cf565b815191602091602084019484861067ffffffffffffffff871117610977575061092c826020928761091f99989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a01906115c2565b91888303908901526115c2565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061096057505050500390f35b835185528695509381019392810192600101610951565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576109d9611e00565b5f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b823461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff610a8f611605565b165f525f8252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610ad8611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592610afa611e00565b16928315610b4e57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610b355f95600254611815565b60025585855284835280852082815401905551908152a3005b5f60249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b503461022b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b576024359163ffffffff831680930361022b5761082f9173ffffffffffffffffffffffffffffffffffffffff610c09611e66565b165f52640100000009602052815f20905f526020525f20918254611815565b503461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760ff600191359273ffffffffffffffffffffffffffffffffffffffff610c7c611e66565b165f5264010000000a602052805f208460081c5f526020525f2092161b81541790555f80f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cd9611605565b906024357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022b5773ffffffffffffffffffffffffffffffffffffffff602093165f526401000000098352815f20905f528252805f20549051908152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209051468152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020905160128152f35b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090517f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648152f35b50907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9060608236011261022b57610e3c611605565b9160243567ffffffffffffffff80821161022b578382870193833603011261022b5760443590811161022b57610e75903690870161164b565b9083359264ffffffffff8460d01c1642116110a257610e92611e66565b69ffffffffffffffffffff808660801c16908115928315611096575b5050501561106e576024610ecf910193610ec88587611754565b9189611a6b565b156110465790610ee891610ee28561184f565b87611c30565b1561101e576102af610f54610f5b92600894855463ffffffff98898260a01c1691825f14610ffe57740100000000000000000000000000000000000000000188557f80000000000000000000000000000000000000000000000000000000000000001790870155611754565b36916117df565b928154908160a01c16805f14610fd75761033d9550600114610fae577fffffffffffffffffffffffff00000000000000000000000000000000000000000190555b519182916020835260208301906115c2565b507f80000000000000000000000000000000000000000000000000000000000000009055610f9c565b857f06a2af9e000000000000000000000000000000000000000000000000000000005f525ffd5b507401000000000000000000000000000000000000000017875550611754565b8483517f356a4418000000000000000000000000000000000000000000000000000000008152fd5b8685517fd9c6386f000000000000000000000000000000000000000000000000000000008152fd5b8786517f3b06dcfb000000000000000000000000000000000000000000000000000000008152fd5b161490505f8080610eae565b8786517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b503461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611102611605565b61110a611628565b9060443592611117611e66565b9073ffffffffffffffffffffffffffffffffffffffff9081841690815f526001602052875f2092841692835f52602052875f2054937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503611182575b6020896104918a8a8a611901565b87851061121f575081156111f05782156111c157505f908152600160209081528782209282529182528681209286900390925583916104919080611174565b6024905f8951917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024905f8951917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b906105ac88868b519485947ffb8f41b2000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b823461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020906002549051908152f35b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff611306611605565b165f5264010000000a8252805f2060243560081c5f528252805f20549051908152f35b50903461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611361611605565b6024359073ffffffffffffffffffffffffffffffffffffffff80611383611e66565b1691821561140a57169182156113db5760208095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f5260018252855f20855f52825280865f20558551908152a35160018152f35b6024855f8651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b6024865f8751917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b823461022b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602090611473611605565b9073ffffffffffffffffffffffffffffffffffffffff60243592165f5264010000000a8352805f208260081c5f528352600160ff825f2054925193161b1615158152f35b833461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760035490825f6114f584611679565b808352602094600190866001821691825f14611582575050600114611527575b505061033d9291610652910385611713565b9085925060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f925b82841061156a5750505082010181610652611515565b8054848a018601528895508794909301928101611554565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506106529050611515565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9181601f8401121561022b5782359167ffffffffffffffff831161022b576020838186019501011161022b57565b90600182811c921680156116c0575b602083101461169357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611688565b6040810190811067ffffffffffffffff8211176116e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176116e657604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561022b570180359067ffffffffffffffff821161022b5760200191813603831361022b57565b67ffffffffffffffff81116116e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926117eb826117a5565b916117f96040519384611713565b82948184528183011161022b578281602093845f960137010152565b9190820180921161182257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b61185f610f546020830183611754565b60208151910120906040519160208301917f9ed1889e2180e1ec4f2d7816d43eb41f27d0bbbce4557680ecf32626c070c8648352356040840152606083015260608252608082019180831067ffffffffffffffff8411176116e6576042926040525190206118cb61218c565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611a0e57169283156119de57825f525f60205260405f2054908282106119865750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b60246040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152fd5b60246040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118225760010190565b9190928360fe1c9160028311611c06576003831015611bd9576fffffffffffffffffffffffffffffffff8516918315611ba25760018414611b0d57505050600214611ab65750505f90565b73ffffffffffffffffffffffffffffffffffffffff165f5264010000000a60205260405f206effffffffffffffffffffffffffffff8260081c165f5260205260405f2090600160ff835492161b8117809255141590565b92509273ffffffffffffffffffffffffffffffffffffffff919450165f5264010000000960205260405f2091357fffffffff000000000000000000000000000000000000000000000000000000009181838093169160048110611b8c575b50509050165f5260205260405f2090815491611b8683611a3e565b90551490565b8391925060040360031b1b161681905f80611b6b565b505092505073ffffffffffffffffffffffffffffffffffffffff165f5264010000000860205260405f2090815491611b8683611a3e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60046040517f5f640821000000000000000000000000000000000000000000000000000000008152fd5b90919273ffffffffffffffffffffffffffffffffffffffff91828116928315611daf57604093848414918215611da4575b82611cd7575b5050611ccd57602092825f9384978351937f1626ba7e0000000000000000000000000000000000000000000000000000000098898652600486015260248501528160448501526064840137606401915afa611cc0575090565b5f51143d60201416919050565b5050505050600190565b9091505f85518580604114611d8c57604014611d4757505f805b611d00575b5016145f80611c67565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a160608201511015611cf65760209150608081895f935282805260015afa505f515f611cf6565b807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208b01358060ff1c601b01602084015260208c8b850137166060820152611cf1565b50868901355f1a602082015280878a81830137611cf1565b604185149250611c61565b5050505050505f90565b5f80611df593602081519101845af43d15611df8573d91611dd9836117a5565b92611de76040519485611713565b83523d5f602085013e611efa565b90565b606091611efa565b73ffffffffffffffffffffffffffffffffffffffff806005541681611e23611e66565b1603611e2c5750565b602490611e37611e66565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815291166004820152fd5b63ffffffff60085460a01c168015611ef5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611822576401000000001115611ecb576007015473ffffffffffffffffffffffffffffffffffffffff1690565b60046040517f4e23d035000000000000000000000000000000000000000000000000000000008152fd5b503390565b90611f395750805115611f0f57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580611f91575b611f4a575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611f42565b60ff8114611ff05760ff811690601f8211611fc65760405191611fbc836116ca565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b50604051600654815f61200283611679565b8083529260209060019081811690811561208c575060011461202d575b5050611df592500382611713565b91509260065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f935f925b8284106120745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612059565b905060209350611df59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f8061201f565b60ff81146120f15760ff811690601f8211611fc65760405191611fbc836116ca565b50604051600754815f61210383611679565b8083529260209060019081811690811561208c575060011461212d575050611df592500382611713565b91509260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688935f925b8284106121745750611df59450505081016020015f8061201f565b85548785018301529485019486945092810192612159565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061229b575b156121f4577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176116e65760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146121cb56fea2646970667358221220225d4fab8f5755a0bc717ec61516865e32baac7ce8fd7d92db7409581f38160364736f6c63430008190033";
864
864
  const isSuperArgs = (xs) => xs.length > 1;
865
865
  class TokenWithBySig__factory extends ethers_1.ContractFactory {
866
866
  constructor(...args) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1inch/solidity-utils",
3
- "version": "4.2.1",
3
+ "version": "5.1.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "exports": {