@ledgerhq/device-signer-kit-solana 1.3.0 → 1.4.1

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 (92) hide show
  1. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  2. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
  3. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  4. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  5. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js +1 -1
  6. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js.map +2 -2
  7. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
  8. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
  9. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js +1 -1
  10. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js.map +2 -2
  11. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
  12. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
  13. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.js +1 -1
  14. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.js.map +2 -2
  15. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js +1 -1
  16. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js.map +2 -2
  17. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.js +1 -1
  18. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.js.map +2 -2
  19. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js +1 -1
  20. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js.map +2 -2
  21. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
  22. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
  23. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
  24. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +3 -3
  25. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
  26. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +2 -2
  27. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  28. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
  29. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  30. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +2 -2
  31. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  32. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +2 -2
  33. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js +1 -1
  34. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
  35. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js +3 -1
  36. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js.map +3 -3
  37. package/lib/cjs/package.json +3 -3
  38. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  39. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
  40. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  41. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  42. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js +1 -1
  43. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js.map +2 -2
  44. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
  45. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
  46. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js +1 -1
  47. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js.map +2 -2
  48. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
  49. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
  50. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.js +1 -1
  51. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.js.map +2 -2
  52. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js +1 -1
  53. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js.map +2 -2
  54. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.js +1 -1
  55. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.js.map +2 -2
  56. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js +1 -1
  57. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js.map +2 -2
  58. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
  59. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
  60. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
  61. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +3 -3
  62. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
  63. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +2 -2
  64. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  65. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
  66. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  67. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +2 -2
  68. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  69. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +2 -2
  70. package/lib/esm/internal/app-binder/task/SendSignMessageTask.js +1 -1
  71. package/lib/esm/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
  72. package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js +3 -1
  73. package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js.map +3 -3
  74. package/lib/esm/package.json +3 -3
  75. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +1 -0
  76. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -1
  77. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts +1 -0
  78. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts.map +1 -1
  79. package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts +1 -0
  80. package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts.map +1 -1
  81. package/lib/types/internal/app-binder/command/ProvideTLVDescriptorCommand.d.ts +1 -0
  82. package/lib/types/internal/app-binder/command/ProvideTLVDescriptorCommand.d.ts.map +1 -1
  83. package/lib/types/internal/app-binder/command/ProvideTrustedNamePKICommand.d.ts +1 -0
  84. package/lib/types/internal/app-binder/command/ProvideTrustedNamePKICommand.d.ts.map +1 -1
  85. package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts +14 -12
  86. package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts.map +1 -1
  87. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +1 -0
  88. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
  89. package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts +19 -5
  90. package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts.map +1 -1
  91. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  92. package/package.json +5 -5
@@ -1,18 +1,20 @@
1
1
  import { type Apdu, type ApduResponse, type Command, type CommandResult } from "@ledgerhq/device-management-kit";
2
- import { type Bs58Encoder } from "../../app-binder/services/bs58Encoder";
2
+ import { type ChunkableCommandArgs } from "../../app-binder/task/SendCommandInChunksTask";
3
3
  import { type SolanaAppErrorCodes } from "./utils/SolanaApplicationErrors";
4
- export type SignOffChainMessageCommandResponse = {
5
- signature: string;
4
+ export declare const CLA = 224;
5
+ export declare const INS = 7;
6
+ export declare const P1 = 1;
7
+ export declare const SOL_P2: {
8
+ INIT: number;
9
+ EXTEND: number;
10
+ MORE: number;
6
11
  };
7
- export type SignOffChainMessageCommandArgs = {
8
- readonly message: Uint8Array;
9
- };
10
- export declare class SignOffChainMessageCommand implements Command<SignOffChainMessageCommandResponse, SignOffChainMessageCommandArgs, SolanaAppErrorCodes> {
11
- private readonly bs58Encoder;
12
- private readonly errorHelper;
13
- args: SignOffChainMessageCommandArgs;
14
- constructor(args: SignOffChainMessageCommandArgs, bs58Encoder?: Bs58Encoder);
12
+ export type SignOffChainRawResponse = Uint8Array;
13
+ export declare class SignOffChainMessageCommand implements Command<SignOffChainRawResponse, ChunkableCommandArgs, SolanaAppErrorCodes> {
14
+ readonly args: ChunkableCommandArgs;
15
+ readonly name = "signOffChainMessage";
16
+ constructor(args: ChunkableCommandArgs);
15
17
  getApdu(): Apdu;
16
- parseResponse(response: ApduResponse): CommandResult<SignOffChainMessageCommandResponse, SolanaAppErrorCodes>;
18
+ parseResponse(response: ApduResponse): CommandResult<SignOffChainRawResponse, SolanaAppErrorCodes>;
17
19
  }
18
20
  //# sourceMappingURL=SignOffChainMessageCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignOffChainMessageCommand.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/command/SignOffChainMessageCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EAGT,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAGnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAIzC,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;CAC9B,CAAC;AAEF,qBAAa,0BACX,YACE,OAAO,CACL,kCAAkC,EAClC,8BAA8B,EAC9B,mBAAmB,CACpB;IAWD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAT9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGuB;IAEnD,IAAI,EAAE,8BAA8B,CAAC;gBAGnC,IAAI,EAAE,8BAA8B,EACnB,WAAW,GAAE,WAAgC;IAKhE,OAAO,IAAI,IAAI;IAWf,aAAa,CACX,QAAQ,EAAE,YAAY,GACrB,aAAa,CAAC,kCAAkC,EAAE,mBAAmB,CAAC;CAoC1E"}
1
+ {"version":3,"file":"SignOffChainMessageCommand.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/command/SignOffChainMessageCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EAGT,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAE9F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAO,MAAM,GAAG,MAAO,CAAC;AACxB,eAAO,MAAM,GAAG,IAAO,CAAC;AACxB,eAAO,MAAM,EAAE,IAAO,CAAC;AAIvB,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAEjD,qBAAa,0BACX,YACE,OAAO,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;IAGjE,QAAQ,CAAC,IAAI,EAAE,oBAAoB;IAD/C,QAAQ,CAAC,IAAI,yBAAyB;gBACjB,IAAI,EAAE,oBAAoB;IAE/C,OAAO,IAAI,IAAI;IAef,aAAa,CACX,QAAQ,EAAE,YAAY,GACrB,aAAa,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;CAY/D"}
@@ -12,6 +12,7 @@ export type SignTransactionCommandArgs = {
12
12
  readonly extend: boolean;
13
13
  };
14
14
  export declare class SignTransactionCommand implements Command<SignTransactionCommandResponse, SignTransactionCommandArgs, SolanaAppErrorCodes> {
15
+ readonly name = "signTransaction";
15
16
  private readonly errorHelper;
16
17
  args: SignTransactionCommandArgs;
17
18
  constructor(args: SignTransactionCommandArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"SignTransactionCommand.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/command/SignTransactionCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EAIT,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAGnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAQ,KAAK,EAAW,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAIzC,MAAM,MAAM,8BAA8B,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9D,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,sBACX,YACE,OAAO,CACL,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,CACpB;IAEH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGuB;IAEnD,IAAI,EAAE,0BAA0B,CAAC;gBAErB,IAAI,EAAE,0BAA0B;IAI5C,OAAO,IAAI,IAAI;IAkBf,aAAa,CACX,QAAQ,EAAE,YAAY,GACrB,aAAa,CAAC,8BAA8B,EAAE,mBAAmB,CAAC;CAwBtE"}
1
+ {"version":3,"file":"SignTransactionCommand.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/command/SignTransactionCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EAIT,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAGnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAQ,KAAK,EAAW,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAIzC,MAAM,MAAM,8BAA8B,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9D,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,sBACX,YACE,OAAO,CACL,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,CACpB;IAEH,QAAQ,CAAC,IAAI,qBAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGuB;IAEnD,IAAI,EAAE,0BAA0B,CAAC;gBAErB,IAAI,EAAE,0BAA0B;IAI5C,OAAO,IAAI,IAAI;IAkBf,aAAa,CACX,QAAQ,EAAE,YAAY,GACrB,aAAa,CAAC,8BAA8B,EAAE,mBAAmB,CAAC;CAwBtE"}
@@ -1,26 +1,40 @@
1
1
  import { type CommandResult, type InternalApi } from "@ledgerhq/device-management-kit";
2
- import { type SignOffChainMessageCommandResponse } from "../../app-binder/command/SignOffChainMessageCommand";
3
2
  import { type SolanaAppErrorCodes } from "../../app-binder/command/utils/SolanaApplicationErrors";
4
3
  import { type Bs58Encoder } from "../../app-binder/services/bs58Encoder";
4
+ export declare enum MessageFormat {
5
+ Ascii = 0,
6
+ Utf8 = 1,
7
+ Utf8LongV0 = 2
8
+ }
9
+ export declare const MAX_MESSAGE_LENGTH = 65515;
5
10
  export type SendSignMessageTaskArgs = {
6
11
  sendingData: Uint8Array;
7
12
  derivationPath: string;
8
13
  };
9
- export type SendSignMessageTaskRunFunctionReturn = Promise<CommandResult<SignOffChainMessageCommandResponse, SolanaAppErrorCodes>>;
10
- export declare const MAX_MESSAGE_LENGTH = 65535;
14
+ export type SendSignMessageTaskRunFunctionReturn = Promise<CommandResult<{
15
+ signature: string;
16
+ }, SolanaAppErrorCodes>>;
11
17
  export declare class SendSignMessageTask {
12
18
  private api;
13
19
  private args;
14
20
  private readonly bs58Encoder;
15
21
  constructor(api: InternalApi, args: SendSignMessageTaskArgs, bs58Encoder?: Bs58Encoder);
16
22
  run(): SendSignMessageTaskRunFunctionReturn;
23
+ private _isUTF8;
24
+ private _findMessageFormat;
25
+ private _isPrintableASCII;
17
26
  /**
18
- * builds the serialised off-chain message header and body
27
+ * build serialised off-chain message header + body
28
+ * when `isLegacy` is true, build the short legacy header (no app-domain or signers).
19
29
  */
20
30
  private _buildFullMessage;
31
+ private _isInvalidOffchainHeaderError;
21
32
  /**
22
- * builds the APDU command to send to the device
33
+ * build APDU payload:
34
+ * [signerCount=1][derivationsCount][each 4-byte index][OCM message]
23
35
  */
24
36
  private _buildApduCommand;
37
+ private _sendInChunks;
38
+ private _buildEnvelopeBase58;
25
39
  }
26
40
  //# sourceMappingURL=SendSignMessageTask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SendSignMessageTask.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/task/SendSignMessageTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,WAAW,EAEjB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACtG,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,2CAA2C,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,OAAO,CACxD,aAAa,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,CACvE,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFpB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,uBAAuB,EACpB,WAAW,GAAE,WAAgC;IAG1D,GAAG,IAAI,oCAAoC;IAgDjD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA0B1B"}
1
+ {"version":3,"file":"SendSignMessageTask.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/task/SendSignMessageTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,WAAW,EAGjB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACtG,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,2CAA2C,CAAC;AA8BnD,oBAAY,aAAa;IACvB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,UAAU,IAAI;CACf;AAED,eAAO,MAAM,kBAAkB,QAAyB,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,OAAO,CACxD,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,mBAAmB,CAAC,CAC1D,CAAC;AAEF,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFpB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,uBAAuB,EACpB,WAAW,GAAE,WAAgC;IAG1D,GAAG,IAAI,oCAAoC;IA+EjD,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,6BAA6B;IAcrC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAiBX,aAAa;IAiB3B,OAAO,CAAC,oBAAoB;CAkB7B"}