UNPKG

@tensorflow/tfjs-converter

Version:

Tensorflow model converter for javascript

209 lines 22.9 kB
/** * @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