gx
chenyc
2025-06-12 7b72ac13a83764a662159d4a49b7fffb90476ecb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
/**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
export const STRUCTURED_OUTPUTS_MODEL = {
    'modelTopology': {
        'node': [
            {
                'name': 'StatefulPartitionedCall/model/concatenate/concat/axis',
                'op': 'Const',
                'attr': {
                    'value': { 'tensor': { 'dtype': 'DT_INT32', 'tensorShape': {} } },
                    'dtype': { 'type': 'DT_INT32' }
                }
            },
            {
                'name': 'StatefulPartitionedCall/model/a/MatMul/ReadVariableOp',
                'op': 'Const',
                'attr': {
                    'dtype': { 'type': 'DT_FLOAT' },
                    'value': {
                        'tensor': {
                            'dtype': 'DT_FLOAT',
                            'tensorShape': { 'dim': [{ 'size': '2' }, { 'size': '1' }] }
                        }
                    }
                }
            },
            {
                'name': 'StatefulPartitionedCall/model/b/MatMul/ReadVariableOp',
                'op': 'Const',
                'attr': {
                    'value': {
                        'tensor': {
                            'dtype': 'DT_FLOAT',
                            'tensorShape': { 'dim': [{ 'size': '1' }, { 'size': '1' }] }
                        }
                    },
                    'dtype': { 'type': 'DT_FLOAT' }
                }
            },
            {
                'name': 'input1',
                'op': 'Placeholder',
                'attr': {
                    'dtype': { 'type': 'DT_FLOAT' },
                    'shape': { 'shape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] } }
                }
            },
            {
                'name': 'input2',
                'op': 'Placeholder',
                'attr': {
                    'dtype': { 'type': 'DT_FLOAT' },
                    'shape': { 'shape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] } }
                }
            },
            {
                'name': 'input3',
                'op': 'Placeholder',
                'attr': {
                    'shape': { 'shape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] } },
                    'dtype': { 'type': 'DT_FLOAT' }
                }
            },
            {
                'name': 'StatefulPartitionedCall/model/b/MatMul',
                'op': 'MatMul',
                'input': ['input2', 'StatefulPartitionedCall/model/b/MatMul/ReadVariableOp'],
                'device': '/device:CPU:0',
                'attr': {
                    'transpose_b': { 'b': false },
                    'transpose_a': { 'b': false },
                    'T': { 'type': 'DT_FLOAT' }
                }
            },
            {
                'name': 'StatefulPartitionedCall/model/concatenate/concat',
                'op': 'ConcatV2',
                'input': [
                    'input1', 'input3',
                    'StatefulPartitionedCall/model/concatenate/concat/axis'
                ],
                'attr': {
                    'Tidx': { 'type': 'DT_INT32' },
                    'T': { 'type': 'DT_FLOAT' },
                    'N': { 'i': '2' }
                }
            },
            {
                'name': 'Identity_1',
                'op': 'Identity',
                'input': ['StatefulPartitionedCall/model/b/MatMul'],
                'attr': { 'T': { 'type': 'DT_FLOAT' } }
            },
            {
                'name': 'StatefulPartitionedCall/model/a/MatMul',
                'op': 'MatMul',
                'input': [
                    'StatefulPartitionedCall/model/concatenate/concat',
                    'StatefulPartitionedCall/model/a/MatMul/ReadVariableOp'
                ],
                'device': '/device:CPU:0',
                'attr': {
                    'T': { 'type': 'DT_FLOAT' },
                    'transpose_b': { 'b': false },
                    'transpose_a': { 'b': false }
                }
            },
            {
                'name': 'Identity',
                'op': 'Identity',
                'input': ['StatefulPartitionedCall/model/a/MatMul'],
                'attr': { 'T': { 'type': 'DT_FLOAT' } }
            },
            {
                'name': 'StatefulPartitionedCall/model/c/mul',
                'op': 'Mul',
                'input': [
                    'StatefulPartitionedCall/model/a/MatMul',
                    'StatefulPartitionedCall/model/b/MatMul'
                ],
                'attr': { 'T': { 'type': 'DT_FLOAT' } }
            },
            {
                'name': 'Identity_2',
                'op': 'Identity',
                'input': ['StatefulPartitionedCall/model/c/mul'],
                'attr': { 'T': { 'type': 'DT_FLOAT' } }
            }
        ],
        'library': {},
        'versions': { 'producer': 898 }
    },
    'format': 'graph-model',
    'generatedBy': '2.7.3',
    'convertedBy': 'TensorFlow.js Converter v1.7.0',
    'weightSpecs': [
        {
            'name': 'StatefulPartitionedCall/model/concatenate/concat/axis',
            'shape': [],
            'dtype': 'int32'
        },
        {
            'name': 'StatefulPartitionedCall/model/a/MatMul/ReadVariableOp',
            'shape': [2, 1],
            'dtype': 'float32'
        },
        {
            'name': 'StatefulPartitionedCall/model/b/MatMul/ReadVariableOp',
            'shape': [1, 1],
            'dtype': 'float32'
        }
    ],
    'weightData': new Uint8Array([
        0x01, 0x00, 0x00, 0x00, 0x70, 0x3d, 0x72, 0x3e, 0x3d, 0xd2,
        0x12, 0xbf, 0x0c, 0xfb, 0x94, 0x3e
    ]).buffer,
    'signature': {
        'inputs': {
            'input1:0': {
                'name': 'input1:0',
                'dtype': 'DT_FLOAT',
                'tensorShape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] }
            },
            'input3:0': {
                'name': 'input3:0',
                'dtype': 'DT_FLOAT',
                'tensorShape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] }
            },
            'input2:0': {
                'name': 'input2:0',
                'dtype': 'DT_FLOAT',
                'tensorShape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] }
            }
        },
        'outputs': {
            'Identity_1:0': {
                'name': 'Identity_1:0',
                'dtype': 'DT_FLOAT',
                'tensorShape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] }
            },
            'Identity:0': {
                'name': 'Identity:0',
                'dtype': 'DT_FLOAT',
                'tensorShape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] }
            },
            'Identity_2:0': {
                'name': 'Identity_2:0',
                'dtype': 'DT_FLOAT',
                'tensorShape': { 'dim': [{ 'size': '-1' }, { 'size': '1' }] }
            }
        }
    },
    'userDefinedMetadata': { 'structuredOutputKeys': ['a', 'b', 'c'] }
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlZF9vdXRwdXRzX21vZGVsX2xvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3RmanMtY29udmVydGVyL3NyYy9leGVjdXRvci90ZXN0X2RhdGEvc3RydWN0dXJlZF9vdXRwdXRzX21vZGVsX2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxlQUFlLEVBQUU7UUFDZixNQUFNLEVBQUU7WUFDTjtnQkFDRSxNQUFNLEVBQUUsdURBQXVEO2dCQUMvRCxJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUU7b0JBQ04sT0FBTyxFQUFFLEVBQUMsUUFBUSxFQUFFLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFDLEVBQUM7b0JBQzdELE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUM7aUJBQzlCO2FBQ0Y7WUFDRDtnQkFDRSxNQUFNLEVBQUUsdURBQXVEO2dCQUMvRCxJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUU7b0JBQ04sT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQztvQkFDN0IsT0FBTyxFQUFFO3dCQUNQLFFBQVEsRUFBRTs0QkFDUixPQUFPLEVBQUUsVUFBVTs0QkFDbkIsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLENBQUMsRUFBQzt5QkFDdkQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNEO2dCQUNFLE1BQU0sRUFBRSx1REFBdUQ7Z0JBQy9ELElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUU7d0JBQ1AsUUFBUSxFQUFFOzRCQUNSLE9BQU8sRUFBRSxVQUFVOzRC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QUksRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDLEVBQUM7YUFDeEQ7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixhQUFhLEVBQUUsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsQ0FBQyxFQUFDO2FBQ3hEO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLENBQUMsRUFBQzthQUN4RDtTQUNGO0tBQ0Y7SUFDRCxxQkFBcUIsRUFBRSxFQUFDLHNCQUFzQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBQztDQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjIgR29vZ2xlIExMQy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuXG5leHBvcnQgY29uc3QgU1RSVUNUVVJFRF9PVVRQVVRTX01PREVMID0ge1xuICAnbW9kZWxUb3BvbG9neSc6IHtcbiAgICAnbm9kZSc6IFtcbiAgICAgIHtcbiAgICAgICAgJ25hbWUnOiAnU3RhdGVmdWxQYXJ0aXRpb25lZENhbGwvbW9kZWwvY29uY2F0ZW5hdGUvY29uY2F0L2F4aXMnLFxuICAgICAgICAnb3AnOiAnQ29uc3QnLFxuICAgICAgICAnYXR0cic6IHtcbiAgICAgICAgICAndmFsdWUnOiB7J3RlbnNvcic6IHsnZHR5cGUnOiAnRFRfSU5UMzInLCAndGVuc29yU2hhcGUnOiB7fX19LFxuICAgICAgICAgICdkdHlwZSc6IHsndHlwZSc6ICdEVF9JTlQzMid9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICduYW1lJzogJ1N0YXRlZnVsUGFydGl0aW9uZWRDYWxsL21vZGVsL2EvTWF0TXVsL1JlYWRWYXJpYWJsZU9wJyxcbiAgICAgICAgJ29wJzogJ0NvbnN0JyxcbiAgICAgICAgJ2F0dHInOiB7XG4gICAgICAgICAgJ2R0eXBlJzogeyd0eXBlJzogJ0RUX0ZMT0FUJ30sXG4gICAgICAgICAgJ3ZhbHVlJzoge1xuICAgICAgICAgICAgJ3RlbnNvcic6IHtcbiAgICAgICAgICAgICAgJ2R0eXBlJzogJ0RUX0ZMT0FUJyxcbiAgICAgICAgICAgICAgJ3RlbnNvclNoYXBlJzogeydkaW0nOiBbeydzaXplJzogJzInfSwgeydzaXplJzogJzEnfV19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAnbmFtZSc6ICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9iL01hdE11bC9SZWFkVmFyaWFibGVPcCcsXG4gICAgICAgICdvcCc6ICdDb25zdCcsXG4gICAgICAgICdhdHRyJzoge1xuICAgICAgICAgICd2YWx1ZSc6IHtcbiAgICAgICAgICAgICd0ZW5zb3InOiB7XG4gICAgICAgICAgICAgICdkdHlwZSc6ICdEVF9GTE9BVCcsXG4gICAgICAgICAgICAgICd0ZW5zb3JTaGFwZSc6IHsnZGltJzogW3snc2l6ZSc6ICcxJ30sIHsnc2l6ZSc6ICcxJ31dfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ2R0eXBlJzogeyd0eXBlJzogJ0RUX0ZMT0FUJ31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ25hbWUnOiAnaW5wdXQxJyxcbiAgICAgICAgJ29wJzogJ1BsYWNlaG9sZGVyJyxcbiAgICAgICAgJ2F0dHInOiB7XG4gICAgICAgICAgJ2R0eXBlJzogeyd0eXBlJzogJ0RUX0ZMT0FUJ30sXG4gICAgICAgICAgJ3NoYXBlJzogeydzaGFwZSc6IHsnZGltJzogW3snc2l6ZSc6ICctMSd9LCB7J3NpemUnOiAnMSd9XX19XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICduYW1lJzogJ2lucHV0MicsXG4gICAgICAgICdvcCc6ICdQbGFjZWhvbGRlcicsXG4gICAgICAgICdhdHRyJzoge1xuICAgICAgICAgICdkdHlwZSc6IHsndHlwZSc6ICdEVF9GTE9BVCd9LFxuICAgICAgICAgICdzaGFwZSc6IHsnc2hhcGUnOiB7J2RpbSc6IFt7J3NpemUnOiAnLTEnfSwgeydzaXplJzogJzEnfV19fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAnbmFtZSc6ICdpbnB1dDMnLFxuICAgICAgICAnb3AnOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICAnYXR0cic6IHtcbiAgICAgICAgICAnc2hhcGUnOiB7J3NoYXBlJzogeydkaW0nOiBbeydzaXplJzogJy0xJ30sIHsnc2l6ZSc6ICcxJ31dfX0sXG4gICAgICAgICAgJ2R0eXBlJzogeyd0eXBlJzogJ0RUX0ZMT0FUJ31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ25hbWUnOiAnU3RhdGVmdWxQYXJ0aXRpb25lZENhbGwvbW9kZWwvYi9NYXRNdWwnLFxuICAgICAgICAnb3AnOiAnTWF0TXVsJyxcbiAgICAgICAgJ2lucHV0JzpcbiAgICAgICAgICAgIFsnaW5wdXQyJywgJ1N0YXRlZnVsUGFydGl0aW9uZWRDYWxsL21vZGVsL2IvTWF0TXVsL1JlYWRWYXJpYWJsZU9wJ10sXG4gICAgICAgICdkZXZpY2UnOiAnL2RldmljZTpDUFU6MCcsXG4gICAgICAgICdhdHRyJzoge1xuICAgICAgICAgICd0cmFuc3Bvc2VfYic6IHsnYic6IGZhbHNlfSxcbiAgICAgICAgICAndHJhbnNwb3NlX2EnOiB7J2InOiBmYWxzZX0sXG4gICAgICAgICAgJ1QnOiB7J3R5cGUnOiAnRFRfRkxPQVQnfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAnbmFtZSc6ICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9jb25jYXRlbmF0ZS9jb25jYXQnLFxuICAgICAgICAnb3AnOiAnQ29uY2F0VjInLFxuICAgICAgICAnaW5wdXQnOiBbXG4gICAgICAgICAgJ2lucHV0MScsICdpbnB1dDMnLFxuICAgICAgICAgICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9jb25jYXRlbmF0ZS9jb25jYXQvYXhpcydcbiAgICAgICAgXSxcbiAgICAgICAgJ2F0dHInOiB7XG4gICAgICAgICAgJ1RpZHgnOiB7J3R5cGUnOiAnRFRfSU5UMzInfSxcbiAgICAgICAgICAnVCc6IHsndHlwZSc6ICdEVF9GTE9BVCd9LFxuICAgICAgICAgICdOJzogeydpJzogJzInfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAnbmFtZSc6ICdJZGVudGl0eV8xJyxcbiAgICAgICAgJ29wJzogJ0lkZW50aXR5JyxcbiAgICAgICAgJ2lucHV0JzogWydTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9iL01hdE11bCddLFxuICAgICAgICAnYXR0cic6IHsnVCc6IHsndHlwZSc6ICdEVF9GTE9BVCd9fVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ25hbWUnOiAnU3RhdGVmdWxQYXJ0aXRpb25lZENhbGwvbW9kZWwvYS9NYXRNdWwnLFxuICAgICAgICAnb3AnOiAnTWF0TXVsJyxcbiAgICAgICAgJ2lucHV0JzogW1xuICAgICAgICAgICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9jb25jYXRlbmF0ZS9jb25jYXQnLFxuICAgICAgICAgICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9hL01hdE11bC9SZWFkVmFyaWFibGVPcCdcbiAgICAgICAgXSxcbiAgICAgICAgJ2RldmljZSc6ICcvZGV2aWNlOkNQVTowJyxcbiAgICAgICAgJ2F0dHInOiB7XG4gICAgICAgICAgJ1QnOiB7J3R5cGUnOiAnRFRfRkxPQVQnfSxcbiAgICAgICAgICAndHJhbnNwb3NlX2InOiB7J2InOiBmYWxzZX0sXG4gICAgICAgICAgJ3RyYW5zcG9zZV9hJzogeydiJzogZmFsc2V9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICduYW1lJzogJ0lkZW50aXR5JyxcbiAgICAgICAgJ29wJzogJ0lkZW50aXR5JyxcbiAgICAgICAgJ2lucHV0JzogWydTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9hL01hdE11bCddLFxuICAgICAgICAnYXR0cic6IHsnVCc6IHsndHlwZSc6ICdEVF9GTE9BVCd9fVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ25hbWUnOiAnU3RhdGVmdWxQYXJ0aXRpb25lZENhbGwvbW9kZWwvYy9tdWwnLFxuICAgICAgICAnb3AnOiAnTXVsJyxcbiAgICAgICAgJ2lucHV0JzogW1xuICAgICAgICAgICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9hL01hdE11bCcsXG4gICAgICAgICAgJ1N0YXRlZnVsUGFydGl0aW9uZWRDYWxsL21vZGVsL2IvTWF0TXVsJ1xuICAgICAgICBdLFxuICAgICAgICAnYXR0cic6IHsnVCc6IHsndHlwZSc6ICdEVF9GTE9BVCd9fVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ25hbWUnOiAnSWRlbnRpdHlfMicsXG4gICAgICAgICdvcCc6ICdJZGVudGl0eScsXG4gICAgICAgICdpbnB1dCc6IFsnU3RhdGVmdWxQYXJ0aXRpb25lZENhbGwvbW9kZWwvYy9tdWwnXSxcbiAgICAgICAgJ2F0dHInOiB7J1QnOiB7J3R5cGUnOiAnRFRfRkxPQVQnfX1cbiAgICAgIH1cbiAgICBdLFxuICAgICdsaWJyYXJ5Jzoge30sXG4gICAgJ3ZlcnNpb25zJzogeydwcm9kdWNlcic6IDg5OH1cbiAgfSxcbiAgJ2Zvcm1hdCc6ICdncmFwaC1tb2RlbCcsXG4gICdnZW5lcmF0ZWRCeSc6ICcyLjcuMycsXG4gICdjb252ZXJ0ZWRCeSc6ICdUZW5zb3JGbG93LmpzIENvbnZlcnRlciB2MS43LjAnLFxuICAnd2VpZ2h0U3BlY3MnOiBbXG4gICAge1xuICAgICAgJ25hbWUnOiAnU3RhdGVmdWxQYXJ0aXRpb25lZENhbGwvbW9kZWwvY29uY2F0ZW5hdGUvY29uY2F0L2F4aXMnLFxuICAgICAgJ3NoYXBlJzogW10sXG4gICAgICAnZHR5cGUnOiAnaW50MzInXG4gICAgfSxcbiAgICB7XG4gICAgICAnbmFtZSc6ICdTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbC9tb2RlbC9hL01hdE11bC9SZWFkVmFyaWFibGVPcCcsXG4gICAgICAnc2hhcGUnOiBbMiwgMV0sXG4gICAgICAnZHR5cGUnOiAnZmxvYXQzMidcbiAgICB9LFxuICAgIHtcbiAgICAgICduYW1lJzogJ1N0YXRlZnVsUGFydGl0aW9uZWRDYWxsL21vZGVsL2IvTWF0TXVsL1JlYWRWYXJpYWJsZU9wJyxcbiAgICAgICdzaGFwZSc6IFsxLCAxXSxcbiAgICAgICdkdHlwZSc6ICdmbG9hdDMyJ1xuICAgIH1cbiAgXSxcbiAgJ3dlaWdodERhdGEnOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDcwLCAweDNkLCAweDcyLCAweDNlLCAweDNkLCAweGQyLFxuICAgICAgICAgICAgICAgICAgMHgxMiwgMHhiZiwgMHgwYywgMHhmYiwgMHg5NCwgMHgzZVxuICAgICAgICAgICAgICAgIF0pLmJ1ZmZlcixcbiAgJ3NpZ25hdHVyZSc6IHtcbiAgICAnaW5wdXRzJzoge1xuICAgICAgJ2lucHV0MTowJzoge1xuICAgICAgICAnbmFtZSc6ICdpbnB1dDE6MCcsXG4gICAgICAgICdkdHlwZSc6ICdEVF9GTE9BVCcsXG4gICAgICAgICd0ZW5zb3JTaGFwZSc6IHsnZGltJzogW3snc2l6ZSc6ICctMSd9LCB7J3NpemUnOiAnMSd9XX1cbiAgICAgIH0sXG4gICAgICAnaW5wdXQzOjAnOiB7XG4gICAgICAgICduYW1lJzogJ2lucHV0MzowJyxcbiAgICAgICAgJ2R0eXBlJzogJ0RUX0ZMT0FUJyxcbiAgICAgICAgJ3RlbnNvclNoYXBlJzogeydkaW0nOiBbeydzaXplJzogJy0xJ30sIHsnc2l6ZSc6ICcxJ31dfVxuICAgICAgfSxcbiAgICAgICdpbnB1dDI6MCc6IHtcbiAgICAgICAgJ25hbWUnOiAnaW5wdXQyOjAnLFxuICAgICAgICAnZHR5cGUnOiAnRFRfRkxPQVQnLFxuICAgICAgICAndGVuc29yU2hhcGUnOiB7J2RpbSc6IFt7J3NpemUnOiAnLTEnfSwgeydzaXplJzogJzEnfV19XG4gICAgICB9XG4gICAgfSxcbiAgICAnb3V0cHV0cyc6IHtcbiAgICAgICdJZGVudGl0eV8xOjAnOiB7XG4gICAgICAgICduYW1lJzogJ0lkZW50aXR5XzE6MCcsXG4gICAgICAgICdkdHlwZSc6ICdEVF9GTE9BVCcsXG4gICAgICAgICd0ZW5zb3JTaGFwZSc6IHsnZGltJzogW3snc2l6ZSc6ICctMSd9LCB7J3NpemUnOiAnMSd9XX1cbiAgICAgIH0sXG4gICAgICAnSWRlbnRpdHk6MCc6IHtcbiAgICAgICAgJ25hbWUnOiAnSWRlbnRpdHk6MCcsXG4gICAgICAgICdkdHlwZSc6ICdEVF9GTE9BVCcsXG4gICAgICAgICd0ZW5zb3JTaGFwZSc6IHsnZGltJzogW3snc2l6ZSc6ICctMSd9LCB7J3NpemUnOiAnMSd9XX1cbiAgICAgIH0sXG4gICAgICAnSWRlbnRpdHlfMjowJzoge1xuICAgICAgICAnbmFtZSc6ICdJZGVudGl0eV8yOjAnLFxuICAgICAgICAnZHR5cGUnOiAnRFRfRkxPQVQnLFxuICAgICAgICAndGVuc29yU2hhcGUnOiB7J2RpbSc6IFt7J3NpemUnOiAnLTEnfSwgeydzaXplJzogJzEnfV19XG4gICAgICB9XG4gICAgfVxuICB9LFxuICAndXNlckRlZmluZWRNZXRhZGF0YSc6IHsnc3RydWN0dXJlZE91dHB1dEtleXMnOiBbJ2EnLCAnYicsICdjJ119XG59O1xuIl19