@1upmonster/duel 0.1.8 → 0.2.2
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.
- package/README.md +110 -59
- package/dist/admin.d.ts +25 -40
- package/dist/admin.js +93 -114
- package/dist/encryption.js +1 -2
- package/dist/generated/duel/accounts/index.d.ts +10 -0
- package/dist/generated/duel/accounts/index.js +11 -0
- package/dist/generated/duel/accounts/matchTicket.d.ts +38 -0
- package/dist/generated/duel/accounts/matchTicket.js +45 -0
- package/dist/generated/duel/accounts/queue.d.ts +42 -0
- package/dist/generated/duel/accounts/queue.js +45 -0
- package/dist/generated/duel/accounts/tenant.d.ts +41 -0
- package/dist/generated/duel/accounts/tenant.js +44 -0
- package/dist/generated/duel/errors/duel.d.ts +31 -0
- package/dist/generated/duel/errors/duel.js +35 -0
- package/dist/generated/duel/errors/index.d.ts +8 -0
- package/dist/generated/duel/errors/index.js +9 -0
- package/dist/generated/duel/index.d.ts +12 -0
- package/dist/generated/duel/index.js +13 -0
- package/dist/generated/duel/instructions/cancelTicket.d.ts +45 -0
- package/dist/generated/duel/instructions/cancelTicket.js +56 -0
- package/dist/generated/duel/instructions/closeTicket.d.ts +45 -0
- package/dist/generated/duel/instructions/closeTicket.js +56 -0
- package/dist/generated/duel/instructions/commitTickets.d.ts +39 -0
- package/dist/generated/duel/instructions/commitTickets.js +50 -0
- package/dist/generated/duel/instructions/createTicket.d.ts +48 -0
- package/dist/generated/duel/instructions/createTicket.js +63 -0
- package/dist/generated/duel/instructions/delegateQueue.d.ts +69 -0
- package/dist/generated/duel/instructions/delegateQueue.js +90 -0
- package/dist/generated/duel/instructions/delegateTicket.d.ts +69 -0
- package/dist/generated/duel/instructions/delegateTicket.js +90 -0
- package/dist/generated/duel/instructions/flushMatches.d.ts +37 -0
- package/dist/generated/duel/instructions/flushMatches.js +43 -0
- package/dist/generated/duel/instructions/index.d.ts +19 -0
- package/dist/generated/duel/instructions/index.js +20 -0
- package/dist/generated/duel/instructions/initializeQueue.d.ts +48 -0
- package/dist/generated/duel/instructions/initializeQueue.js +63 -0
- package/dist/generated/duel/instructions/initializeTenant.d.ts +70 -0
- package/dist/generated/duel/instructions/initializeTenant.js +67 -0
- package/dist/generated/duel/instructions/joinQueue.d.ts +51 -0
- package/dist/generated/duel/instructions/joinQueue.js +56 -0
- package/dist/generated/duel/instructions/processUndelegation.d.ts +43 -0
- package/dist/generated/duel/instructions/processUndelegation.js +49 -0
- package/dist/generated/duel/instructions/setupTicketPermission.d.ts +54 -0
- package/dist/generated/duel/instructions/setupTicketPermission.js +63 -0
- package/dist/generated/duel/programs/duel.d.ts +92 -0
- package/dist/generated/duel/programs/duel.js +146 -0
- package/dist/generated/duel/programs/index.d.ts +8 -0
- package/dist/generated/duel/programs/index.js +9 -0
- package/dist/generated/duel/types/accountType.d.ts +25 -0
- package/dist/generated/duel/types/accountType.js +25 -0
- package/dist/generated/duel/types/index.d.ts +13 -0
- package/dist/generated/duel/types/index.js +14 -0
- package/dist/generated/duel/types/matchEntry.d.ts +23 -0
- package/dist/generated/duel/types/matchEntry.js +18 -0
- package/dist/generated/duel/types/matchFound.d.ts +23 -0
- package/dist/generated/duel/types/matchFound.js +18 -0
- package/dist/generated/duel/types/pendingMatch.d.ts +21 -0
- package/dist/generated/duel/types/pendingMatch.js +18 -0
- package/dist/generated/duel/types/queueEntry.d.ts +19 -0
- package/dist/generated/duel/types/queueEntry.js +18 -0
- package/dist/generated/duel/types/ticketStatus.d.ts +40 -0
- package/dist/generated/duel/types/ticketStatus.js +25 -0
- package/dist/generated/rps-game/accounts/gameSession.d.ts +40 -0
- package/dist/generated/rps-game/accounts/gameSession.js +45 -0
- package/dist/generated/rps-game/accounts/index.d.ts +9 -0
- package/dist/generated/rps-game/accounts/index.js +10 -0
- package/dist/generated/rps-game/accounts/playerProfile.d.ts +36 -0
- package/dist/generated/rps-game/accounts/playerProfile.js +47 -0
- package/dist/generated/rps-game/errors/index.d.ts +8 -0
- package/dist/generated/rps-game/errors/index.js +9 -0
- package/dist/generated/rps-game/errors/rpsGame.d.ts +25 -0
- package/dist/generated/rps-game/errors/rpsGame.js +29 -0
- package/dist/generated/rps-game/index.d.ts +12 -0
- package/dist/generated/rps-game/index.js +13 -0
- package/dist/generated/rps-game/instructions/closePlayer.d.ts +45 -0
- package/dist/generated/rps-game/instructions/closePlayer.js +56 -0
- package/dist/generated/rps-game/instructions/delegatePda.d.ts +69 -0
- package/dist/generated/rps-game/instructions/delegatePda.js +90 -0
- package/dist/generated/rps-game/instructions/index.d.ts +16 -0
- package/dist/generated/rps-game/instructions/index.js +17 -0
- package/dist/generated/rps-game/instructions/initializePlayer.d.ts +48 -0
- package/dist/generated/rps-game/instructions/initializePlayer.js +63 -0
- package/dist/generated/rps-game/instructions/makeChoice.d.ts +44 -0
- package/dist/generated/rps-game/instructions/makeChoice.js +46 -0
- package/dist/generated/rps-game/instructions/onMatchFound.d.ts +43 -0
- package/dist/generated/rps-game/instructions/onMatchFound.js +45 -0
- package/dist/generated/rps-game/instructions/persistResults.d.ts +43 -0
- package/dist/generated/rps-game/instructions/persistResults.js +50 -0
- package/dist/generated/rps-game/instructions/processUndelegation.d.ts +43 -0
- package/dist/generated/rps-game/instructions/processUndelegation.js +49 -0
- package/dist/generated/rps-game/instructions/startGame.d.ts +54 -0
- package/dist/generated/rps-game/instructions/startGame.js +67 -0
- package/dist/generated/rps-game/instructions/startGameWithTicket.d.ts +57 -0
- package/dist/generated/rps-game/instructions/startGameWithTicket.js +67 -0
- package/dist/generated/rps-game/programs/index.d.ts +8 -0
- package/dist/generated/rps-game/programs/index.js +9 -0
- package/dist/generated/rps-game/programs/rpsGame.d.ts +78 -0
- package/dist/generated/rps-game/programs/rpsGame.js +118 -0
- package/dist/generated/rps-game/types/accountType.d.ts +34 -0
- package/dist/generated/rps-game/types/accountType.js +25 -0
- package/dist/generated/rps-game/types/choice.d.ts +17 -0
- package/dist/generated/rps-game/types/choice.js +25 -0
- package/dist/generated/rps-game/types/gameResult.d.ts +26 -0
- package/dist/generated/rps-game/types/gameResult.js +25 -0
- package/dist/generated/rps-game/types/index.d.ts +10 -0
- package/dist/generated/rps-game/types/index.js +11 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -2
- package/dist/player.d.ts +25 -46
- package/dist/player.js +81 -140
- package/dist/tee.d.ts +14 -0
- package/dist/tee.js +62 -0
- package/dist/transaction.d.ts +11 -0
- package/dist/transaction.js +50 -0
- package/dist/utils.d.ts +4 -4
- package/dist/utils.js +23 -8
- package/package.json +3 -6
- package/src/admin.ts +151 -161
- package/src/duel.json +66 -7
- package/src/encryption.ts +0 -3
- package/src/generated/duel/accounts/index.ts +11 -0
- package/src/generated/duel/accounts/matchTicket.ts +77 -0
- package/src/generated/duel/accounts/queue.ts +77 -0
- package/src/generated/duel/accounts/tenant.ts +76 -0
- package/src/generated/duel/errors/duel.ts +46 -0
- package/src/generated/duel/errors/index.ts +9 -0
- package/src/generated/duel/index.ts +13 -0
- package/src/generated/duel/instructions/cancelTicket.ts +100 -0
- package/src/generated/duel/instructions/closeTicket.ts +100 -0
- package/src/generated/duel/instructions/commitTickets.ts +84 -0
- package/src/generated/duel/instructions/createTicket.ts +109 -0
- package/src/generated/duel/instructions/delegateQueue.ts +157 -0
- package/src/generated/duel/instructions/delegateTicket.ts +157 -0
- package/src/generated/duel/instructions/flushMatches.ts +76 -0
- package/src/generated/duel/instructions/index.ts +20 -0
- package/src/generated/duel/instructions/initializeQueue.ts +109 -0
- package/src/generated/duel/instructions/initializeTenant.ts +126 -0
- package/src/generated/duel/instructions/joinQueue.ts +106 -0
- package/src/generated/duel/instructions/processUndelegation.ts +86 -0
- package/src/generated/duel/instructions/setupTicketPermission.ts +115 -0
- package/src/generated/duel/programs/duel.ts +108 -0
- package/src/generated/duel/programs/index.ts +9 -0
- package/src/generated/duel/types/accountType.ts +36 -0
- package/src/generated/duel/types/index.ts +14 -0
- package/src/generated/duel/types/matchEntry.ts +25 -0
- package/src/generated/duel/types/matchFound.ts +25 -0
- package/src/generated/duel/types/pendingMatch.ts +25 -0
- package/src/generated/duel/types/queueEntry.ts +25 -0
- package/src/generated/duel/types/ticketStatus.ts +38 -0
- package/src/generated/rps-game/accounts/gameSession.ts +77 -0
- package/src/generated/rps-game/accounts/index.ts +10 -0
- package/src/generated/rps-game/accounts/playerProfile.ts +80 -0
- package/src/generated/rps-game/errors/index.ts +9 -0
- package/src/generated/rps-game/errors/rpsGame.ts +40 -0
- package/src/generated/rps-game/index.ts +13 -0
- package/src/generated/rps-game/instructions/closePlayer.ts +100 -0
- package/src/generated/rps-game/instructions/delegatePda.ts +157 -0
- package/src/generated/rps-game/instructions/index.ts +17 -0
- package/src/generated/rps-game/instructions/initializePlayer.ts +109 -0
- package/src/generated/rps-game/instructions/makeChoice.ts +84 -0
- package/src/generated/rps-game/instructions/onMatchFound.ts +79 -0
- package/src/generated/rps-game/instructions/persistResults.ts +88 -0
- package/src/generated/rps-game/instructions/processUndelegation.ts +86 -0
- package/src/generated/rps-game/instructions/startGame.ts +118 -0
- package/src/generated/rps-game/instructions/startGameWithTicket.ts +121 -0
- package/src/generated/rps-game/programs/index.ts +9 -0
- package/src/generated/rps-game/programs/rpsGame.ts +95 -0
- package/src/generated/rps-game/types/accountType.ts +36 -0
- package/src/generated/rps-game/types/choice.ts +25 -0
- package/src/generated/rps-game/types/gameResult.ts +37 -0
- package/src/generated/rps-game/types/index.ts +11 -0
- package/src/index.ts +2 -1
- package/src/player.ts +129 -192
- package/src/{idl/private_matchmaking.json → rps_game.json} +547 -583
- package/src/tee.ts +79 -0
- package/src/transaction.ts +90 -0
- package/src/utils.ts +35 -20
- package/tsconfig.json +2 -2
- package/dist/client.d.ts +0 -54
- package/dist/client.js +0 -265
- package/dist/duel.json +0 -1207
- package/dist/private_matchmaking.json +0 -534
- package/dist/types.d.ts +0 -635
- package/dist/types.js +0 -2
- package/src/idl/private_matchmaking.ts +0 -1033
- package/src/types.ts +0 -300
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
|
|
9
|
+
import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, getNonNullResolvedInstructionInput } from '@solana/program-client-core';
|
|
10
|
+
import { RPS_GAME_PROGRAM_ADDRESS } from '../programs';
|
|
11
|
+
export const START_GAME_DISCRIMINATOR = new Uint8Array([249, 47, 252, 172, 184, 162, 245, 14]);
|
|
12
|
+
export function getStartGameDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(START_GAME_DISCRIMINATOR); }
|
|
13
|
+
export function getStartGameInstructionDataEncoder() {
|
|
14
|
+
return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['gameId', getU64Encoder()], ['opponent', getAddressEncoder()]]), (value) => ({ ...value, discriminator: START_GAME_DISCRIMINATOR }));
|
|
15
|
+
}
|
|
16
|
+
export function getStartGameInstructionDataDecoder() {
|
|
17
|
+
return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['gameId', getU64Decoder()], ['opponent', getAddressDecoder()]]);
|
|
18
|
+
}
|
|
19
|
+
export function getStartGameInstructionDataCodec() {
|
|
20
|
+
return combineCodec(getStartGameInstructionDataEncoder(), getStartGameInstructionDataDecoder());
|
|
21
|
+
}
|
|
22
|
+
export async function getStartGameInstructionAsync(input, config) {
|
|
23
|
+
// Program address.
|
|
24
|
+
const programAddress = config?.programAddress ?? RPS_GAME_PROGRAM_ADDRESS;
|
|
25
|
+
// Original accounts.
|
|
26
|
+
const originalAccounts = { gameSession: { value: input.gameSession ?? null, isWritable: true }, player: { value: input.player ?? null, isWritable: true }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } };
|
|
27
|
+
const accounts = originalAccounts;
|
|
28
|
+
// Original args.
|
|
29
|
+
const args = { ...input, };
|
|
30
|
+
// Resolve default values.
|
|
31
|
+
if (!accounts.gameSession.value) {
|
|
32
|
+
accounts.gameSession.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([103, 97, 109, 101, 95, 115, 101, 115, 115, 105, 111, 110, 95, 118, 49])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getNonNullResolvedInstructionInput("opponent", args.opponent)), getU64Encoder().encode(getNonNullResolvedInstructionInput("gameId", args.gameId))] });
|
|
33
|
+
}
|
|
34
|
+
if (!accounts.systemProgram.value) {
|
|
35
|
+
accounts.systemProgram.value = '11111111111111111111111111111111';
|
|
36
|
+
}
|
|
37
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
38
|
+
return Object.freeze({ accounts: [getAccountMeta("gameSession", accounts.gameSession), getAccountMeta("player", accounts.player), getAccountMeta("systemProgram", accounts.systemProgram)], data: getStartGameInstructionDataEncoder().encode(args), programAddress });
|
|
39
|
+
}
|
|
40
|
+
export function getStartGameInstruction(input, config) {
|
|
41
|
+
// Program address.
|
|
42
|
+
const programAddress = config?.programAddress ?? RPS_GAME_PROGRAM_ADDRESS;
|
|
43
|
+
// Original accounts.
|
|
44
|
+
const originalAccounts = { gameSession: { value: input.gameSession ?? null, isWritable: true }, player: { value: input.player ?? null, isWritable: true }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } };
|
|
45
|
+
const accounts = originalAccounts;
|
|
46
|
+
// Original args.
|
|
47
|
+
const args = { ...input, };
|
|
48
|
+
// Resolve default values.
|
|
49
|
+
if (!accounts.systemProgram.value) {
|
|
50
|
+
accounts.systemProgram.value = '11111111111111111111111111111111';
|
|
51
|
+
}
|
|
52
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
53
|
+
return Object.freeze({ accounts: [getAccountMeta("gameSession", accounts.gameSession), getAccountMeta("player", accounts.player), getAccountMeta("systemProgram", accounts.systemProgram)], data: getStartGameInstructionDataEncoder().encode(args), programAddress });
|
|
54
|
+
}
|
|
55
|
+
export function parseStartGameInstruction(instruction) {
|
|
56
|
+
if (instruction.accounts.length < 3) {
|
|
57
|
+
throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 3 });
|
|
58
|
+
}
|
|
59
|
+
let accountIndex = 0;
|
|
60
|
+
const getNextAccount = () => {
|
|
61
|
+
const accountMeta = instruction.accounts[accountIndex];
|
|
62
|
+
accountIndex += 1;
|
|
63
|
+
return accountMeta;
|
|
64
|
+
};
|
|
65
|
+
return { programAddress: instruction.programAddress, accounts: { gameSession: getNextAccount(), player: getNextAccount(), systemProgram: getNextAccount() }, data: getStartGameInstructionDataDecoder().decode(instruction.data) };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRHYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9ycHMtZ2FtZS9pbnN0cnVjdGlvbnMvc3RhcnRHYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUseURBQXlELEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFnVSxNQUFNLGFBQWEsQ0FBQztBQUN2b0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdDQUF3QyxFQUFFLGtDQUFrQyxFQUFtQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25MLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sVUFBVSw4QkFBOEIsS0FBSyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFTbEksTUFBTSxVQUFVLGtDQUFrQztJQUM5QyxPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxp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VE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZUNvZGVjLCBmaXhEZWNvZGVyU2l6ZSwgZml4RW5jb2RlclNpemUsIGdldEFkZHJlc3NEZWNvZGVyLCBnZXRBZGRyZXNzRW5jb2RlciwgZ2V0Qnl0ZXNEZWNvZGVyLCBnZXRCeXRlc0VuY29kZXIsIGdldFByb2dyYW1EZXJpdmVkQWRkcmVzcywgZ2V0U3RydWN0RGVjb2RlciwgZ2V0U3RydWN0RW5jb2RlciwgZ2V0VTY0RGVjb2RlciwgZ2V0VTY0RW5jb2RlciwgU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0lOU1VGRklDSUVOVF9BQ0NPVU5UX01FVEFTLCBTb2xhbmFFcnJvciwgdHJhbnNmb3JtRW5jb2RlciwgdHlwZSBBY2NvdW50TWV0YSwgdHlwZSBBY2NvdW50U2lnbmVyTWV0YSwgdHlwZSBBZGRyZXNzLCB0eXBlIEZpeGVkU2l6ZUNvZGVjLCB0eXBlIEZpeGVkU2l6ZURlY29kZXIsIHR5cGUgRml4ZWRTaXplRW5jb2RlciwgdHlwZSBJbnN0cnVjdGlvbiwgdHlwZSBJbnN0cnVjdGlvbldpdGhBY2NvdW50cywgdHlwZSBJbnN0cnVjdGlvbldpdGhEYXRhLCB0eXBlIFJlYWRvbmx5QWNjb3VudCwgdHlwZSBSZWFkb25seVVpbnQ4QXJyYXksIHR5cGUgVHJhbnNhY3Rpb25TaWduZXIsIHR5cGUgV3JpdGFibGVBY2NvdW50LCB0eXBlIFdyaXRhYmxlU2lnbmVyQWNjb3VudCB9IGZyb20gJ0Bzb2xhbmEva2l0JztcbmltcG9ydCB7IGdldEFjY291bnRNZXRhRmFjdG9yeSwgZ2V0QWRkcmVzc0Zyb21SZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudCwgZ2V0Tm9uTnVsbFJlc29sdmVkSW5zdHJ1Y3Rpb25JbnB1dCwgdHlwZSBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudCB9IGZyb20gJ0Bzb2xhbmEvcHJvZ3JhbS1jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1MgfSBmcm9tICcuLi9wcm9ncmFtcyc7XG5cbmV4cG9ydCBjb25zdCBTVEFSVF9HQU1FX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbMjQ5LCA0NywgMjUyLCAxNzIsIDE4NCwgMTYyLCAyNDUsIDE0XSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFydEdhbWVEaXNjcmltaW5hdG9yQnl0ZXMoKSB7IHJldHVybiBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKFNUQVJUX0dBTUVfRElTQ1JJTUlOQVRPUik7IH1cblxuZXhwb3J0IHR5cGUgU3RhcnRHYW1lSW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSB0eXBlb2YgUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTLCBUQWNjb3VudEdhbWVTZXNzaW9uIGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUQWNjb3VudFN5c3RlbVByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gXCIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVwiLCBUUmVtYWluaW5nQWNjb3VudHMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YTxzdHJpbmc+W10gPSBbXT4gPVxuSW5zdHJ1Y3Rpb248VFByb2dyYW0+ICYgSW5zdHJ1Y3Rpb25XaXRoRGF0YTxSZWFkb25seVVpbnQ4QXJyYXk+ICYgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHM8W1RBY2NvdW50R2FtZVNlc3Npb24gZXh0ZW5kcyBzdHJpbmcgPyBXcml0YWJsZUFjY291bnQ8VEFjY291bnRHYW1lU2Vzc2lvbj4gOiBUQWNjb3VudEdhbWVTZXNzaW9uLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZyA/IFdyaXRhYmxlU2lnbmVyQWNjb3VudDxUQWNjb3VudFBsYXllcj4gJiBBY2NvdW50U2lnbmVyTWV0YTxUQWNjb3VudFBsYXllcj4gOiBUQWNjb3VudFBsYXllciwgVEFjY291bnRTeXN0ZW1Qcm9ncmFtIGV4dGVuZHMgc3RyaW5nID8gUmVhZG9ubHlBY2NvdW50PFRBY2NvdW50U3lzdGVtUHJvZ3JhbT4gOiBUQWNjb3VudFN5c3RlbVByb2dyYW0sIC4uLlRSZW1haW5pbmdBY2NvdW50c10+O1xuXG5leHBvcnQgdHlwZSBTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgZ2FtZUlkOiBiaWdpbnQ7IG9wcG9uZW50OiBBZGRyZXNzOyAgfTtcblxuZXhwb3J0IHR5cGUgU3RhcnRHYW1lSW5zdHJ1Y3Rpb25EYXRhQXJncyA9IHsgZ2FtZUlkOiBudW1iZXIgfCBiaWdpbnQ7IG9wcG9uZW50OiBBZGRyZXNzOyAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YUVuY29kZXIoKTogRml4ZWRTaXplRW5jb2RlcjxTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGFBcmdzPiB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybUVuY29kZXIoZ2V0U3RydWN0RW5jb2RlcihbWydkaXNjcmltaW5hdG9yJywgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpXSwgWydnYW1lSWQnLCBnZXRVNjRFbmNvZGVyKCldLCBbJ29wcG9uZW50JywgZ2V0QWRkcmVzc0VuY29kZXIoKV1dKSwgKHZhbHVlKSA9PiAoeyAuLi52YWx1ZSwgZGlzY3JpbWluYXRvcjogU1RBUlRfR0FNRV9ESVNDUklNSU5BVE9SIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YURlY29kZXIoKTogRml4ZWRTaXplRGVjb2RlcjxTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGE+IHtcbiAgICByZXR1cm4gZ2V0U3RydWN0RGVjb2RlcihbWydkaXNjcmltaW5hdG9yJywgZml4RGVjb2RlclNpemUoZ2V0Qnl0ZXNEZWNvZGVyKCksIDgpXSwgWydnYW1lSWQnLCBnZXRVNjREZWNvZGVyKCldLCBbJ29wcG9uZW50JywgZ2V0QWRkcmVzc0RlY29kZXIoKV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YUNvZGVjKCk6IEZpeGVkU2l6ZUNvZGVjPFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YUFyZ3MsIFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0U3RhcnRHYW1lSW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLCBnZXRTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkpO1xufVxuXG5leHBvcnQgdHlwZSBTdGFydEdhbWVBc3luY0lucHV0PFRBY2NvdW50R2FtZVNlc3Npb24gZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFN5c3RlbVByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgZ2FtZVNlc3Npb24/OiBBZGRyZXNzPFRBY2NvdW50R2FtZVNlc3Npb24+O1xucGxheWVyOiBUcmFuc2FjdGlvblNpZ25lcjxUQWNjb3VudFBsYXllcj47XG5zeXN0ZW1Qcm9ncmFtPzogQWRkcmVzczxUQWNjb3VudFN5c3RlbVByb2dyYW0+O1xuZ2FtZUlkOiBTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGFBcmdzW1wiZ2FtZUlkXCJdO1xub3Bwb25lbnQ6IFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YUFyZ3NbXCJvcHBvbmVudFwiXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uQXN5bmM8VEFjY291bnRHYW1lU2Vzc2lvbiBleHRlbmRzIHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZywgVFByb2dyYW1BZGRyZXNzIGV4dGVuZHMgQWRkcmVzcyA9IHR5cGVvZiBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1M+KGlucHV0OiBTdGFydEdhbWVBc3luY0lucHV0PFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+LCBjb25maWc/OiB7IHByb2dyYW1BZGRyZXNzPzogVFByb2dyYW1BZGRyZXNzIH0gKTogUHJvbWlzZTxTdGFydEdhbWVJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1M7XG5cbiAvLyBPcmlnaW5hbCBhY2NvdW50cy5cbmNvbnN0IG9yaWdpbmFsQWNjb3VudHMgPSB7IGdhbWVTZXNzaW9uOiB7IHZhbHVlOiBpbnB1dC5nYW1lU2Vzc2lvbiA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0sIHBsYXllcjogeyB2YWx1ZTogaW5wdXQucGxheWVyID8/IG51bGwsIGlzV3JpdGFibGU6IHRydWUgfSwgc3lzdGVtUHJvZ3JhbTogeyB2YWx1ZTogaW5wdXQuc3lzdGVtUHJvZ3JhbSA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9IH1cbmNvbnN0IGFjY291bnRzID0gb3JpZ2luYWxBY2NvdW50cyBhcyBSZWNvcmQ8a2V5b2YgdHlwZW9mIG9yaWdpbmFsQWNjb3VudHMsIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50PjtcblxuXG4vLyBPcmlnaW5hbCBhcmdzLlxuY29uc3QgYXJncyA9IHsgLi4uaW5wdXQsICB9O1xuXG5cbi8vIFJlc29sdmUgZGVmYXVsdCB2YWx1ZXMuXG5pZiAoIWFjY291bnRzLmdhbWVTZXNzaW9uLnZhbHVlKSB7XG5hY2NvdW50cy5nYW1lU2Vzc2lvbi52YWx1ZSA9IGF3YWl0IGdldFByb2dyYW1EZXJpdmVkQWRkcmVzcyh7IHByb2dyYW1BZGRyZXNzLCBzZWVkczogW2dldEJ5dGVzRW5jb2RlcigpLmVuY29kZShuZXcgVWludDhBcnJheShbMTAzLCA5NywgMTA5LCAxMDEsIDk1LCAxMTUsIDEwMSwgMTE1LCAxMTUsIDEwNSwgMTExLCAxMTAsIDk1LCAxMTgsIDQ5XSkpLCBnZXRBZGRyZXNzRW5jb2RlcigpLmVuY29kZShnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50KFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllci52YWx1ZSkpLCBnZXRBZGRyZXNzRW5jb2RlcigpLmVuY29kZShnZXROb25OdWxsUmVzb2x2ZWRJbnN0cnVjdGlvbklucHV0KFwib3Bwb25lbnRcIiwgYXJncy5vcHBvbmVudCkpLCBnZXRVNjRFbmNvZGVyKCkuZW5jb2RlKGdldE5vbk51bGxSZXNvbHZlZEluc3RydWN0aW9uSW5wdXQoXCJnYW1lSWRcIiwgYXJncy5nYW1lSWQpKV0gfSk7XG59XG5pZiAoIWFjY291bnRzLnN5c3RlbVByb2dyYW0udmFsdWUpIHtcbmFjY291bnRzLnN5c3RlbVByb2dyYW0udmFsdWUgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnIGFzIEFkZHJlc3M8JzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJz47XG59XG5cbmNvbnN0IGdldEFjY291bnRNZXRhID0gZ2V0QWNjb3VudE1ldGFGYWN0b3J5KHByb2dyYW1BZGRyZXNzLCAncHJvZ3JhbUlkJyk7XG5yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7IGFjY291bnRzOiBbZ2V0QWNjb3VudE1ldGEoXCJnYW1lU2Vzc2lvblwiLCBhY2NvdW50cy5nYW1lU2Vzc2lvbiksIGdldEFjY291bnRNZXRhKFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllciksIGdldEFjY291bnRNZXRhKFwic3lzdGVtUHJvZ3JhbVwiLCBhY2NvdW50cy5zeXN0ZW1Qcm9ncmFtKV0sIGRhdGE6IGdldFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoYXJncyBhcyBTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGFBcmdzKSwgcHJvZ3JhbUFkZHJlc3MgfSBhcyBTdGFydEdhbWVJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+KTtcbn1cblxuZXhwb3J0IHR5cGUgU3RhcnRHYW1lSW5wdXQ8VEFjY291bnRHYW1lU2Vzc2lvbiBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAge1xuICBnYW1lU2Vzc2lvbjogQWRkcmVzczxUQWNjb3VudEdhbWVTZXNzaW9uPjtcbnBsYXllcjogVHJhbnNhY3Rpb25TaWduZXI8VEFjY291bnRQbGF5ZXI+O1xuc3lzdGVtUHJvZ3JhbT86IEFkZHJlc3M8VEFjY291bnRTeXN0ZW1Qcm9ncmFtPjtcbmdhbWVJZDogU3RhcnRHYW1lSW5zdHJ1Y3Rpb25EYXRhQXJnc1tcImdhbWVJZFwiXTtcbm9wcG9uZW50OiBTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGFBcmdzW1wib3Bwb25lbnRcIl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFydEdhbWVJbnN0cnVjdGlvbjxUQWNjb3VudEdhbWVTZXNzaW9uIGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZywgVEFjY291bnRTeXN0ZW1Qcm9ncmFtIGV4dGVuZHMgc3RyaW5nLCBUUHJvZ3JhbUFkZHJlc3MgZXh0ZW5kcyBBZGRyZXNzID0gdHlwZW9mIFJQU19HQU1FX1BST0dSQU1fQUREUkVTUz4oaW5wdXQ6IFN0YXJ0R2FtZUlucHV0PFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+LCBjb25maWc/OiB7IHByb2dyYW1BZGRyZXNzPzogVFByb2dyYW1BZGRyZXNzIH0gKTogU3RhcnRHYW1lSW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudEdhbWVTZXNzaW9uLCBUQWNjb3VudFBsYXllciwgVEFjY291bnRTeXN0ZW1Qcm9ncmFtPiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1M7XG5cbiAvLyBPcmlnaW5hbCBhY2NvdW50cy5cbmNvbnN0IG9yaWdpbmFsQWNjb3VudHMgPSB7IGdhbWVTZXNzaW9uOiB7IHZhbHVlOiBpbnB1dC5nYW1lU2Vzc2lvbiA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0sIHBsYXllcjogeyB2YWx1ZTogaW5wdXQucGxheWVyID8/IG51bGwsIGlzV3JpdGFibGU6IHRydWUgfSwgc3lzdGVtUHJvZ3JhbTogeyB2YWx1ZTogaW5wdXQuc3lzdGVtUHJvZ3JhbSA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9IH1cbmNvbnN0IGFjY291bnRzID0gb3JpZ2luYWxBY2NvdW50cyBhcyBSZWNvcmQ8a2V5b2YgdHlwZW9mIG9yaWdpbmFsQWNjb3VudHMsIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50PjtcblxuXG4vLyBPcmlnaW5hbCBhcmdzLlxuY29uc3QgYXJncyA9IHsgLi4uaW5wdXQsICB9O1xuXG5cbi8vIFJlc29sdmUgZGVmYXVsdCB2YWx1ZXMuXG5pZiAoIWFjY291bnRzLnN5c3RlbVByb2dyYW0udmFsdWUpIHtcbmFjY291bnRzLnN5c3RlbVByb2dyYW0udmFsdWUgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnIGFzIEFkZHJlc3M8JzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJz47XG59XG5cbmNvbnN0IGdldEFjY291bnRNZXRhID0gZ2V0QWNjb3VudE1ldGFGYWN0b3J5KHByb2dyYW1BZGRyZXNzLCAncHJvZ3JhbUlkJyk7XG5yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7IGFjY291bnRzOiBbZ2V0QWNjb3VudE1ldGEoXCJnYW1lU2Vzc2lvblwiLCBhY2NvdW50cy5nYW1lU2Vzc2lvbiksIGdldEFjY291bnRNZXRhKFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllciksIGdldEFjY291bnRNZXRhKFwic3lzdGVtUHJvZ3JhbVwiLCBhY2NvdW50cy5zeXN0ZW1Qcm9ncmFtKV0sIGRhdGE6IGdldFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoYXJncyBhcyBTdGFydEdhbWVJbnN0cnVjdGlvbkRhdGFBcmdzKSwgcHJvZ3JhbUFkZHJlc3MgfSBhcyBTdGFydEdhbWVJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+KTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkU3RhcnRHYW1lSW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSB0eXBlb2YgUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTLCBUQWNjb3VudE1ldGFzIGV4dGVuZHMgcmVhZG9ubHkgQWNjb3VudE1ldGFbXSA9IHJlYWRvbmx5IEFjY291bnRNZXRhW10+ID0geyBwcm9ncmFtQWRkcmVzczogQWRkcmVzczxUUHJvZ3JhbT47XG5hY2NvdW50czoge1xuZ2FtZVNlc3Npb246IFRBY2NvdW50TWV0YXNbMF07XG5wbGF5ZXI6IFRBY2NvdW50TWV0YXNbMV07XG5zeXN0ZW1Qcm9ncmFtOiBUQWNjb3VudE1ldGFzWzJdO1xufTtcbmRhdGE6IFN0YXJ0R2FtZUluc3RydWN0aW9uRGF0YTsgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3RhcnRHYW1lSW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50TWV0YXMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YVtdPihpbnN0cnVjdGlvbjogSW5zdHJ1Y3Rpb248VFByb2dyYW0+ICYgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHM8VEFjY291bnRNZXRhcz4gJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT4pOiBQYXJzZWRTdGFydEdhbWVJbnN0cnVjdGlvbjxUUHJvZ3JhbSwgVEFjY291bnRNZXRhcz4ge1xuICBpZiAoaW5zdHJ1Y3Rpb24uYWNjb3VudHMubGVuZ3RoIDwgMykge1xuICB0aHJvdyBuZXcgU29sYW5hRXJyb3IoU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0lOU1VGRklDSUVOVF9BQ0NPVU5UX01FVEFTLCB7IGFjdHVhbEFjY291bnRNZXRhczogaW5zdHJ1Y3Rpb24uYWNjb3VudHMubGVuZ3RoLCBleHBlY3RlZEFjY291bnRNZXRhczogMyB9KTtcbn1cbmxldCBhY2NvdW50SW5kZXggPSAwO1xuY29uc3QgZ2V0TmV4dEFjY291bnQgPSAoKSA9PiB7XG4gIGNvbnN0IGFjY291bnRNZXRhID0gKGluc3RydWN0aW9uLmFjY291bnRzIGFzIFRBY2NvdW50TWV0YXMpW2FjY291bnRJbmRleF0hO1xuICBhY2NvdW50SW5kZXggKz0gMTtcbiAgcmV0dXJuIGFjY291bnRNZXRhO1xufVxuICByZXR1cm4geyBwcm9ncmFtQWRkcmVzczogaW5zdHJ1Y3Rpb24ucHJvZ3JhbUFkZHJlc3MsIGFjY291bnRzOiB7IGdhbWVTZXNzaW9uOiBnZXROZXh0QWNjb3VudCgpLCBwbGF5ZXI6IGdldE5leHRBY2NvdW50KCksIHN5c3RlbVByb2dyYW06IGdldE5leHRBY2NvdW50KCkgfSwgZGF0YTogZ2V0U3RhcnRHYW1lSW5zdHJ1Y3Rpb25EYXRhRGVjb2RlcigpLmRlY29kZShpbnN0cnVjdGlvbi5kYXRhKSB9O1xufSJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
|
|
9
|
+
import { RPS_GAME_PROGRAM_ADDRESS } from '../programs';
|
|
10
|
+
export declare const START_GAME_WITH_TICKET_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
11
|
+
export declare function getStartGameWithTicketDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
|
|
12
|
+
export type StartGameWithTicketInstruction<TProgram extends string = typeof RPS_GAME_PROGRAM_ADDRESS, TAccountGameSession extends string | AccountMeta<string> = string, TAccountPlayer extends string | AccountMeta<string> = string, TAccountMatchTicket extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountGameSession extends string ? WritableAccount<TAccountGameSession> : TAccountGameSession, TAccountPlayer extends string ? WritableSignerAccount<TAccountPlayer> & AccountSignerMeta<TAccountPlayer> : TAccountPlayer, TAccountMatchTicket extends string ? ReadonlyAccount<TAccountMatchTicket> : TAccountMatchTicket, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
|
|
13
|
+
export type StartGameWithTicketInstructionData = {
|
|
14
|
+
discriminator: ReadonlyUint8Array;
|
|
15
|
+
gameId: bigint;
|
|
16
|
+
opponent: Address;
|
|
17
|
+
};
|
|
18
|
+
export type StartGameWithTicketInstructionDataArgs = {
|
|
19
|
+
gameId: number | bigint;
|
|
20
|
+
opponent: Address;
|
|
21
|
+
};
|
|
22
|
+
export declare function getStartGameWithTicketInstructionDataEncoder(): FixedSizeEncoder<StartGameWithTicketInstructionDataArgs>;
|
|
23
|
+
export declare function getStartGameWithTicketInstructionDataDecoder(): FixedSizeDecoder<StartGameWithTicketInstructionData>;
|
|
24
|
+
export declare function getStartGameWithTicketInstructionDataCodec(): FixedSizeCodec<StartGameWithTicketInstructionDataArgs, StartGameWithTicketInstructionData>;
|
|
25
|
+
export type StartGameWithTicketAsyncInput<TAccountGameSession extends string = string, TAccountPlayer extends string = string, TAccountMatchTicket extends string = string, TAccountSystemProgram extends string = string> = {
|
|
26
|
+
gameSession?: Address<TAccountGameSession>;
|
|
27
|
+
player: TransactionSigner<TAccountPlayer>;
|
|
28
|
+
matchTicket: Address<TAccountMatchTicket>;
|
|
29
|
+
systemProgram?: Address<TAccountSystemProgram>;
|
|
30
|
+
gameId: StartGameWithTicketInstructionDataArgs["gameId"];
|
|
31
|
+
opponent: StartGameWithTicketInstructionDataArgs["opponent"];
|
|
32
|
+
};
|
|
33
|
+
export declare function getStartGameWithTicketInstructionAsync<TAccountGameSession extends string, TAccountPlayer extends string, TAccountMatchTicket extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof RPS_GAME_PROGRAM_ADDRESS>(input: StartGameWithTicketAsyncInput<TAccountGameSession, TAccountPlayer, TAccountMatchTicket, TAccountSystemProgram>, config?: {
|
|
34
|
+
programAddress?: TProgramAddress;
|
|
35
|
+
}): Promise<StartGameWithTicketInstruction<TProgramAddress, TAccountGameSession, TAccountPlayer, TAccountMatchTicket, TAccountSystemProgram>>;
|
|
36
|
+
export type StartGameWithTicketInput<TAccountGameSession extends string = string, TAccountPlayer extends string = string, TAccountMatchTicket extends string = string, TAccountSystemProgram extends string = string> = {
|
|
37
|
+
gameSession: Address<TAccountGameSession>;
|
|
38
|
+
player: TransactionSigner<TAccountPlayer>;
|
|
39
|
+
matchTicket: Address<TAccountMatchTicket>;
|
|
40
|
+
systemProgram?: Address<TAccountSystemProgram>;
|
|
41
|
+
gameId: StartGameWithTicketInstructionDataArgs["gameId"];
|
|
42
|
+
opponent: StartGameWithTicketInstructionDataArgs["opponent"];
|
|
43
|
+
};
|
|
44
|
+
export declare function getStartGameWithTicketInstruction<TAccountGameSession extends string, TAccountPlayer extends string, TAccountMatchTicket extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof RPS_GAME_PROGRAM_ADDRESS>(input: StartGameWithTicketInput<TAccountGameSession, TAccountPlayer, TAccountMatchTicket, TAccountSystemProgram>, config?: {
|
|
45
|
+
programAddress?: TProgramAddress;
|
|
46
|
+
}): StartGameWithTicketInstruction<TProgramAddress, TAccountGameSession, TAccountPlayer, TAccountMatchTicket, TAccountSystemProgram>;
|
|
47
|
+
export type ParsedStartGameWithTicketInstruction<TProgram extends string = typeof RPS_GAME_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
|
|
48
|
+
programAddress: Address<TProgram>;
|
|
49
|
+
accounts: {
|
|
50
|
+
gameSession: TAccountMetas[0];
|
|
51
|
+
player: TAccountMetas[1];
|
|
52
|
+
matchTicket: TAccountMetas[2];
|
|
53
|
+
systemProgram: TAccountMetas[3];
|
|
54
|
+
};
|
|
55
|
+
data: StartGameWithTicketInstructionData;
|
|
56
|
+
};
|
|
57
|
+
export declare function parseStartGameWithTicketInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedStartGameWithTicketInstruction<TProgram, TAccountMetas>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
|
|
9
|
+
import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount, getNonNullResolvedInstructionInput } from '@solana/program-client-core';
|
|
10
|
+
import { RPS_GAME_PROGRAM_ADDRESS } from '../programs';
|
|
11
|
+
export const START_GAME_WITH_TICKET_DISCRIMINATOR = new Uint8Array([2, 250, 253, 202, 51, 138, 80, 20]);
|
|
12
|
+
export function getStartGameWithTicketDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(START_GAME_WITH_TICKET_DISCRIMINATOR); }
|
|
13
|
+
export function getStartGameWithTicketInstructionDataEncoder() {
|
|
14
|
+
return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['gameId', getU64Encoder()], ['opponent', getAddressEncoder()]]), (value) => ({ ...value, discriminator: START_GAME_WITH_TICKET_DISCRIMINATOR }));
|
|
15
|
+
}
|
|
16
|
+
export function getStartGameWithTicketInstructionDataDecoder() {
|
|
17
|
+
return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['gameId', getU64Decoder()], ['opponent', getAddressDecoder()]]);
|
|
18
|
+
}
|
|
19
|
+
export function getStartGameWithTicketInstructionDataCodec() {
|
|
20
|
+
return combineCodec(getStartGameWithTicketInstructionDataEncoder(), getStartGameWithTicketInstructionDataDecoder());
|
|
21
|
+
}
|
|
22
|
+
export async function getStartGameWithTicketInstructionAsync(input, config) {
|
|
23
|
+
// Program address.
|
|
24
|
+
const programAddress = config?.programAddress ?? RPS_GAME_PROGRAM_ADDRESS;
|
|
25
|
+
// Original accounts.
|
|
26
|
+
const originalAccounts = { gameSession: { value: input.gameSession ?? null, isWritable: true }, player: { value: input.player ?? null, isWritable: true }, matchTicket: { value: input.matchTicket ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } };
|
|
27
|
+
const accounts = originalAccounts;
|
|
28
|
+
// Original args.
|
|
29
|
+
const args = { ...input, };
|
|
30
|
+
// Resolve default values.
|
|
31
|
+
if (!accounts.gameSession.value) {
|
|
32
|
+
accounts.gameSession.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([103, 97, 109, 101, 95, 115, 101, 115, 115, 105, 111, 110, 95, 118, 49])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getNonNullResolvedInstructionInput("opponent", args.opponent)), getU64Encoder().encode(getNonNullResolvedInstructionInput("gameId", args.gameId))] });
|
|
33
|
+
}
|
|
34
|
+
if (!accounts.systemProgram.value) {
|
|
35
|
+
accounts.systemProgram.value = '11111111111111111111111111111111';
|
|
36
|
+
}
|
|
37
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
38
|
+
return Object.freeze({ accounts: [getAccountMeta("gameSession", accounts.gameSession), getAccountMeta("player", accounts.player), getAccountMeta("matchTicket", accounts.matchTicket), getAccountMeta("systemProgram", accounts.systemProgram)], data: getStartGameWithTicketInstructionDataEncoder().encode(args), programAddress });
|
|
39
|
+
}
|
|
40
|
+
export function getStartGameWithTicketInstruction(input, config) {
|
|
41
|
+
// Program address.
|
|
42
|
+
const programAddress = config?.programAddress ?? RPS_GAME_PROGRAM_ADDRESS;
|
|
43
|
+
// Original accounts.
|
|
44
|
+
const originalAccounts = { gameSession: { value: input.gameSession ?? null, isWritable: true }, player: { value: input.player ?? null, isWritable: true }, matchTicket: { value: input.matchTicket ?? null, isWritable: false }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } };
|
|
45
|
+
const accounts = originalAccounts;
|
|
46
|
+
// Original args.
|
|
47
|
+
const args = { ...input, };
|
|
48
|
+
// Resolve default values.
|
|
49
|
+
if (!accounts.systemProgram.value) {
|
|
50
|
+
accounts.systemProgram.value = '11111111111111111111111111111111';
|
|
51
|
+
}
|
|
52
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
53
|
+
return Object.freeze({ accounts: [getAccountMeta("gameSession", accounts.gameSession), getAccountMeta("player", accounts.player), getAccountMeta("matchTicket", accounts.matchTicket), getAccountMeta("systemProgram", accounts.systemProgram)], data: getStartGameWithTicketInstructionDataEncoder().encode(args), programAddress });
|
|
54
|
+
}
|
|
55
|
+
export function parseStartGameWithTicketInstruction(instruction) {
|
|
56
|
+
if (instruction.accounts.length < 4) {
|
|
57
|
+
throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 4 });
|
|
58
|
+
}
|
|
59
|
+
let accountIndex = 0;
|
|
60
|
+
const getNextAccount = () => {
|
|
61
|
+
const accountMeta = instruction.accounts[accountIndex];
|
|
62
|
+
accountIndex += 1;
|
|
63
|
+
return accountMeta;
|
|
64
|
+
};
|
|
65
|
+
return { programAddress: instruction.programAddress, accounts: { gameSession: getNextAccount(), player: getNextAccount(), matchTicket: getNextAccount(), systemProgram: getNextAccount() }, data: getStartGameWithTicketInstructionDataDecoder().decode(instruction.data) };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRHYW1lV2l0aFRpY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvcnBzLWdhbWUvaW5zdHJ1Y3Rpb25zL3N0YXJ0R2FtZVdpdGhUaWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSx5REFBeUQsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWdVLE1BQU0sYUFBYSxDQUFDO0FBQ3ZvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsd0NBQXdDLEVBQUUsa0NBQWtDLEVBQW1DLE1BQU0sNkJBQTZCLENBQUM7QUFDbkwsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFeEcsTUFBTSxVQUFVLHdDQUF3QyxLQUFLLE9BQU8sY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQVN4SixNQUFNLFVBQVUsNENBQTRDO0lBQ3hELE9BQU8sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDelAsQ0FBQztBQUVELE1BQU0sVUFBVSw0Q0FBNEM7SUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2SixDQUFDO0FBRUQsTUFBTSxVQUFVLDBDQUEwQztJQUN0RCxPQUFPLFlBQVksQ0FBQyw0Q0FBNEMsRUFBRSxFQUFFLDRDQUE0QyxFQUFFLENBQUMsQ0FBQztBQUN4SCxDQUFDO0FBV0QsTUFBTSxDQUFDLEtBQUssVUFBVSxzQ0FBc0MsQ0FBaU4sS0FBcUgsRUFBRSxNQUE2QztJQUMvYSxtQkFBbUI7SUFDckIsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLGNBQWMsSUFBSSx3QkFBd0IsQ0FBQztJQUV6RSxxQkFBcUI7SUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQTtJQUMzUyxNQUFNLFFBQVEsR0FBRyxnQkFBcUYsQ0FBQztJQUd2RyxpQkFBaUI7SUFDakIsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxDQUFDO0lBRzVCLDBCQUEwQjtJQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxNQUFNLHdCQUF3QixDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUMsa0NBQWtDLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDamUsQ0FBQztJQUNELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGtDQUFpRixDQUFDO0lBQ2pILENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsNENBQTRDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBOEMsQ0FBQyxFQUFFLGNBQWMsRUFBc0ksQ0FBQyxDQUFDO0FBQ3BmLENBQUM7QUFXRCxNQUFNLFVBQVUsaUNBQWlDLENBQWlOLEtBQWdILEVBQUUsTUFBNkM7SUFDL1osbUJBQW1CO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLElBQUksd0JBQXdCLENBQUM7SUFFekUscUJBQXFCO0lBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUE7SUFDM1MsTUFBTSxRQUFRLEdBQUcsZ0JBQXFGLENBQUM7SUFHdkcsaUJBQWlCO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksQ0FBQztJQUc1QiwwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsa0NBQWlGLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSw0Q0FBNEMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUE4QyxDQUFDLEVBQUUsY0FBYyxFQUFzSSxDQUFDLENBQUM7QUFDcGYsQ0FBQztBQVdELE1BQU0sVUFBVSxtQ0FBbUMsQ0FBd0UsV0FBcUg7SUFDOU8sSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksV0FBVyxDQUFDLHlEQUF5RCxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqSyxDQUFDO0lBQ0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtRQUMxQixNQUFNLFdBQVcsR0FBSSxXQUFXLENBQUMsUUFBMEIsQ0FBQyxZQUFZLENBQUUsQ0FBQztRQUMzRSxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQTtJQUNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNENBQTRDLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDOVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBjb2RlIHdhcyBBVVRPR0VORVJBVEVEIHVzaW5nIHRoZSBDb2RhbWEgbGlicmFyeS5cbiAqIFBsZWFzZSBETyBOT1QgRURJVCBUSElTIEZJTEUsIGluc3RlYWQgdXNlIHZpc2l0b3JzXG4gKiB0byBhZGQgZmVhdHVyZXMsIHRoZW4gcmVydW4gQ29kYW1hIHRvIHVwZGF0ZSBpdC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RhbWEtaWRsL2NvZGFtYVxuICovXG5cbmltcG9ydCB7IGNvbWJpbmVDb2RlYywgZml4RGVjb2RlclNpemUsIGZpeEVuY29kZXJTaXplLCBnZXRBZGRyZXNzRGVjb2RlciwgZ2V0QWRkcmVzc0VuY29kZXIsIGdldEJ5dGVzRGVjb2RlciwgZ2V0Qnl0ZXNFbmNvZGVyLCBnZXRQcm9ncmFtRGVyaXZlZEFkZHJlc3MsIGdldFN0cnVjdERlY29kZXIsIGdldFN0cnVjdEVuY29kZXIsIGdldFU2NERlY29kZXIsIGdldFU2NEVuY29kZXIsIFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19JTlNVRkZJQ0lFTlRfQUNDT1VOVF9NRVRBUywgU29sYW5hRXJyb3IsIHRyYW5zZm9ybUVuY29kZXIsIHR5cGUgQWNjb3VudE1ldGEsIHR5cGUgQWNjb3VudFNpZ25lck1ldGEsIHR5cGUgQWRkcmVzcywgdHlwZSBGaXhlZFNpemVDb2RlYywgdHlwZSBGaXhlZFNpemVEZWNvZGVyLCB0eXBlIEZpeGVkU2l6ZUVuY29kZXIsIHR5cGUgSW5zdHJ1Y3Rpb24sIHR5cGUgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMsIHR5cGUgSW5zdHJ1Y3Rpb25XaXRoRGF0YSwgdHlwZSBSZWFkb25seUFjY291bnQsIHR5cGUgUmVhZG9ubHlVaW50OEFycmF5LCB0eXBlIFRyYW5zYWN0aW9uU2lnbmVyLCB0eXBlIFdyaXRhYmxlQWNjb3VudCwgdHlwZSBXcml0YWJsZVNpZ25lckFjY291bnQgfSBmcm9tICdAc29sYW5hL2tpdCc7XG5pbXBvcnQgeyBnZXRBY2NvdW50TWV0YUZhY3RvcnksIGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQsIGdldE5vbk51bGxSZXNvbHZlZEluc3RydWN0aW9uSW5wdXQsIHR5cGUgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQgfSBmcm9tICdAc29sYW5hL3Byb2dyYW0tY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTIH0gZnJvbSAnLi4vcHJvZ3JhbXMnO1xuXG5leHBvcnQgY29uc3QgU1RBUlRfR0FNRV9XSVRIX1RJQ0tFVF9ESVNDUklNSU5BVE9SID0gbmV3IFVpbnQ4QXJyYXkoWzIsIDI1MCwgMjUzLCAyMDIsIDUxLCAxMzgsIDgwLCAyMF0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhcnRHYW1lV2l0aFRpY2tldERpc2NyaW1pbmF0b3JCeXRlcygpIHsgcmV0dXJuIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUoU1RBUlRfR0FNRV9XSVRIX1RJQ0tFVF9ESVNDUklNSU5BVE9SKTsgfVxuXG5leHBvcnQgdHlwZSBTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSB0eXBlb2YgUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTLCBUQWNjb3VudEdhbWVTZXNzaW9uIGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUQWNjb3VudE1hdGNoVGlja2V0IGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVEFjY291bnRTeXN0ZW1Qcm9ncmFtIGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IFwiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFcIiwgVFJlbWFpbmluZ0FjY291bnRzIGV4dGVuZHMgcmVhZG9ubHkgQWNjb3VudE1ldGE8c3RyaW5nPltdID0gW10+ID1cbkluc3RydWN0aW9uPFRQcm9ncmFtPiAmIEluc3RydWN0aW9uV2l0aERhdGE8UmVhZG9ubHlVaW50OEFycmF5PiAmIEluc3RydWN0aW9uV2l0aEFjY291bnRzPFtUQWNjb3VudEdhbWVTZXNzaW9uIGV4dGVuZHMgc3RyaW5nID8gV3JpdGFibGVBY2NvdW50PFRBY2NvdW50R2FtZVNlc3Npb24+IDogVEFjY291bnRHYW1lU2Vzc2lvbiwgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPyBXcml0YWJsZVNpZ25lckFjY291bnQ8VEFjY291bnRQbGF5ZXI+ICYgQWNjb3VudFNpZ25lck1ldGE8VEFjY291bnRQbGF5ZXI+IDogVEFjY291bnRQbGF5ZXIsIFRBY2NvdW50TWF0Y2hUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seUFjY291bnQ8VEFjY291bnRNYXRjaFRpY2tldD4gOiBUQWNjb3VudE1hdGNoVGlja2V0LCBUQWNjb3VudFN5c3RlbVByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seUFjY291bnQ8VEFjY291bnRTeXN0ZW1Qcm9ncmFtPiA6IFRBY2NvdW50U3lzdGVtUHJvZ3JhbSwgLi4uVFJlbWFpbmluZ0FjY291bnRzXT47XG5cbmV4cG9ydCB0eXBlIFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgZ2FtZUlkOiBiaWdpbnQ7IG9wcG9uZW50OiBBZGRyZXNzOyAgfTtcblxuZXhwb3J0IHR5cGUgU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MgPSB7IGdhbWVJZDogbnVtYmVyIHwgYmlnaW50OyBvcHBvbmVudDogQWRkcmVzczsgIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpOiBGaXhlZFNpemVFbmNvZGVyPFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGFBcmdzPiB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybUVuY29kZXIoZ2V0U3RydWN0RW5jb2RlcihbWydkaXNjcmltaW5hdG9yJywgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpXSwgWydnYW1lSWQnLCBnZXRVNjRFbmNvZGVyKCldLCBbJ29wcG9uZW50JywgZ2V0QWRkcmVzc0VuY29kZXIoKV1dKSwgKHZhbHVlKSA9PiAoeyAuLi52YWx1ZSwgZGlzY3JpbWluYXRvcjogU1RBUlRfR0FNRV9XSVRIX1RJQ0tFVF9ESVNDUklNSU5BVE9SIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCk6IEZpeGVkU2l6ZURlY29kZXI8U3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBnZXRTdHJ1Y3REZWNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhEZWNvZGVyU2l6ZShnZXRCeXRlc0RlY29kZXIoKSwgOCldLCBbJ2dhbWVJZCcsIGdldFU2NERlY29kZXIoKV0sIFsnb3Bwb25lbnQnLCBnZXRBZGRyZXNzRGVjb2RlcigpXV0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YUNvZGVjKCk6IEZpeGVkU2l6ZUNvZGVjPFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGFBcmdzLCBTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVDb2RlYyhnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLCBnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRGVjb2RlcigpKTtcbn1cblxuZXhwb3J0IHR5cGUgU3RhcnRHYW1lV2l0aFRpY2tldEFzeW5jSW5wdXQ8VEFjY291bnRHYW1lU2Vzc2lvbiBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50TWF0Y2hUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAge1xuICBnYW1lU2Vzc2lvbj86IEFkZHJlc3M8VEFjY291bnRHYW1lU2Vzc2lvbj47XG5wbGF5ZXI6IFRyYW5zYWN0aW9uU2lnbmVyPFRBY2NvdW50UGxheWVyPjtcbm1hdGNoVGlja2V0OiBBZGRyZXNzPFRBY2NvdW50TWF0Y2hUaWNrZXQ+O1xuc3lzdGVtUHJvZ3JhbT86IEFkZHJlc3M8VEFjY291bnRTeXN0ZW1Qcm9ncmFtPjtcbmdhbWVJZDogU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3NbXCJnYW1lSWRcIl07XG5vcHBvbmVudDogU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3NbXCJvcHBvbmVudFwiXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkFzeW5jPFRBY2NvdW50R2FtZVNlc3Npb24gZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudE1hdGNoVGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFN5c3RlbVByb2dyYW0gZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTPihpbnB1dDogU3RhcnRHYW1lV2l0aFRpY2tldEFzeW5jSW5wdXQ8VEFjY291bnRHYW1lU2Vzc2lvbiwgVEFjY291bnRQbGF5ZXIsIFRBY2NvdW50TWF0Y2hUaWNrZXQsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbT4sIGNvbmZpZz86IHsgcHJvZ3JhbUFkZHJlc3M/OiBUUHJvZ3JhbUFkZHJlc3MgfSApOiBQcm9taXNlPFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudE1hdGNoVGlja2V0LCBUQWNjb3VudFN5c3RlbVByb2dyYW0+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1M7XG5cbiAvLyBPcmlnaW5hbCBhY2NvdW50cy5cbmNvbnN0IG9yaWdpbmFsQWNjb3VudHMgPSB7IGdhbWVTZXNzaW9uOiB7IHZhbHVlOiBpbnB1dC5nYW1lU2Vzc2lvbiA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0sIHBsYXllcjogeyB2YWx1ZTogaW5wdXQucGxheWVyID8/IG51bGwsIGlzV3JpdGFibGU6IHRydWUgfSwgbWF0Y2hUaWNrZXQ6IHsgdmFsdWU6IGlucHV0Lm1hdGNoVGlja2V0ID8/IG51bGwsIGlzV3JpdGFibGU6IGZhbHNlIH0sIHN5c3RlbVByb2dyYW06IHsgdmFsdWU6IGlucHV0LnN5c3RlbVByb2dyYW0gPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSB9XG5jb25zdCBhY2NvdW50cyA9IG9yaWdpbmFsQWNjb3VudHMgYXMgUmVjb3JkPGtleW9mIHR5cGVvZiBvcmlnaW5hbEFjY291bnRzLCBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudD47XG5cblxuLy8gT3JpZ2luYWwgYXJncy5cbmNvbnN0IGFyZ3MgPSB7IC4uLmlucHV0LCAgfTtcblxuXG4vLyBSZXNvbHZlIGRlZmF1bHQgdmFsdWVzLlxuaWYgKCFhY2NvdW50cy5nYW1lU2Vzc2lvbi52YWx1ZSkge1xuYWNjb3VudHMuZ2FtZVNlc3Npb24udmFsdWUgPSBhd2FpdCBnZXRQcm9ncmFtRGVyaXZlZEFkZHJlc3MoeyBwcm9ncmFtQWRkcmVzcywgc2VlZHM6IFtnZXRCeXRlc0VuY29kZXIoKS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzEwMywgOTcsIDEwOSwgMTAxLCA5NSwgMTE1LCAxMDEsIDExNSwgMTE1LCAxMDUsIDExMSwgMTEwLCA5NSwgMTE4LCA0OV0pKSwgZ2V0QWRkcmVzc0VuY29kZXIoKS5lbmNvZGUoZ2V0QWRkcmVzc0Zyb21SZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudChcInBsYXllclwiLCBhY2NvdW50cy5wbGF5ZXIudmFsdWUpKSwgZ2V0QWRkcmVzc0VuY29kZXIoKS5lbmNvZGUoZ2V0Tm9uTnVsbFJlc29sdmVkSW5zdHJ1Y3Rpb25JbnB1dChcIm9wcG9uZW50XCIsIGFyZ3Mub3Bwb25lbnQpKSwgZ2V0VTY0RW5jb2RlcigpLmVuY29kZShnZXROb25OdWxsUmVzb2x2ZWRJbnN0cnVjdGlvbklucHV0KFwiZ2FtZUlkXCIsIGFyZ3MuZ2FtZUlkKSldIH0pO1xufVxuaWYgKCFhY2NvdW50cy5zeXN0ZW1Qcm9ncmFtLnZhbHVlKSB7XG5hY2NvdW50cy5zeXN0ZW1Qcm9ncmFtLnZhbHVlID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJyBhcyBBZGRyZXNzPCcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSc+O1xufVxuXG5jb25zdCBnZXRBY2NvdW50TWV0YSA9IGdldEFjY291bnRNZXRhRmFjdG9yeShwcm9ncmFtQWRkcmVzcywgJ3Byb2dyYW1JZCcpO1xucmV0dXJuIE9iamVjdC5mcmVlemUoeyBhY2NvdW50czogW2dldEFjY291bnRNZXRhKFwiZ2FtZVNlc3Npb25cIiwgYWNjb3VudHMuZ2FtZVNlc3Npb24pLCBnZXRBY2NvdW50TWV0YShcInBsYXllclwiLCBhY2NvdW50cy5wbGF5ZXIpLCBnZXRBY2NvdW50TWV0YShcIm1hdGNoVGlja2V0XCIsIGFjY291bnRzLm1hdGNoVGlja2V0KSwgZ2V0QWNjb3VudE1ldGEoXCJzeXN0ZW1Qcm9ncmFtXCIsIGFjY291bnRzLnN5c3RlbVByb2dyYW0pXSwgZGF0YTogZ2V0U3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoYXJncyBhcyBTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQXJncyksIHByb2dyYW1BZGRyZXNzIH0gYXMgU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRHYW1lU2Vzc2lvbiwgVEFjY291bnRQbGF5ZXIsIFRBY2NvdW50TWF0Y2hUaWNrZXQsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbT4pO1xufVxuXG5leHBvcnQgdHlwZSBTdGFydEdhbWVXaXRoVGlja2V0SW5wdXQ8VEFjY291bnRHYW1lU2Vzc2lvbiBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50TWF0Y2hUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAge1xuICBnYW1lU2Vzc2lvbjogQWRkcmVzczxUQWNjb3VudEdhbWVTZXNzaW9uPjtcbnBsYXllcjogVHJhbnNhY3Rpb25TaWduZXI8VEFjY291bnRQbGF5ZXI+O1xubWF0Y2hUaWNrZXQ6IEFkZHJlc3M8VEFjY291bnRNYXRjaFRpY2tldD47XG5zeXN0ZW1Qcm9ncmFtPzogQWRkcmVzczxUQWNjb3VudFN5c3RlbVByb2dyYW0+O1xuZ2FtZUlkOiBTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQXJnc1tcImdhbWVJZFwiXTtcbm9wcG9uZW50OiBTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQXJnc1tcIm9wcG9uZW50XCJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uPFRBY2NvdW50R2FtZVNlc3Npb24gZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudE1hdGNoVGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFN5c3RlbVByb2dyYW0gZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTPihpbnB1dDogU3RhcnRHYW1lV2l0aFRpY2tldElucHV0PFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudE1hdGNoVGlja2V0LCBUQWNjb3VudFN5c3RlbVByb2dyYW0+LCBjb25maWc/OiB7IHByb2dyYW1BZGRyZXNzPzogVFByb2dyYW1BZGRyZXNzIH0gKTogU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRHYW1lU2Vzc2lvbiwgVEFjY291bnRQbGF5ZXIsIFRBY2NvdW50TWF0Y2hUaWNrZXQsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbT4ge1xuICAvLyBQcm9ncmFtIGFkZHJlc3MuXG5jb25zdCBwcm9ncmFtQWRkcmVzcyA9IGNvbmZpZz8ucHJvZ3JhbUFkZHJlc3MgPz8gUlBTX0dBTUVfUFJPR1JBTV9BRERSRVNTO1xuXG4gLy8gT3JpZ2luYWwgYWNjb3VudHMuXG5jb25zdCBvcmlnaW5hbEFjY291bnRzID0geyBnYW1lU2Vzc2lvbjogeyB2YWx1ZTogaW5wdXQuZ2FtZVNlc3Npb24gPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0sIG1hdGNoVGlja2V0OiB7IHZhbHVlOiBpbnB1dC5tYXRjaFRpY2tldCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBzeXN0ZW1Qcm9ncmFtOiB7IHZhbHVlOiBpbnB1dC5zeXN0ZW1Qcm9ncmFtID8/IG51bGwsIGlzV3JpdGFibGU6IGZhbHNlIH0gfVxuY29uc3QgYWNjb3VudHMgPSBvcmlnaW5hbEFjY291bnRzIGFzIFJlY29yZDxrZXlvZiB0eXBlb2Ygb3JpZ2luYWxBY2NvdW50cywgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQ+O1xuXG5cbi8vIE9yaWdpbmFsIGFyZ3MuXG5jb25zdCBhcmdzID0geyAuLi5pbnB1dCwgIH07XG5cblxuLy8gUmVzb2x2ZSBkZWZhdWx0IHZhbHVlcy5cbmlmICghYWNjb3VudHMuc3lzdGVtUHJvZ3JhbS52YWx1ZSkge1xuYWNjb3VudHMuc3lzdGVtUHJvZ3JhbS52YWx1ZSA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMScgYXMgQWRkcmVzczwnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnPjtcbn1cblxuY29uc3QgZ2V0QWNjb3VudE1ldGEgPSBnZXRBY2NvdW50TWV0YUZhY3RvcnkocHJvZ3JhbUFkZHJlc3MsICdwcm9ncmFtSWQnKTtcbnJldHVybiBPYmplY3QuZnJlZXplKHsgYWNjb3VudHM6IFtnZXRBY2NvdW50TWV0YShcImdhbWVTZXNzaW9uXCIsIGFjY291bnRzLmdhbWVTZXNzaW9uKSwgZ2V0QWNjb3VudE1ldGEoXCJwbGF5ZXJcIiwgYWNjb3VudHMucGxheWVyKSwgZ2V0QWNjb3VudE1ldGEoXCJtYXRjaFRpY2tldFwiLCBhY2NvdW50cy5tYXRjaFRpY2tldCksIGdldEFjY291bnRNZXRhKFwic3lzdGVtUHJvZ3JhbVwiLCBhY2NvdW50cy5zeXN0ZW1Qcm9ncmFtKV0sIGRhdGE6IGdldFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGFFbmNvZGVyKCkuZW5jb2RlKGFyZ3MgYXMgU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MpLCBwcm9ncmFtQWRkcmVzcyB9IGFzIFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50R2FtZVNlc3Npb24sIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudE1hdGNoVGlja2V0LCBUQWNjb3VudFN5c3RlbVByb2dyYW0+KTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nID0gdHlwZW9mIFJQU19HQU1FX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10gPSByZWFkb25seSBBY2NvdW50TWV0YVtdPiA9IHsgcHJvZ3JhbUFkZHJlc3M6IEFkZHJlc3M8VFByb2dyYW0+O1xuYWNjb3VudHM6IHtcbmdhbWVTZXNzaW9uOiBUQWNjb3VudE1ldGFzWzBdO1xucGxheWVyOiBUQWNjb3VudE1ldGFzWzFdO1xubWF0Y2hUaWNrZXQ6IFRBY2NvdW50TWV0YXNbMl07XG5zeXN0ZW1Qcm9ncmFtOiBUQWNjb3VudE1ldGFzWzNdO1xufTtcbmRhdGE6IFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGE7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10+KGluc3RydWN0aW9uOiBJbnN0cnVjdGlvbjxUUHJvZ3JhbT4gJiBJbnN0cnVjdGlvbldpdGhBY2NvdW50czxUQWNjb3VudE1ldGFzPiAmIEluc3RydWN0aW9uV2l0aERhdGE8UmVhZG9ubHlVaW50OEFycmF5Pik6IFBhcnNlZFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSwgVEFjY291bnRNZXRhcz4ge1xuICBpZiAoaW5zdHJ1Y3Rpb24uYWNjb3VudHMubGVuZ3RoIDwgNCkge1xuICB0aHJvdyBuZXcgU29sYW5hRXJyb3IoU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0lOU1VGRklDSUVOVF9BQ0NPVU5UX01FVEFTLCB7IGFjdHVhbEFjY291bnRNZXRhczogaW5zdHJ1Y3Rpb24uYWNjb3VudHMubGVuZ3RoLCBleHBlY3RlZEFjY291bnRNZXRhczogNCB9KTtcbn1cbmxldCBhY2NvdW50SW5kZXggPSAwO1xuY29uc3QgZ2V0TmV4dEFjY291bnQgPSAoKSA9PiB7XG4gIGNvbnN0IGFjY291bnRNZXRhID0gKGluc3RydWN0aW9uLmFjY291bnRzIGFzIFRBY2NvdW50TWV0YXMpW2FjY291bnRJbmRleF0hO1xuICBhY2NvdW50SW5kZXggKz0gMTtcbiAgcmV0dXJuIGFjY291bnRNZXRhO1xufVxuICByZXR1cm4geyBwcm9ncmFtQWRkcmVzczogaW5zdHJ1Y3Rpb24ucHJvZ3JhbUFkZHJlc3MsIGFjY291bnRzOiB7IGdhbWVTZXNzaW9uOiBnZXROZXh0QWNjb3VudCgpLCBwbGF5ZXI6IGdldE5leHRBY2NvdW50KCksIG1hdGNoVGlja2V0OiBnZXROZXh0QWNjb3VudCgpLCBzeXN0ZW1Qcm9ncmFtOiBnZXROZXh0QWNjb3VudCgpIH0sIGRhdGE6IGdldFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkuZGVjb2RlKGluc3RydWN0aW9uLmRhdGEpIH07XG59Il19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
export * from './rpsGame';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3Jwcy1nYW1lL3Byb2dyYW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9ycHNHYW1lJzsiXX0=
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { type Address, type ClientWithPayer, type ClientWithRpc, type ClientWithTransactionPlanning, type ClientWithTransactionSending, type GetAccountInfoApi, type GetMultipleAccountsApi, type Instruction, type InstructionWithData, type ReadonlyUint8Array } from '@solana/kit';
|
|
9
|
+
import { type SelfFetchFunctions, type SelfPlanAndSendFunctions } from '@solana/program-client-core';
|
|
10
|
+
import { getGameSessionCodec, getPlayerProfileCodec, type GameSession, type GameSessionArgs, type PlayerProfile, type PlayerProfileArgs } from '../accounts';
|
|
11
|
+
import { getClosePlayerInstructionAsync, getDelegatePdaInstructionAsync, getInitializePlayerInstructionAsync, getMakeChoiceInstruction, getOnMatchFoundInstruction, getPersistResultsInstruction, getProcessUndelegationInstruction, getStartGameInstructionAsync, getStartGameWithTicketInstructionAsync, type ClosePlayerAsyncInput, type DelegatePdaAsyncInput, type InitializePlayerAsyncInput, type MakeChoiceInput, type OnMatchFoundInput, type ParsedClosePlayerInstruction, type ParsedDelegatePdaInstruction, type ParsedInitializePlayerInstruction, type ParsedMakeChoiceInstruction, type ParsedOnMatchFoundInstruction, type ParsedPersistResultsInstruction, type ParsedProcessUndelegationInstruction, type ParsedStartGameInstruction, type ParsedStartGameWithTicketInstruction, type PersistResultsInput, type ProcessUndelegationInput, type StartGameAsyncInput, type StartGameWithTicketAsyncInput } from '../instructions';
|
|
12
|
+
export declare const RPS_GAME_PROGRAM_ADDRESS: Address<"8ohu3RobXyZ2DebyJjbs2co9YCG275FUsVckEcmDbCos">;
|
|
13
|
+
export declare enum RpsGameAccount {
|
|
14
|
+
GameSession = 0,
|
|
15
|
+
PlayerProfile = 1
|
|
16
|
+
}
|
|
17
|
+
export declare function identifyRpsGameAccount(account: {
|
|
18
|
+
data: ReadonlyUint8Array;
|
|
19
|
+
} | ReadonlyUint8Array): RpsGameAccount;
|
|
20
|
+
export declare enum RpsGameInstruction {
|
|
21
|
+
ClosePlayer = 0,
|
|
22
|
+
DelegatePda = 1,
|
|
23
|
+
InitializePlayer = 2,
|
|
24
|
+
MakeChoice = 3,
|
|
25
|
+
OnMatchFound = 4,
|
|
26
|
+
PersistResults = 5,
|
|
27
|
+
ProcessUndelegation = 6,
|
|
28
|
+
StartGame = 7,
|
|
29
|
+
StartGameWithTicket = 8
|
|
30
|
+
}
|
|
31
|
+
export declare function identifyRpsGameInstruction(instruction: {
|
|
32
|
+
data: ReadonlyUint8Array;
|
|
33
|
+
} | ReadonlyUint8Array): RpsGameInstruction;
|
|
34
|
+
export type ParsedRpsGameInstruction<TProgram extends string = '8ohu3RobXyZ2DebyJjbs2co9YCG275FUsVckEcmDbCos'> = {
|
|
35
|
+
instructionType: RpsGameInstruction.ClosePlayer;
|
|
36
|
+
} & ParsedClosePlayerInstruction<TProgram> | {
|
|
37
|
+
instructionType: RpsGameInstruction.DelegatePda;
|
|
38
|
+
} & ParsedDelegatePdaInstruction<TProgram> | {
|
|
39
|
+
instructionType: RpsGameInstruction.InitializePlayer;
|
|
40
|
+
} & ParsedInitializePlayerInstruction<TProgram> | {
|
|
41
|
+
instructionType: RpsGameInstruction.MakeChoice;
|
|
42
|
+
} & ParsedMakeChoiceInstruction<TProgram> | {
|
|
43
|
+
instructionType: RpsGameInstruction.OnMatchFound;
|
|
44
|
+
} & ParsedOnMatchFoundInstruction<TProgram> | {
|
|
45
|
+
instructionType: RpsGameInstruction.PersistResults;
|
|
46
|
+
} & ParsedPersistResultsInstruction<TProgram> | {
|
|
47
|
+
instructionType: RpsGameInstruction.ProcessUndelegation;
|
|
48
|
+
} & ParsedProcessUndelegationInstruction<TProgram> | {
|
|
49
|
+
instructionType: RpsGameInstruction.StartGame;
|
|
50
|
+
} & ParsedStartGameInstruction<TProgram> | {
|
|
51
|
+
instructionType: RpsGameInstruction.StartGameWithTicket;
|
|
52
|
+
} & ParsedStartGameWithTicketInstruction<TProgram>;
|
|
53
|
+
export declare function parseRpsGameInstruction<TProgram extends string>(instruction: Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array>): ParsedRpsGameInstruction<TProgram>;
|
|
54
|
+
export type RpsGamePlugin = {
|
|
55
|
+
accounts: RpsGamePluginAccounts;
|
|
56
|
+
instructions: RpsGamePluginInstructions;
|
|
57
|
+
};
|
|
58
|
+
export type RpsGamePluginAccounts = {
|
|
59
|
+
gameSession: ReturnType<typeof getGameSessionCodec> & SelfFetchFunctions<GameSessionArgs, GameSession>;
|
|
60
|
+
playerProfile: ReturnType<typeof getPlayerProfileCodec> & SelfFetchFunctions<PlayerProfileArgs, PlayerProfile>;
|
|
61
|
+
};
|
|
62
|
+
export type RpsGamePluginInstructions = {
|
|
63
|
+
closePlayer: (input: MakeOptional<ClosePlayerAsyncInput, "payer">) => ReturnType<typeof getClosePlayerInstructionAsync> & SelfPlanAndSendFunctions;
|
|
64
|
+
delegatePda: (input: MakeOptional<DelegatePdaAsyncInput, "payer">) => ReturnType<typeof getDelegatePdaInstructionAsync> & SelfPlanAndSendFunctions;
|
|
65
|
+
initializePlayer: (input: MakeOptional<InitializePlayerAsyncInput, "payer">) => ReturnType<typeof getInitializePlayerInstructionAsync> & SelfPlanAndSendFunctions;
|
|
66
|
+
makeChoice: (input: MakeChoiceInput) => ReturnType<typeof getMakeChoiceInstruction> & SelfPlanAndSendFunctions;
|
|
67
|
+
onMatchFound: (input: OnMatchFoundInput) => ReturnType<typeof getOnMatchFoundInstruction> & SelfPlanAndSendFunctions;
|
|
68
|
+
persistResults: (input: MakeOptional<PersistResultsInput, "payer">) => ReturnType<typeof getPersistResultsInstruction> & SelfPlanAndSendFunctions;
|
|
69
|
+
processUndelegation: (input: MakeOptional<ProcessUndelegationInput, "payer">) => ReturnType<typeof getProcessUndelegationInstruction> & SelfPlanAndSendFunctions;
|
|
70
|
+
startGame: (input: StartGameAsyncInput) => ReturnType<typeof getStartGameInstructionAsync> & SelfPlanAndSendFunctions;
|
|
71
|
+
startGameWithTicket: (input: StartGameWithTicketAsyncInput) => ReturnType<typeof getStartGameWithTicketInstructionAsync> & SelfPlanAndSendFunctions;
|
|
72
|
+
};
|
|
73
|
+
export type RpsGamePluginRequirements = ClientWithRpc<GetAccountInfoApi & GetMultipleAccountsApi> & ClientWithPayer & ClientWithTransactionPlanning & ClientWithTransactionSending;
|
|
74
|
+
export declare function rpsGameProgram(): <T extends RpsGamePluginRequirements>(client: T) => T & {
|
|
75
|
+
rpsGame: RpsGamePlugin;
|
|
76
|
+
};
|
|
77
|
+
type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
78
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { assertIsInstructionWithAccounts, containsBytes, fixEncoderSize, getBytesEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, SolanaError } from '@solana/kit';
|
|
9
|
+
import { addSelfFetchFunctions, addSelfPlanAndSendFunctions } from '@solana/program-client-core';
|
|
10
|
+
import { getGameSessionCodec, getPlayerProfileCodec } from '../accounts';
|
|
11
|
+
import { getClosePlayerInstructionAsync, getDelegatePdaInstructionAsync, getInitializePlayerInstructionAsync, getMakeChoiceInstruction, getOnMatchFoundInstruction, getPersistResultsInstruction, getProcessUndelegationInstruction, getStartGameInstructionAsync, getStartGameWithTicketInstructionAsync, parseClosePlayerInstruction, parseDelegatePdaInstruction, parseInitializePlayerInstruction, parseMakeChoiceInstruction, parseOnMatchFoundInstruction, parsePersistResultsInstruction, parseProcessUndelegationInstruction, parseStartGameInstruction, parseStartGameWithTicketInstruction } from '../instructions';
|
|
12
|
+
export const RPS_GAME_PROGRAM_ADDRESS = '8ohu3RobXyZ2DebyJjbs2co9YCG275FUsVckEcmDbCos';
|
|
13
|
+
export var RpsGameAccount;
|
|
14
|
+
(function (RpsGameAccount) {
|
|
15
|
+
RpsGameAccount[RpsGameAccount["GameSession"] = 0] = "GameSession";
|
|
16
|
+
RpsGameAccount[RpsGameAccount["PlayerProfile"] = 1] = "PlayerProfile";
|
|
17
|
+
})(RpsGameAccount || (RpsGameAccount = {}));
|
|
18
|
+
export function identifyRpsGameAccount(account) {
|
|
19
|
+
const data = 'data' in account ? account.data : account;
|
|
20
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([150, 116, 20, 197, 205, 121, 220, 240])), 0)) {
|
|
21
|
+
return RpsGameAccount.GameSession;
|
|
22
|
+
}
|
|
23
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([82, 226, 99, 87, 164, 130, 181, 80])), 0)) {
|
|
24
|
+
return RpsGameAccount.PlayerProfile;
|
|
25
|
+
}
|
|
26
|
+
throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, { accountData: data, programName: "rpsGame" });
|
|
27
|
+
}
|
|
28
|
+
export var RpsGameInstruction;
|
|
29
|
+
(function (RpsGameInstruction) {
|
|
30
|
+
RpsGameInstruction[RpsGameInstruction["ClosePlayer"] = 0] = "ClosePlayer";
|
|
31
|
+
RpsGameInstruction[RpsGameInstruction["DelegatePda"] = 1] = "DelegatePda";
|
|
32
|
+
RpsGameInstruction[RpsGameInstruction["InitializePlayer"] = 2] = "InitializePlayer";
|
|
33
|
+
RpsGameInstruction[RpsGameInstruction["MakeChoice"] = 3] = "MakeChoice";
|
|
34
|
+
RpsGameInstruction[RpsGameInstruction["OnMatchFound"] = 4] = "OnMatchFound";
|
|
35
|
+
RpsGameInstruction[RpsGameInstruction["PersistResults"] = 5] = "PersistResults";
|
|
36
|
+
RpsGameInstruction[RpsGameInstruction["ProcessUndelegation"] = 6] = "ProcessUndelegation";
|
|
37
|
+
RpsGameInstruction[RpsGameInstruction["StartGame"] = 7] = "StartGame";
|
|
38
|
+
RpsGameInstruction[RpsGameInstruction["StartGameWithTicket"] = 8] = "StartGameWithTicket";
|
|
39
|
+
})(RpsGameInstruction || (RpsGameInstruction = {}));
|
|
40
|
+
export function identifyRpsGameInstruction(instruction) {
|
|
41
|
+
const data = 'data' in instruction ? instruction.data : instruction;
|
|
42
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([225, 227, 204, 63, 32, 122, 58, 227])), 0)) {
|
|
43
|
+
return RpsGameInstruction.ClosePlayer;
|
|
44
|
+
}
|
|
45
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([248, 217, 193, 46, 124, 191, 64, 135])), 0)) {
|
|
46
|
+
return RpsGameInstruction.DelegatePda;
|
|
47
|
+
}
|
|
48
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([79, 249, 88, 177, 220, 62, 56, 128])), 0)) {
|
|
49
|
+
return RpsGameInstruction.InitializePlayer;
|
|
50
|
+
}
|
|
51
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([207, 18, 251, 32, 135, 122, 160, 77])), 0)) {
|
|
52
|
+
return RpsGameInstruction.MakeChoice;
|
|
53
|
+
}
|
|
54
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([66, 209, 170, 159, 10, 195, 34, 214])), 0)) {
|
|
55
|
+
return RpsGameInstruction.OnMatchFound;
|
|
56
|
+
}
|
|
57
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([9, 175, 42, 217, 2, 48, 80, 81])), 0)) {
|
|
58
|
+
return RpsGameInstruction.PersistResults;
|
|
59
|
+
}
|
|
60
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([196, 28, 41, 206, 48, 37, 51, 167])), 0)) {
|
|
61
|
+
return RpsGameInstruction.ProcessUndelegation;
|
|
62
|
+
}
|
|
63
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([249, 47, 252, 172, 184, 162, 245, 14])), 0)) {
|
|
64
|
+
return RpsGameInstruction.StartGame;
|
|
65
|
+
}
|
|
66
|
+
if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([2, 250, 253, 202, 51, 138, 80, 20])), 0)) {
|
|
67
|
+
return RpsGameInstruction.StartGameWithTicket;
|
|
68
|
+
}
|
|
69
|
+
throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, { instructionData: data, programName: "rpsGame" });
|
|
70
|
+
}
|
|
71
|
+
export function parseRpsGameInstruction(instruction) {
|
|
72
|
+
const instructionType = identifyRpsGameInstruction(instruction);
|
|
73
|
+
switch (instructionType) {
|
|
74
|
+
case RpsGameInstruction.ClosePlayer: {
|
|
75
|
+
assertIsInstructionWithAccounts(instruction);
|
|
76
|
+
return { instructionType: RpsGameInstruction.ClosePlayer, ...parseClosePlayerInstruction(instruction) };
|
|
77
|
+
}
|
|
78
|
+
case RpsGameInstruction.DelegatePda: {
|
|
79
|
+
assertIsInstructionWithAccounts(instruction);
|
|
80
|
+
return { instructionType: RpsGameInstruction.DelegatePda, ...parseDelegatePdaInstruction(instruction) };
|
|
81
|
+
}
|
|
82
|
+
case RpsGameInstruction.InitializePlayer: {
|
|
83
|
+
assertIsInstructionWithAccounts(instruction);
|
|
84
|
+
return { instructionType: RpsGameInstruction.InitializePlayer, ...parseInitializePlayerInstruction(instruction) };
|
|
85
|
+
}
|
|
86
|
+
case RpsGameInstruction.MakeChoice: {
|
|
87
|
+
assertIsInstructionWithAccounts(instruction);
|
|
88
|
+
return { instructionType: RpsGameInstruction.MakeChoice, ...parseMakeChoiceInstruction(instruction) };
|
|
89
|
+
}
|
|
90
|
+
case RpsGameInstruction.OnMatchFound: {
|
|
91
|
+
assertIsInstructionWithAccounts(instruction);
|
|
92
|
+
return { instructionType: RpsGameInstruction.OnMatchFound, ...parseOnMatchFoundInstruction(instruction) };
|
|
93
|
+
}
|
|
94
|
+
case RpsGameInstruction.PersistResults: {
|
|
95
|
+
assertIsInstructionWithAccounts(instruction);
|
|
96
|
+
return { instructionType: RpsGameInstruction.PersistResults, ...parsePersistResultsInstruction(instruction) };
|
|
97
|
+
}
|
|
98
|
+
case RpsGameInstruction.ProcessUndelegation: {
|
|
99
|
+
assertIsInstructionWithAccounts(instruction);
|
|
100
|
+
return { instructionType: RpsGameInstruction.ProcessUndelegation, ...parseProcessUndelegationInstruction(instruction) };
|
|
101
|
+
}
|
|
102
|
+
case RpsGameInstruction.StartGame: {
|
|
103
|
+
assertIsInstructionWithAccounts(instruction);
|
|
104
|
+
return { instructionType: RpsGameInstruction.StartGame, ...parseStartGameInstruction(instruction) };
|
|
105
|
+
}
|
|
106
|
+
case RpsGameInstruction.StartGameWithTicket: {
|
|
107
|
+
assertIsInstructionWithAccounts(instruction);
|
|
108
|
+
return { instructionType: RpsGameInstruction.StartGameWithTicket, ...parseStartGameWithTicketInstruction(instruction) };
|
|
109
|
+
}
|
|
110
|
+
default: throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, { instructionType: instructionType, programName: "rpsGame" });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export function rpsGameProgram() {
|
|
114
|
+
return (client) => {
|
|
115
|
+
return { ...client, rpsGame: { accounts: { gameSession: addSelfFetchFunctions(client, getGameSessionCodec()), playerProfile: addSelfFetchFunctions(client, getPlayerProfileCodec()) }, instructions: { closePlayer: input => addSelfPlanAndSendFunctions(client, getClosePlayerInstructionAsync({ ...input, payer: input.payer ?? client.payer.address })), delegatePda: input => addSelfPlanAndSendFunctions(client, getDelegatePdaInstructionAsync({ ...input, payer: input.payer ?? client.payer })), initializePlayer: input => addSelfPlanAndSendFunctions(client, getInitializePlayerInstructionAsync({ ...input, payer: input.payer ?? client.payer })), makeChoice: input => addSelfPlanAndSendFunctions(client, getMakeChoiceInstruction(input)), onMatchFound: input => addSelfPlanAndSendFunctions(client, getOnMatchFoundInstruction(input)), persistResults: input => addSelfPlanAndSendFunctions(client, getPersistResultsInstruction({ ...input, payer: input.payer ?? client.payer })), processUndelegation: input => addSelfPlanAndSendFunctions(client, getProcessUndelegationInstruction({ ...input, payer: input.payer ?? client.payer.address })), startGame: input => addSelfPlanAndSendFunctions(client, getStartGameInstructionAsync(input)), startGameWithTicket: input => addSelfPlanAndSendFunctions(client, getStartGameWithTicketInstructionAsync(input)) } } };
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBzR2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvcnBzLWdhbWUvcHJvZ3JhbXMvcnBzR2FtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUseURBQXlELEVBQUUsNkRBQTZELEVBQUUsNERBQTRELEVBQUUsV0FBVyxFQUEyUCxNQUFNLGFBQWEsQ0FBQztBQUM1aUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUEwRCxNQUFNLDZCQUE2QixDQUFDO0FBQ3pKLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBc0YsTUFBTSxhQUFhLENBQUM7QUFDN0osT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLG1DQUFtQyxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLGlDQUFpQyxFQUFFLDRCQUE0QixFQUFFLHNDQUFzQyxFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLDhCQUE4QixFQUFFLG1DQUFtQyxFQUFFLHlCQUF5QixFQUFFLG1DQUFtQyxFQUFpbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUU3cUMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsOENBQXlHLENBQUM7QUFFbEosTUFBTSxDQUFOLElBQVksY0FBNkM7QUFBekQsV0FBWSxjQUFjO0lBQUcsaUVBQVcsQ0FBQTtJQUFFLHFFQUFhLENBQUE7QUFBQyxDQUFDLEVBQTdDLGNBQWMsS0FBZCxjQUFjLFFBQStCO0FBRXpELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUEwRDtJQUM3RixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDeEQsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFBQyxDQUFDO0lBQzVLLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDO0lBQUMsQ0FBQztJQUNuSyxNQUFNLElBQUksV0FBVyxDQUFDLHlEQUF5RCxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNwSSxDQUFDO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBQWdLO0FBQTVLLFdBQVksa0JBQWtCO0lBQUcseUVBQVcsQ0FBQTtJQUFFLHlFQUFXLENBQUE7SUFBRSxtRkFBZ0IsQ0FBQTtJQUFFLHVFQUFVLENBQUE7SUFBRSwyRUFBWSxDQUFBO0lBQUUsK0VBQWMsQ0FBQTtJQUFFLHlGQUFtQixDQUFBO0lBQUUscUVBQVMsQ0FBQTtJQUFFLHlGQUFtQixDQUFBO0FBQUMsQ0FBQyxFQUFoSyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBQThJO0FBRTVLLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxXQUE4RDtJQUNyRyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDcEUsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUFDLENBQUM7SUFDOUssSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUFDLENBQUM7SUFDM0ssSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO0lBQUMsQ0FBQztJQUM5SyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQUMsQ0FBQztJQUN6SyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQUMsQ0FBQztJQUMzSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO0lBQUMsQ0FBQztJQUN4SyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUs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LE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLG1DQUFtQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsNEJBQTRCLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsc0NBQXNDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNoMUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBjb2RlIHdhcyBBVVRPR0VORVJBVEVEIHVzaW5nIHRoZSBDb2RhbWEgbGlicmFyeS5cbiAqIFBsZWFzZSBETyBOT1QgRURJVCBUSElTIEZJTEUsIGluc3RlYWQgdXNlIHZpc2l0b3JzXG4gKiB0byBhZGQgZmVhdHVyZXMsIHRoZW4gcmVydW4gQ29kYW1hIHRvIHVwZGF0ZSBpdC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RhbWEtaWRsL2NvZGFtYVxuICovXG5cbmltcG9ydCB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMsIGNvbnRhaW5zQnl0ZXMsIGZpeEVuY29kZXJTaXplLCBnZXRCeXRlc0VuY29kZXIsIFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19GQUlMRURfVE9fSURFTlRJRllfQUNDT1VOVCwgU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0ZBSUxFRF9UT19JREVOVElGWV9JTlNUUlVDVElPTiwgU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX1VOUkVDT0dOSVpFRF9JTlNUUlVDVElPTl9UWVBFLCBTb2xhbmFFcnJvciwgdHlwZSBBZGRyZXNzLCB0eXBlIENsaWVudFdpdGhQYXllciwgdHlwZSBDbGllbnRXaXRoUnBjLCB0eXBlIENsaWVudFdpdGhUcmFuc2FjdGlvblBsYW5uaW5nLCB0eXBlIENsaWVudFdpdGhUcmFuc2FjdGlvblNlbmRpbmcsIHR5cGUgR2V0QWNjb3VudEluZm9BcGksIHR5cGUgR2V0TXVsdGlwbGVBY2NvdW50c0FwaSwgdHlwZSBJbnN0cnVjdGlvbiwgdHlwZSBJbnN0cnVjdGlvbldpdGhEYXRhLCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSB9IGZyb20gJ0Bzb2xhbmEva2l0JztcbmltcG9ydCB7IGFkZFNlbGZGZXRjaEZ1bmN0aW9ucywgYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zLCB0eXBlIFNlbGZGZXRjaEZ1bmN0aW9ucywgdHlwZSBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMgfSBmcm9tICdAc29sYW5hL3Byb2dyYW0tY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgZ2V0R2FtZVNlc3Npb25Db2RlYywgZ2V0UGxheWVyUHJvZmlsZUNvZGVjLCB0eXBlIEdhbWVTZXNzaW9uLCB0eXBlIEdhbWVTZXNzaW9uQXJncywgdHlwZSBQbGF5ZXJQcm9maWxlLCB0eXBlIFBsYXllclByb2ZpbGVBcmdzIH0gZnJvbSAnLi4vYWNjb3VudHMnO1xuaW1wb3J0IHsgZ2V0Q2xvc2VQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jLCBnZXREZWxlZ2F0ZVBkYUluc3RydWN0aW9uQXN5bmMsIGdldEluaXRpYWxpemVQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jLCBnZXRNYWtlQ2hvaWNlSW5zdHJ1Y3Rpb24sIGdldE9uTWF0Y2hGb3VuZEluc3RydWN0aW9uLCBnZXRQZXJzaXN0UmVzdWx0c0luc3RydWN0aW9uLCBnZXRQcm9jZXNzVW5kZWxlZ2F0aW9uSW5zdHJ1Y3Rpb24sIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uQXN5bmMsIGdldFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkFzeW5jLCBwYXJzZUNsb3NlUGxheWVySW5zdHJ1Y3Rpb24sIHBhcnNlRGVsZWdhdGVQZGFJbnN0cnVjdGlvbiwgcGFyc2VJbml0aWFsaXplUGxheWVySW5zdHJ1Y3Rpb24sIHBhcnNlTWFrZUNob2ljZUluc3RydWN0aW9uLCBwYXJzZU9uTWF0Y2hGb3VuZEluc3RydWN0aW9uLCBwYXJzZVBlcnNpc3RSZXN1bHRzSW5zdHJ1Y3Rpb24sIHBhcnNlUHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uLCBwYXJzZVN0YXJ0R2FtZUluc3RydWN0aW9uLCBwYXJzZVN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbiwgdHlwZSBDbG9zZVBsYXllckFzeW5jSW5wdXQsIHR5cGUgRGVsZWdhdGVQZGFBc3luY0lucHV0LCB0eXBlIEluaXRpYWxpemVQbGF5ZXJBc3luY0lucHV0LCB0eXBlIE1ha2VDaG9pY2VJbnB1dCwgdHlwZSBPbk1hdGNoRm91bmRJbnB1dCwgdHlwZSBQYXJzZWRDbG9zZVBsYXllckluc3RydWN0aW9uLCB0eXBlIFBhcnNlZERlbGVnYXRlUGRhSW5zdHJ1Y3Rpb24sIHR5cGUgUGFyc2VkSW5pdGlhbGl6ZVBsYXllckluc3RydWN0aW9uLCB0eXBlIFBhcnNlZE1ha2VDaG9pY2VJbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRPbk1hdGNoRm91bmRJbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRQZXJzaXN0UmVzdWx0c0luc3RydWN0aW9uLCB0eXBlIFBhcnNlZFByb2Nlc3NVbmRlbGVnYXRpb25JbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRTdGFydEdhbWVJbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb24sIHR5cGUgUGVyc2lzdFJlc3VsdHNJbnB1dCwgdHlwZSBQcm9jZXNzVW5kZWxlZ2F0aW9uSW5wdXQsIHR5cGUgU3RhcnRHYW1lQXN5bmNJbnB1dCwgdHlwZSBTdGFydEdhbWVXaXRoVGlja2V0QXN5bmNJbnB1dCB9IGZyb20gJy4uL2luc3RydWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1MgPSAnOG9odTNSb2JYeVoyRGVieUpqYnMyY285WUNHMjc1RlVzVmNrRWNtRGJDb3MnIGFzIEFkZHJlc3M8JzhvaHUzUm9iWHlaMkRlYnlKamJzMmNvOVlDRzI3NUZVc1Zja0VjbURiQ29zJz47XG5cbmV4cG9ydCBlbnVtIFJwc0dhbWVBY2NvdW50IHsgR2FtZVNlc3Npb24sIFBsYXllclByb2ZpbGUgfVxuXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZnlScHNHYW1lQWNjb3VudChhY2NvdW50OiB7IGRhdGE6IFJlYWRvbmx5VWludDhBcnJheSB9IHwgUmVhZG9ubHlVaW50OEFycmF5KTogUnBzR2FtZUFjY291bnQge1xuICAgIGNvbnN0IGRhdGEgPSAnZGF0YScgaW4gYWNjb3VudCA/IGFjY291bnQuZGF0YSA6IGFjY291bnQ7XG4gICAgaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbMTUwLCAxMTYsIDIwLCAxOTcsIDIwNSwgMTIxLCAyMjAsIDI0MF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVBY2NvdW50LkdhbWVTZXNzaW9uOyB9XG5pZiAoY29udGFpbnNCeXRlcyhkYXRhLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFs4MiwgMjI2LCA5OSwgODcsIDE2NCwgMTMwLCAxODEsIDgwXSkpLCAwKSkgeyByZXR1cm4gUnBzR2FtZUFjY291bnQuUGxheWVyUHJvZmlsZTsgfVxuICAgIHRocm93IG5ldyBTb2xhbmFFcnJvcihTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fRkFJTEVEX1RPX0lERU5USUZZX0FDQ09VTlQsIHsgYWNjb3VudERhdGE6IGRhdGEsIHByb2dyYW1OYW1lOiBcInJwc0dhbWVcIiB9KTtcbn1cblxuZXhwb3J0IGVudW0gUnBzR2FtZUluc3RydWN0aW9uIHsgQ2xvc2VQbGF5ZXIsIERlbGVnYXRlUGRhLCBJbml0aWFsaXplUGxheWVyLCBNYWtlQ2hvaWNlLCBPbk1hdGNoRm91bmQsIFBlcnNpc3RSZXN1bHRzLCBQcm9jZXNzVW5kZWxlZ2F0aW9uLCBTdGFydEdhbWUsIFN0YXJ0R2FtZVdpdGhUaWNrZXQgfVxuXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZnlScHNHYW1lSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb246IHsgZGF0YTogUmVhZG9ubHlVaW50OEFycmF5IH0gfCBSZWFkb25seVVpbnQ4QXJyYXkpOiBScHNHYW1lSW5zdHJ1Y3Rpb24ge1xuICAgIGNvbnN0IGRhdGEgPSAnZGF0YScgaW4gaW5zdHJ1Y3Rpb24gPyBpbnN0cnVjdGlvbi5kYXRhIDogaW5zdHJ1Y3Rpb247XG4gICAgaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbMjI1LCAyMjcsIDIwNCwgNjMsIDMyLCAxMjIsIDU4LCAyMjddKSksIDApKSB7IHJldHVybiBScHNHYW1lSW5zdHJ1Y3Rpb24uQ2xvc2VQbGF5ZXI7IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzI0OCwgMjE3LCAxOTMsIDQ2LCAxMjQsIDE5MSwgNjQsIDEzNV0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5EZWxlZ2F0ZVBkYTsgfVxuaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbNzksIDI0OSwgODgsIDE3NywgMjIwLCA2MiwgNTYsIDEyOF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5Jbml0aWFsaXplUGxheWVyOyB9XG5pZiAoY29udGFpbnNCeXRlcyhkYXRhLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFsyMDcsIDE4LCAyNTEsIDMyLCAxMzUsIDEyMiwgMTYwLCA3N10pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5NYWtlQ2hvaWNlOyB9XG5pZiAoY29udGFpbnNCeXRlcyhkYXRhLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFs2NiwgMjA5LCAxNzAsIDE1OSwgMTAsIDE5NSwgMzQsIDIxNF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5Pbk1hdGNoRm91bmQ7IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzksIDE3NSwgNDIsIDIxNywgMiwgNDgsIDgwLCA4MV0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5QZXJzaXN0UmVzdWx0czsgfVxuaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbMTk2LCAyOCwgNDEsIDIwNiwgNDgsIDM3LCA1MSwgMTY3XSkpLCAwKSkgeyByZXR1cm4gUnBzR2FtZUluc3RydWN0aW9uLlByb2Nlc3NVbmRlbGVnYXRpb247IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzI0OSwgNDcsIDI1MiwgMTcyLCAxODQsIDE2MiwgMjQ1LCAxNF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5TdGFydEdhbWU7IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzIsIDI1MCwgMjUzLCAyMDIsIDUxLCAxMzgsIDgwLCAyMF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5TdGFydEdhbWVXaXRoVGlja2V0OyB9XG4gICAgdGhyb3cgbmV3IFNvbGFuYUVycm9yKFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19GQUlMRURfVE9fSURFTlRJRllfSU5TVFJVQ1RJT04sIHsgaW5zdHJ1Y3Rpb25EYXRhOiBkYXRhLCBwcm9ncmFtTmFtZTogXCJycHNHYW1lXCIgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZFJwc0dhbWVJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9ICc4b2h1M1JvYlh5WjJEZWJ5SmpiczJjbzlZQ0cyNzVGVXNWY2tFY21EYkNvcyc+ID1cbnwgeyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5DbG9zZVBsYXllciB9ICYgUGFyc2VkQ2xvc2VQbGF5ZXJJbnN0cnVjdGlvbjxUUHJvZ3JhbT5cbnwgeyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5EZWxlZ2F0ZVBkYSB9ICYgUGFyc2VkRGVsZWdhdGVQZGFJbnN0cnVjdGlvbjxUUHJvZ3JhbT5cbnwgeyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5Jbml0aWFsaXplUGxheWVyIH0gJiBQYXJzZWRJbml0aWFsaXplUGxheWVySW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uTWFrZUNob2ljZSB9ICYgUGFyc2VkTWFrZUNob2ljZUluc3RydWN0aW9uPFRQcm9ncmFtPlxufCB7IGluc3RydWN0aW9uVHlwZTogUnBzR2FtZUluc3RydWN0aW9uLk9uTWF0Y2hGb3VuZCB9ICYgUGFyc2VkT25NYXRjaEZvdW5kSW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uUGVyc2lzdFJlc3VsdHMgfSAmIFBhcnNlZFBlcnNpc3RSZXN1bHRzSW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uUHJvY2Vzc1VuZGVsZWdhdGlvbiB9ICYgUGFyc2VkUHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uPFRQcm9ncmFtPlxufCB7IGluc3RydWN0aW9uVHlwZTogUnBzR2FtZUluc3RydWN0aW9uLlN0YXJ0R2FtZSB9ICYgUGFyc2VkU3RhcnRHYW1lSW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lV2l0aFRpY2tldCB9ICYgUGFyc2VkU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtPlxuXG5cbiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUnBzR2FtZUluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nPihcbiAgICAgICAgICAgIGluc3RydWN0aW9uOiBJbnN0cnVjdGlvbjxUUHJvZ3JhbT4gXG4gICAgICAgICAgICAgICAgJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT5cbiAgICAgICAgKTogUGFyc2VkUnBzR2FtZUluc3RydWN0aW9uPFRQcm9ncmFtPiB7XG4gICAgICAgICAgICBjb25zdCBpbnN0cnVjdGlvblR5cGUgPSBpZGVudGlmeVJwc0dhbWVJbnN0cnVjdGlvbihpbnN0cnVjdGlvbik7XG4gICAgICAgICAgICBzd2l0Y2ggKGluc3RydWN0aW9uVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgUnBzR2FtZUluc3RydWN0aW9uLkNsb3NlUGxheWVyOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uQ2xvc2VQbGF5ZXIsIC4uLnBhcnNlQ2xvc2VQbGF5ZXJJbnN0cnVjdGlvbihpbnN0cnVjdGlvbikgfTsgfVxuY2FzZSBScHNHYW1lSW5zdHJ1Y3Rpb24uRGVsZWdhdGVQZGE6IHsgYXNzZXJ0SXNJbnN0cnVjdGlvbldpdGhBY2NvdW50cyhpbnN0cnVjdGlvbik7XG5yZXR1cm4geyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5EZWxlZ2F0ZVBkYSwgLi4ucGFyc2VEZWxlZ2F0ZVBkYUluc3RydWN0aW9uKGluc3RydWN0aW9uKSB9OyB9XG5jYXNlIFJwc0dhbWVJbnN0cnVjdGlvbi5Jbml0aWFsaXplUGxheWVyOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uSW5pdGlhbGl6ZVBsYXllciwgLi4ucGFyc2VJbml0aWFsaXplUGxheWVySW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pIH07IH1cbmNhc2UgUnBzR2FtZUluc3RydWN0aW9uLk1ha2VDaG9pY2U6IHsgYXNzZXJ0SXNJbnN0cnVjdGlvbldpdGhBY2NvdW50cyhpbnN0cnVjdGlvbik7XG5yZXR1cm4geyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5NYWtlQ2hvaWNlLCAuLi5wYXJzZU1ha2VDaG9pY2VJbnN0cnVjdGlvbihpbnN0cnVjdGlvbikgfTsgfVxuY2FzZSBScHNHYW1lSW5zdHJ1Y3Rpb24uT25NYXRjaEZvdW5kOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uT25NYXRjaEZvdW5kLCAuLi5wYXJzZU9uTWF0Y2hGb3VuZEluc3RydWN0aW9uKGluc3RydWN0aW9uKSB9OyB9XG5jYXNlIFJwc0dhbWVJbnN0cnVjdGlvbi5QZXJzaXN0UmVzdWx0czogeyBhc3NlcnRJc0luc3RydWN0aW9uV2l0aEFjY291bnRzKGluc3RydWN0aW9uKTtcbnJldHVybiB7IGluc3RydWN0aW9uVHlwZTogUnBzR2FtZUluc3RydWN0aW9uLlBlcnNpc3RSZXN1bHRzLCAuLi5wYXJzZVBlcnNpc3RSZXN1bHRzSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pIH07IH1cbmNhc2UgUnBzR2FtZUluc3RydWN0aW9uLlByb2Nlc3NVbmRlbGVnYXRpb246IHsgYXNzZXJ0SXNJbnN0cnVjdGlvbldpdGhBY2NvdW50cyhpbnN0cnVjdGlvbik7XG5yZXR1cm4geyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5Qcm9jZXNzVW5kZWxlZ2F0aW9uLCAuLi5wYXJzZVByb2Nlc3NVbmRlbGVnYXRpb25JbnN0cnVjdGlvbihpbnN0cnVjdGlvbikgfTsgfVxuY2FzZSBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lLCAuLi5wYXJzZVN0YXJ0R2FtZUluc3RydWN0aW9uKGluc3RydWN0aW9uKSB9OyB9XG5jYXNlIFJwc0dhbWVJbnN0cnVjdGlvbi5TdGFydEdhbWVXaXRoVGlja2V0OiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lV2l0aFRpY2tldCwgLi4ucGFyc2VTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pIH07IH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgU29sYW5hRXJyb3IoU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX1VOUkVDT0dOSVpFRF9JTlNUUlVDVElPTl9UWVBFLCB7IGluc3RydWN0aW9uVHlwZTogaW5zdHJ1Y3Rpb25UeXBlIGFzIHN0cmluZywgcHJvZ3JhbU5hbWU6IFwicnBzR2FtZVwiIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbmV4cG9ydCB0eXBlIFJwc0dhbWVQbHVnaW4gPSB7IGFjY291bnRzOiBScHNHYW1lUGx1Z2luQWNjb3VudHM7IGluc3RydWN0aW9uczogUnBzR2FtZVBsdWdpbkluc3RydWN0aW9uczsgfVxuXG5leHBvcnQgdHlwZSBScHNHYW1lUGx1Z2luQWNjb3VudHMgPSB7IGdhbWVTZXNzaW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRHYW1lU2Vzc2lvbkNvZGVjPiAmIFNlbGZGZXRjaEZ1bmN0aW9uczxHYW1lU2Vzc2lvbkFyZ3MsIEdhbWVTZXNzaW9uPjsgcGxheWVyUHJvZmlsZTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UGxheWVyUHJvZmlsZUNvZGVjPiAmIFNlbGZGZXRjaEZ1bmN0aW9uczxQbGF5ZXJQcm9maWxlQXJncywgUGxheWVyUHJvZmlsZT47IH1cblxuZXhwb3J0IHR5cGUgUnBzR2FtZVBsdWdpbkluc3RydWN0aW9ucyA9IHsgY2xvc2VQbGF5ZXI6IChpbnB1dDogTWFrZU9wdGlvbmFsPENsb3NlUGxheWVyQXN5bmNJbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0Q2xvc2VQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgZGVsZWdhdGVQZGE6IChpbnB1dDogTWFrZU9wdGlvbmFsPERlbGVnYXRlUGRhQXN5bmNJbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RGVsZWdhdGVQZGFJbnN0cnVjdGlvbkFzeW5jPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgaW5pdGlhbGl6ZVBsYXllcjogKGlucHV0OiBNYWtlT3B0aW9uYWw8SW5pdGlhbGl6ZVBsYXllckFzeW5jSW5wdXQsIFwicGF5ZXJcIj4pID0+IFJldHVyblR5cGU8dHlwZW9mIGdldEluaXRpYWxpemVQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgbWFrZUNob2ljZTogKGlucHV0OiBNYWtlQ2hvaWNlSW5wdXQpID0+IFJldHVyblR5cGU8dHlwZW9mIGdldE1ha2VDaG9pY2VJbnN0cnVjdGlvbj4gJiBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnM7IG9uTWF0Y2hGb3VuZDogKGlucHV0OiBPbk1hdGNoRm91bmRJbnB1dCkgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0T25NYXRjaEZvdW5kSW5zdHJ1Y3Rpb24+ICYgU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zOyBwZXJzaXN0UmVzdWx0czogKGlucHV0OiBNYWtlT3B0aW9uYWw8UGVyc2lzdFJlc3VsdHNJbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UGVyc2lzdFJlc3VsdHNJbnN0cnVjdGlvbj4gJiBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnM7IHByb2Nlc3NVbmRlbGVnYXRpb246IChpbnB1dDogTWFrZU9wdGlvbmFsPFByb2Nlc3NVbmRlbGVnYXRpb25JbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgc3RhcnRHYW1lOiAoaW5wdXQ6IFN0YXJ0R2FtZUFzeW5jSW5wdXQpID0+IFJldHVyblR5cGU8dHlwZW9mIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uQXN5bmM+ICYgU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zOyBzdGFydEdhbWVXaXRoVGlja2V0OiAoaW5wdXQ6IFN0YXJ0R2FtZVdpdGhUaWNrZXRBc3luY0lucHV0KSA9PiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25Bc3luYz4gJiBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnM7IH1cblxuZXhwb3J0IHR5cGUgUnBzR2FtZVBsdWdpblJlcXVpcmVtZW50cyA9IENsaWVudFdpdGhScGM8R2V0QWNjb3VudEluZm9BcGkgJiBHZXRNdWx0aXBsZUFjY291bnRzQXBpPiAmIENsaWVudFdpdGhQYXllciAmIENsaWVudFdpdGhUcmFuc2FjdGlvblBsYW5uaW5nICYgQ2xpZW50V2l0aFRyYW5zYWN0aW9uU2VuZGluZ1xuXG5leHBvcnQgZnVuY3Rpb24gcnBzR2FtZVByb2dyYW0oKSB7XG4gICAgcmV0dXJuIDxUIGV4dGVuZHMgUnBzR2FtZVBsdWdpblJlcXVpcmVtZW50cz4oY2xpZW50OiBUKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLmNsaWVudCwgcnBzR2FtZTogPFJwc0dhbWVQbHVnaW4+eyBhY2NvdW50czogeyBnYW1lU2Vzc2lvbjogYWRkU2VsZkZldGNoRnVuY3Rpb25zKGNsaWVudCwgZ2V0R2FtZVNlc3Npb25Db2RlYygpKSwgcGxheWVyUHJvZmlsZTogYWRkU2VsZkZldGNoRnVuY3Rpb25zKGNsaWVudCwgZ2V0UGxheWVyUHJvZmlsZUNvZGVjKCkpIH0sIGluc3RydWN0aW9uczogeyBjbG9zZVBsYXllcjogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0Q2xvc2VQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jKHsgLi4uaW5wdXQsIHBheWVyOiBpbnB1dC5wYXllciA/PyBjbGllbnQucGF5ZXIuYWRkcmVzcyB9KSksIGRlbGVnYXRlUGRhOiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXREZWxlZ2F0ZVBkYUluc3RydWN0aW9uQXN5bmMoeyAuLi5pbnB1dCwgcGF5ZXI6IGlucHV0LnBheWVyID8/IGNsaWVudC5wYXllciB9KSksIGluaXRpYWxpemVQbGF5ZXI6IGlucHV0ID0+IGFkZFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9ucyhjbGllbnQsIGdldEluaXRpYWxpemVQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jKHsgLi4uaW5wdXQsIHBheWVyOiBpbnB1dC5wYXllciA/PyBjbGllbnQucGF5ZXIgfSkpLCBtYWtlQ2hvaWNlOiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXRNYWtlQ2hvaWNlSW5zdHJ1Y3Rpb24oaW5wdXQpKSwgb25NYXRjaEZvdW5kOiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXRPbk1hdGNoRm91bmRJbnN0cnVjdGlvbihpbnB1dCkpLCBwZXJzaXN0UmVzdWx0czogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0UGVyc2lzdFJlc3VsdHNJbnN0cnVjdGlvbih7IC4uLmlucHV0LCBwYXllcjogaW5wdXQucGF5ZXIgPz8gY2xpZW50LnBheWVyIH0pKSwgcHJvY2Vzc1VuZGVsZWdhdGlvbjogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0UHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uKHsgLi4uaW5wdXQsIHBheWVyOiBpbnB1dC5wYXllciA/PyBjbGllbnQucGF5ZXIuYWRkcmVzcyB9KSksIHN0YXJ0R2FtZTogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0U3RhcnRHYW1lSW5zdHJ1Y3Rpb25Bc3luYyhpbnB1dCkpLCBzdGFydEdhbWVXaXRoVGlja2V0OiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25Bc3luYyhpbnB1dCkpIH0gfSB9O1xuICAgIH07XG59XG5cbnR5cGUgTWFrZU9wdGlvbmFsPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQYXJ0aWFsPFBpY2s8VCwgSz4+OyJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { type Address, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent } from '@solana/kit';
|
|
9
|
+
export type AccountType = {
|
|
10
|
+
__kind: "PlayerProfile";
|
|
11
|
+
player: Address;
|
|
12
|
+
} | {
|
|
13
|
+
__kind: "GameSession";
|
|
14
|
+
p1: Address;
|
|
15
|
+
p2: Address;
|
|
16
|
+
id: bigint;
|
|
17
|
+
};
|
|
18
|
+
export type AccountTypeArgs = {
|
|
19
|
+
__kind: "PlayerProfile";
|
|
20
|
+
player: Address;
|
|
21
|
+
} | {
|
|
22
|
+
__kind: "GameSession";
|
|
23
|
+
p1: Address;
|
|
24
|
+
p2: Address;
|
|
25
|
+
id: number | bigint;
|
|
26
|
+
};
|
|
27
|
+
export declare function getAccountTypeEncoder(): Encoder<AccountTypeArgs>;
|
|
28
|
+
export declare function getAccountTypeDecoder(): Decoder<AccountType>;
|
|
29
|
+
export declare function getAccountTypeCodec(): Codec<AccountTypeArgs, AccountType>;
|
|
30
|
+
export declare function accountType(kind: 'PlayerProfile', data: GetDiscriminatedUnionVariantContent<AccountTypeArgs, '__kind', 'PlayerProfile'>): GetDiscriminatedUnionVariant<AccountTypeArgs, '__kind', 'PlayerProfile'>;
|
|
31
|
+
export declare function accountType(kind: 'GameSession', data: GetDiscriminatedUnionVariantContent<AccountTypeArgs, '__kind', 'GameSession'>): GetDiscriminatedUnionVariant<AccountTypeArgs, '__kind', 'GameSession'>;
|
|
32
|
+
export declare function isAccountType<K extends AccountType['__kind']>(kind: K, value: AccountType): value is AccountType & {
|
|
33
|
+
__kind: K;
|
|
34
|
+
};
|