UNPKG

@asoftwareworld/form-builder-pro

Version:

ASW Form Builder Pro helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same b

444 lines 47.5 kB
/** * @license * Copyright ASW (A Software World) All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file */ function getConstatnts() { const titleMessages = { homeTitle: 'ASW | Form Builder', aboutUsTitle: 'ASW | About Us', contactUsTitle: 'ASW | Contact Us' }; const defaultImage = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMABgQFBgUEBgYFBgcHBggKEAoKCQkKFA4PDBAXFBgYFxQWFhodJR8aGyMcFhYgLCAjJicpKikZHy0wLSgwJSgpKP/bAEMBBwcHCggKEwoKEygaFhooKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKP/AABEIATgDUgMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAACP/EABQQAQAAAAAAAAAAAAAAAAAAAAD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AqkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//2Q=='; const accountValidationMessages = { name: [ { type: 'required', message: 'Name is required.' }, { type: 'minlength', message: 'Name must be at least 5 characters long.' }, { type: 'maxlength', message: 'Name cannot be more than 25 characters long.' }, { type: 'pattern', message: 'Your username must contain only numbers and letters.' } ], emailAddress: [ { type: 'required', message: 'Email is required.' }, { type: 'email', message: 'Please enter a valid email address.' }, { type: 'pattern', message: 'Email format should be xyz@example.com.' } ], phoneNumber: [ { type: 'required', message: 'Phone number is required.' }, { type: 'minlength', message: 'Phone number must be at least 10 characters long.' }, { type: 'maxlength', message: 'Phone number cannot be more than 10 characters long.' } ], message: [ { type: 'required', message: 'Message is required.' }, { type: 'minlength', message: 'Message must be at least 6 characters long.' }, { type: 'maxlength', message: 'Message cannot be more than 255 characters long.' } ], label: [ { type: 'required', message: 'Label is required.' }, { type: 'minlength', message: 'Label must be at least 2 characters long.' } ], minlength: [ { type: 'required', message: 'Minlength is required.' }, { type: 'pattern', message: 'Minlength must contain only numbers.' } ], key: [ { type: 'required', message: 'Option key is required.' }, { type: 'minlength', message: 'Sorry, your option key must be between 1 and 50 characters long.' }, { type: 'pattern', message: 'Sorry, only letters (a-z), numbers (0-9), and periods (- and _) are allowed.' }, { type: 'unique', message: 'Option key already exists. Try another.' } ], value: [ { type: 'required', message: 'Option value is required.' }, { type: 'minlength', message: 'Sorry, your option value must be between 1 and 999 characters long.' } ], searchAddress: [{ type: 'unique', message: 'Searched address not found.' }], id: [{ type: 'required', message: 'Unique id is required.' }], operationValue: [{ type: 'required', message: 'Operation is required.' }], control: [{ type: 'required', message: 'Operator is required.' }], apiUrl: [{ type: 'required', message: 'Api URL is required.' }], width: [ { type: 'required', messages: 'Width is required.' }, { type: 'max', message: 'Please enter a value between 0 and 600' } ], height: [ { type: 'required', messages: 'Height is required.' }, { type: 'max', message: 'Please enter a value between 0 and 600' } ] }; const columns = [ { value: 'col-md-1', label: 'Column 1' }, { value: 'col-md-2', label: 'Column 2' }, { value: 'col-md-3', label: 'Column 3' }, { value: 'col-md-4', label: 'Column 4' }, { value: 'col-md-5', label: 'Column 5' }, { value: 'col-md-6', label: 'Column 6' }, { value: 'col-md-7', label: 'Column 7' }, { value: 'col-md-8', label: 'Column 8' }, { value: 'col-md-9', label: 'Column 9' }, { value: 'col-md-10', label: 'Column 10' }, { value: 'col-md-11', label: 'Column 11' }, { value: 'col-md-12', label: 'Column 12' } ]; const aswEditorConfig = { editable: true, spellcheck: true, minHeight: '10rem', maxHeight: '30rem', placeholder: 'Enter text here...', translate: 'no', sanitize: false, toolbarPosition: 'top', outline: true, defaultFontSize: '3', // showToolbar: false, defaultParagraphSeparator: 'p', customClasses: [ { name: 'quote', class: 'quote' }, { name: 'redText', class: 'redText' }, { name: 'titleText', class: 'titleText', tag: 'h1' } ] }; const operations = [ { value: '+', label: 'Addition' }, { value: '-', label: 'Subtraction' }, { value: '*', label: 'Multiplication' }, { value: '/', label: 'Division' }, { value: 'x̄', label: 'Average' } ]; const dataTypes = ['String', 'Number', 'Boolean']; const colors = { white: '#ffffff', black: '#322e2f', dark_black: '#000000', yellow: '#e2d810', pink: '#e52165', raisin: '#0d1137', red: '#d72631', sea_foam: '#a2d5c6', jade: '#077b8a', violet: '#5c3c92', magenta: '#d9138a', cyan: '#12a4d9', mustard: '#f3ca20', goldenrod: '#e8d21d', turquoise: '#039fbe', brick: '#b20238', gold: '#ef9d10f', charcoal: '#3b4d61', grey: '#6b7b8c', navy: '#1e3d59', almond: '#f5f0e1', red_orange: '#ff6e40', mango: '#ffc13b', tan: '#ecc19c', deep_turquoise: '#1e847f', ochre: '#c4a35a', burnt_sienna: '#c66b3d', light_grey: '#e5e5dc', mauve: '#d9a5b3', sapphire: '#1868ae', powder_blue: '#c6d7eb', blue: '#408ec6', maroon: '#7a2048', indigo: '#1e2761', deep_pine_green: '#1d3c45', light_peach: '#fff1e1' }; const apiHeaderKeys = [ 'Accept', 'Accept-Charset', 'Accept-Encoding', 'Accept-Language', 'Access-Control-Request-Headers', 'Access-Control-Request-Method', 'Authorization', 'Cache-Control', 'Content-MD5', 'Content-Length', 'Content-Transfer-Encoding', 'Content-Type', 'Cookie', 'Cookie 2', 'Date', 'Expect', 'From', 'Host', 'If-Match', 'If-Modified-Since', 'If-None-Match', 'If-Range', 'If-Unmodified-Since', 'Keep-Alive', 'Max-Forwards', 'Origin', 'Pragma', 'Proxy-Authorization', 'Range', 'Referer', 'TE', 'Trailer', 'Transfer-Encoding', 'Upgrade', 'User-Agent', 'Via', 'Warning', 'X-Requested-With', 'X-Do-Not-Track', 'DNT', 'x-api-key', 'Connection' ]; const apiRequestMethods = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE']; const apiBodyType = ['none', 'form-data', 'json-data']; const languages = [ { key: 'en', value: 'English' }, { key: 'fr', value: 'French' }, { key: 'es', value: 'Spanish' }, { key: 'ar', value: 'Arabic' } ]; const currencySymbol = [ { key: '₹', value: '₹ - Rupee' }, { key: '$', value: '$ - Dollar' }, { key: '€', value: '€ - Euro' }, { key: '£', value: '£ - Pound Sterling' }, { key: '¥', value: '¥ - Yen' }, { key: '₣', value: '₣ - Franc' }, { key: 'د.ك', value: 'د.ك - Dinar' }, { key: 'د.إ', value: 'د.إ - Dirham' }, { key: '﷼‎', value: '﷼‎ - Riyal' }, { key: '₻', value: '₻ - Mark' }, { key: '₽', value: '₽ - Ruouble' }, { key: '₾', value: '₾ - Lari' }, { key: '₺', value: '₺ - Lira' }, { key: '₼', value: '₼ - Manat' }, { key: '₸', value: '₸ - Tenge' }, { key: '₴', value: '₴ - Hryvnia' }, { key: '₷', value: '₷ - Spesmilo' }, { key: '฿', value: '฿ - Baht' }, { key: '원', value: '원 - Won' }, { key: '₫', value: '₫ - Dong' }, { key: '₮', value: '₮ - Tugrik' }, { key: '₯', value: '₯ - Drachma' }, { key: '₱', value: '₱ - Peso' }, { key: '₳', value: '₳ - Austral' }, { key: '₵', value: '₵ - Cedi' }, { key: '₲', value: '₲ - Guarani' }, { key: '₪', value: '₪ - Sheqel' }, { key: '₰', value: '₰ - Penny' } ]; const qrCodeImageUpload = { id: '', guid: '', icon: 'fileUpload', displayName: 'File Upload', controlType: 'fileupload', label: 'File Upload', value: [], minSize: '', maxSize: '', fileTypes: 'png, PNG, jpg, JPG, jpeg, JPEG, gif, svg', allowMultipleFile: '1', isRequired: false }; const cssClass = { cssClassCardHidden: 'quote-card-hidden', cssClassCardVisible: 'quote-card-visible' }; const matchPattern = { emailPattern: '^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$', passwordPattern: '((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20})', phonePattern: '[6-9]\\d{9}', numberPattern: '^[0-9]*$' }; const notificationMessage = { notificationDisplayDuration: 10000, errorNotification: 'There is some problem. Please contact to administrator', emailSuccessNotification: 'Thank you! Your message has been sent successfully.' }; const messages = { waringMessage: 'Are you sure you want to remove this field?', optionKeyValidationMessage: 'That option key is already exist. Try another.' }; const libraryConstants = { applicationTitle: 'ASW Form Build', titleMessages, accountValidationMessages, cssClass, dataTypes, matchPattern, notificationMessage, messages, columns, operations, apiHeaderKeys, apiRequestMethods, apiBodyType, aswEditorConfig, languages, colors, defaultImage, currencySymbol, qrCodeImageUpload }; return libraryConstants; } export const Constants = getConstatnts(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY29tbW9uL2NvbnN0YW50L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxTQUFTLGFBQWE7SUFDbEIsTUFBTSxhQUFhLEdBQUc7UUFDbEIsU0FBUyxFQUFFLG9CQUFvQjtRQUMvQixZQUFZLEVBQUUsZ0JBQWdCO1FBQzlCLGNBQWMsRUFBRSxrQkFBa0I7S0FDckMsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUNkLHl1R0FBeXVHLENBQUM7SUFFOXVHLE1BQU0seUJBQXlCLEdBQUc7UUFDOUIsSUFBSSxFQUFFO1lBQ0YsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRTtZQUNsRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLDBDQUEwQyxFQUFFO1lBQzFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsOENBQThDLEVBQUU7WUFDOUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxzREFBc0QsRUFBRTtTQUN2RjtRQUNELFlBQVksRUFBRTtZQUNWLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7WUFDbkQsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRTtZQUNqRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFO1NBQzFFO1FBQ0QsV0FBVyxFQUFFO1lBQ1QsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRTtZQUMxRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLG1EQUFtRCxFQUFFO1lBQ25GLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFP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SztLQUNwQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUc7UUFDYixrQkFBa0IsRUFBRSxtQkFBbUI7UUFDdkMsbUJBQW1CLEVBQUUsb0JBQW9CO0tBQzVDLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRztRQUNqQixZQUFZLEVBQUUsaURBQWlEO1FBQy9ELGVBQWUsRUFBRSxzREFBc0Q7UUFDdkUsWUFBWSxFQUFFLGFBQWE7UUFDM0IsYUFBYSxFQUFFLFVBQVU7S0FDNUIsQ0FBQztJQUVGLE1BQU0sbUJBQW1CLEdBQUc7UUFDeEIsMkJBQTJCLEVBQUUsS0FBSztRQUNsQyxpQkFBaUIsRUFBRSx3REFBd0Q7UUFDM0Usd0JBQXdCLEVBQUUscURBQXFEO0tBQ2xGLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRztRQUNiLGFBQWEsRUFBRSw2Q0FBNkM7UUFDNUQsMEJBQTBCLEVBQUUsZ0RBQWdEO0tBQy9FLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHO1FBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxhQUFhO1FBQ2IseUJBQXlCO1FBQ3pCLFFBQVE7UUFDUixTQUFTO1FBQ1QsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1IsT0FBTztRQUNQLFVBQVU7UUFDVixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLFdBQVc7UUFDWCxlQUFlO1FBQ2YsU0FBUztRQUNULE1BQU07UUFDTixZQUFZO1FBQ1osY0FBYztRQUNkLGlCQUFpQjtLQUNwQixDQUFDO0lBRUYsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFTVyAoQSBTb2Z0d2FyZSBXb3JsZCkgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVxuICovXG5cbmltcG9ydCB7IEFzd0VkaXRvckNvbmZpZyB9IGZyb20gJ0Bhc29mdHdhcmV3b3JsZC9mb3JtLWJ1aWxkZXItcHJvL2FwaSc7XG5cbmZ1bmN0aW9uIGdldENvbnN0YXRudHMoKTogYW55IHtcbiAgICBjb25zdCB0aXRsZU1lc3NhZ2VzID0ge1xuICAgICAgICBob21lVGl0bGU6ICdBU1cgfCBGb3JtIEJ1aWxkZXInLFxuICAgICAgICBhYm91dFVzVGl0bGU6ICdBU1cgfCBBYm91dCBVcycsXG4gICAgICAgIGNvbnRhY3RVc1RpdGxlOiAnQVNXIHwgQ29udGFjdCBVcydcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdEltYWdlID1cbiAgICAgICAgJ2RhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRQUFBUUFCQUFELzRnSW9TVU5EWDFCU1QwWkpURVVBQVFFQUFBSVlBQUFBQUFRd0FBQnRiblJ5VWtkQ0lGaFpXaUFBQUFBQUFBQUFBQUFBQUFCaFkzTndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBOXRZQUFRQUFBQURUTFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWxrWlhOakFBQUE4QUFBQUhSeVdGbGFBQUFCWkFBQUFCUm5XRmxhQUFBQmVBQUFBQlJpV0ZsYUFBQUJqQUFBQUJSeVZGSkRBQUFCb0FBQUFDaG5WRkpEQUFBQm9BQUFBQ2hpVkZKREFBQUJvQUFBQUNoM2RIQjBBQUFCeUFBQUFCUmpjSEowQUFBQjNBQUFBRHh0YkhWakFBQUFBQUFBQUFFQUFBQU1aVzVWVXdBQUFGZ0FBQUFjQUhNQVVnQkhBRUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRmhaV2lBQUFBQUFBQUJ2b2dBQU9QVUFBQU9RV0ZsYUlBQUFBQUFBQUdLWkFBQzNoUUFBR05wWVdWb2dBQUFBQUFBQUpLQUFBQStFQUFDMnozQmhjbUVBQUFBQUFBUUFBQUFDWm1ZQUFQS25BQUFOV1FBQUU5QUFBQXBiQUFBQUFBQUFBQUJZV1ZvZ0FBQUFBQUFBOXRZQUFRQUFBQURUTFcxc2RXTUFBQUFBQUFBQUFRQUFBQXhsYmxWVEFBQUFJQUFBQUJ3QVJ3QnZBRzhBWndCc0FHVUFJQUJKQUc0QVl3QXVBQ0FBTWdBd0FERUFOdi9iQUVNQUJnUUZCZ1VFQmdZRkJnY0hCZ2dLRUFvS0NRa0tGQTRQREJBWEZCZ1lGeFFXRmhvZEpSOGFHeU1jRmhZZ0xDQWpKaWNwS2lrWkh5MHdMU2d3SlNncEtQL2JBRU1CQndjSENnZ0tFd29LRXlnYUZob29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS1AvQUFCRUlBVGdEVWdNQklnQUNFUUVERVFIL3hBQVZBQUVCQUFBQUFBQUFBQUFBQUFBQUFBQUFDUC9FQUJRUUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFEL3hBQVVBUUVBQUFBQUFBQUFBQUFBQUFBQUFBQUEvOFFBRkJFQkFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvYUFBd0RBUUFDRVFNUkFEOEFxa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSC8vMlE9PSc7XG5cbiAgICBjb25zdCBhY2NvdW50VmFsaWRhdGlvbk1lc3NhZ2VzID0ge1xuICAgICAgICBuYW1lOiBbXG4gICAgICAgICAgICB7IHR5cGU6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICdOYW1lIGlzIHJlcXVpcmVkLicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbmxlbmd0aCcsIG1lc3NhZ2U6ICdOYW1lIG11c3QgYmUgYXQgbGVhc3QgNSBjaGFyYWN0ZXJzIGxvbmcuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4bGVuZ3RoJywgbWVzc2FnZTogJ05hbWUgY2Fubm90IGJlIG1vcmUgdGhhbiAyNSBjaGFyYWN0ZXJzIGxvbmcuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAncGF0dGVybicsIG1lc3NhZ2U6ICdZb3VyIHVzZXJuYW1lIG11c3QgY29udGFpbiBvbmx5IG51bWJlcnMgYW5kIGxldHRlcnMuJyB9XG4gICAgICAgIF0sXG4gICAgICAgIGVtYWlsQWRkcmVzczogW1xuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnRW1haWwgaXMgcmVxdWlyZWQuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZW1haWwnLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4nIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdwYXR0ZXJuJywgbWVzc2FnZTogJ0VtYWlsIGZvcm1hdCBzaG91bGQgYmUgeHl6QGV4YW1wbGUuY29tLicgfVxuICAgICAgICBdLFxuICAgICAgICBwaG9uZU51bWJlcjogW1xuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnUGhvbmUgbnVtYmVyIGlzIHJlcXVpcmVkLicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbmxlbmd0aCcsIG1lc3NhZ2U6ICdQaG9uZSBudW1iZXIgbXVzdCBiZSBhdCBsZWFzdCAxMCBjaGFyYWN0ZXJzIGxvbmcuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4bGVuZ3RoJywgbWVzc2FnZTogJ1Bob25lIG51bWJlciBjYW5ub3QgYmUgbW9yZSB0aGFuIDEwIGNoYXJhY3RlcnMgbG9uZy4nIH1cbiAgICAgICAgXSxcbiAgICAgICAgbWVzc2FnZTogW1xuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnTWVzc2FnZSBpcyByZXF1aXJlZC4nIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdtaW5sZW5ndGgnLCBtZXNzYWdlOiAnTWVzc2FnZSBtdXN0IGJlIGF0IGxlYXN0IDYgY2hhcmFjdGVycyBsb25nLicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ21heGxlbmd0aCcsIG1lc3NhZ2U6ICdNZXNzYWdlIGNhbm5vdCBiZSBtb3JlIHRoYW4gMjU1IGNoYXJhY3RlcnMgbG9uZy4nIH1cbiAgICAgICAgXSxcbiAgICAgICAgbGFiZWw6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ0xhYmVsIGlzIHJlcXVpcmVkLicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbmxlbmd0aCcsIG1lc3NhZ2U6ICdMYWJlbCBtdXN0IGJlIGF0IGxlYXN0IDIgY2hhcmFjdGVycyBsb25nLicgfVxuICAgICAgICBdLFxuICAgICAgICBtaW5sZW5ndGg6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ01pbmxlbmd0aCBpcyByZXF1aXJlZC4nIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdwYXR0ZXJuJywgbWVzc2FnZTogJ01pbmxlbmd0aCBtdXN0IGNvbnRhaW4gb25seSBudW1iZXJzLicgfVxuICAgICAgICBdLFxuICAgICAgICBrZXk6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ09wdGlvbiBrZXkgaXMgcmVxdWlyZWQuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnbWlubGVuZ3RoJywgbWVzc2FnZTogJ1NvcnJ5LCB5b3VyIG9wdGlvbiBrZXkgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDUwIGNoYXJhY3RlcnMgbG9uZy4nIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdwYXR0ZXJuJywgbWVzc2FnZTogJ1NvcnJ5LCBvbmx5IGxldHRlcnMgKGEteiksIG51bWJlcnMgKDAtOSksIGFuZCBwZXJpb2RzICgtIGFuZCBfKSBhcmUgYWxsb3dlZC4nIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICd1bmlxdWUnLCBtZXNzYWdlOiAnT3B0aW9uIGtleSBhbHJlYWR5IGV4aXN0cy4gVHJ5IGFub3RoZXIuJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICB7IHR5cGU6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICdPcHRpb24gdmFsdWUgaXMgcmVxdWlyZWQuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnbWlubGVuZ3RoJywgbWVzc2FnZTogJ1NvcnJ5LCB5b3VyIG9wdGlvbiB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgOTk5IGNoYXJhY3RlcnMgbG9uZy4nIH1cbiAgICAgICAgXSxcbiAgICAgICAgc2VhcmNoQWRkcmVzczogW3sgdHlwZTogJ3VuaXF1ZScsIG1lc3NhZ2U6ICdTZWFyY2hlZCBhZGRyZXNzIG5vdCBmb3VuZC4nIH1dLFxuICAgICAgICBpZDogW3sgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ1VuaXF1ZSBpZCBpcyByZXF1aXJlZC4nIH1dLFxuICAgICAgICBvcGVyYXRpb25WYWx1ZTogW3sgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ09wZXJhdGlvbiBpcyByZXF1aXJlZC4nIH1dLFxuICAgICAgICBjb250cm9sOiBbeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnT3BlcmF0b3IgaXMgcmVxdWlyZWQuJyB9XSxcbiAgICAgICAgYXBpVXJsOiBbeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnQXBpIFVSTCBpcyByZXF1aXJlZC4nIH1dLFxuICAgICAgICB3aWR0aDogW1xuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlczogJ1dpZHRoIGlzIHJlcXVpcmVkLicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ21heCcsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDYwMCcgfVxuICAgICAgICBdLFxuICAgICAgICBoZWlnaHQ6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZXM6ICdIZWlnaHQgaXMgcmVxdWlyZWQuJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4JywgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gMCBhbmQgNjAwJyB9XG4gICAgICAgIF1cbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtMScsXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiAxJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC0yJyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTMnLFxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gMydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtNCcsXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiA0J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC01JyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTYnLFxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gNidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtNycsXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiA3J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC04JyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDgnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTknLFxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gOSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtMTAnLFxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gMTAnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTExJyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDExJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC0xMicsXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiAxMidcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBjb25zdCBhc3dFZGl0b3JDb25maWc6IEFzd0VkaXRvckNvbmZpZyA9IHtcbiAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgIHNwZWxsY2hlY2s6IHRydWUsXG4gICAgICAgIG1pbkhlaWdodDogJzEwcmVtJyxcbiAgICAgICAgbWF4SGVpZ2h0OiAnMzByZW0nLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHRleHQgaGVyZS4uLicsXG4gICAgICAgIHRyYW5zbGF0ZTogJ25vJyxcbiAgICAgICAgc2FuaXRpemU6IGZhbHNlLFxuICAgICAgICB0b29sYmFyUG9zaXRpb246ICd0b3AnLFxuICAgICAgICBvdXRsaW5lOiB0cnVlLFxuICAgICAgICBkZWZhdWx0Rm9udFNpemU6ICczJyxcbiAgICAgICAgLy8gc2hvd1Rvb2xiYXI6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yOiAncCcsXG4gICAgICAgIGN1c3RvbUNsYXNzZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAncXVvdGUnLFxuICAgICAgICAgICAgICAgIGNsYXNzOiAncXVvdGUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdyZWRUZXh0JyxcbiAgICAgICAgICAgICAgICBjbGFzczogJ3JlZFRleHQnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICd0aXRsZVRleHQnLFxuICAgICAgICAgICAgICAgIGNsYXNzOiAndGl0bGVUZXh0JyxcbiAgICAgICAgICAgICAgICB0YWc6ICdoMSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH07XG5cbiAgICBjb25zdCBvcGVyYXRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJysnLFxuICAgICAgICAgICAgbGFiZWw6ICdBZGRpdGlvbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICctJyxcbiAgICAgICAgICAgIGxhYmVsOiAnU3VidHJhY3Rpb24nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnKicsXG4gICAgICAgICAgICBsYWJlbDogJ011bHRpcGxpY2F0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJy8nLFxuICAgICAgICAgICAgbGFiZWw6ICdEaXZpc2lvbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICd4zIQnLFxuICAgICAgICAgICAgbGFiZWw6ICdBdmVyYWdlJ1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IGRhdGFUeXBlczogc3RyaW5nW10gPSBbJ1N0cmluZycsICdOdW1iZXInLCAnQm9vbGVhbiddO1xuXG4gICAgY29uc3QgY29sb3JzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICAgd2hpdGU6ICcjZmZmZmZmJyxcbiAgICAgICAgYmxhY2s6ICcjMzIyZTJmJyxcbiAgICAgICAgZGFya19ibGFjazogJyMwMDAwMDAnLFxuICAgICAgICB5ZWxsb3c6ICcjZTJkODEwJyxcbiAgICAgICAgcGluazogJyNlNTIxNjUnLFxuICAgICAgICByYWlzaW46ICcjMGQxMTM3JyxcbiAgICAgICAgcmVkOiAnI2Q3MjYzMScsXG4gICAgICAgIHNlYV9mb2FtOiAnI2EyZDVjNicsXG4gICAgICAgIGphZGU6ICcjMDc3YjhhJyxcbiAgICAgICAgdmlvbGV0OiAnIzVjM2M5MicsXG4gICAgICAgIG1hZ2VudGE6ICcjZDkxMzhhJyxcbiAgICAgICAgY3lhbjogJyMxMmE0ZDknLFxuICAgICAgICBtdXN0YXJkOiAnI2YzY2EyMCcsXG4gICAgICAgIGdvbGRlbnJvZDogJyNlOGQyMWQnLFxuICAgICAgICB0dXJxdW9pc2U6ICcjMDM5ZmJlJyxcbiAgICAgICAgYnJpY2s6ICcjYjIwMjM4JyxcbiAgICAgICAgZ29sZDogJyNlZjlkMTBmJyxcbiAgICAgICAgY2hhcmNvYWw6ICcjM2I0ZDYxJyxcbiAgICAgICAgZ3JleTogJyM2YjdiOGMnLFxuICAgICAgICBuYXZ5OiAnIzFlM2Q1OScsXG4gICAgICAgIGFsbW9uZDogJyNmNWYwZTEnLFxuICAgICAgICByZWRfb3JhbmdlOiAnI2ZmNmU0MCcsXG4gICAgICAgIG1hbmdvOiAnI2ZmYzEzYicsXG4gICAgICAgIHRhbjogJyNlY2MxOWMnLFxuICAgICAgICBkZWVwX3R1cnF1b2lzZTogJyMxZTg0N2YnLFxuICAgICAgICBvY2hyZTogJyNjNGEzNWEnLFxuICAgICAgICBidXJudF9zaWVubmE6ICcjYzY2YjNkJyxcbiAgICAgICAgbGlnaHRfZ3JleTogJyNlNWU1ZGMnLFxuICAgICAgICBtYXV2ZTogJyNkOWE1YjMnLFxuICAgICAgICBzYXBwaGlyZTogJyMxODY4YWUnLFxuICAgICAgICBwb3dkZXJfYmx1ZTogJyNjNmQ3ZWInLFxuICAgICAgICBibHVlOiAnIzQwOGVjNicsXG4gICAgICAgIG1hcm9vbjogJyM3YTIwNDgnLFxuICAgICAgICBpbmRpZ286ICcjMWUyNzYxJyxcbiAgICAgICAgZGVlcF9waW5lX2dyZWVuOiAnIzFkM2M0NScsXG4gICAgICAgIGxpZ2h0X3BlYWNoOiAnI2ZmZjFlMSdcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpSGVhZGVyS2V5czogc3RyaW5nW10gPSBbXG4gICAgICAgICdBY2NlcHQnLFxuICAgICAgICAnQWNjZXB0LUNoYXJzZXQnLFxuICAgICAgICAnQWNjZXB0LUVuY29kaW5nJyxcbiAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZScsXG4gICAgICAgICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMnLFxuICAgICAgICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QnLFxuICAgICAgICAnQXV0aG9yaXphdGlvbicsXG4gICAgICAgICdDYWNoZS1Db250cm9sJyxcbiAgICAgICAgJ0NvbnRlbnQtTUQ1JyxcbiAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoJyxcbiAgICAgICAgJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnLFxuICAgICAgICAnQ29udGVudC1UeXBlJyxcbiAgICAgICAgJ0Nvb2tpZScsXG4gICAgICAgICdDb29raWUgMicsXG4gICAgICAgICdEYXRlJyxcbiAgICAgICAgJ0V4cGVjdCcsXG4gICAgICAgICdGcm9tJyxcbiAgICAgICAgJ0hvc3QnLFxuICAgICAgICAnSWYtTWF0Y2gnLFxuICAgICAgICAnSWYtTW9kaWZpZWQtU2luY2UnLFxuICAgICAgICAnSWYtTm9uZS1NYXRjaCcsXG4gICAgICAgICdJZi1SYW5nZScsXG4gICAgICAgICdJZi1Vbm1vZGlmaWVkLVNpbmNlJyxcbiAgICAgICAgJ0tlZXAtQWxpdmUnLFxuICAgICAgICAnTWF4LUZvcndhcmRzJyxcbiAgICAgICAgJ09yaWdpbicsXG4gICAgICAgICdQcmFnbWEnLFxuICAgICAgICAnUHJveHktQXV0aG9yaXphdGlvbicsXG4gICAgICAgICdSYW5nZScsXG4gICAgICAgICdSZWZlcmVyJyxcbiAgICAgICAgJ1RFJyxcbiAgICAgICAgJ1RyYWlsZXInLFxuICAgICAgICAnVHJhbnNmZXItRW5jb2RpbmcnLFxuICAgICAgICAnVXBncmFkZScsXG4gICAgICAgICdVc2VyLUFnZW50JyxcbiAgICAgICAgJ1ZpYScsXG4gICAgICAgICdXYXJuaW5nJyxcbiAgICAgICAgJ1gtUmVxdWVzdGVkLVdpdGgnLFxuICAgICAgICAnWC1Eby1Ob3QtVHJhY2snLFxuICAgICAgICAnRE5UJyxcbiAgICAgICAgJ3gtYXBpLWtleScsXG4gICAgICAgICdDb25uZWN0aW9uJ1xuICAgIF07XG5cbiAgICBjb25zdCBhcGlSZXF1ZXN0TWV0aG9kczogc3RyaW5nW10gPSBbJ0dFVCcsICdQT1NUJywgJ1BVVCcsICdQQVRDSCcsICdERUxFVEUnXTtcblxuICAgIGNvbnN0IGFwaUJvZHlUeXBlOiBzdHJpbmdbXSA9IFsnbm9uZScsICdmb3JtLWRhdGEnLCAnanNvbi1kYXRhJ107XG5cbiAgICBjb25zdCBsYW5ndWFnZXM6IGFueVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdlbicsXG4gICAgICAgICAgICB2YWx1ZTogJ0VuZ2xpc2gnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2ZyJyxcbiAgICAgICAgICAgIHZhbHVlOiAnRnJlbmNoJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdlcycsXG4gICAgICAgICAgICB2YWx1ZTogJ1NwYW5pc2gnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2FyJyxcbiAgICAgICAgICAgIHZhbHVlOiAnQXJhYmljJ1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IGN1cnJlbmN5U3ltYm9sID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigrknLFxuICAgICAgICAgICAgdmFsdWU6ICfigrkgLSBSdXBlZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnJCcsXG4gICAgICAgICAgICB2YWx1ZTogJyQgLSBEb2xsYXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCrCcsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCrCAtIEV1cm8nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ8KjJyxcbiAgICAgICAgICAgIHZhbHVlOiAnwqMgLSBQb3VuZCBTdGVybGluZydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnwqUnLFxuICAgICAgICAgICAgdmFsdWU6ICfCpSAtIFllbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn4oKjJyxcbiAgICAgICAgICAgIHZhbHVlOiAn4oKjIC0gRnJhbmMnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ9ivLtmDJyxcbiAgICAgICAgICAgIHZhbHVlOiAn2K8u2YMgLSBEaW5hcidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn2K8u2KUnLFxuICAgICAgICAgICAgdmFsdWU6ICfYry7YpSAtIERpcmhhbSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn77e84oCOJyxcbiAgICAgICAgICAgIHZhbHVlOiAn77e84oCOIC0gUml5YWwnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCuycsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCuyAtIE1hcmsnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCvScsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCvSAtIFJ1b3VibGUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCvicsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCviAtIExhcmknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCuicsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCuiAtIExpcmEnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCvCcsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCvCAtIE1hbmF0J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigrgnLFxuICAgICAgICAgICAgdmFsdWU6ICfigrggLSBUZW5nZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn4oK0JyxcbiAgICAgICAgICAgIHZhbHVlOiAn4oK0IC0gSHJ5dm5pYSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn4oK3JyxcbiAgICAgICAgICAgIHZhbHVlOiAn4oK3IC0gU3Blc21pbG8nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+C4vycsXG4gICAgICAgICAgICB2YWx1ZTogJ+C4vyAtIEJhaHQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+ybkCcsXG4gICAgICAgICAgICB2YWx1ZTogJ+ybkCAtIFdvbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn4oKrJyxcbiAgICAgICAgICAgIHZhbHVlOiAn4oKrIC0gRG9uZydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAn4oKuJyxcbiAgICAgICAgICAgIHZhbHVlOiAn4oKuIC0gVHVncmlrJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigq8nLFxuICAgICAgICAgICAgdmFsdWU6ICfigq8gLSBEcmFjaG1hJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigrEnLFxuICAgICAgICAgICAgdmFsdWU6ICfigrEgLSBQZXNvJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigrMnLFxuICAgICAgICAgICAgdmFsdWU6ICfigrMgLSBBdXN0cmFsJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigrUnLFxuICAgICAgICAgICAgdmFsdWU6ICfigrUgLSBDZWRpJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigrInLFxuICAgICAgICAgICAgdmFsdWU6ICfigrIgLSBHdWFyYW5pJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICfigqonLFxuICAgICAgICAgICAgdmFsdWU6ICfigqogLSBTaGVxZWwnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ+KCsCcsXG4gICAgICAgICAgICB2YWx1ZTogJ+KCsCAtIFBlbm55J1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IHFyQ29kZUltYWdlVXBsb2FkID0ge1xuICAgICAgICBpZDogJycsXG4gICAgICAgIGd1aWQ6ICcnLFxuICAgICAgICBpY29uOiAnZmlsZVVwbG9hZCcsXG4gICAgICAgIGRpc3BsYXlOYW1lOiAnRmlsZSBVcGxvYWQnLFxuICAgICAgICBjb250cm9sVHlwZTogJ2ZpbGV1cGxvYWQnLFxuICAgICAgICBsYWJlbDogJ0ZpbGUgVXBsb2FkJyxcbiAgICAgICAgdmFsdWU6IFtdLFxuICAgICAgICBtaW5TaXplOiAnJyxcbiAgICAgICAgbWF4U2l6ZTogJycsXG4gICAgICAgIGZpbGVUeXBlczogJ3BuZywgUE5HLCBqcGcsIEpQRywganBlZywgSlBFRywgZ2lmLCBzdmcnLFxuICAgICAgICBhbGxvd011bHRpcGxlRmlsZTogJzEnLFxuICAgICAgICBpc1JlcXVpcmVkOiBmYWxzZVxuICAgIH07XG5cbiAgICBjb25zdCBjc3NDbGFzcyA9IHtcbiAgICAgICAgY3NzQ2xhc3NDYXJkSGlkZGVuOiAncXVvdGUtY2FyZC1oaWRkZW4nLFxuICAgICAgICBjc3NDbGFzc0NhcmRWaXNpYmxlOiAncXVvdGUtY2FyZC12aXNpYmxlJ1xuICAgIH07XG5cbiAgICBjb25zdCBtYXRjaFBhdHRlcm4gPSB7XG4gICAgICAgIGVtYWlsUGF0dGVybjogJ15bYS16QS1aMC05Xy4rLV0rQFthLXpBLVowLTktXSsuW2EtekEtWjAtOS0uXSskJyxcbiAgICAgICAgcGFzc3dvcmRQYXR0ZXJuOiAnKCg/PS4qXFxcXGQpKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qW0AjJCVdKS57OCwyMH0pJyxcbiAgICAgICAgcGhvbmVQYXR0ZXJuOiAnWzYtOV1cXFxcZHs5fScsXG4gICAgICAgIG51bWJlclBhdHRlcm46ICdeWzAtOV0qJCdcbiAgICB9O1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uTWVzc2FnZSA9IHtcbiAgICAgICAgbm90aWZpY2F0aW9uRGlzcGxheUR1cmF0aW9uOiAxMDAwMCxcbiAgICAgICAgZXJyb3JOb3RpZmljYXRpb246ICdUaGVyZSBpcyBzb21lIHByb2JsZW0uIFBsZWFzZSBjb250YWN0IHRvIGFkbWluaXN0cmF0b3InLFxuICAgICAgICBlbWFpbFN1Y2Nlc3NOb3RpZmljYXRpb246ICdUaGFuayB5b3UhIFlvdXIgbWVzc2FnZSBoYXMgYmVlbiBzZW50IHN1Y2Nlc3NmdWxseS4nXG4gICAgfTtcblxuICAgIGNvbnN0IG1lc3NhZ2VzID0ge1xuICAgICAgICB3YXJpbmdNZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIGZpZWxkPycsXG4gICAgICAgIG9wdGlvbktleVZhbGlkYXRpb25NZXNzYWdlOiAnVGhhdCBvcHRpb24ga2V5IGlzIGFscmVhZHkgZXhpc3QuIFRyeSBhbm90aGVyLidcbiAgICB9O1xuXG4gICAgY29uc3QgbGlicmFyeUNvbnN0YW50cyA9IHtcbiAgICAgICAgYXBwbGljYXRpb25UaXRsZTogJ0FTVyBGb3JtIEJ1aWxkJyxcbiAgICAgICAgdGl0bGVNZXNzYWdlcyxcbiAgICAgICAgYWNjb3VudFZhbGlkYXRpb25NZXNzYWdlcyxcbiAgICAgICAgY3NzQ2xhc3MsXG4gICAgICAgIGRhdGFUeXBlcyxcbiAgICAgICAgbWF0Y2hQYXR0ZXJuLFxuICAgICAgICBub3RpZmljYXRpb25NZXNzYWdlLFxuICAgICAgICBtZXNzYWdlcyxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgb3BlcmF0aW9ucyxcbiAgICAgICAgYXBpSGVhZGVyS2V5cyxcbiAgICAgICAgYXBpUmVxdWVzdE1ldGhvZHMsXG4gICAgICAgIGFwaUJvZHlUeXBlLFxuICAgICAgICBhc3dFZGl0b3JDb25maWcsXG4gICAgICAgIGxhbmd1YWdlcyxcbiAgICAgICAgY29sb3JzLFxuICAgICAgICBkZWZhdWx0SW1hZ2UsXG4gICAgICAgIGN1cnJlbmN5U3ltYm9sLFxuICAgICAgICBxckNvZGVJbWFnZVVwbG9hZFxuICAgIH07XG5cbiAgICByZXR1cm4gbGlicmFyeUNvbnN0YW50cztcbn1cblxuZXhwb3J0IGNvbnN0IENvbnN0YW50cyA9IGdldENvbnN0YXRudHMoKTtcbiJdfQ==