payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
98 lines (97 loc) • 34.8 kB
JavaScript
/* eslint-disable no-use-before-define */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
fieldAffectsData: function() {
return fieldAffectsData;
},
fieldHasMaxDepth: function() {
return fieldHasMaxDepth;
},
fieldHasSubFields: function() {
return fieldHasSubFields;
},
fieldIsArrayType: function() {
return fieldIsArrayType;
},
fieldIsBlockType: function() {
return fieldIsBlockType;
},
fieldIsGroupType: function() {
return fieldIsGroupType;
},
fieldIsLocalized: function() {
return fieldIsLocalized;
},
fieldIsPresentationalOnly: function() {
return fieldIsPresentationalOnly;
},
fieldSupportsMany: function() {
return fieldSupportsMany;
},
optionIsObject: function() {
return optionIsObject;
},
optionIsValue: function() {
return optionIsValue;
},
optionsAreObjects: function() {
return optionsAreObjects;
},
tabHasName: function() {
return tabHasName;
},
valueIsValueWithRelation: function() {
return valueIsValueWithRelation;
}
});
function valueIsValueWithRelation(value) {
return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value;
}
function fieldHasSubFields(field) {
return field.type === 'group' || field.type === 'array' || field.type === 'row' || field.type === 'collapsible';
}
function fieldIsArrayType(field) {
return field.type === 'array';
}
function fieldIsBlockType(field) {
return field.type === 'blocks';
}
function fieldIsGroupType(field) {
return field.type === 'group';
}
function optionIsObject(option) {
return typeof option === 'object';
}
function optionsAreObjects(options) {
return Array.isArray(options) && typeof options?.[0] === 'object';
}
function optionIsValue(option) {
return typeof option === 'string';
}
function fieldSupportsMany(field) {
return field.type === 'select' || field.type === 'relationship';
}
function fieldHasMaxDepth(field) {
return (field.type === 'upload' || field.type === 'relationship') && typeof field.maxDepth === 'number';
}
function fieldIsPresentationalOnly(field) {
return field.type === 'ui';
}
function fieldAffectsData(field) {
return 'name' in field && !fieldIsPresentationalOnly(field);
}
function tabHasName(tab) {
return 'name' in tab;
}
function fieldIsLocalized(field) {
return 'localized' in field && field.localized;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEVkaXRvclByb3BzIH0gZnJvbSAnQG1vbmFjby1lZGl0b3IvcmVhY3QnXG5pbXBvcnQgdHlwZSB7IFRGdW5jdGlvbiB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IG1vbmFjb2VkaXRvciBmcm9tICdtb25hY28tZWRpdG9yJyAvLyBJTVBPUlRBTlQgLSBETyBOT1QgUkVNT1ZFOiBUaGlzIGlzIHJlcXVpcmVkIGZvciBwbnBtJ3MgZGVmYXVsdCBpc29sYXRlZCBtb2RlIHRvIHdvcmsgLSBldmVuIHRob3VnaCB0aGUgaW1wb3J0IGlzIG5vdCB1c2VkLiBUaGlzIGlzIGR1ZSB0byBhIHR5cGVzY3JpcHQgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzQ3NjYzI2lzc3VlY29tbWVudC0xNTE5MTM4MTg5LiAodHNidWdpc29sYXRlZG1vZGUpXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25hbERhdGVQcm9wcyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvRGF0ZVBpY2tlci90eXBlcydcbmltcG9ydCB0eXBlIHsgUHJvcHMgYXMgRXJyb3JQcm9wcyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvRXJyb3IvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERlc2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9GaWVsZERlc2NyaXB0aW9uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQcm9wcyBhcyBMYWJlbFByb3BzIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9MYWJlbC90eXBlcydcbmltcG9ydCB0eXBlIHsgUm93TGFiZWwgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL1Jvd0xhYmVsL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi4vLi4vYXV0aCdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZywgVHlwZVdpdGhJRCB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiwgV2hlcmUgfSBmcm9tICcuLi8uLi90eXBlcydcblxuZXhwb3J0IHR5cGUgRmllbGRIb29rQXJnczxUIGV4dGVuZHMgVHlwZVdpdGhJRCA9IGFueSwgUCA9IGFueSwgUyA9IGFueT4gPSB7XG4gIC8qKiBUaGUgY29sbGVjdGlvbiB3aGljaCB0aGUgZmllbGQgYmVsb25ncyB0by4gSWYgdGhlIGZpZWxkIGJlbG9uZ3MgdG8gYSBnbG9iYWwsIHRoaXMgd2lsbCBiZSBudWxsLiAqL1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICAvKiogVGhlIGRhdGEgcGFzc2VkIHRvIHVwZGF0ZSB0aGUgZG9jdW1lbnQgd2l0aGluIGNyZWF0ZSBhbmQgdXBkYXRlIG9wZXJhdGlvbnMsIGFuZCB0aGUgZnVsbCBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIGFmdGVyUmVhZCBob29rLiAqL1xuICBkYXRhPzogUGFydGlhbDxUPlxuICAvKiogVGhlIGZpZWxkIHdoaWNoIHRoZSBob29rIGlzIHJ1bm5pbmcgYWdhaW5zdC4gKi9cbiAgZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YVxuICAvKiogQm9vbGVhbiB0byBkZW5vdGUgaWYgdGhpcyBob29rIGlzIHJ1bm5pbmcgYWdhaW5zdCBmaW5kaW5nIG9uZSwgb3IgZmluZGluZyBtYW55IHdpdGhpbiB0aGUgYWZ0ZXJSZWFkIGhvb2suICovXG4gIGZpbmRNYW55PzogYm9vbGVhblxuICAvKiogVGhlIGdsb2JhbCB3aGljaCB0aGUgZmllbGQgYmVsb25ncyB0by4gSWYgdGhlIGZpZWxkIGJlbG9uZ3MgdG8gYSBjb2xsZWN0aW9uLCB0aGlzIHdpbGwgYmUgbnVsbC4gKi9cbiAgZ2xvYmFsOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfCBudWxsXG4gIC8qKiBBIHN0cmluZyByZWxhdGluZyB0byB3aGljaCBvcGVyYXRpb24gdGhlIGZpZWxkIHR5cGUgaXMgY3VycmVudGx5IGV4ZWN1dGluZyB3aXRoaW4uIFVzZWZ1bCB3aXRoaW4gYmVmb3JlVmFsaWRhdGUsIGJlZm9yZUNoYW5nZSwgYW5kIGFmdGVyQ2hhbmdlIGhvb2tzIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBjcmVhdGUgYW5kIHVwZGF0ZSBvcGVyYXRpb25zLiAqL1xuICBvcGVyYXRpb24/OiAnY3JlYXRlJyB8ICdkZWxldGUnIHwgJ3JlYWQnIHwgJ3VwZGF0ZSdcbiAgLyoqIFRoZSBmdWxsIG9yaWdpbmFsIGRvY3VtZW50IGluIGB1cGRhdGVgIG9wZXJhdGlvbnMuIEluIHRoZSBgYWZ0ZXJDaGFuZ2VgIGhvb2ssIHRoaXMgaXMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCBvZiB0aGUgb3BlcmF0aW9uLiAqL1xuICBvcmlnaW5hbERvYz86IFRcbiAgLyoqIFRoZSBkb2N1bWVudCBiZWZvcmUgY2hhbmdlcyB3ZXJlIGFwcGxpZWQsIG9ubHkgaW4gYGFmdGVyQ2hhbmdlYCBob29rcy4gKi9cbiAgcHJldmlvdXNEb2M/OiBUXG4gIC8qKiBUaGUgc2libGluZyBkYXRhIG9mIHRoZSBkb2N1bWVudCBiZWZvcmUgY2hhbmdlcyBiZWluZyBhcHBsaWVkLCBvbmx5IGluIGBiZWZvcmVDaGFuZ2VgIGFuZCBgYWZ0ZXJDaGFuZ2VgIGhvb2suICovXG4gIHByZXZpb3VzU2libGluZ0RvYz86IFRcbiAgLyoqIFRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgZmllbGQsIGJlZm9yZSBjaGFuZ2VzLCBvbmx5IGluIGBiZWZvcmVDaGFuZ2VgIGFuZCBgYWZ0ZXJDaGFuZ2VgIGhvb2tzLiAqL1xuICBwcmV2aW91c1ZhbHVlPzogUFxuICAvKiogVGhlIEV4cHJlc3MgcmVxdWVzdCBvYmplY3QuIEl0IGlzIG1vY2tlZCBmb3IgTG9jYWwgQVBJIG9wZXJhdGlvbnMuICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgLyoqIFRoZSBzaWJsaW5nIGRhdGEgcGFzc2VkIHRvIGEgZmllbGQgdGhhdCB0aGUgaG9vayBpcyBydW5uaW5nIGFnYWluc3QuICovXG4gIHNpYmxpbmdEYXRhOiBQYXJ0aWFsPFM+XG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkLiAqL1xuICB2YWx1ZT86IFBcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRIb29rPFQgZXh0ZW5kcyBUeXBlV2l0aElEID0gYW55LCBQID0gYW55LCBTID0gYW55PiA9IChcbiAgYXJnczogRmllbGRIb29rQXJnczxULCBQLCBTPixcbikgPT4gUCB8IFByb21pc2U8UD5cblxuZXhwb3J0IHR5cGUgRmllbGRBY2Nlc3M8VCBleHRlbmRzIFR5cGVXaXRoSUQgPSBhbnksIFAgPSBhbnksIFUgPSBhbnk+ID0gKGFyZ3M6IHtcbiAgLyoqXG4gICAqIFRoZSBpbmNvbWluZyBkYXRhIHVzZWQgdG8gYGNyZWF0ZWAgb3IgYHVwZGF0ZWAgdGhlIGRvY3VtZW50IHdpdGguIGBkYXRhYCBpcyB1bmRlZmluZWQgZHVyaW5nIHRoZSBgcmVhZGAgb3BlcmF0aW9uLlxuICAgKi9cbiAgZGF0YT86IFBhcnRpYWw8VD5cbiAgLyoqXG4gICAqIFRoZSBvcmlnaW5hbCBkYXRhIG9mIHRoZSBkb2N1bWVudCBiZWZvcmUgdGhlIGB1cGRhdGVgIGlzIGFwcGxpZWQuIGBkb2NgIGlzIHVuZGVmaW5lZCBkdXJpbmcgdGhlIGBjcmVhdGVgIG9wZXJhdGlvbi5cbiAgICovXG4gIGRvYz86IFRcbiAgLyoqXG4gICAqIFRoZSBgaWRgIG9mIHRoZSBjdXJyZW50IGRvY3VtZW50IGJlaW5nIHJlYWQgb3IgdXBkYXRlZC4gYGlkYCBpcyB1bmRlZmluZWQgZHVyaW5nIHRoZSBgY3JlYXRlYCBvcGVyYXRpb24uXG4gICAqL1xuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICAvKiogVGhlIGBFeHByZXNzYCByZXF1ZXN0IG9iamVjdCBjb250YWluaW5nIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCBgdXNlcmAgKi9cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdDxVPlxuICAvKipcbiAgICogSW1tZWRpYXRlbHkgYWRqYWNlbnQgZGF0YSB0byB0aGlzIGZpZWxkLiBGb3IgZXhhbXBsZSwgaWYgdGhpcyBpcyBhIGBncm91cGAgZmllbGQsIHRoZW4gYHNpYmxpbmdEYXRhYCB3aWxsIGJlIHRoZSBvdGhlciBmaWVsZHMgd2l0aGluIHRoZSBncm91cC5cbiAgICovXG4gIHNpYmxpbmdEYXRhPzogUGFydGlhbDxQPlxufSkgPT4gUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgQ29uZGl0aW9uPFQgZXh0ZW5kcyBUeXBlV2l0aElEID0gYW55LCBQID0gYW55PiA9IChcbiAgZGF0YTogUGFydGlhbDxUPixcbiAgc2libGluZ0RhdGE6IFBhcnRpYWw8UD4sXG4gIHsgdXNlciB9OiB7IHVzZXI6IFVzZXIgfSxcbikgPT4gYm9vbGVhblxuXG5leHBvcnQgdHlwZSBGaWx0ZXJPcHRpb25zUHJvcHM8VCA9IGFueT4gPSB7XG4gIGRhdGE6IFRcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICByZWxhdGlvblRvOiBzdHJpbmdcbiAgc2libGluZ0RhdGE6IHVua25vd25cbiAgdXNlcjogUGFydGlhbDxVc2VyPlxufVxuXG5leHBvcnQgdHlwZSBGaWx0ZXJPcHRpb25zPFQgPSBhbnk+ID1cbiAgfCAoKG9wdGlvbnM6IEZpbHRlck9wdGlvbnNQcm9wczxUPikgPT4gUHJvbWlzZTxXaGVyZSB8IGJvb2xlYW4+IHwgV2hlcmUgfCBib29sZWFuKVxuICB8IFdoZXJlXG4gIHwgbnVsbFxuXG50eXBlIEFkbWluID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgY29tcG9uZW50cz86IHtcbiAgICBDZWxsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgRmllbGQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICBGaWx0ZXI/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgfVxuICAvKipcbiAgICogWW91IGNhbiBwcm9ncmFtbWF0aWNhbGx5IHNob3cgLyBoaWRlIGZpZWxkcyBiYXNlZCBvbiB3aGF0IG90aGVyIGZpZWxkcyBhcmUgZG9pbmcuXG4gICAqIFRoaXMgaXMgYWxzbyBydW4gb24gdGhlIHNlcnZlciwgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgdmFsaWRhdGVkLlxuICAgKi9cbiAgY29uZGl0aW9uPzogQ29uZGl0aW9uXG4gIGRlc2NyaXB0aW9uPzogRGVzY3JpcHRpb25cbiAgZGlzYWJsZUJ1bGtFZGl0PzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgaGlkZGVuPzogYm9vbGVhblxuICBwb3NpdGlvbj86ICdzaWRlYmFyJ1xuICByZWFkT25seT86IGJvb2xlYW5cbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzXG4gIHdpZHRoPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIExhYmVscyA9IHtcbiAgcGx1cmFsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIHNpbmd1bGFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRlT3B0aW9uczxURGF0YSwgVFNpYmxpbmdEYXRhLCBURmllbGRDb25maWc+ID0ge1xuICBjb25maWc6IFNhbml0aXplZENvbmZpZ1xuICBkYXRhOiBQYXJ0aWFsPFREYXRhPlxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb24/OiBPcGVyYXRpb25cbiAgcGF5bG9hZD86IFBheWxvYWRcbiAgcmVxPzogUGF5bG9hZFJlcXVlc3RcbiAgc2libGluZ0RhdGE6IFBhcnRpYWw8VFNpYmxpbmdEYXRhPlxuICB0OiBURnVuY3Rpb25cbiAgdXNlcj86IFBhcnRpYWw8VXNlcj5cbn0gJiBURmllbGRDb25maWdcblxuLy8gVE9ETzogSGF2aW5nIFRGaWVsZENvbmZpZyBhcyBhbnkgYnJlYWtzIGFsbCB0eXBlIGNoZWNraW5nIC8gYXV0by1jb21wbGV0aW9ucyBmb3IgdGhlIGJhc2UgVmFsaWRhdGVPcHRpb25zIHByb3BlcnRpZXMuXG5leHBvcnQgdHlwZSBWYWxpZGF0ZTxUVmFsdWUgPSBhbnksIFREYXRhID0gYW55LCBUU2libGluZ0RhdGEgPSBhbnksIFRGaWVsZENvbmZpZyA9IGFueT4gPSAoXG4gIHZhbHVlOiBUVmFsdWUsXG4gIG9wdGlvbnM6IFZhbGlkYXRlT3B0aW9uczxURGF0YSwgVFNpYmxpbmdEYXRhLCBURmllbGRDb25maWc+LFxuKSA9PiBQcm9taXNlPHN0cmluZyB8IHRydWU+IHwgc3RyaW5nIHwgdHJ1ZVxuXG5leHBvcnQgdHlwZSBPcHRpb25PYmplY3QgPSB7XG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIHZhbHVlOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW9uID0gT3B0aW9uT2JqZWN0IHwgc3RyaW5nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRCYXNlIHtcbiAgYWNjZXNzPzoge1xuICAgIGNyZWF0ZT86IEZpZWxkQWNjZXNzXG4gICAgcmVhZD86IEZpZWxkQWNjZXNzXG4gICAgdXBkYXRlPzogRmllbGRBY2Nlc3NcbiAgfVxuICBhZG1pbj86IEFkbWluXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgZGVmYXVsdFZhbHVlPzogYW55XG4gIGhpZGRlbj86IGJvb2xlYW5cbiAgaG9va3M/OiB7XG4gICAgYWZ0ZXJDaGFuZ2U/OiBGaWVsZEhvb2tbXVxuICAgIGFmdGVyUmVhZD86IEZpZWxkSG9va1tdXG4gICAgYmVmb3JlQ2hhbmdlPzogRmllbGRIb29rW11cbiAgICBiZWZvcmVWYWxpZGF0ZT86IEZpZWxkSG9va1tdXG4gIH1cbiAgaW5kZXg/OiBib29sZWFuXG4gIGxhYmVsPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IGZhbHNlIHwgc3RyaW5nXG4gIGxvY2FsaXplZD86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHJlcXVpcmVkPzogYm9vbGVhblxuICBzYXZlVG9KV1Q/OiBib29sZWFuIHwgc3RyaW5nXG4gIHVuaXF1ZT86IGJvb2xlYW5cbiAgdmFsaWRhdGU/OiBWYWxpZGF0ZVxufVxuXG5leHBvcnQgdHlwZSBOdW1iZXJGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICAvKiogU2V0IHRoaXMgcHJvcGVydHkgdG8gYSBzdHJpbmcgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGJyb3dzZXIgYXV0b2NvbXBsZXRlLiAqL1xuICAgIGF1dG9Db21wbGV0ZT86IHN0cmluZ1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICAgIC8qKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBkZWZpbmUgYSBwbGFjZWhvbGRlciBzdHJpbmcgZm9yIHRoZSBmaWVsZC4gKi9cbiAgICBwbGFjZWhvbGRlcj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmdcbiAgICAvKiogU2V0IGEgdmFsdWUgZm9yIHRoZSBudW1iZXIgZmllbGQgdG8gaW5jcmVtZW50IC8gZGVjcmVtZW50IHVzaW5nIGJyb3dzZXIgY29udHJvbHMuICovXG4gICAgc3RlcD86IG51bWJlclxuICB9XG4gIC8qKiBNYXhpbXVtIHZhbHVlIGFjY2VwdGVkLiBVc2VkIGluIHRoZSBkZWZhdWx0IGB2YWxpZGF0aW9uYCBmdW5jdGlvbi4gKi9cbiAgbWF4PzogbnVtYmVyXG4gIC8qKiBNaW5pbXVtIHZhbHVlIGFjY2VwdGVkLiBVc2VkIGluIHRoZSBkZWZhdWx0IGB2YWxpZGF0aW9uYCBmdW5jdGlvbi4gKi9cbiAgbWluPzogbnVtYmVyXG4gIHR5cGU6ICdudW1iZXInXG59ICYgKFxuICAgIHwge1xuICAgICAgICAvKiogTWFrZXMgdGhpcyBmaWVsZCBhbiBvcmRlcmVkIGFycmF5IG9mIG51bWJlcnMgaW5zdGVhZCBvZiBqdXN0IGEgc2luZ2xlIG51bWJlci4gKi9cbiAgICAgICAgaGFzTWFueTogdHJ1ZVxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgbnVtYmVycyBpbiB0aGUgbnVtYmVycyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogbnVtYmVyXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBudW1iZXJzIGluIHRoZSBudW1iZXJzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgLyoqIE1ha2VzIHRoaXMgZmllbGQgYW4gb3JkZXJlZCBhcnJheSBvZiBudW1iZXJzIGluc3RlYWQgb2YganVzdCBhIHNpbmdsZSBudW1iZXIuICovXG4gICAgICAgIGhhc01hbnk/OiBmYWxzZSB8IHVuZGVmaW5lZFxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgbnVtYmVycyBpbiB0aGUgbnVtYmVycyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogdW5kZWZpbmVkXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBudW1iZXJzIGluIHRoZSBudW1iZXJzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiB1bmRlZmluZWRcbiAgICAgIH1cbiAgKVxuXG5leHBvcnQgdHlwZSBUZXh0RmllbGQgPSBGaWVsZEJhc2UgJiB7XG4gIGFkbWluPzogQWRtaW4gJiB7XG4gICAgYXV0b0NvbXBsZXRlPzogc3RyaW5nXG4gICAgY29tcG9uZW50cz86IHtcbiAgICAgIEVycm9yPzogUmVhY3QuQ29tcG9uZW50VHlwZTxFcnJvclByb3BzPlxuICAgICAgTGFiZWw/OiBSZWFjdC5Db21wb25lbnRUeXBlPExhYmVsUHJvcHM+XG4gICAgICBhZnRlcklucHV0PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIGJlZm9yZUlucHV0PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICB9XG4gICAgcGxhY2Vob2xkZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gICAgcnRsPzogYm9vbGVhblxuICB9XG4gIG1heExlbmd0aD86IG51bWJlclxuICBtaW5MZW5ndGg/OiBudW1iZXJcbiAgdHlwZTogJ3RleHQnXG59ICYgKFxuICAgIHwge1xuICAgICAgICAvKiogTWFrZXMgdGhpcyBmaWVsZCBhbiBvcmRlcmVkIGFycmF5IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBqdXN0IGEgc2luZ2xlIHN0cmluZy4gKi9cbiAgICAgICAgaGFzTWFueTogdHJ1ZVxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2Ygc3RyaW5ncyBpbiB0aGUgc3RyaW5ncyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogbnVtYmVyXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBzdHJpbmdzIGluIHRoZSBzdHJpbmdzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgLyoqIE1ha2VzIHRoaXMgZmllbGQgYW4gb3JkZXJlZCBhcnJheSBvZiBzdHJpbmdzIGluc3RlYWQgb2YganVzdCBhIHNpbmdsZSBzdHJpbmcuICovXG4gICAgICAgIGhhc01hbnk/OiBmYWxzZSB8IHVuZGVmaW5lZFxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2Ygc3RyaW5ncyBpbiB0aGUgc3RyaW5ncyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogdW5kZWZpbmVkXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBzdHJpbmdzIGluIHRoZSBzdHJpbmdzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiB1bmRlZmluZWRcbiAgICAgIH1cbiAgKVxuXG5leHBvcnQgdHlwZSBFbWFpbEZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGF1dG9Db21wbGV0ZT86IHN0cmluZ1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICAgIHBsYWNlaG9sZGVyPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICB9XG4gIHR5cGU6ICdlbWFpbCdcbn1cblxuZXhwb3J0IHR5cGUgVGV4dGFyZWFGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgICAgIGFmdGVySW5wdXQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgYmVmb3JlSW5wdXQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgIH1cbiAgICBwbGFjZWhvbGRlcj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmdcbiAgICByb3dzPzogbnVtYmVyXG4gICAgcnRsPzogYm9vbGVhblxuICB9XG4gIG1heExlbmd0aD86IG51bWJlclxuICBtaW5MZW5ndGg/OiBudW1iZXJcbiAgdHlwZTogJ3RleHRhcmVhJ1xufVxuXG5leHBvcnQgdHlwZSBDaGVja2JveEZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICB9XG4gIHR5cGU6ICdjaGVja2JveCdcbn1cblxuZXhwb3J0IHR5cGUgRGF0ZUZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICAgIGRhdGU/OiBDb25kaXRpb25hbERhdGVQcm9wc1xuICAgIHBsYWNlaG9sZGVyPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICB9XG4gIHR5cGU6ICdkYXRlJ1xufVxuXG5leHBvcnQgdHlwZSBHcm91cEZpZWxkID0gT21pdDxGaWVsZEJhc2UsICdyZXF1aXJlZCcgfCAndmFsaWRhdGlvbic+ICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGhpZGVHdXR0ZXI/OiBib29sZWFuXG4gIH1cbiAgZmllbGRzOiBGaWVsZFtdXG4gIC8qKiBDdXN0b21pemUgZ2VuZXJhdGVkIEdyYXBoUUwgYW5kIFR5cGVzY3JpcHQgc2NoZW1hIG5hbWVzLlxuICAgKiBCeSBkZWZhdWx0IGl0IGlzIGJvdW5kIHRvIHRoZSBjb2xsZWN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBnZW5lcmF0ZSBhIHRvcCBsZXZlbCB0eXBlIHRvIHNoYXJlIGFtb25nc3QgY29sbGVjdGlvbnMvZmllbGRzLlxuICAgKiAqKk5vdGUqKjogVG9wIGxldmVsIHR5cGVzIGNhbiBjb2xsaWRlLCBlbnN1cmUgdGhleSBhcmUgdW5pcXVlIGFtb25nIGNvbGxlY3Rpb25zLCBhcnJheXMsIGdyb3VwcywgYmxvY2tzLCB0YWJzLlxuICAgKi9cbiAgaW50ZXJmYWNlTmFtZT86IHN0cmluZ1xuICB0eXBlOiAnZ3JvdXAnXG59XG5cbmV4cG9ydCB0eXBlIFJvd0FkbWluID0gT21pdDxBZG1pbiwgJ2Rlc2NyaXB0aW9uJz5cblxuZXhwb3J0IHR5cGUgUm93RmllbGQgPSBPbWl0PEZpZWxkQmFzZSwgJ2FkbWluJyB8ICdsYWJlbCcgfCAnbmFtZSc+ICYge1xuICBhZG1pbj86IFJvd0FkbWluXG4gIGZpZWxkczogRmllbGRbXVxuICB0eXBlOiAncm93J1xufVxuXG5leHBvcnQgdHlwZSBDb2xsYXBzaWJsZUZpZWxkID0gT21pdDxGaWVsZEJhc2UsICdsYWJlbCcgfCAnbmFtZSc+ICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGluaXRDb2xsYXBzZWQ/OiBib29sZWFuIHwgZmFsc2VcbiAgfVxuICBmaWVsZHM6IEZpZWxkW11cbiAgbGFiZWw6IFJvd0xhYmVsXG4gIHR5cGU6ICdjb2xsYXBzaWJsZSdcbn1cblxuZXhwb3J0IHR5cGUgVGFic0FkbWluID0gT21pdDxBZG1pbiwgJ2Rlc2NyaXB0aW9uJz5cblxudHlwZSBUYWJCYXNlID0gT21pdDxGaWVsZEJhc2UsICdyZXF1aXJlZCcgfCAndmFsaWRhdGlvbic+ICYge1xuICBkZXNjcmlwdGlvbj86IERlc2NyaXB0aW9uXG4gIGZpZWxkczogRmllbGRbXVxuICBpbnRlcmZhY2VOYW1lPzogc3RyaW5nXG4gIHNhdmVUb0pXVD86IGJvb2xlYW4gfCBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTmFtZWRUYWIgPSBUYWJCYXNlICYge1xuICAvKiogQ3VzdG9taXplIGdlbmVyYXRlZCBHcmFwaFFMIGFuZCBUeXBlc2NyaXB0IHNjaGVtYSBuYW1lcy5cbiAgICogVGhlIHNsdWcgaXMgdXNlZCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBnZW5lcmF0ZSBhIHRvcCBsZXZlbCB0eXBlIHRvIHNoYXJlIGFtb25nc3QgY29sbGVjdGlvbnMvZmllbGRzLlxuICAgKiAqKk5vdGUqKjogVG9wIGxldmVsIHR5cGVzIGNhbiBjb2xsaWRlLCBlbnN1cmUgdGhleSBhcmUgdW5pcXVlIGFtb25nIGNvbGxlY3Rpb25zLCBhcnJheXMsIGdyb3VwcywgYmxvY2tzLCB0YWJzLlxuICAgKi9cbiAgaW50ZXJmYWNlTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBVbm5hbWVkVGFiID0gT21pdDxUYWJCYXNlLCAnbmFtZSc+ICYge1xuICBpbnRlcmZhY2VOYW1lPzogbmV2ZXJcbiAgbGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmdcbiAgbG9jYWxpemVkPzogbmV2ZXJcbn1cblxuZXhwb3J0IHR5cGUgVGFiID0gTmFtZWRUYWIgfCBVbm5hbWVkVGFiXG5cbmV4cG9ydCB0eXBlIFRhYnNGaWVsZCA9IE9taXQ8RmllbGRCYXNlLCAnYWRtaW4nIHwgJ2xvY2FsaXplZCcgfCAnbmFtZScgfCAnc2F2ZVRvSldUJz4gJiB7XG4gIGFkbWluPzogVGFic0FkbWluXG4gIHRhYnM6IFRhYltdXG4gIHR5cGU6ICd0YWJzJ1xufVxuXG5leHBvcnQgdHlwZSBUYWJBc0ZpZWxkID0gVGFiICYge1xuICBuYW1lPzogc3RyaW5nXG4gIHR5cGU6ICd0YWInXG59XG5cbmV4cG9ydCB0eXBlIFVJRmllbGQgPSB7XG4gIGFkbWluOiB7XG4gICAgY29tcG9uZW50cz86IHtcbiAgICAgIENlbGw/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIEZpZWxkOiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIEZpbHRlcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgIH1cbiAgICBjb25kaXRpb24/OiBDb25kaXRpb25cbiAgICBkaXNhYmxlQnVsa0VkaXQ/OiBib29sZWFuXG4gICAgcG9zaXRpb24/OiBzdHJpbmdcbiAgICB3aWR0aD86IHN0cmluZ1xuICB9XG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgbGFiZWw/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICB0eXBlOiAndWknXG59XG5cbmV4cG9ydCB0eXBlIFVwbG9hZEZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IHtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgICB9XG4gIH1cbiAgZmlsdGVyT3B0aW9ucz86IEZpbHRlck9wdGlvbnNcbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgcmVsYXRpb25Ubzogc3RyaW5nXG4gIHR5cGU6ICd1cGxvYWQnXG59XG5cbnR5cGUgQ29kZUFkbWluID0gQWRtaW4gJiB7XG4gIGNvbXBvbmVudHM/OiB7XG4gICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgTGFiZWw/OiBSZWFjdC5Db21wb25lbnRUeXBlPExhYmVsUHJvcHM+XG4gIH1cbiAgZWRpdG9yT3B0aW9ucz86IEVkaXRvclByb3BzWydvcHRpb25zJ11cbiAgbGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ29kZUZpZWxkID0gT21pdDxGaWVsZEJhc2UsICdhZG1pbic+ICYge1xuICBhZG1pbj86IENvZGVBZG1pblxuICBtYXhMZW5ndGg/OiBudW1iZXJcbiAgbWluTGVuZ3RoPzogbnVtYmVyXG4gIHR5cGU6ICdjb2RlJ1xufVxuXG50eXBlIEpTT05BZG1pbiA9IEFkbWluICYge1xuICBjb21wb25lbnRzPzoge1xuICAgIEVycm9yPzogUmVhY3QuQ29tcG9uZW50VHlwZTxFcnJvclByb3BzPlxuICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICB9XG4gIGVkaXRvck9wdGlvbnM/OiBFZGl0b3JQcm9wc1snb3B0aW9ucyddXG59XG5cbmV4cG9ydCB0eXBlIEpTT05GaWVsZCA9IE9taXQ8RmllbGRCYXNlLCAnYWRtaW4nPiAmIHtcbiAgYWRtaW4/OiBKU09OQWRtaW5cbiAgdHlwZTogJ2pzb24nXG59XG5cbmV4cG9ydCB0eXBlIFNlbGVjdEZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgIH1cbiAgICBpc0NsZWFyYWJsZT86IGJvb2xlYW5cbiAgICBpc1NvcnRhYmxlPzogYm9vbGVhblxuICB9XG4gIGhhc01hbnk/OiBib29sZWFuXG4gIG9wdGlvbnM6IE9wdGlvbltdXG4gIHR5cGU6ICdzZWxlY3QnXG59XG5cbnR5cGUgU2hhcmVkUmVsYXRpb25zaGlwUHJvcGVydGllcyA9IEZpZWxkQmFzZSAmIHtcbiAgZmlsdGVyT3B0aW9ucz86IEZpbHRlck9wdGlvbnNcbiAgaGFzTWFueT86IGJvb2xlYW5cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgdHlwZTogJ3JlbGF0aW9uc2hpcCdcbn0gJiAoXG4gICAgfCB7XG4gICAgICAgIGhhc01hbnk6IHRydWVcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXByZWNhdGVkIFVzZSAnbWF4Um93cycgaW5zdGVhZFxuICAgICAgICAgKi9cbiAgICAgICAgbWF4PzogbnVtYmVyXG4gICAgICAgIG1heFJvd3M/OiBudW1iZXJcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXByZWNhdGVkIFVzZSAnbWluUm93cycgaW5zdGVhZFxuICAgICAgICAgKi9cbiAgICAgICAgbWluPzogbnVtYmVyXG4gICAgICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgaGFzTWFueT86IGZhbHNlIHwgdW5kZWZpbmVkXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVwcmVjYXRlZCBVc2UgJ21heFJvd3MnIGluc3RlYWRcbiAgICAgICAgICovXG4gICAgICAgIG1heD86IHVuZGVmaW5lZFxuICAgICAgICBtYXhSb3dzPzogdW5kZWZpbmVkXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVwcmVjYXRlZCBVc2UgJ21pblJvd3MnIGluc3RlYWRcbiAgICAgICAgICovXG4gICAgICAgIG1pbj86IHVuZGVmaW5lZFxuICAgICAgICBtaW5Sb3dzPzogdW5kZWZpbmVkXG4gICAgICB9XG4gIClcblxudHlwZSBSZWxhdGlvbnNoaXBBZG1pbiA9IEFkbWluICYge1xuICBhbGxvd0NyZWF0ZT86IGJvb2xlYW5cbiAgY29tcG9uZW50cz86IHtcbiAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgfVxuICBpc1NvcnRhYmxlPzogYm9vbGVhblxufVxuZXhwb3J0IHR5cGUgUG9seW1vcnBoaWNSZWxhdGlvbnNoaXBGaWVsZCA9IFNoYXJlZFJlbGF0aW9uc2hpcFByb3BlcnRpZXMgJiB7XG4gIGFkbWluPzogUmVsYXRpb25zaGlwQWRtaW4gJiB7XG4gICAgc29ydE9wdGlvbnM/OiB7IFtjb2xsZWN0aW9uU2x1Zzogc3RyaW5nXTogc3RyaW5nIH1cbiAgfVxuICByZWxhdGlvblRvOiBzdHJpbmdbXVxufVxuZXhwb3J0IHR5cGUgU2luZ2xlUmVsYXRpb25zaGlwRmllbGQgPSBTaGFyZWRSZWxhdGlvbnNoaXBQcm9wZXJ0aWVzICYge1xuICBhZG1pbj86IFJlbGF0aW9uc2hpcEFkbWluICYge1xuICAgIHNvcnRPcHRpb25zPzogc3RyaW5nXG4gIH1cbiAgcmVsYXRpb25Ubzogc3RyaW5nXG59XG5leHBvcnQgdHlwZSBSZWxhdGlvbnNoaXBGaWVsZCA9IFBvbHltb3JwaGljUmVsYXRpb25zaGlwRmllbGQgfCBTaW5nbGVSZWxhdGlvbnNoaXBGaWVsZFxuXG5leHBvcnQgdHlwZSBWYWx1ZVdpdGhSZWxhdGlvbiA9IHtcbiAgcmVsYXRpb25Ubzogc3RyaW5nXG4gIHZhbHVlOiBudW1iZXIgfCBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFZhbHVlV2l0aFJlbGF0aW9uIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3JlbGF0aW9uVG8nIGluIHZhbHVlICYmICd2YWx1ZScgaW4gdmFsdWVcbn1cblxuZXhwb3J0IHR5cGUgUmVsYXRpb25zaGlwVmFsdWUgPVxuICB8IChudW1iZXIgfCBzdHJpbmcpW11cbiAgfCBWYWx1ZVdpdGhSZWxhdGlvblxuICB8IFZhbHVlV2l0aFJlbGF0aW9uW11cbiAgfCAobnVtYmVyIHwgc3RyaW5nKVxuXG5leHBvcnQgdHlwZSBSaWNoVGV4dEZpZWxkPFxuICBWYWx1ZSBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgQWRhcHRlclByb3BzID0gYW55LFxuICBFeHRyYVByb3BlcnRpZXMgPSB7fSxcbj4gPSBGaWVsZEJhc2UgJiB7XG4gIGFkbWluPzogQWRtaW5cbiAgZWRpdG9yPzogUmljaFRleHRBZGFwdGVyPFZhbHVlLCBBZGFwdGVyUHJvcHMsIEFkYXB0ZXJQcm9wcz5cbiAgdHlwZTogJ3JpY2hUZXh0J1xufSAmIEV4dHJhUHJvcGVydGllc1xuXG5leHBvcnQgdHlwZSBBcnJheUZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBSb3dMYWJlbD86IFJvd0xhYmVsXG4gICAgfSAmIEFkbWluWydjb21wb25lbnRzJ11cbiAgICBpbml0Q29sbGFwc2VkPzogYm9vbGVhbiB8IGZhbHNlXG4gIH1cbiAgZmllbGRzOiBGaWVsZFtdXG4gIC8qKiBDdXN0b21pemUgZ2VuZXJhdGVkIEdyYXBoUUwgYW5kIFR5cGVzY3JpcHQgc2NoZW1hIG5hbWVzLlxuICAgKiBCeSBkZWZhdWx0IGl0IGlzIGJvdW5kIHRvIHRoZSBjb2xsZWN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBnZW5lcmF0ZSBhIHRvcCBsZXZlbCB0eXBlIHRvIHNoYXJlIGFtb25nc3QgY29sbGVjdGlvbnMvZmllbGRzLlxuICAgKiAqKk5vdGUqKjogVG9wIGxldmVsIHR5cGVzIGNhbiBjb2xsaWRlLCBlbnN1cmUgdGhleSBhcmUgdW5pcXVlIGFtb25nIGNvbGxlY3Rpb25zLCBhcnJheXMsIGdyb3VwcywgYmxvY2tzLCB0YWJzLlxuICAgKi9cbiAgaW50ZXJmYWNlTmFtZT86IHN0cmluZ1xuICBsYWJlbHM/OiBMYWJlbHNcbiAgbWF4Um93cz86IG51bWJlclxuICBtaW5Sb3dzPzogbnVtYmVyXG4gIHR5cGU6ICdhcnJheSdcbn1cblxuZXhwb3J0IHR5cGUgUmFkaW9GaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgICB9XG4gICAgbGF5b3V0PzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICB9XG4gIG9wdGlvbnM6IE9wdGlvbltdXG4gIHR5cGU6ICdyYWRpbydcbn1cblxuZXhwb3J0IHR5cGUgQmxvY2sgPSB7XG4gIGZpZWxkczogRmllbGRbXVxuICAvKiogQGRlcHJlY2F0ZWQgLSBwbGVhc2UgbWlncmF0ZSB0byB0aGUgaW50ZXJmYWNlTmFtZSBwcm9wZXJ0eSBpbnN0ZWFkLiAqL1xuICBncmFwaFFMPzoge1xuICAgIHNpbmd1bGFyTmFtZT86IHN0cmluZ1xuICB9XG4gIGltYWdlQWx0VGV4dD86IHN0cmluZ1xuICBpbWFnZVVSTD86IHN0cmluZ1xuICAvKiogQ3VzdG9taXplIGdlbmVyYXRlZCBHcmFwaFFMIGFuZCBUeXBlc2NyaXB0IHNjaGVtYSBuYW1lcy5cbiAgICogVGhlIHNsdWcgaXMgdXNlZCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBnZW5lcmF0ZSBhIHRvcCBsZXZlbCB0eXBlIHRvIHNoYXJlIGFtb25nc3QgY29sbGVjdGlvbnMvZmllbGRzLlxuICAgKiAqKk5vdGUqKjogVG9wIGxldmVsIHR5cGVzIGNhbiBjb2xsaWRlLCBlbnN1cmUgdGhleSBhcmUgdW5pcXVlIGFtb25nIGNvbGxlY3Rpb25zLCBhcnJheXMsIGdyb3VwcywgYmxvY2tzLCB0YWJzLlxuICAgKi9cbiAgaW50ZXJmYWNlTmFtZT86IHN0cmluZ1xuICBsYWJlbHM/OiBMYWJlbHNcbiAgc2x1Zzogc3RyaW5nXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbn1cblxuZXhwb3J0IHR5cGUgQmxvY2tGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICBpbml0Q29sbGFwc2VkPzogYm9vbGVhbiB8IGZhbHNlXG4gIH1cbiAgYmxvY2tzOiBCbG9ja1tdXG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd25cbiAgbGFiZWxzPzogTGFiZWxzXG4gIG1heFJvd3M/OiBudW1iZXJcbiAgbWluUm93cz86IG51bWJlclxuICB0eXBlOiAnYmxvY2tzJ1xufVxuXG5leHBvcnQgdHlwZSBQb2ludEZpZWxkID0gRmllbGRCYXNlICYge1xuICB0eXBlOiAncG9pbnQnXG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkID1cbiAgfCBBcnJheUZpZWxkXG4gIHwgQmxvY2tGaWVsZFxuICB8IENoZWNrYm94RmllbGRcbiAgfCBDb2RlRmllbGRcbiAgfCBDb2xsYXBzaWJsZUZpZWxkXG4gIHwgRGF0ZUZpZWxkXG4gIHwgRW1haWxGaWVsZFxuICB8IEdyb3VwRmllbGRcbiAgfCBKU09ORmllbGRcbiAgfCBOdW1iZXJGaWVsZFxuICB8IFBvaW50RmllbGRcbiAgfCBSYWRpb0ZpZWxkXG4gIHwgUmVsYXRpb25zaGlwRmllbGRcbiAgfCBSaWNoVGV4dEZpZWxkXG4gIHwgUm93RmllbGRcbiAgfCBTZWxlY3RGaWVsZFxuICB8IFRhYnNGaWVsZFxuICB8IFRleHRGaWVsZFxuICB8IFRleHRhcmVhRmllbGRcbiAgfCBVSUZpZWxkXG4gIHwgVXBsb2FkRmllbGRcblxuZXhwb3J0IHR5cGUgRmllbGRBZmZlY3RpbmdEYXRhID1cbiAgfCBBcnJheUZpZWxkXG4gIHwgQmxvY2tGaWVsZFxuICB8IENoZWNrYm94RmllbGRcbiAgfCBDb2RlRmllbGRcbiAgfCBEYXRlRmllbGRcbiAgfCBFbWFpbEZpZWxkXG4gIHwgR3JvdXBGaWVsZFxuICB8IEpTT05GaWVsZFxuICB8IE51bWJlckZpZWxkXG4gIHwgUG9pbnRGaWVsZFxuICB8IFJhZGlvRmllbGRcbiAgfCBSZWxhdGlvbnNoaXBGaWVsZFxuICB8IFJpY2hUZXh0RmllbGRcbiAgfCBTZWxlY3RGaWVsZFxuICB8IFRhYkFzRmllbGRcbiAgfCBUZXh0RmllbGRcbiAgfCBUZXh0YXJlYUZpZWxkXG4gIHwgVXBsb2FkRmllbGRcblxuZXhwb3J0IHR5cGUgTm9uUHJlc2VudGF0aW9uYWxGaWVsZCA9XG4gIHwgQXJyYXlGaWVsZFxuICB8IEJsb2NrRmllbGRcbiAgfCBDaGVja2JveEZpZWxkXG4gIHwgQ29kZUZpZWxkXG4gIHwgQ29sbGFwc2libGVGaWVsZFxuICB8IERhdGVGaWVsZFxuICB8IEVtYWlsRmllbGRcbiAgfCBHcm91cEZpZWxkXG4gIHwgSlNPTkZpZWxkXG4gIHwgTnVtYmVyRmllbGRcbiAgfCBQb2ludEZpZWxkXG4gIHwgUmFkaW9GaWVsZFxuICB8IFJlbGF0aW9uc2hpcEZpZWxkXG4gIHwgUmljaFRleHRGaWVsZFxuICB8IFJvd0ZpZWxkXG4gIHwgU2VsZWN0RmllbGRcbiAgfCBUYWJzRmllbGRcbiAgfCBUZXh0RmllbGRcbiAgfCBUZXh0YXJlYUZpZWxkXG4gIHwgVXBsb2FkRmllbGRcblxuZXhwb3J0IHR5cGUgRmllbGRXaXRoUGF0aCA9IEZpZWxkICYge1xuICBwYXRoPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkV2l0aFN1YkZpZWxkcyA9IEFycmF5RmllbGQgfCBDb2xsYXBzaWJsZUZpZWxkIHwgR3JvdXBGaWVsZCB8IFJvd0ZpZWxkXG5cbmV4cG9ydCB0eXBlIEZpZWxkUHJlc2VudGF0aW9uYWxPbmx5ID0gVUlGaWVsZFxuXG5leHBvcnQgdHlwZSBGaWVsZFdpdGhNYW55ID0gUmVsYXRpb25zaGlwRmllbGQgfCBTZWxlY3RGaWVsZFxuXG5leHBvcnQgdHlwZSBGaWVsZFdpdGhNYXhEZXB0aCA9IFJlbGF0aW9uc2hpcEZpZWxkIHwgVXBsb2FkRmllbGRcblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSGFzU3ViRmllbGRzKGZpZWxkOiBGaWVsZCk6IGZpZWxkIGlzIEZpZWxkV2l0aFN1YkZpZWxkcyB7XG4gIHJldHVybiAoXG4gICAgZmllbGQudHlwZSA9PT0gJ2dyb3VwJyB8fFxuICAgIGZpZWxkLnR5cGUgPT09ICdhcnJheScgfHxcbiAgICBmaWVsZC50eXBlID09PSAncm93JyB8fFxuICAgIGZpZWxkLnR5cGUgPT09ICdjb2xsYXBzaWJsZSdcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRJc0FycmF5VHlwZShmaWVsZDogRmllbGQpOiBmaWVsZCBpcyBBcnJheUZpZWxkIHtcbiAgcmV0dXJuIGZpZWxkLnR5cGUgPT09ICdhcnJheSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSXNCbG9ja1R5cGUoZmllbGQ6IEZpZWxkKTogZmllbGQgaXMgQmxvY2tGaWVsZCB7XG4gIHJldHVybiBmaWVsZC50eXBlID09PSAnYmxvY2tzJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRJc0dyb3VwVHlwZShmaWVsZDogRmllbGQpOiBmaWVsZCBpcyBHcm91cEZpZWxkIHtcbiAgcmV0dXJuIGZpZWxkLnR5cGUgPT09ICdncm91cCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbklzT2JqZWN0KG9wdGlvbjogT3B0aW9uKTogb3B0aW9uIGlzIE9wdGlvbk9iamVjdCB7XG4gIHJldHVybiB0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0J1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uc0FyZU9iamVjdHMob3B0aW9uczogT3B0aW9uW10pOiBvcHRpb25zIGlzIE9wdGlvbk9iamVjdFtdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3B0aW9ucykgJiYgdHlwZW9mIG9wdGlvbnM/LlswXSA9PT0gJ29iamVjdCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbklzVmFsdWUob3B0aW9uOiBPcHRpb24pOiBvcHRpb24gaXMgc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZFN1cHBvcnRzTWFueShmaWVsZDogRmllbGQpOiBmaWVsZCBpcyBGaWVsZFdpdGhNYW55IHtcbiAgcmV0dXJuIGZpZWxkLnR5cGUgPT09ICdzZWxlY3QnIHx8IGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZEhhc01heERlcHRoKGZpZWxkOiBGaWVsZCk6IGZpZWxkIGlzIEZpZWxkV2l0aE1heERlcHRoIHtcbiAgcmV0dXJuIChcbiAgICAoZmllbGQudHlwZSA9PT0gJ3VwbG9hZCcgfHwgZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcpICYmIHR5cGVvZiBmaWVsZC5tYXhEZXB0aCA9PT0gJ251bWJlcidcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkKTogZmllbGQgaXMgVUlGaWVsZCB7XG4gIHJldHVybiBmaWVsZC50eXBlID09PSAndWknXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkOiBGaWVsZCB8IFRhYkFzRmllbGQpOiBmaWVsZCBpcyBGaWVsZEFmZmVjdGluZ0RhdGEge1xuICByZXR1cm4gJ25hbWUnIGluIGZpZWxkICYmICFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFiSGFzTmFtZSh0YWI6IFRhYik6IHRhYiBpcyBOYW1lZFRhYiB7XG4gIHJldHVybiAnbmFtZScgaW4gdGFiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZElzTG9jYWxpemVkKGZpZWxkOiBGaWVsZCB8IFRhYik6IGJvb2xlYW4ge1xuICByZXR1cm4gJ2xvY2FsaXplZCcgaW4gZmllbGQgJiYgZmllbGQubG9jYWxpemVkXG59XG5cbmV4cG9ydCB0eXBlIEhvb2tOYW1lID1cbiAgfCAnYWZ0ZXJDaGFuZ2UnXG4gIHwgJ2FmdGVyUmVhZCdcbiAgfCAnYmVmb3JlQ2hhbmdlJ1xuICB8ICdiZWZvcmVSZWFkJ1xuICB8ICdiZWZvcmVWYWxpZGF0ZSdcbiJdLCJuYW1lcyI6WyJmaWVsZEFmZmVjdHNEYXRhIiwiZmllbGRIYXNNYXhEZXB0aCIsImZpZWxkSGFzU3ViRmllbGRzIiwiZmllbGRJc0FycmF5VHlwZSIsImZpZWxkSXNCbG9ja1R5cGUiLCJmaWVsZElzR3JvdXBUeXBlIiwiZmllbGRJc0xvY2FsaXplZCIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJmaWVsZFN1cHBvcnRzTWFueSIsIm9wdGlvbklzT2JqZWN0Iiwib3B0aW9uSXNWYWx1ZSIsIm9wdGlvbnNBcmVPYmplY3RzIiwidGFiSGFzTmFtZSIsInZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbiIsInZhbHVlIiwiZmllbGQiLCJ0eXBlIiwib3B0aW9uIiwib3B0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsIm1heERlcHRoIiwidGFiIiwibG9jYWxpemVkIl0sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7Ozs7Ozs7Ozs7O0lBcXRCdkJBLGdCQUFnQjtlQUFoQkE7O0lBVkFDLGdCQUFnQjtlQUFoQkE7O0lBckNBQyxpQkFBaUI7ZUFBakJBOztJQVNBQyxnQkFBZ0I7ZUFBaEJBOztJQUlBQyxnQkFBZ0I7ZUFBaEJBOztJQUlBQyxnQkFBZ0I7ZUFBaEJBOztJQXNDQUMsZ0JBQWdCO2VBQWhCQTs7SUFaQUMseUJBQXlCO2VBQXpCQTs7SUFWQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFRQUMsYUFBYTtlQUFiQTs7SUFKQUMsaUJBQWlCO2VBQWpCQTs7SUEwQkFDLFVBQVU7ZUFBVkE7O0lBMU5BQyx3QkFBd0I7ZUFBeEJBOzs7QUFBVCxTQUFTQSx5QkFBeUJDLEtBQWM7SUFDckQsT0FBT0EsVUFBVSxRQUFRLE9BQU9BLFVBQVUsWUFBWSxnQkFBZ0JBLFNBQVMsV0FBV0E7QUFDNUY7QUFxS08sU0FBU1osa0JBQWtCYSxLQUFZO0lBQzVDLE9BQ0VBLE1BQU1DLElBQUksS0FBSyxXQUNmRCxNQUFNQyxJQUFJLEtBQUssV0FDZkQsTUFBTUMsSUFBSSxLQUFLLFNBQ2ZELE1BQU1DLElBQUksS0FBSztBQUVuQjtBQUVPLFNBQVNiLGlCQUFpQlksS0FBWTtJQUMzQyxPQUFPQSxNQUFNQyxJQUFJLEtBQUs7QUFDeEI7QUFFTyxTQUFTWixpQkFBaUJXLEtBQVk7SUFDM0MsT0FBT0EsTUFBTUMsSUFBSSxLQUFLO0FBQ3hCO0FBRU8sU0FBU1gsaUJBQWlCVSxLQUFZO0lBQzNDLE9BQU9BLE1BQU1DLElBQUksS0FBSztBQUN4QjtBQUVPLFNBQVNQLGVBQWVRLE1BQWM7SUFDM0MsT0FBTyxPQUFPQSxXQUFXO0FBQzNCO0FBRU8sU0FBU04sa0JBQWtCTyxPQUFpQjtJQUNqRCxPQUFPQyxNQUFNQyxPQUFPLENBQUNGLFlBQVksT0FBT0EsU0FBUyxDQUFDLEVBQUUsS0FBSztBQUMzRDtBQUVPLFNBQVNSLGNBQWNPLE1BQWM7SUFDMUMsT0FBTyxPQUFPQSxXQUFXO0FBQzNCO0FBRU8sU0FBU1Qsa0JBQWtCTyxLQUFZO0lBQzVDLE9BQU9BLE1BQU1DLElBQUksS0FBSyxZQUFZRCxNQUFNQyxJQUFJLEtBQUs7QUFDbkQ7QUFFTyxTQUFTZixpQkFBaUJjLEtBQVk7SUFDM0MsT0FDRSxBQUFDQSxDQUFBQSxNQUFNQyxJQUFJLEtBQUssWUFBWUQsTUFBTUMsSUFBSSxLQUFLLGNBQWEsS0FBTSxPQUFPRCxNQUFNTSxRQUFRLEtBQUs7QUFFNUY7QUFFTyxTQUFTZCwwQkFBMEJRLEtBQXlCO0lBQ2pFLE9BQU9BLE1BQU1DLElBQUksS0FBSztBQUN4QjtBQUVPLFNBQVNoQixpQkFBaUJlLEtBQXlCO0lBQ3hELE9BQU8sVUFBVUEsU0FBUyxDQUFDUiwwQkFBMEJRO0FBQ3ZEO0FBRU8sU0FBU0gsV0FBV1UsR0FBUTtJQUNqQyxPQUFPLFVBQVVBO0FBQ25CO0FBRU8sU0FBU2hCLGlCQUFpQlMsS0FBa0I7SUFDakQsT0FBTyxlQUFlQSxTQUFTQSxNQUFNUSxTQUFTO0FBQ2hEIn0=