valtech-components 4.0.937 → 4.0.939

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/esm2022/lib/components/molecules/group-picker/group-picker.component.mjs +97 -0
  2. package/esm2022/lib/components/organisms/group-members/group-members.component.mjs +178 -0
  3. package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +1 -381
  4. package/esm2022/lib/components/organisms/mini-games/types.mjs +1 -1
  5. package/esm2022/lib/services/groups/groups.service.mjs +92 -0
  6. package/esm2022/lib/services/groups/types.mjs +2 -0
  7. package/esm2022/lib/version.mjs +2 -2
  8. package/esm2022/public-api.mjs +4 -3
  9. package/fesm2022/valtech-components.mjs +641 -7612
  10. package/fesm2022/valtech-components.mjs.map +1 -1
  11. package/lib/components/molecules/group-picker/group-picker.component.d.ts +28 -0
  12. package/lib/components/organisms/group-members/group-members.component.d.ts +43 -0
  13. package/lib/components/organisms/mini-games/types.d.ts +0 -182
  14. package/lib/services/groups/groups.service.d.ts +39 -0
  15. package/lib/services/groups/types.d.ts +69 -0
  16. package/lib/version.d.ts +1 -1
  17. package/package.json +1 -1
  18. package/public-api.d.ts +4 -2
  19. package/src/lib/assets/games/README.md +8 -0
  20. package/esm2022/lib/components/organisms/mini-games/christianity-bot.mjs +0 -94
  21. package/esm2022/lib/components/organisms/mini-games/christianity-card.component.mjs +0 -503
  22. package/esm2022/lib/components/organisms/mini-games/christianity-catalog.mjs +0 -247
  23. package/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +0 -4580
  24. package/esm2022/lib/components/organisms/mini-games/christianity-rules.mjs +0 -1383
  25. package/esm2022/lib/components/organisms/mini-games/christianity-tutorial.mjs +0 -152
  26. package/lib/components/organisms/mini-games/christianity-bot.d.ts +0 -15
  27. package/lib/components/organisms/mini-games/christianity-card.component.d.ts +0 -55
  28. package/lib/components/organisms/mini-games/christianity-catalog.d.ts +0 -18
  29. package/lib/components/organisms/mini-games/christianity-game.component.d.ts +0 -395
  30. package/lib/components/organisms/mini-games/christianity-rules.d.ts +0 -57
  31. package/lib/components/organisms/mini-games/christianity-tutorial.d.ts +0 -38
  32. package/src/lib/assets/games/christianity/card-symbol.svg +0 -51
  33. package/src/lib/assets/games/christianity/card-template-reference/front.html +0 -114
  34. package/src/lib/assets/games/christianity/card-template-reference/front.style.css +0 -352
  35. package/src/lib/assets/games/christianity/data/01-genesis.bible-reference-suggestions.csv +0 -191
  36. package/src/lib/assets/games/christianity/data/01-genesis.bible-verses.nbv-open.csv +0 -170
  37. package/src/lib/assets/games/christianity/data/01-genesis.cards.csv +0 -281
  38. package/src/lib/assets/games/christianity/data/01-genesis.cards.i18n.csv +0 -281
  39. package/src/lib/assets/games/christianity/data/01-genesis.cards.json +0 -16453
  40. package/src/lib/assets/games/christianity/data/01-genesis.unassigned-effects.csv +0 -49
  41. package/src/lib/assets/games/christianity/data/README.md +0 -40
  42. package/src/lib/assets/games/christianity/data/data-con-habilides.csv +0 -273
  43. package/src/lib/assets/games/christianity/data/habilidades-por-tipo.xlsx +0 -0
  44. package/src/lib/assets/games/christianity/data/listado-edicion.csv +0 -281
  45. package/src/lib/assets/games/christianity/editions/1/cards/.gitkeep +0 -1
  46. package/src/lib/assets/games/christianity/editions/1/cards/PLACEHOLDER.png +0 -0
  47. package/src/lib/assets/games/christianity/editions/README.md +0 -34
  48. package/src/lib/assets/games/christianity/icons/1-icon.png +0 -0
  49. package/src/lib/assets/games/christianity/icons/action.png +0 -0
  50. package/src/lib/assets/games/christianity/icons/character.png +0 -0
  51. package/src/lib/assets/games/christianity/icons/event.png +0 -0
  52. package/src/lib/assets/games/christianity/icons/leader.png +0 -0
  53. package/src/lib/assets/games/christianity/icons/offering.png +0 -0
  54. package/src/lib/assets/games/christianity/icons/place.png +0 -0
  55. package/src/lib/assets/games/christianity/icons/tool.png +0 -0
  56. package/src/lib/assets/games/christianity/icons/wisdom.png +0 -0
  57. package/src/lib/assets/games/christianity/sources/README.md +0 -16
  58. package/src/lib/assets/games/christianity/sources/spaonbv_vpl.txt +0 -29102
  59. package/src/lib/assets/games/christianity/sources/spaonbv_vpl.xml +0 -29104
  60. package/src/lib/assets/games/christianity/spaonbv.txt +0 -52
@@ -1,247 +0,0 @@
1
- export const GENESIS_CATALOG_URL = 'assets/games/christianity/data/01-genesis.cards.json';
2
- export const GENESIS_ICON_URL = 'assets/games/christianity/icons/1-icon.png';
3
- export const SPLASH_MIN_DURATION_MS = 720;
4
- export const STARTER_CARDS = {
5
- o_simple: {
6
- id: 'o_simple',
7
- name: 'Ofrenda simple',
8
- type: 'offering',
9
- cost: 0,
10
- attack: 0,
11
- life: 1,
12
- verseText: 'Una ofrenda sencilla queda lista para sostener tus siguientes jugadas.',
13
- scripture: 'Genesis 4:4',
14
- edition: 'GEN',
15
- collectorNumber: '001/020',
16
- year: '2026',
17
- author: 'MVP',
18
- rarity: 'normal',
19
- },
20
- o_forbidden: {
21
- id: 'o_forbidden',
22
- name: 'El fruto prohibido',
23
- type: 'offering',
24
- cost: 0,
25
- attack: 0,
26
- life: 2,
27
- abilityName: 'Conocimiento del bien y del mal',
28
- abilityText: 'Genera el valor de 2 ofrendas. Al usarla, inflige 1 punto de daño al líder.',
29
- abilityCost: 0,
30
- verseText: 'Dios el Señor puso al hombre en el jardín de Edén para que lo labrara y lo cuidara.',
31
- scripture: 'Genesis 2:17 NBV',
32
- edition: 'GEN',
33
- collectorNumber: '012/180',
34
- year: '2026',
35
- author: 'MVP',
36
- rarity: 'uncommon',
37
- },
38
- p_scout: {
39
- id: 'p_scout',
40
- name: 'Scout',
41
- type: 'character',
42
- cost: 1,
43
- attack: 1,
44
- life: 1,
45
- verseText: 'Un explorador humilde abre camino antes de que llegue la batalla.',
46
- scripture: 'Genesis 13:17',
47
- edition: 'GEN',
48
- collectorNumber: '002/020',
49
- year: '2026',
50
- author: 'MVP',
51
- rarity: 'normal',
52
- },
53
- p_guard: {
54
- id: 'p_guard',
55
- name: 'Guard',
56
- type: 'character',
57
- cost: 2,
58
- attack: 1,
59
- life: 3,
60
- edition: 'GEN',
61
- collectorNumber: '003/020',
62
- year: '2026',
63
- author: 'MVP',
64
- rarity: 'normal',
65
- },
66
- p_warrior: {
67
- id: 'p_warrior',
68
- name: 'Warrior',
69
- type: 'character',
70
- cost: 2,
71
- attack: 2,
72
- life: 2,
73
- edition: 'GEN',
74
- collectorNumber: '004/020',
75
- year: '2026',
76
- author: 'MVP',
77
- rarity: 'normal',
78
- },
79
- p_elder: {
80
- id: 'p_elder',
81
- name: 'Elder',
82
- type: 'character',
83
- cost: 3,
84
- attack: 2,
85
- life: 4,
86
- edition: 'GEN',
87
- collectorNumber: '005/020',
88
- year: '2026',
89
- author: 'MVP',
90
- rarity: 'uncommon',
91
- },
92
- p_champion: {
93
- id: 'p_champion',
94
- name: 'Champion',
95
- type: 'character',
96
- cost: 4,
97
- attack: 4,
98
- life: 4,
99
- edition: 'GEN',
100
- collectorNumber: '006/020',
101
- year: '2026',
102
- author: 'MVP',
103
- rarity: 'rare',
104
- },
105
- };
106
- const STARTING_SHARED_DECK = [
107
- 'o_simple',
108
- 'p_scout',
109
- 'o_forbidden',
110
- 'o_simple',
111
- 'p_guard',
112
- 'p_warrior',
113
- 'o_simple',
114
- 'p_elder',
115
- 'p_scout',
116
- 'o_simple',
117
- 'p_champion',
118
- 'p_guard',
119
- 'o_simple',
120
- 'p_warrior',
121
- 'p_scout',
122
- 'o_simple',
123
- 'p_elder',
124
- 'p_guard',
125
- 'o_simple',
126
- ];
127
- export const STARTING_GAME = {
128
- gameId: 'mock-christianity',
129
- status: 'in_progress',
130
- mode: 'local_pass',
131
- turnOwner: 'P1',
132
- revision: 0,
133
- turnCount: 1,
134
- matchScore: { P1: 0, P2: 0 },
135
- sharedDeck: STARTING_SHARED_DECK,
136
- placeZone: [],
137
- historyZone: [],
138
- players: {
139
- P1: {
140
- seat: 'P1',
141
- displayName: 'Jugador',
142
- avatar: 'J',
143
- avatarColor: '#2563eb',
144
- leaderName: 'Adam',
145
- leaderHp: 15,
146
- leaderMaxHp: 15,
147
- offerings: [
148
- {
149
- instanceId: 'p1_offering_001',
150
- cardId: 'o_simple',
151
- name: 'Ofrenda simple',
152
- owner: 'P1',
153
- ready: true,
154
- value: 1,
155
- },
156
- {
157
- instanceId: 'p1_offering_002',
158
- cardId: 'o_forbidden',
159
- name: 'El fruto prohibido',
160
- owner: 'P1',
161
- ready: true,
162
- value: 2,
163
- abilityName: 'Conocimiento del bien y del mal',
164
- abilityText: 'Genera el valor de 2 ofrendas. Al usarla, inflige 1 punto de daño al lider.',
165
- abilityCost: 0,
166
- },
167
- ],
168
- offeringPlayedThisTurn: false,
169
- hand: ['o_simple', 'p_scout', 'p_warrior', 'p_guard'],
170
- battleZone: [],
171
- },
172
- P2: {
173
- seat: 'P2',
174
- displayName: 'Rival',
175
- avatar: 'R',
176
- avatarColor: '#b45309',
177
- leaderName: 'Noah',
178
- leaderHp: 15,
179
- leaderMaxHp: 15,
180
- offerings: [
181
- {
182
- instanceId: 'p2_offering_001',
183
- cardId: 'o_simple',
184
- name: 'Ofrenda simple',
185
- owner: 'P2',
186
- ready: true,
187
- value: 1,
188
- },
189
- ],
190
- offeringPlayedThisTurn: false,
191
- handCount: 4,
192
- battleZone: [
193
- {
194
- instanceId: 'opp_001',
195
- cardId: 'p_scout',
196
- name: 'Scout',
197
- owner: 'P2',
198
- controller: 'P2',
199
- slot: 0,
200
- attack: 1,
201
- currentHp: 1,
202
- maxHp: 1,
203
- canAttack: false,
204
- },
205
- ],
206
- },
207
- },
208
- log: ['Partida iniciada.'],
209
- };
210
- export function formatScripture(bible) {
211
- if (!bible?.book || !bible.reference)
212
- return undefined;
213
- return `${bible.book} ${bible.reference}${bible.version ? ` ${bible.version}` : ''}`;
214
- }
215
- export function normalizeCatalogCard(card, catalog) {
216
- const editionIcon = card.editionIcon ?? catalog.edition?.icon ?? GENESIS_ICON_URL;
217
- const verseText = card.verseText ?? card.bible?.text;
218
- const scripture = card.scripture ?? formatScripture(card.bible);
219
- const offeringValue = card.type === 'offering'
220
- ? (card.offeringValue ?? card.life ?? card.cost ?? 1)
221
- : card.offeringValue;
222
- const life = card.type === 'leader'
223
- ? (card.leaderLife ?? card.life ?? 10)
224
- : card.type === 'offering'
225
- ? offeringValue
226
- : (card.life ?? 0);
227
- return {
228
- ...card,
229
- cost: card.type === 'offering' ? 0 : (card.cost ?? 0),
230
- offeringValue,
231
- life,
232
- leaderLife: card.type === 'leader' ? (card.leaderLife ?? life) : card.leaderLife,
233
- attack: card.type === 'character' ? (card.attack ?? 0) : card.attack,
234
- abilityName: card.abilityName ?? card.abilities?.[0]?.name,
235
- abilityText: card.abilityText ?? card.abilities?.[0]?.text,
236
- verseText,
237
- scripture,
238
- edition: card.edition ?? catalog.edition?.id ?? 'GEN',
239
- editionNumber: card.editionNumber ?? catalog.edition?.number,
240
- editionIcon,
241
- imageUrl: card.imageUrl ?? card.art?.imageUrl,
242
- author: card.author ?? card.art?.artistCredit,
243
- year: card.year ?? '2026',
244
- frontTemplate: card.frontTemplate ?? 'genesis-classic',
245
- };
246
- }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvY2hyaXN0aWFuaXR5LWNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNEQUFzRCxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLDRDQUE0QyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQStDO0lBQ3ZFLFFBQVEsRUFBRTtRQUNSLEVBQUUsRUFBRSxVQUFVO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLENBQUM7UUFDUCxTQUFTLEVBQUUsd0VBQXdFO1FBQ25GLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsS0FBSztRQUNiLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsRUFBRSxFQUFFLGFBQWE7UUFDakIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLENBQUM7UUFDUCxXQUFXLEVBQUUsaUNBQWlDO1FBQzlDLFdBQVcsRUFBRSw2RUFBNkU7UUFDMUYsV0FBVyxFQUFFLENBQUM7UUFDZCxTQUFTLEVBQ1AscUZBQXFGO1FBQ3ZGLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsT0FB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQ3BFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1FBQzFELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1FBQzFELFNBQVM7UUFDVCxTQUFTO1FBQ1QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksS0FBSztRQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDNUQsV0FBVztRQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUTtRQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVk7UUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTTtRQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxpQkFBaUI7S0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlLFxuICBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nIHtcbiAgZWRpdGlvbj86IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBudW1iZXI/OiBudW1iZXI7XG4gICAgc2x1Zz86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhcmRzPzogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEdFTkVTSVNfQ0FUQUxPR19VUkwgPSAnYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9kYXRhLzAxLWdlbmVzaXMuY2FyZHMuanNvbic7XG5leHBvcnQgY29uc3QgR0VORVNJU19JQ09OX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2ljb25zLzEtaWNvbi5wbmcnO1xuZXhwb3J0IGNvbnN0IFNQTEFTSF9NSU5fRFVSQVRJT05fTVMgPSA3MjA7XG5cbmV4cG9ydCBjb25zdCBTVEFSVEVSX0NBUkRTOiBSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4gPSB7XG4gIG9fc2ltcGxlOiB7XG4gICAgaWQ6ICdvX3NpbXBsZScsXG4gICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW5hIG9mcmVuZGEgc2VuY2lsbGEgcXVlZGEgbGlzdGEgcGFyYSBzb3N0ZW5lciB0dXMgc2lndWllbnRlcyBqdWdhZGFzLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyA0OjQnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMS8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIG9fZm9yYmlkZGVuOiB7XG4gICAgaWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgdHlwZTogJ29mZmVyaW5nJyxcbiAgICBjb3N0OiAwLFxuICAgIGF0dGFjazogMCxcbiAgICBsaWZlOiAyLFxuICAgIGFiaWxpdHlOYW1lOiAnQ29ub2NpbWllbnRvIGRlbCBiaWVuIHkgZGVsIG1hbCcsXG4gICAgYWJpbGl0eVRleHQ6ICdHZW5lcmEgZWwgdmFsb3IgZGUgMiBvZnJlbmRhcy4gQWwgdXNhcmxhLCBpbmZsaWdlIDEgcHVudG8gZGUgZGHDsW8gYWwgbMOtZGVyLicsXG4gICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgdmVyc2VUZXh0OlxuICAgICAgJ0Rpb3MgZWwgU2XDsW9yIHB1c28gYWwgaG9tYnJlIGVuIGVsIGphcmTDrW4gZGUgRWTDqW4gcGFyYSBxdWUgbG8gbGFicmFyYSB5IGxvIGN1aWRhcmEuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDI6MTcgTkJWJyxcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMTIvMTgwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICd1bmNvbW1vbicsXG4gIH0sXG4gIHBfc2NvdXQ6IHtcbiAgICBpZDogJ3Bfc2NvdXQnLFxuICAgIG5hbWU6ICdTY291dCcsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMSxcbiAgICBhdHRhY2s6IDEsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbiBleHBsb3JhZG9yIGh1bWlsZGUgYWJyZSBjYW1pbm8gYW50ZXMgZGUgcXVlIGxsZWd1ZSBsYSBiYXRhbGxhLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyAxMzoxNycsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAyLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgcF9ndWFyZDoge1xuICAgIGlkOiAncF9ndWFyZCcsXG4gICAgbmFtZTogJ0d1YXJkJyxcbiAgICB0eXBlOiAnY2hhcmFjdGVyJyxcbiAgICBjb3N0OiAyLFxuICAgIGF0dGFjazogMSxcbiAgICBsaWZlOiAzLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMy8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIHBfd2Fycmlvcjoge1xuICAgIGlkOiAncF93YXJyaW9yJyxcbiAgICBuYW1lOiAnV2FycmlvcicsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMixcbiAgICBhdHRhY2s6IDIsXG4gICAgbGlmZTogMixcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMDQvMDIwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICdub3JtYWwnLFxuICB9LFxuICBwX2VsZGVyOiB7XG4gICAgaWQ6ICdwX2VsZGVyJyxcbiAgICBuYW1lOiAnRWxkZXInLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDMsXG4gICAgYXR0YWNrOiAyLFxuICAgIGxpZmU6IDQsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDA1LzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAndW5jb21tb24nLFxuICB9LFxuICBwX2NoYW1waW9uOiB7XG4gICAgaWQ6ICdwX2NoYW1waW9uJyxcbiAgICBuYW1lOiAnQ2hhbXBpb24nLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDQsXG4gICAgYXR0YWNrOiA0LFxuICAgIGxpZmU6IDQsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDA2LzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAncmFyZScsXG4gIH0sXG59O1xuXG5jb25zdCBTVEFSVElOR19TSEFSRURfREVDSyA9IFtcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19mb3JiaWRkZW4nLFxuICAnb19zaW1wbGUnLFxuICAncF9ndWFyZCcsXG4gICdwX3dhcnJpb3InLFxuICAnb19zaW1wbGUnLFxuICAncF9lbGRlcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfY2hhbXBpb24nLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG4gICdwX3dhcnJpb3InLFxuICAncF9zY291dCcsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3BfZ3VhcmQnLFxuICAnb19zaW1wbGUnLFxuXTtcblxuZXhwb3J0IGNvbnN0IFNUQVJUSU5HX0dBTUU6IENocmlzdGlhbml0eUdhbWVTdGF0ZSA9IHtcbiAgZ2FtZUlkOiAnbW9jay1jaHJpc3RpYW5pdHknLFxuICBzdGF0dXM6ICdpbl9wcm9ncmVzcycsXG4gIG1vZGU6ICdsb2NhbF9wYXNzJyxcbiAgdHVybk93bmVyOiAnUDEnLFxuICByZXZpc2lvbjogMCxcbiAgdHVybkNvdW50OiAxLFxuICBtYXRjaFNjb3JlOiB7IFAxOiAwLCBQMjogMCB9LFxuICBzaGFyZWREZWNrOiBTVEFSVElOR19TSEFSRURfREVDSyxcbiAgcGxhY2Vab25lOiBbXSxcbiAgaGlzdG9yeVpvbmU6IFtdLFxuICBwbGF5ZXJzOiB7XG4gICAgUDE6IHtcbiAgICAgIHNlYXQ6ICdQMScsXG4gICAgICBkaXNwbGF5TmFtZTogJ0p1Z2Fkb3InLFxuICAgICAgYXZhdGFyOiAnSicsXG4gICAgICBhdmF0YXJDb2xvcjogJyMyNTYzZWInLFxuICAgICAgbGVhZGVyTmFtZTogJ0FkYW0nLFxuICAgICAgbGVhZGVySHA6IDE1LFxuICAgICAgbGVhZGVyTWF4SHA6IDE1LFxuICAgICAgb2ZmZXJpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAxJyxcbiAgICAgICAgICBjYXJkSWQ6ICdvX3NpbXBsZScsXG4gICAgICAgICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDInLFxuICAgICAgICAgIGNhcmRJZDogJ29fZm9yYmlkZGVuJyxcbiAgICAgICAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICBhYmlsaXR5TmFtZTogJ0Nvbm9jaW1pZW50byBkZWwgYmllbiB5IGRlbCBtYWwnLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OlxuICAgICAgICAgICAgJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsaWRlci4nLFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZDogWydvX3NpbXBsZScsICdwX3Njb3V0JywgJ3Bfd2FycmlvcicsICdwX2d1YXJkJ10sXG4gICAgICBiYXR0bGVab25lOiBbXSxcbiAgICB9LFxuICAgIFAyOiB7XG4gICAgICBzZWF0OiAnUDInLFxuICAgICAgZGlzcGxheU5hbWU6ICdSaXZhbCcsXG4gICAgICBhdmF0YXI6ICdSJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnI2I0NTMwOScsXG4gICAgICBsZWFkZXJOYW1lOiAnTm9haCcsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMl9vZmZlcmluZ18wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ29fc2ltcGxlJyxcbiAgICAgICAgICBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLFxuICAgICAgICAgIG93bmVyOiAnUDInLFxuICAgICAgICAgIHJlYWR5OiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZENvdW50OiA0LFxuICAgICAgYmF0dGxlWm9uZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogJ29wcF8wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ3Bfc2NvdXQnLFxuICAgICAgICAgIG5hbWU6ICdTY291dCcsXG4gICAgICAgICAgb3duZXI6ICdQMicsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1AyJyxcbiAgICAgICAgICBzbG90OiAwLFxuICAgICAgICAgIGF0dGFjazogMSxcbiAgICAgICAgICBjdXJyZW50SHA6IDEsXG4gICAgICAgICAgbWF4SHA6IDEsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgbG9nOiBbJ1BhcnRpZGEgaW5pY2lhZGEuJ10sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2NyaXB0dXJlKGJpYmxlPzogQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFiaWJsZT8uYm9vayB8fCAhYmlibGUucmVmZXJlbmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gYCR7YmlibGUuYm9va30gJHtiaWJsZS5yZWZlcmVuY2V9JHtiaWJsZS52ZXJzaW9uID8gYCAke2JpYmxlLnZlcnNpb259YCA6ICcnfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVDYXRhbG9nQ2FyZChcbiAgY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gIGNhdGFsb2c6IENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nXG4pOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gIGNvbnN0IGVkaXRpb25JY29uID0gY2FyZC5lZGl0aW9uSWNvbiA/PyBjYXRhbG9nLmVkaXRpb24/Lmljb24gPz8gR0VORVNJU19JQ09OX1VSTDtcbiAgY29uc3QgdmVyc2VUZXh0ID0gY2FyZC52ZXJzZVRleHQgPz8gY2FyZC5iaWJsZT8udGV4dDtcbiAgY29uc3Qgc2NyaXB0dXJlID0gY2FyZC5zY3JpcHR1cmUgPz8gZm9ybWF0U2NyaXB0dXJlKGNhcmQuYmlibGUpO1xuICBjb25zdCBvZmZlcmluZ1ZhbHVlID1cbiAgICBjYXJkLnR5cGUgPT09ICdvZmZlcmluZydcbiAgICAgID8gKGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gY2FyZC5jb3N0ID8/IDEpXG4gICAgICA6IGNhcmQub2ZmZXJpbmdWYWx1ZTtcbiAgY29uc3QgbGlmZSA9XG4gICAgY2FyZC50eXBlID09PSAnbGVhZGVyJ1xuICAgICAgPyAoY2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAxMClcbiAgICAgIDogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnXG4gICAgICAgID8gb2ZmZXJpbmdWYWx1ZVxuICAgICAgICA6IChjYXJkLmxpZmUgPz8gMCk7XG4gIHJldHVybiB7XG4gICAgLi4uY2FyZCxcbiAgICBjb3N0OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAwIDogKGNhcmQuY29zdCA/PyAwKSxcbiAgICBvZmZlcmluZ1ZhbHVlLFxuICAgIGxpZmUsXG4gICAgbGVhZGVyTGlmZTogY2FyZC50eXBlID09PSAnbGVhZGVyJyA/IChjYXJkLmxlYWRlckxpZmUgPz8gbGlmZSkgOiBjYXJkLmxlYWRlckxpZmUsXG4gICAgYXR0YWNrOiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInID8gKGNhcmQuYXR0YWNrID8/IDApIDogY2FyZC5hdHRhY2ssXG4gICAgYWJpbGl0eU5hbWU6IGNhcmQuYWJpbGl0eU5hbWUgPz8gY2FyZC5hYmlsaXRpZXM/LlswXT8ubmFtZSxcbiAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy50ZXh0LFxuICAgIHZlcnNlVGV4dCxcbiAgICBzY3JpcHR1cmUsXG4gICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWQgPz8gJ0dFTicsXG4gICAgZWRpdGlvbk51bWJlcjogY2FyZC5lZGl0aW9uTnVtYmVyID8/IGNhdGFsb2cuZWRpdGlvbj8ubnVtYmVyLFxuICAgIGVkaXRpb25JY29uLFxuICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsID8/IGNhcmQuYXJ0Py5pbWFnZVVybCxcbiAgICBhdXRob3I6IGNhcmQuYXV0aG9yID8/IGNhcmQuYXJ0Py5hcnRpc3RDcmVkaXQsXG4gICAgeWVhcjogY2FyZC55ZWFyID8/ICcyMDI2JyxcbiAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycsXG4gIH07XG59XG4iXX0=