(function() {
'use strict';
/* ------------------------------------- */
/* animations mixin */
/* ------------------------------------- */
var animationsMixin = {
mounted() {
/* preloader screen */
this.animPreloaderScreen(); // initialize animation effects
window.addEventListener('load', () => this.initAnimation());
},
methods: {
// preloader screen
animPreloaderScreen() {
let count = 0;
const preloader = this.$refs.preloader;
if (!preloader) {
return;
}
const preloaderContent = preloader.querySelector(".preloader-content");
const imgs = [...document.images];
const imgsLength = imgs.length;
const hidePreloader = () => {
preloader.setAttribute("style", "--loading-percentage: 100%");
gsap.timeline().set(".hide-in-preloading", {
autoAlpha: 1
}).to(preloaderContent, {
delay: 0.5,
autoAlpha: 0
}).to(preloader, {
y: "-100%",
duration: 1,
ease: "expo.in"
}, "-=0.5").set(preloader, {
autoAlpha: 0
});
};
const imgLoaded = () => {
count++;
this.loadingPercentage = 100 / imgsLength * count << 0;
preloader.setAttribute("style", `--loading-percentage: ${this.loadingPercentage}%`);
if (count === imgsLength) {
hidePreloader();
}
};
if (imgsLength) {
// setup preloader indicator
imgs.forEach(img => {
const tImg = new Image();
tImg.onload = imgLoaded;
tImg.onerror = imgLoaded;
tImg.src = img.src;
});
} else {
hidePreloader();
}
},
// initialize animation effects
initAnimation() {
gsap.registerPlugin(ScrollTrigger);
/* back to top scroll indicator */
this.animBackTopScrollIndicator();
/* statistics items */
this.animStatisticsItems();
/* section text box */
this.animSectionTextBox();
/* about image */
this.animAboutImage();
/* skills items */
this.animSkillsItems();
/* experience items timeline */
this.animExperienceItemsTimeline();
/* testimonials section title */
this.animTestimonialsSectionTitle();
/* testimonials items */
this.animTestimonialsItems();
/* contact info */
this.animContactInfo();
/* contact form */
this.animContactForm();
},
// back to top scroll indicator
animBackTopScrollIndicator() {
const backTopBtn = this.$refs.scrollTopBtn;
if (!backTopBtn) {
return;
}
const showAt = backTopBtn.getAttribute('data-show-at');
const backTopBtnPath = backTopBtn.querySelector("path");
const backTopBtnPathLength = backTopBtnPath.getTotalLength();
gsap.from(backTopBtn, {
ease: "none",
duration: 0.3,
autoAlpha: 0,
y: 10,
scrollTrigger: {
trigger: "#app-inner",
start: `${showAt}px top`,
end: "bottom bottom",
toggleActions: "play none none reverse"
}
});
gsap.set(backTopBtnPath, {
strokeDasharray: backTopBtnPathLength,
strokeDashoffset: backTopBtnPathLength,
scrollTrigger: {
trigger: "#app-inner",
start: `${showAt}px top`,
end: "bottom bottom",
onUpdate: self => backTopBtnPath.style.strokeDashoffset = backTopBtnPathLength - self.progress * backTopBtnPathLength
}
});
},
// statistics items
animStatisticsItems() {
const statisticsItems = gsap.utils.toArray(".statistics-section .statistics-items li");
if (!statisticsItems.length) {
return;
}
const statisticsItemsTL = gsap.timeline({
scrollTrigger: {
trigger: ".statistics-items",
start: "top 82%",
end: "top 50%",
scrub: 0.3
}
});
statisticsItems.forEach((el, i) => {
const pos = i === 0 ? "" : "< +=0.2";
statisticsItemsTL.from(el, {
autoAlpha: 0
}, pos).from(el, {
y: 50
}, "<");
});
},
// section text box
animSectionTextBox() {
const textBoxes = gsap.utils.toArray(".text-box-inline");
if (!textBoxes.length) {
return;
}
textBoxes.forEach(box => {
gsap.timeline({
scrollTrigger: {
trigger: box,
start: "top 85%",
end: "top 35%",
scrub: 0.3
}
}).from(box.querySelector(".subtitle"), {
autoAlpha: 0,
top: 50
}).from(box.querySelector("h2"), {
autoAlpha: 0,
y: 50
}, "-=0.2").from(box.querySelectorAll("h2 ~ *"), {
autoAlpha: 0,
y: 50,
stagger: 0.2
}, "-=0.2");
});
},
// about image
animAboutImage() {
if (!this.$refs.aboutSection) {
return;
}
gsap.timeline({
scrollTrigger: {
trigger: ".about-section .about-img",
start: "top 80%",
end: "top 50%",
scrub: 0.3
}
}).from(".about-section .about-img", {
autoAlpha: 0,
scale: 0.5
});
},
// skills items
animSkillsItems() {
const skillsGroups = gsap.utils.toArray(".skills-section .skills-items ul");
if (!skillsGroups.length) {
return;
}
skillsGroups.forEach(group => {
const skillsItemsTL = gsap.timeline({
scrollTrigger: {
trigger: ".skills-section .skills-items",
start: "top 85%",
end: "top 35%",
scrub: 0.3
}
});
group.querySelectorAll("li").forEach((el, i) => {
const pos = i === 0 ? "" : "< +=0.2";
skillsItemsTL.from(el, {
autoAlpha: 0
}, pos).from(el, {
y: 50
}, "<");
});
});
},
// experience items timeline
animExperienceItemsTimeline() {
const experienceTimepath = this.$refs.experienceTimepath;
const experienceItems = gsap.utils.toArray(".experience-timeline .timeline-items li");
let experienceTimepathTL;
let experienceItemsTL;
let mainExperienceTL;
if (experienceTimepath || experienceItems.length) {
mainExperienceTL = gsap.timeline({
scrollTrigger: {
trigger: ".experience-section .experience-timeline",
start: "top 85%",
end: "top 35%",
scrub: 0.3
}
});
}
if (experienceTimepath) {
const experienceTimepathItems = gsap.utils.toArray(".experience-timeline .timepath span");
experienceTimepathTL = gsap.timeline();
const docDir = document.documentElement.dir;
const fromDir = docDir === "rtl" ? "reverse" : "from";
const reverseDir = docDir === "rtl" ? "from" : "reverse";
const coords = {
x: {
from: "polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%)",
reverse: "polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%)",
to: "polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)"
},
c: {
from: "polygon(0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 75%, 0% 75%, 0% 75%, 0% 75%)",
reverse: "polygon(100% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 75%, 100% 75%, 100% 75%, 100% 75%)",
to: {
from: {
st1: "polygon(0% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%, 75% 25%, 75% 25%, 0% 25%)",
st2: "polygon(0% 0%, 100% 0%, 100% 100%, 100% 100%, 75% 75%, 75% 75%, 75% 25%, 0% 25%)",
st3: "polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 75%, 75% 75%, 75% 25%, 0% 25%)"
},
reverse: {
st1: "polygon(100% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 25% 25%, 25% 25%, 100% 25%)",
st2: "polygon(100% 0%, 0% 0%, 0% 100%, 0% 100%, 25% 75%, 25% 75%, 25% 25%, 100% 25%)",
st3: "polygon(100% 0%, 0% 0%, 0% 100%, 100% 100%, 100% 75%, 25% 75%, 25% 25%, 100% 25%)"
}
}
}
};
const lineOdd = [...experienceTimepath.querySelectorAll(".line:nth-of-type(4n + 1)")];
const lineEven = [...experienceTimepath.querySelectorAll(".line:nth-of-type(4n + 3)")];
const semicircleOdd = [...experienceTimepath.querySelectorAll(".semicircle:nth-of-type(4n + 2)")];
const semicircleEven = [...experienceTimepath.querySelectorAll(".semicircle:nth-of-type(4n + 4)")];
experienceTimepathTL.set(experienceTimepathItems, {
autoAlpha: 1
}).set(lineOdd, {
clipPath: coords.x[fromDir]
}).set(lineEven, {
clipPath: coords.x[reverseDir]
}).set(semicircleOdd, {
clipPath: coords.c[fromDir]
}).set(semicircleEven, {
clipPath: coords.c[reverseDir]
});
experienceTimepathItems.forEach(el => {
if (lineOdd.includes(el) || lineEven.includes(el)) {
experienceTimepathTL.to(el, {
clipPath: coords.x.to
});
} else if (semicircleOdd.includes(el)) {
experienceTimepathTL.to(el, {
clipPath: coords.c.to[fromDir].st1
}).to(el, {
clipPath: coords.c.to[fromDir].st2
}).to(el, {
clipPath: coords.c.to[fromDir].st3
});
} else if (semicircleEven.includes(el)) {
experienceTimepathTL.to(el, {
clipPath: coords.c.to[reverseDir].st1
}).to(el, {
clipPath: coords.c.to[reverseDir].st2
}).to(el, {
clipPath: coords.c.to[reverseDir].st3
});
}
});
mainExperienceTL.add(experienceTimepathTL);
}
if (experienceItems.length) {
experienceItemsTL = gsap.timeline();
experienceItems.forEach(el => {
experienceItemsTL.from(el, {
autoAlpha: 0
}).from(el, {
scale: 0.2
}, "<");
});
mainExperienceTL.add(experienceItemsTL, "< +=0.5");
}
},
// testimonials section title
animTestimonialsSectionTitle() {
if (!this.$refs.testimonialsSection) {
return;
}
gsap.timeline({
scrollTrigger: {
trigger: ".testimonials-section .section-title",
start: "top 90%",
end: "top 40%",
scrub: 0.3
}
}).from(".testimonials-section .section-title .subtitle", {
autoAlpha: 0,
top: 50
}).from(".testimonials-section .section-title .title", {
autoAlpha: 0,
y: 50
}, "< +=0.2");
},
// testimonials items
animTestimonialsItems() {
if (!this.$refs.testimonialsSection) {
return;
}
const testimonialsItems = gsap.utils.toArray(".testimonials-section .testimonials-item");
const testimonialsItemsTL = gsap.timeline({
scrollTrigger: {
trigger: ".testimonials-section .testimonials-items",
start: "top 75%",
end: "top 25%",
scrub: 0.3
}
});
testimonialsItems.forEach((el, i) => {
const pos = i === 0 ? "" : "< +=0.2";
testimonialsItemsTL.from(el, {
autoAlpha: 0
}, pos).from(el, {
scale: 0.2
}, "<");
});
},
// contact info
animContactInfo() {
const contactInfoItems = gsap.utils.toArray(".contact-section .contact-info li");
if (!contactInfoItems.length) {
return;
}
const contactInfoTL = gsap.timeline({
scrollTrigger: {
trigger: ".contact-section .contact-info",
start: "top 80%",
end: "top 50%",
scrub: 0.3
}
});
contactInfoItems.forEach((el, i) => {
const pos = i === 0 ? "" : "< +=0.2";
contactInfoTL.from(el, {
autoAlpha: 0
}, pos).from(el, {
y: 50
}, "<");
}); // social icons animation
contactInfoTL.from(".contact-section .contact-text .social li", {
autoAlpha: 0
}).from(".contact-section .contact-text .social li", {
y: 50,
stagger: 0.2
}, "<");
},
// contact form
animContactForm() {
if (!this.$refs.contactForm) {
return;
}
gsap.timeline({
scrollTrigger: {
trigger: ".contact-section .contact-form",
start: "top 80%",
end: "top 50%",
scrub: 0.3
}
}).from(".contact-section .contact-form", {
autoAlpha: 0,
scale: 0.7
});
}
}
};
/* ------------------------------------- */
const app = Vue.createApp({
mixins: [animationsMixin],
data() {
return {
// the date my career started (change to yours)
careerStartDate: 2010,
// the date copyright started (change to yours)
copyrightStartDate: 2021,
// for the template theme
appTheme: 'light_theme',
savedTheme: null,
// flag to toggle the preloader
isPreloading: true,
// toast notifications array
notifications: [],
// manage loading spinner status
ajaxLoading: [],
// for minimizing the header on scrolling down
startMinimizingHeaderAt: 100,
isHeaderBig: true,
// for toggling the header on scrolling down
lastScrollPosition: 0,
isHeaderHidden: false,
// flag to toggle focus style class
isAnyFocus: false,
// flag to toggle nav menu
isNavMenuOpen: false,
// list of nav links to loop through it
navLinks: [{
url: '#hero',
title: {
en: 'Home',
ar: 'الرئيسية'
}
}, {
url: '#about',
title: {
en: 'About',
ar: 'من أنا'
}
}, {
url: '#skills',
title: {
en: 'Skills',
ar: 'مهاراتي'
}
}, {
url: '#portfolio',
title: {
en: 'Portfolio',
ar: 'أعمالي'
}
}, {
url: '#contact',
title: {
en: 'Contact',
ar: 'اتصل بي'
}
}],
// flag to toggle between skills types in skills section
skillsType: '',
// list of skills items to loop through it
skillsItems: [{
imgUrl: 'https://via.placeholder.com/48',
title: 'HTML5'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'CSS3'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'JavaScript'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'TypeScript'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'jQuery'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Bootstrap'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Angular'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'React'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Vue'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Firebase'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'PugJS'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'SASS'
}],
// list of tools items to loop through it
toolsItems: [{
imgUrl: 'https://via.placeholder.com/48',
title: 'Ajax'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Gulp'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Webpack'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Git (Github)'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Npm'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Command Line'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'VS Code'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Trello'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'ClickUp'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Slack'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Photoshop'
}, {
imgUrl: 'https://via.placeholder.com/48',
title: 'Adobe XD'
}],
// list of experience items to loop through it
experienceItems: [{
date: '2010',
companyName: {
en: 'Google Inc.',
ar: 'شركة جوجل'
},
jobTitle: {
en: 'Front-End Developer',
ar: 'مطور الواجهة الأمامية'
},
desc: {
en: 'Monitored technical aspects of the front-end delivery for projects.',
ar: 'مراقبة الجوانب الفنية لتطوير الواجهات الأمامية للمشاريع.'
}
}, {
date: '2012',
companyName: {
en: 'Facebook Inc.',
ar: 'شركة فيسبوك'
},
jobTitle: {
en: 'Full Stack Developer',
ar: 'مطوّر الويب المتكامل'
},
desc: {
en: 'Collaborate with creative and development teams on the execution of ideas.',
ar: 'تعاونت مع الفرق الإبداعية في تطوير وتنفيذ أفكار مبتكرة.'
}
}, {
date: '2014',
companyName: {
en: 'Envato Inc.',
ar: 'شركة انفاتو'
},
jobTitle: {
en: 'UI/UX Developer',
ar: 'مطور UI/UX'
},
desc: {
en: 'Converted Photoshop layouts to web pages using HTML, CSS, and JavaScript.',
ar: 'تم تحويل تخطيطات Photoshop إلى صفحات ويب باستخدام HTML و CSS و JavaScript.'
}
}, {
date: '2016',
companyName: {
en: 'Google Inc.',
ar: 'شركة جوجل'
},
jobTitle: {
en: 'Front-End Developer',
ar: 'مطور الواجهة الأمامية'
},
desc: {
en: 'Monitored technical aspects of the front-end delivery for projects.',
ar: 'مراقبة الجوانب الفنية لتطوير الواجهات الأمامية للمشاريع.'
}
}, {
date: '2018',
companyName: {
en: 'Facebook Inc.',
ar: 'شركة فيسبوك'
},
jobTitle: {
en: 'Full Stack Developer',
ar: 'مطوّر الويب المتكامل'
},
desc: {
en: 'Collaborate with creative and development teams on the execution of ideas.',
ar: 'تعاونت مع الفرق الإبداعية في تطوير وتنفيذ أفكار مبتكرة.'
}
}, {
date: '2020',
companyName: {
en: 'Google Inc.',
ar: 'شركة جوجل'
},
jobTitle: {
en: 'Front-End Developer',
ar: 'مطور الواجهة الأمامية'
},
desc: {
en: 'Monitored technical aspects of the front-end delivery for projects.',
ar: 'مراقبة الجوانب الفنية لتطوير الواجهات الأمامية للمشاريع.'
}
}, {
date: '2022',
companyName: {
en: 'Facebook Inc.',
ar: 'شركة فيسبوك'
},
jobTitle: {
en: 'Full Stack Developer',
ar: 'مطوّر الويب المتكامل'
},
desc: {
en: 'Collaborate with creative and development teams on the execution of ideas.',
ar: 'تعاونت مع الفرق الإبداعية في تطوير وتنفيذ أفكار مبتكرة.'
}
}, {}, {}],
// current page of portfolio items
portfolioItemsPage: 1,
// portfolio items per page
itemsPerPage: 7,
// portfolio items filter by type
filters: ['All', 'HTML', 'Angular', 'Vue'],
currentFilter: 'All',
// portfolio archive name
portfolioArchiveName: '',
// list of portfolio items to loop through it
allPortfolioItems: [{
id: 1,
url: 'single-portfolio.html?id=1',
imgUrl: 'https://via.placeholder.com/400x400',
title: {
en: 'Lorem Ipsum Dolor 1',
ar: 'هنا عنوان المشروع 1'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'HTML',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'Bootstrap', 'AJAX', 'Vue', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 2,
url: 'single-portfolio.html?id=2',
imgUrl: 'https://via.placeholder.com/530x300',
title: {
en: 'Lorem Ipsum Dolor 2',
ar: 'هنا عنوان المشروع 2'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Angular',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'TailwindCSS', 'AJAX', 'Angular', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 3,
url: 'single-portfolio.html?id=3',
imgUrl: 'https://via.placeholder.com/390x390',
title: {
en: 'Lorem Ipsum Dolor 3',
ar: 'هنا عنوان المشروع 3'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Vue',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'Materialize', 'AJAX', 'Vue', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 4,
url: 'single-portfolio.html?id=4',
imgUrl: 'https://via.placeholder.com/340x510',
title: {
en: 'Lorem Ipsum Dolor 4',
ar: 'هنا عنوان المشروع 4'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'HTML',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'TailwindCSS', 'AJAX', 'Angular', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 5,
url: 'single-portfolio.html?id=5',
imgUrl: 'https://via.placeholder.com/380x215',
title: {
en: 'Lorem Ipsum Dolor 5',
ar: 'هنا عنوان المشروع 5'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Angular',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'Bootstrap', 'AJAX', 'Vue', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 6,
url: 'single-portfolio.html?id=6',
imgUrl: 'https://via.placeholder.com/400x300',
title: {
en: 'Lorem Ipsum Dolor 6',
ar: 'هنا عنوان المشروع 6'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Vue',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'Materialize', 'AJAX', 'Angular', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 7,
url: 'single-portfolio.html?id=7',
imgUrl: 'https://via.placeholder.com/380x215',
title: {
en: 'Lorem Ipsum Dolor 7',
ar: 'هنا عنوان المشروع 7'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'HTML',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'Bootstrap', 'AJAX', 'Vue', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 8,
url: 'single-portfolio.html?id=8',
imgUrl: 'https://via.placeholder.com/340x340',
title: {
en: 'Lorem Ipsum Dolor 8',
ar: 'هنا عنوان المشروع 8'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Vue',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'TailwindCSS', 'AJAX', 'Angular', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 9,
url: 'single-portfolio.html?id=9',
imgUrl: 'https://via.placeholder.com/300x375',
title: {
en: 'Lorem Ipsum Dolor 9',
ar: 'هنا عنوان المشروع 9'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Angular',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'Materialize', 'AJAX', 'Vue', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 10,
url: 'single-portfolio.html?id=10',
imgUrl: 'https://via.placeholder.com/350x200',
title: {
en: 'Lorem Ipsum Dolor 10',
ar: 'هنا عنوان المشروع 10'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'HTML',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'Bootstrap', 'AJAX', 'Angular', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 11,
url: 'single-portfolio.html?id=11',
imgUrl: 'https://via.placeholder.com/400x300',
title: {
en: 'Lorem Ipsum Dolor 11',
ar: 'هنا عنوان المشروع 11'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Vue',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'TailwindCSS', 'AJAX', 'Angular', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 12,
url: 'single-portfolio.html?id=12',
imgUrl: 'https://via.placeholder.com/300x280',
title: {
en: 'Lorem Ipsum Dolor 12',
ar: 'هنا عنوان المشروع 12'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Angular',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'Materialize', 'AJAX', 'Vue', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 13,
url: 'single-portfolio.html?id=13',
imgUrl: 'https://via.placeholder.com/300x270',
title: {
en: 'Lorem Ipsum Dolor 13',
ar: 'هنا عنوان المشروع 13'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'HTML',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'TailwindCSS', 'AJAX', 'Angular', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 14,
url: 'single-portfolio.html?id=14',
imgUrl: 'https://via.placeholder.com/375x500',
title: {
en: 'Lorem Ipsum Dolor 14',
ar: 'هنا عنوان المشروع 14'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Angular',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'Bootstrap', 'AJAX', 'Vue', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 15,
url: 'single-portfolio.html?id=15',
imgUrl: 'https://via.placeholder.com/375x240',
title: {
en: 'Lorem Ipsum Dolor 15',
ar: 'هنا عنوان المشروع 15'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Vue',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'Materialize', 'AJAX', 'Angular', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 16,
url: 'single-portfolio.html?id=16',
imgUrl: 'https://via.placeholder.com/570x400',
title: {
en: 'Lorem Ipsum Dolor 16',
ar: 'هنا عنوان المشروع 16'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'HTML',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'Bootstrap', 'AJAX', 'Vue', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 17,
url: 'single-portfolio.html?id=17',
imgUrl: 'https://via.placeholder.com/375x300',
title: {
en: 'Lorem Ipsum Dolor 17',
ar: 'هنا عنوان المشروع 17'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Angular',
tools: ['HTML', 'PugJS', 'CSS', 'SCSS', 'JavaScript', 'Gulp', 'TailwindCSS', 'AJAX', 'Angular', 'Firebase'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}, {
id: 18,
url: 'single-portfolio.html?id=18',
imgUrl: 'https://via.placeholder.com/350x500',
title: {
en: 'Lorem Ipsum Dolor 18',
ar: 'هنا عنوان المشروع 18'
},
date: {
en: 'April 2021',
ar: 'أبريل 2021'
},
desc: {
en: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
ar: 'هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً، دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق.'
},
category: 'Vue',
tools: ['HTML', 'Slim', 'CSS', 'Less', 'JavaScript', 'TypeScript', 'Materialize', 'AJAX', 'Vue', 'NodeJs', 'MongoDB'],
screenshots: {
img1: {
url: 'https://via.placeholder.com/355x200',
caption: {
en: 'caption 5',
ar: 'تسمية توضيحية 5'
}
},
img2: {
url: 'https://via.placeholder.com/330x460',
caption: {
en: 'caption 4',
ar: 'تسمية توضيحية 4'
}
},
img3: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 3',
ar: 'تسمية توضيحية 3'
}
},
img4: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 2',
ar: 'تسمية توضيحية 2'
}
},
img5: {
url: 'https://via.placeholder.com/300x225',
caption: {
en: 'caption 1',
ar: 'تسمية توضيحية 1'
}
}
}
}].reverse(),
// viewed portfolio items
portfolioItems: [],
// list of testimonials items to loop through it
testimonialsItems: [{
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie simply provides amazing web development service. Their team is extremely professional and the easiest to meet I have ever worked with. I would recommend Nafie to anyone.',
ar: 'محمد يقدم خدمات مذهلة في تطوير الويب، ولديه فريق محترف يجعل التعامل معهم مطمئن للغاية. أوصي بفريقهم للجميع.'
},
quoteAuthor: {
en: 'Terrell Grimes',
ar: 'جابر العواني'
},
jobTitle: {
en: 'Photographer',
ar: 'مصور فوتوغرافي'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Excellent Team to work with. Always positive to find the most appropriate solution. Nafie is one of the professional web development agency that provides awesome services.',
ar: 'فريق ممتاز للعمل معه. إيجابي دائمًا للعثور على الحل الأنسب. هم إحدى شركات تطوير الويب المحترفة التي تقدم خدمات رائعة.'
},
quoteAuthor: {
en: 'Lonny Corkery',
ar: 'حسون القلال'
},
jobTitle: {
en: 'Project Manager',
ar: 'مدير المشاريع'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie team is very professional, always delivers high quality results, and is always there to help. Look forward to working with Nafie in other projects.',
ar: 'محمد مطور محترف للغاية يقدم دائمًا نتائج عالية الجودة ، وهو دائمًا موجود للمساعدة. نتطلع إلى العمل معه في مشاريع أخرى.'
},
quoteAuthor: {
en: 'Max Schmidt DDS',
ar: 'مصطفى الخليفي'
},
jobTitle: {
en: 'CEO, Designer',
ar: 'أخصائي SEO'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie worked on a handful of projects for us and has always exceeded our expectations. Nafie team is dedicated, talented and a delight to work with.',
ar: 'عمل محمد في عدد كبير من المشاريع لأجلنا وكان دائمًا يفوق توقعاتنا. مطور متخصص وموهوب ونسعد دائمًا بالعمل معه.'
},
quoteAuthor: {
en: 'Amir Stoltenberg',
ar: 'عباس العنابي'
},
jobTitle: {
en: 'Sales Manager',
ar: 'مدير مبيعات'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'I know I can count on your service if I need my project done fast and with the best possible result. I am a regular customer and hope to continue our work!',
ar: 'يمكنني الاعتماد على خدمات محمد دائمًا وخاصة إذا كنت بحاجة إلى إنجاز مشروعي في أقل وقت وبأفضل نتيجة ممكنة. أنا عميل منتظم لديه وآمل أن نواصل عملنا معا دائمًا.'
},
quoteAuthor: {
en: 'Kenton Marquardt',
ar: 'سمير النجار'
},
jobTitle: {
en: 'Art Director',
ar: 'آرت دايركتور'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Muhammad was a real pleasure to work with and we look forward to working with him again. He’s definitely the kind of developer you can trust with a project from start to finish.',
ar: 'أنا سعيد حقًا بالعمل مع محمد وأتطلع إلى العمل معه مرة أخرى قريبا. هو بالتأكيد من المطورين الذي يمكنك الوثوق بهم للعمل على مشروعك من البداية إلى النهاية.'
},
quoteAuthor: {
en: 'Reyna Hammes',
ar: 'أمير داوود'
},
jobTitle: {
en: 'Motion Graphic Animator',
ar: 'مصمم موشن جرافيك'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Muhammad was a real pleasure to work with and we look forward to working with him again. He’s definitely the kind of developer you can trust with a project from start to finish.',
ar: 'أنا سعيد حقًا بالعمل مع محمد وأتطلع إلى العمل معه مرة أخرى قريبا. هو بالتأكيد من المطورين الذي يمكنك الوثوق بهم للعمل على مشروعك من البداية إلى النهاية.'
},
quoteAuthor: {
en: 'Jovan Parisian',
ar: 'منصور السقاط'
},
jobTitle: {
en: 'Motion Graphic Animator',
ar: 'مصمم موشن جرافيك'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'I know I can count on your service if I need my project done fast and with the best possible result. I am a regular customer and hope to continue our work!',
ar: 'يمكنني الاعتماد على خدمات محمد دائمًا وخاصة إذا كنت بحاجة إلى إنجاز مشروعي في أقل وقت وبأفضل نتيجة ممكنة. أنا عميل منتظم لديه وآمل أن نواصل عملنا معا دائمًا.'
},
quoteAuthor: {
en: 'Pasquale Deckow',
ar: 'عطا بن عاشور'
},
jobTitle: {
en: 'Art Director',
ar: 'آرت دايركتور'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie worked on a handful of projects for us and has always exceeded our expectations. Nafie team is dedicated, talented and a delight to work with.',
ar: 'عمل محمد في عدد كبير من المشاريع لأجلنا وكان دائمًا يفوق توقعاتنا. مطور متخصص وموهوب ونسعد دائمًا بالعمل معه.'
},
quoteAuthor: {
en: 'Rosa Ferry',
ar: 'نافع حاتم'
},
jobTitle: {
en: 'Sales Manager',
ar: 'مدير مبيعات'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie team is very professional, always delivers high quality results, and is always there to help. Look forward to working with Nafie in other projects.',
ar: 'محمد مطور محترف للغاية يقدم دائمًا نتائج عالية الجودة ، وهو دائمًا موجود للمساعدة. نتطلع إلى العمل معه في مشاريع أخرى.'
},
quoteAuthor: {
en: 'Keshaun Robel',
ar: 'صدقي الطويل'
},
jobTitle: {
en: 'CEO, Designer',
ar: 'أخصائي SEO'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Excellent Team to work with. Always positive to find the most appropriate solution. Nafie is one of the professional web development agency that provides awesome services.',
ar: 'فريق ممتاز للعمل معه. إيجابي دائمًا للعثور على الحل الأنسب. هم إحدى شركات تطوير الويب المحترفة التي تقدم خدمات رائعة.'
},
quoteAuthor: {
en: 'Casper Paucek',
ar: 'حسان ادريس'
},
jobTitle: {
en: 'Project Manager',
ar: 'مدير المشاريع'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie simply provides amazing web development service. Their team is extremely professional and the easiest to meet I have ever worked with. I would recommend Nafie to anyone.',
ar: 'محمد يقدم خدمات مذهلة في تطوير الويب، ولديه فريق محترف يجعل التعامل معهم مطمئن للغاية. أوصي بفريقهم للجميع.'
},
quoteAuthor: {
en: 'Archibald Fadel',
ar: 'مجد الكافي'
},
jobTitle: {
en: 'Photographer',
ar: 'مصور فوتوغرافي'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie simply provides amazing web development service. Their team is extremely professional and the easiest to meet I have ever worked with. I would recommend Nafie to anyone.',
ar: 'محمد يقدم خدمات مذهلة في تطوير الويب، ولديه فريق محترف يجعل التعامل معهم مطمئن للغاية. أوصي بفريقهم للجميع.'
},
quoteAuthor: {
en: 'Tabitha Denesik',
ar: 'آسر بنسلامة'
},
jobTitle: {
en: 'Photographer',
ar: 'مصور فوتوغرافي'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Excellent Team to work with. Always positive to find the most appropriate solution. Nafie is one of the professional web development agency that provides awesome services.',
ar: 'فريق ممتاز للعمل معه. إيجابي دائمًا للعثور على الحل الأنسب. هم إحدى شركات تطوير الويب المحترفة التي تقدم خدمات رائعة.'
},
quoteAuthor: {
en: 'Javon Bogan',
ar: 'صهيب الشريف'
},
jobTitle: {
en: 'Project Manager',
ar: 'مدير المشاريع'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie team is very professional, always delivers high quality results, and is always there to help. Look forward to working with Nafie in other projects.',
ar: 'محمد مطور محترف للغاية يقدم دائمًا نتائج عالية الجودة ، وهو دائمًا موجود للمساعدة. نتطلع إلى العمل معه في مشاريع أخرى.'
},
quoteAuthor: {
en: 'Duncan Kemmer',
ar: 'سيد كرم'
},
jobTitle: {
en: 'CEO, Designer',
ar: 'أخصائي SEO'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Nafie worked on a handful of projects for us and has always exceeded our expectations. Nafie team is dedicated, talented and a delight to work with.',
ar: 'عمل محمد في عدد كبير من المشاريع لأجلنا وكان دائمًا يفوق توقعاتنا. مطور متخصص وموهوب ونسعد دائمًا بالعمل معه.'
},
quoteAuthor: {
en: 'Coy Johns',
ar: 'هيثم الشريف'
},
jobTitle: {
en: 'Sales Manager',
ar: 'مدير مبيعات'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'I know I can count on your service if I need my project done fast and with the best possible result. I am a regular customer and hope to continue our work!',
ar: 'يمكنني الاعتماد على خدمات محمد دائمًا وخاصة إذا كنت بحاجة إلى إنجاز مشروعي في أقل وقت وبأفضل نتيجة ممكنة. أنا عميل منتظم لديه وآمل أن نواصل عملنا معا دائمًا.'
},
quoteAuthor: {
en: 'Murphy Roberts',
ar: 'إسلام مصطفى'
},
jobTitle: {
en: 'Art Director',
ar: 'آرت دايركتور'
}
}, {
imgUrl: 'https://via.placeholder.com/200',
quoteContent: {
en: 'Muhammad was a real pleasure to work with and we look forward to working with him again. He’s definitely the kind of developer you can trust with a project from start to finish.',
ar: 'أنا سعيد حقًا بالعمل مع محمد وأتطلع إلى العمل معه مرة أخرى قريبا. هو بالتأكيد من المطورين الذي يمكنك الوثوق بهم للعمل على مشروعك من البداية إلى النهاية.'
},
quoteAuthor: {
en: 'Dimitri Lockman',
ar: 'وسيم السقا'
},
jobTitle: {
en: 'Motion Graphic Animator',
ar: 'مصمم موشن جرافيك'
}
}]
};
},
created() {
// get a theme to use
this.getAppTheme();
},
mounted() {
if (window.innerWidth >= 992) {
// initialize circle cursor
this.initCircleCursor(); // apply pan effect hero image
this.heroImgPanEffect(); // initialize VanillaTilt library in portfolio section
this.initializeTilt();
} // nav menu tab trap
this.navMenuTabTrap(); // scrolling options
this.scrollingOptions();
document.addEventListener('scroll', () => this.scrollingOptions()); // initialize popper.js plugin
document.querySelectorAll('.has-ultimate-tooltip').forEach(el => {
Popper.createPopper(el, el.querySelector('.ultimate-tooltip'), {
placement: 'top',
modifiers: [{
name: 'offset',
options: {
offset: [0, 30]
}
}]
});
}); // get portfolio items
this.getPortfolioItems(); // init glightbox plugin
new GLightbox({
autoplayVideos: false
}); // initialize the first displayed type of skills
this.initSkillsFirstType();
},
methods: {
// initialize circle cursor
initCircleCursor() {
const app = this.$refs.appRef;
const outer = this.$refs.circleCursorOuter;
const inner = this.$refs.circleCursorInner; // return if disabled
if (!outer || !inner) {
return;
}
app.addEventListener('mousemove', e => {
// make the circles follow the cursor
outer.setAttribute('style', `visibility: visible; top: ${e.clientY}px; left: ${e.clientX}px;`);
inner.setAttribute('style', `visibility: visible; top: ${e.clientY}px; left: ${e.clientX}px;`); // add link hover style
e.target.closest('a') || e.target.closest('button') || e.target.closest('.link-hover') ? inner.classList.add('cursor-link-hover') : inner.classList.remove('cursor-link-hover');
});
app.addEventListener('click', () => {
// add pulse effect on click
inner.classList.add('cursor-click-effect');
setTimeout(() => inner.classList.remove('cursor-click-effect'), 200);
});
},
// get a theme to use
getAppTheme() {
// get the saved theme from the localStorage
const storageSavedTheme = localStorage.getItem('nafieSavedTheme'); // Check to see if there a saved theme
if (storageSavedTheme) {
this.savedTheme = storageSavedTheme;
} else {
// So, try to get the browser default theme or make your own default
// Check to see if Media-Queries are supported
if (window.matchMedia) {
// Check if the dark-mode Media-Query matches
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
this.savedTheme = 'dark_theme';
} else {
this.savedTheme = 'light_theme';
}
} else {
// Default (when Media-Queries are not supported)
this.savedTheme = this.appTheme;
}
} // save the new theme in the localStorage
localStorage.setItem('nafieSavedTheme', this.savedTheme);
},
// detect the theme changes
changeAppTheme() {
this.savedTheme === 'light_theme' ? this.savedTheme = 'dark_theme' : this.savedTheme = 'light_theme'; // save the new theme in the localStorage
localStorage.setItem('nafieSavedTheme', this.savedTheme);
},
// toggle nav menu
toggleNavMenu() {
this.isNavMenuOpen = !this.isNavMenuOpen;
this.isNavMenuOpen ? this.openNavMenu() : this.closeNavMenu();
},
// open nav menu
openNavMenu() {
const bodyEl = document.getElementsByTagName('body')[0];
this.isNavMenuOpen = true;
bodyEl.setAttribute('style', 'overflow-y: hidden;'); // set focus on nav menu
this.$refs.headerNav.querySelector('.desktop-menu-content').focus();
},
// close nav menu
closeNavMenu() {
const bodyEl = document.getElementsByTagName('body')[0];
this.isNavMenuOpen = false;
bodyEl.removeAttribute('style'); // set focus on nav menu toggle button
this.$refs.navMenuToggleBtn.focus();
},
// nav menu tab trap
navMenuTabTrap() {
const nav = this.$refs.headerNav;
const focusableElementsString = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]';
let firstTabStop;
let lastTabStop;
let isFirstTabStop;
let isLastTabStop;
document.addEventListener('keyup', e => {
if (nav.classList.contains('menu-open')) {
// get first & last focusable elements in the side menu for the tab trap
const visibleFocusableEls = [...nav.querySelectorAll(focusableElementsString)].filter(el => window.getComputedStyle(el).getPropertyValue('visibility') !== 'hidden');
firstTabStop = visibleFocusableEls[0];
lastTabStop = visibleFocusableEls[visibleFocusableEls.length - 1];
if (e.code === 'Tab') {
if (e.shiftKey)
/* shift + tab */
{
// if this is the first item, move to the last item
isFirstTabStop && lastTabStop.focus();
} else
/* tab */
{
// if this is the last item, go back to the first item
isLastTabStop && firstTabStop.focus();
} // close nav menu on Escape button press
} else if (e.code === 'Escape') {
this.toggleNavMenu();
} // get current active element
const activeEl = document.activeElement; // check if last item or not
isLastTabStop = activeEl === lastTabStop ? true : false; // check if first item or not
isFirstTabStop = activeEl === firstTabStop ? true : false;
}
});
},
// apply pan effect hero image
heroImgPanEffect() {
const parent = this.$refs.heroSection; // return if disabled
if (!parent || !parent.getAttribute('data-paneffect')) {
return;
}
const layer1 = parent.querySelectorAll('.layer')[0];
const layer2 = parent.querySelectorAll('.layer')[1];
parent.addEventListener('mousemove', e => {
const x = (e.x - parent.getBoundingClientRect().x) / parent.offsetWidth * 100;
const y = (e.y - parent.getBoundingClientRect().y) / parent.offsetHeight * 100;
parent.classList.add('parallax-animation');
layer1.setAttribute('style', `transform-origin: ${x}vw ${y}vh;`);
layer2.setAttribute('style', `transform-origin: ${x}vw ${y}vh;`);
});
},
// scrolling options
scrollingOptions() {
const scrollPosition = window.pageYOffset; // check for current scroll position to minimize the header
this.isHeaderBig = scrollPosition >= this.startMinimizingHeaderAt ? false : true; // check for current scroll position to toggle the header
this.isHeaderHidden = scrollPosition > 100 && scrollPosition > this.lastScrollPosition ? true : false;
this.lastScrollPosition = scrollPosition;
},
// scroll to top
scrollToTop() {
window.scroll({
top: 0,
behavior: 'smooth'
});
},
// initialize the first displayed type of skills
initSkillsFirstType() {
const skillsSwitchBtn = this.$refs.skillsSwitchBtn; // return if disabled
if (!skillsSwitchBtn) {
return;
}
this.skillsType = skillsSwitchBtn.querySelector('input').value;
},
// initialize VanillaTilt library in portfolio section
initializeTilt() {
const portfolioItems = this.$refs.portfolioItems; // return if disabled
if (!portfolioItems) {
return;
}
VanillaTilt.init(portfolioItems.querySelectorAll('.portfolio-item'), {
max: 8,
speed: 400,
glare: true,
'max-glare': 0.3
});
},
// get portfolio items
getPortfolioItems() {
const itemsArr = this.allPortfolioItems.filter(item => {
const urlParams = new URLSearchParams(window.location.search);
const tax = urlParams.get('tax');
if (tax) {
if (tax === 'cat') {
const cat = urlParams.get('cat');
this.portfolioArchiveName = cat;
return item.category === cat;
} else if (tax === 'tools') {
const tool = urlParams.get('tools');
this.portfolioArchiveName = tool;
return item.tools.includes(tool);
}
} else {
return this.currentFilter === 'All' || item.category === this.currentFilter;
}
}).slice(this.filteredPortfolioItems.length, this.portfolioItemsPage * this.itemsPerPage); // check if have works or not
if (itemsArr.length) {
this.portfolioItems.push(...itemsArr);
this.$nextTick(() => {
// reinitialize VanillaTilt for new items
this.portfolioItemsPage > 1 && this.initializeTilt(); // Forces the ScrollTrigger instance to re-calculate its start and end values
setTimeout(() => ScrollTrigger.refresh(), 500);
});
this.portfolioItemsPage++;
} else {
// show message "No works" to the user
this.setNotify({
className: 'danger',
msg: this.$refs.portfolioItems.getAttribute('data-no-works-msg'),
time: 3000
});
}
},
// filter portfolio items
filterPortfolioItems(filter) {
this.currentFilter = filter;
this.portfolioItemsPage = 1;
if (this.filteredPortfolioItems.length) {
this.$nextTick(() => {
// reinitialize VanillaTilt for new items
this.portfolioItemsPage > 1 && this.initializeTilt(); // Forces the ScrollTrigger instance to re-calculate its start and end values
setTimeout(() => ScrollTrigger.refresh(), 500);
});
} else {
// get new portfolio items
this.getPortfolioItems();
}
},
// contact form validation
contactFormValidation() {
// contact form
const contactForm = this.$refs.contactForm; // form controls
const name = contactForm.querySelector('input[name="name"]');
const email = contactForm.querySelector('input[name="email"]');
const phone = contactForm.querySelector('input[name="phone"]');
const message = contactForm.querySelector('textarea'); // form validation status
let errors = {
name: {
required: true,
minLength: true
},
email: {
required: true,
invalid: true
},
phone: {
invalid: true
},
message: {
required: true
}
};
/* --------------- */
/* name validation */
/* --------------- */
// required validation
if (name.value === '') {
errors.name.required = true;
this.setNotify({
id: 'nameRequired',
className: 'danger',
msg: name.closest('.control').querySelector('.errors-msgs .required').value
});
} else {
errors.name.required = false;
this.dismissNotify('nameRequired');
} // minlength validation
if (name.value.length > 0 && name.value.length < name.getAttribute('minlength')) {
errors.name.minLength = true;
this.setNotify({
id: 'nameMinLength',
className: 'danger',
msg: name.closest('.control').querySelector('.errors-msgs .minLength').value
});
} else {
errors.name.minLength = false;
this.dismissNotify('nameMinLength');
} // toggle invalid errors & style classes
if (Object.keys(errors.name).some(err => errors.name[err] === true)) {
name.classList.remove('valid');
name.classList.add('invalid');
} else {
name.classList.remove('invalid');
name.classList.add('valid');
}
/* ---------------- */
/* email validation */
/* ---------------- */
// required validation
if (email.value === '') {
errors.email.required = true;
this.setNotify({
id: 'emailRequired',
className: 'danger',
msg: email.closest('.control').querySelector('.errors-msgs .required').value
});
} else {
errors.email.required = false;
this.dismissNotify('emailRequired');
} // email validation
if (email.value.length > 0 && !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email.value)) {
errors.email.invalid = true;
this.setNotify({
id: 'emailInvalid',
className: 'danger',
msg: email.closest('.control').querySelector('.errors-msgs .invalid').value
});
} else {
errors.email.invalid = false;
this.dismissNotify('emailInvalid');
} // toggle invalid errors & style classes
if (Object.keys(errors.email).some(err => errors.email[err] === true)) {
email.classList.remove('valid');
email.classList.add('invalid');
} else {
email.classList.remove('invalid');
email.classList.add('valid');
}
/* ---------------- */
/* phone validation */
/* ---------------- */
// phone validation
if (phone.value.length > 0 && !/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im.test(phone.value)) {
errors.phone.invalid = true;
this.setNotify({
id: 'phoneInvalid',
className: 'danger',
msg: phone.closest('.control').querySelector('.errors-msgs .invalid').value
});
} else {
errors.phone.invalid = false;
this.dismissNotify('phoneInvalid');
} // toggle invalid errors & style classes
if (Object.keys(errors.phone).some(err => errors.phone[err] === true)) {
phone.classList.remove('valid');
phone.classList.add('invalid');
} else {
phone.classList.remove('invalid');
phone.classList.add('valid');
}
/* ------------------ */
/* message validation */
/* ------------------ */
// required validation
if (message.value === '') {
errors.message.required = true;
this.setNotify({
id: 'messageRequired',
className: 'danger',
msg: message.closest('.control').querySelector('.errors-msgs .required').value
});
} else {
errors.message.required = false;
this.dismissNotify('messageRequired');
} // toggle invalid errors & style classes
if (Object.keys(errors.message).some(err => errors.message[err] === true)) {
message.classList.remove('valid');
message.classList.add('invalid');
} else {
message.classList.remove('invalid');
message.classList.add('valid');
} // send the message if the form is valid
!Object.values(errors).some(control => Object.values(control).some(Boolean)) && this.sendContactFormMessage(contactForm);
},
// send message from contact form
sendContactFormMessage(form) {
const url = form.getAttribute('action');
const formData = new FormData(form); // start loading spinner
this.startLoading(); // send post request
fetch(url, {
method: 'POST',
body: formData
}).then(res => res.text()).then(data => {
if (data === 'success') {
// show success message
this.setNotify({
className: 'success',
msg: form.getAttribute('data-success-msg'),
time: 5000
}); // reset all form inputs
form.reset(); // remove inputs valid classes
form.querySelectorAll('.valid').forEach(el => el.classList.remove('valid'));
} else if (data === 'error') {
// show error message
this.setNotify({
className: 'danger',
msg: form.getAttribute('data-err-msg'),
time: 5000
});
} // end loading spinner
this.endLoading();
console.log(data);
}).catch(err => console.log(err));
},
// show messages by toast notifications
setNotify({
id,
className,
msg,
time
}) {
const notify = {
id: id || `${Date.now()}${this.notifications.length}`,
className,
msg,
time
};
if (id) {
!this.notifications.some(e => e.id === id) && this.notifications.push(notify);
} else {
this.notifications.push(notify);
} // remove this notification from the array after (n) seconds
time && setTimeout(() => this.dismissNotify(notify.id), time);
},
// dismiss the notifications
dismissNotify(id) {
const index = this.notifications.findIndex(notify => notify.id === id);
index > -1 && this.notifications.splice(index, 1);
},
// add ajax loading spinner
startLoading() {
this.ajaxLoading.push(true);
},
// remove ajax loading spinner
endLoading() {
this.ajaxLoading.pop();
}
},
computed: {
// flag to toggle ajax loading spinner
isAjaxLoading() {
return this.ajaxLoading.some(state => state === true);
},
// get the total years of experience
experienceYears() {
return new Date(new Date() - new Date(String(this.careerStartDate))).getFullYear() - 1970;
},
// split experience items into chunks of 3 items
experienceChunks() {
return [...Array(Math.floor((this.experienceItems.length - 1) / 3))];
},
// filtered portfolio items
filteredPortfolioItems() {
const urlParams = new URLSearchParams(window.location.search);
const tax = urlParams.get('tax');
if (tax) {
return this.portfolioItems;
} else {
return this.portfolioItems.filter(item => this.currentFilter === 'All' || item.category === this.currentFilter);
}
},
// get single portfolio item
getSinglePortfolioItem() {
const urlParams = new URLSearchParams(window.location.search);
const id = urlParams.get('id');
return this.allPortfolioItems.find(item => item.id == id);
},
// get the total years of copyright
copyrightDate() {
const yearsDuration = new Date(new Date() - new Date(String(this.copyrightStartDate))).getFullYear() - 1970;
return yearsDuration === 0 ? this.copyrightStartDate : `${this.copyrightStartDate} - ${this.copyrightStartDate + yearsDuration}`;
}
},
directives: {
// clone directive
clone: {
mounted(el) {
el.parentNode.insertBefore(el.cloneNode(true), el.nextSibling);
}
},
// add stagger delay to children elements
staggerdelay: {
mounted(el, binding) {
[...el.children].forEach((child, i) => {
child.setAttribute('style', `animation-delay: ${(i + 1) * (binding.value || 100)}ms`);
});
}
},
// tooltip directive
tooltip: {
mounted(el, binding) {
el.classList.add('has-tooltip');
el.insertAdjacentHTML('beforeend', `<div class="custom-tooltip custom-tooltip-${binding.value.dir}">${binding.value.text}</div>`);
}
}
}
});
app.mount('#app');
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsic3JjL3NjcmlwdHMvYW5pbWF0aW9ucy5taXhpbi5qcyIsInNyYy9zY3JpcHRzL21haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4vKiBhbmltYXRpb25zIG1peGluICovXHJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICAvKiBwcmVsb2FkZXIgc2NyZWVuICovXHJcbiAgICB0aGlzLmFuaW1QcmVsb2FkZXJTY3JlZW4oKTtcclxuXHJcbiAgICAvLyBpbml0aWFsaXplIGFuaW1hdGlvbiBlZmZlY3RzXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHRoaXMuaW5pdEFuaW1hdGlvbigpKTtcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8vIHByZWxvYWRlciBzY3JlZW5cclxuICAgIGFuaW1QcmVsb2FkZXJTY3JlZW4oKSB7XHJcbiAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgIGNvbnN0IHByZWxvYWRlciA9IHRoaXMuJHJlZnMucHJlbG9hZGVyO1xyXG5cclxuICAgICAgaWYgKCFwcmVsb2FkZXIpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICBjb25zdCBwcmVsb2FkZXJDb250ZW50ID0gcHJlbG9hZGVyLnF1ZXJ5U2VsZWN0b3IoXCIucHJlbG9hZGVyLWNvbnRlbnRcIik7XHJcbiAgICAgIGNvbnN0IGltZ3MgPSBbLi4uZG9jdW1lbnQuaW1hZ2VzXTtcclxuICAgICAgY29uc3QgaW1nc0xlbmd0aCA9IGltZ3MubGVuZ3RoO1xyXG4gICAgICBjb25zdCBoaWRlUHJlbG9hZGVyID0gKCkgPT4ge1xyXG4gICAgICAgIHByZWxvYWRlci5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcIi0tbG9hZGluZy1wZXJjZW50YWdlOiAxMDAlXCIpO1xyXG4gICAgICAgIGdzYXAudGltZWxpbmUoKVxyXG4gICAgICAgICAgLnNldChcIi5oaWRlLWluLXByZWxvYWRpbmdcIiwgeyBhdXRvQWxwaGE6IDEgfSlcclxuICAgICAgICAgIC50byhwcmVsb2FkZXJDb250ZW50LCB7IGRlbGF5OiAwLjUsIGF1dG9BbHBoYTogMCB9KVxyXG4gICAgICAgICAgLnRvKHByZWxvYWRlciwgeyB5OiBcIi0xMDAlXCIsIGR1cmF0aW9uOiAxLCBlYXNlOiBcImV4cG8uaW5cIiB9LCBcIi09MC41XCIpXHJcbiAgICAgICAgICAuc2V0KHByZWxvYWRlciwgeyBhdXRvQWxwaGE6IDAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaW1nTG9hZGVkID0gKCkgPT4ge1xyXG4gICAgICAgIGNvdW50Kys7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGluZ1BlcmNlbnRhZ2UgPSAoKDEwMCAvIGltZ3NMZW5ndGgpICogY291bnQpIDw8IDA7XHJcbiAgICAgICAgcHJlbG9hZGVyLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGAtLWxvYWRpbmctcGVyY2VudGFnZTogJHt0aGlzLmxvYWRpbmdQZXJjZW50YWdlfSVgKTtcclxuXHJcbiAgICAgICAgaWYgKGNvdW50ID09PSBpbWdzTGVuZ3RoKSB7IGhpZGVQcmVsb2FkZXIoKTsgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaW1nc0xlbmd0aCkge1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBwcmVsb2FkZXIgaW5kaWNhdG9yXHJcbiAgICAgICAgaW1ncy5mb3JFYWNoKGltZyA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0SW1nID0gbmV3IEltYWdlKCk7XHJcbiAgXHJcbiAgICAgICAgICB0SW1nLm9ubG9hZCA9IGltZ0xvYWRlZDtcclxuICAgICAgICAgIHRJbWcub25lcnJvciA9IGltZ0xvYWRlZDtcclxuICAgICAgICAgIHRJbWcuc3JjID0gaW1nLnNyYztcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7IGhpZGVQcmVsb2FkZXIoKTsgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvLyBpbml0aWFsaXplIGFuaW1hdGlvbiBlZmZlY3RzXHJcbiAgICBpbml0QW5pbWF0aW9uKCkge1xyXG4gICAgICBnc2FwLnJlZ2lzdGVyUGx1Z2luKFNjcm9sbFRyaWdnZXIpO1xyXG5cclxuICAgICAgLyogYmFjayB0byB0b3Agc2Nyb2xsIGluZGljYXRvciAqL1xyXG4gICAgICB0aGlzLmFuaW1CYWNrVG9wU2Nyb2xsSW5kaWNhdG9yKCk7XHJcblxyXG4gICAgICAvKiBzdGF0aXN0aWNzIGl0ZW1zICovXHJcbiAgICAgIHRoaXMuYW5pbVN0YXRpc3RpY3NJdGVtcygpO1xyXG5cclxuICAgICAgLyogc2VjdGlvbiB0ZXh0IGJveCAqL1xyXG4gICAgICB0aGlzLmFuaW1TZWN0aW9uVGV4dEJveCgpO1xyXG5cclxuICAgICAgLyogYWJvdXQgaW1hZ2UgKi9cclxuICAgICAgdGhpcy5hbmltQWJvdXRJbWFnZSgpO1xyXG5cclxuICAgICAgLyogc2tpbGxzIGl0ZW1zICovXHJcbiAgICAgIHRoaXMuYW5pbVNraWxsc0l0ZW1zKCk7XHJcblxyXG4gICAgICAvKiBleHBlcmllbmNlIGl0ZW1zIHRpbWVsaW5lICovXHJcbiAgICAgIHRoaXMuYW5pbUV4cGVyaWVuY2VJdGVtc1RpbWVsaW5lKCk7XHJcblxyXG4gICAgICAvKiB0ZXN0aW1vbmlhbHMgc2VjdGlvbiB0aXRsZSAqL1xyXG4gICAgICB0aGlzLmFuaW1UZXN0aW1vbmlhbHNTZWN0aW9uVGl0bGUoKTtcclxuXHJcbiAgICAgIC8qIHRlc3RpbW9uaWFscyBpdGVtcyAqL1xyXG4gICAgICB0aGlzLmFuaW1UZXN0aW1vbmlhbHNJdGVtcygpO1xyXG5cclxuICAgICAgLyogY29udGFjdCBpbmZvICovXHJcbiAgICAgIHRoaXMuYW5pbUNvbnRhY3RJbmZvKCk7XHJcblxyXG4gICAgICAvKiBjb250YWN0IGZvcm0gKi9cclxuICAgICAgdGhpcy5hbmltQ29udGFjdEZvcm0oKTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gYmFjayB0byB0b3Agc2Nyb2xsIGluZGljYXRvclxyXG4gICAgYW5pbUJhY2tUb3BTY3JvbGxJbmRpY2F0b3IoKSB7XHJcbiAgICAgIGNvbnN0IGJhY2tUb3BCdG4gPSB0aGlzLiRyZWZzLnNjcm9sbFRvcEJ0bjtcclxuXHJcbiAgICAgIGlmICghYmFja1RvcEJ0bikgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIGNvbnN0IHNob3dBdCA9IGJhY2tUb3BCdG4uZ2V0QXR0cmlidXRlKCdkYXRhLXNob3ctYXQnKTtcclxuICAgICAgY29uc3QgYmFja1RvcEJ0blBhdGggPSBiYWNrVG9wQnRuLnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xyXG4gICAgICBjb25zdCBiYWNrVG9wQnRuUGF0aExlbmd0aCA9IGJhY2tUb3BCdG5QYXRoLmdldFRvdGFsTGVuZ3RoKCk7XHJcblxyXG4gICAgICBnc2FwLmZyb20oYmFja1RvcEJ0biwge1xyXG4gICAgICAgIGVhc2U6IFwibm9uZVwiLFxyXG4gICAgICAgIGR1cmF0aW9uOiAwLjMsXHJcbiAgICAgICAgYXV0b0FscGhhOiAwLFxyXG4gICAgICAgIHk6IDEwLFxyXG4gICAgICAgIHNjcm9sbFRyaWdnZXI6IHtcclxuICAgICAgICAgIHRyaWdnZXI6IFwiI2FwcC1pbm5lclwiLFxyXG4gICAgICAgICAgc3RhcnQ6IGAke3Nob3dBdH1weCB0b3BgLFxyXG4gICAgICAgICAgZW5kOiBcImJvdHRvbSBib3R0b21cIixcclxuICAgICAgICAgIHRvZ2dsZUFjdGlvbnM6IFwicGxheSBub25lIG5vbmUgcmV2ZXJzZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZ3NhcC5zZXQoYmFja1RvcEJ0blBhdGgsIHtcclxuICAgICAgICBzdHJva2VEYXNoYXJyYXk6IGJhY2tUb3BCdG5QYXRoTGVuZ3RoLFxyXG4gICAgICAgIHN0cm9rZURhc2hvZmZzZXQ6IGJhY2tUb3BCdG5QYXRoTGVuZ3RoLFxyXG4gICAgICAgIHNjcm9sbFRyaWdnZXI6IHtcclxuICAgICAgICAgIHRyaWdnZXI6IFwiI2FwcC1pbm5lclwiLFxyXG4gICAgICAgICAgc3RhcnQ6IGAke3Nob3dBdH1weCB0b3BgLFxyXG4gICAgICAgICAgZW5kOiBcImJvdHRvbSBib3R0b21cIixcclxuICAgICAgICAgIG9uVXBkYXRlOiAoc2VsZikgPT4gYmFja1RvcEJ0blBhdGguc3R5bGUuc3Ryb2tlRGFzaG9mZnNldCA9IGJhY2tUb3BCdG5QYXRoTGVuZ3RoIC0gKHNlbGYucHJvZ3Jlc3MgKiBiYWNrVG9wQnRuUGF0aExlbmd0aCksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHN0YXRpc3RpY3MgaXRlbXNcclxuICAgIGFuaW1TdGF0aXN0aWNzSXRlbXMoKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRpc3RpY3NJdGVtcyA9IGdzYXAudXRpbHMudG9BcnJheShcIi5zdGF0aXN0aWNzLXNlY3Rpb24gLnN0YXRpc3RpY3MtaXRlbXMgbGlcIik7XHJcblxyXG4gICAgICBpZiAoIXN0YXRpc3RpY3NJdGVtcy5sZW5ndGgpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICBjb25zdCBzdGF0aXN0aWNzSXRlbXNUTCA9IGdzYXAudGltZWxpbmUoe1xyXG4gICAgICAgIHNjcm9sbFRyaWdnZXI6IHtcclxuICAgICAgICAgIHRyaWdnZXI6IFwiLnN0YXRpc3RpY3MtaXRlbXNcIixcclxuICAgICAgICAgIHN0YXJ0OiBcInRvcCA4MiVcIixcclxuICAgICAgICAgIGVuZDogXCJ0b3AgNTAlXCIsXHJcbiAgICAgICAgICBzY3J1YjogMC4zLFxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBzdGF0aXN0aWNzSXRlbXMuZm9yRWFjaCgoZWwsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBwb3MgPSBpID09PSAwID8gXCJcIiA6IFwiPCArPTAuMlwiO1xyXG4gICAgICAgIHN0YXRpc3RpY3NJdGVtc1RMLmZyb20oZWwsIHsgYXV0b0FscGhhOiAwIH0sIHBvcykuZnJvbShlbCwgeyB5OiA1MCwgfSwgXCI8XCIpO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gc2VjdGlvbiB0ZXh0IGJveFxyXG4gICAgYW5pbVNlY3Rpb25UZXh0Qm94KCkge1xyXG4gICAgICBjb25zdCB0ZXh0Qm94ZXMgPSBnc2FwLnV0aWxzLnRvQXJyYXkoXCIudGV4dC1ib3gtaW5saW5lXCIpO1xyXG5cclxuICAgICAgaWYgKCF0ZXh0Qm94ZXMubGVuZ3RoKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgdGV4dEJveGVzLmZvckVhY2goYm94ID0+IHtcclxuICAgICAgICBnc2FwLnRpbWVsaW5lKHtcclxuICAgICAgICAgIHNjcm9sbFRyaWdnZXI6IHtcclxuICAgICAgICAgICAgdHJpZ2dlcjogYm94LFxyXG4gICAgICAgICAgICBzdGFydDogXCJ0b3AgODUlXCIsXHJcbiAgICAgICAgICAgIGVuZDogXCJ0b3AgMzUlXCIsXHJcbiAgICAgICAgICAgIHNjcnViOiAwLjMsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC5mcm9tKGJveC5xdWVyeVNlbGVjdG9yKFwiLnN1YnRpdGxlXCIpLCB7IGF1dG9BbHBoYTogMCwgdG9wOiA1MCB9KVxyXG4gICAgICAgICAgLmZyb20oYm94LnF1ZXJ5U2VsZWN0b3IoXCJoMlwiKSwgeyBhdXRvQWxwaGE6IDAsIHk6IDUwIH0sIFwiLT0wLjJcIilcclxuICAgICAgICAgIC5mcm9tKGJveC5xdWVyeVNlbGVjdG9yQWxsKFwiaDIgfiAqXCIpLCB7IGF1dG9BbHBoYTogMCwgeTogNTAsIHN0YWdnZXI6IDAuMiB9LCBcIi09MC4yXCIpO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gYWJvdXQgaW1hZ2VcclxuICAgIGFuaW1BYm91dEltYWdlKCkge1xyXG4gICAgICBpZiAoIXRoaXMuJHJlZnMuYWJvdXRTZWN0aW9uKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgZ3NhcC50aW1lbGluZSh7XHJcbiAgICAgICAgc2Nyb2xsVHJpZ2dlcjoge1xyXG4gICAgICAgICAgdHJpZ2dlcjogXCIuYWJvdXQtc2VjdGlvbiAuYWJvdXQtaW1nXCIsXHJcbiAgICAgICAgICBzdGFydDogXCJ0b3AgODAlXCIsXHJcbiAgICAgICAgICBlbmQ6IFwidG9wIDUwJVwiLFxyXG4gICAgICAgICAgc2NydWI6IDAuMyxcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmZyb20oXCIuYWJvdXQtc2VjdGlvbiAuYWJvdXQtaW1nXCIsIHsgYXV0b0FscGhhOiAwLCBzY2FsZTogMC41IH0pO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBza2lsbHMgaXRlbXNcclxuICAgIGFuaW1Ta2lsbHNJdGVtcygpIHtcclxuICAgICAgY29uc3Qgc2tpbGxzR3JvdXBzID0gZ3NhcC51dGlscy50b0FycmF5KFwiLnNraWxscy1zZWN0aW9uIC5za2lsbHMtaXRlbXMgdWxcIik7XHJcblxyXG4gICAgICBpZiAoIXNraWxsc0dyb3Vwcy5sZW5ndGgpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICBza2lsbHNHcm91cHMuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2tpbGxzSXRlbXNUTCA9IGdzYXAudGltZWxpbmUoe1xyXG4gICAgICAgICAgc2Nyb2xsVHJpZ2dlcjoge1xyXG4gICAgICAgICAgICB0cmlnZ2VyOiBcIi5za2lsbHMtc2VjdGlvbiAuc2tpbGxzLWl0ZW1zXCIsXHJcbiAgICAgICAgICAgIHN0YXJ0OiBcInRvcCA4NSVcIixcclxuICAgICAgICAgICAgZW5kOiBcInRvcCAzNSVcIixcclxuICAgICAgICAgICAgc2NydWI6IDAuMyxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZ3JvdXAucXVlcnlTZWxlY3RvckFsbChcImxpXCIpLmZvckVhY2goKGVsLCBpKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwb3MgPSBpID09PSAwID8gXCJcIiA6IFwiPCArPTAuMlwiO1xyXG4gICAgICAgICAgc2tpbGxzSXRlbXNUTC5mcm9tKGVsLCB7IGF1dG9BbHBoYTogMCB9LCBwb3MpLmZyb20oZWwsIHsgeTogNTAsIH0sIFwiPFwiKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIGV4cGVyaWVuY2UgaXRlbXMgdGltZWxpbmVcclxuICAgIGFuaW1FeHBlcmllbmNlSXRlbXNUaW1lbGluZSgpIHtcclxuICAgICAgY29uc3QgZXhwZXJpZW5jZVRpbWVwYXRoID0gdGhpcy4kcmVmcy5leHBlcmllbmNlVGltZXBhdGg7XHJcbiAgICAgIGNvbnN0IGV4cGVyaWVuY2VJdGVtcyA9IGdzYXAudXRpbHMudG9BcnJheShcIi5leHBlcmllbmNlLXRpbWVsaW5lIC50aW1lbGluZS1pdGVtcyBsaVwiKTtcclxuICAgICAgbGV0IGV4cGVyaWVuY2VUaW1lcGF0aFRMO1xyXG4gICAgICBsZXQgZXhwZXJpZW5jZUl0ZW1zVEw7XHJcbiAgICAgIGxldCBtYWluRXhwZXJpZW5jZVRMO1xyXG5cclxuICAgICAgaWYgKGV4cGVyaWVuY2VUaW1lcGF0aCB8fCBleHBlcmllbmNlSXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgbWFpbkV4cGVyaWVuY2VUTCA9IGdzYXAudGltZWxpbmUoe1xyXG4gICAgICAgICAgc2Nyb2xsVHJpZ2dlcjoge1xyXG4gICAgICAgICAgICB0cmlnZ2VyOiBcIi5leHBlcmllbmNlLXNlY3Rpb24gLmV4cGVyaWVuY2UtdGltZWxpbmVcIixcclxuICAgICAgICAgICAgc3RhcnQ6IFwidG9wIDg1JVwiLFxyXG4gICAgICAgICAgICBlbmQ6IFwidG9wIDM1JVwiLFxyXG4gICAgICAgICAgICBzY3J1YjogMC4zLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZXhwZXJpZW5jZVRpbWVwYXRoKSB7XHJcbiAgICAgICAgY29uc3QgZXhwZXJpZW5jZVRpbWVwYXRoSXRlbXMgPSBnc2FwLnV0aWxzLnRvQXJyYXkoXCIuZXhwZXJpZW5jZS10aW1lbGluZSAudGltZXBhdGggc3BhblwiKTtcclxuICAgICAgICBleHBlcmllbmNlVGltZXBhdGhUTCA9IGdzYXAudGltZWxpbmUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZG9jRGlyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcjtcclxuICAgICAgICBjb25zdCBmcm9tRGlyID0gZG9jRGlyID09PSBcInJ0bFwiID8gXCJyZXZlcnNlXCIgOiBcImZyb21cIjtcclxuICAgICAgICBjb25zdCByZXZlcnNlRGlyID0gZG9jRGlyID09PSBcInJ0bFwiID8gXCJmcm9tXCIgOiBcInJldmVyc2VcIjtcclxuICAgICAgICBjb25zdCBjb29yZHMgPSB7XHJcbiAgICAgICAgICB4OiB7XHJcbiAgICAgICAgICAgIGZyb206IFwicG9seWdvbigwJSAwJSwgMCUgMCUsIDAlIDEwMCUsIDAlIDEwMCUpXCIsXHJcbiAgICAgICAgICAgIHJldmVyc2U6IFwicG9seWdvbigxMDAlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUsIDEwMCUgMTAwJSlcIixcclxuICAgICAgICAgICAgdG86IFwicG9seWdvbigwJSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCAwJSAxMDAlKVwiLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGM6IHtcclxuICAgICAgICAgICAgZnJvbTogXCJwb2x5Z29uKDAlIDAlLCAwJSAwJSwgMCUgMCUsIDAlIDAlLCAwJSA3NSUsIDAlIDc1JSwgMCUgNzUlLCAwJSA3NSUpXCIsXHJcbiAgICAgICAgICAgIHJldmVyc2U6IFwicG9seWdvbigxMDAlIDAlLCAxMDAlIDAlLCAxMDAlIDAlLCAxMDAlIDAlLCAxMDAlIDc1JSwgMTAwJSA3NSUsIDEwMCUgNzUlLCAxMDAlIDc1JSlcIixcclxuICAgICAgICAgICAgdG86IHtcclxuICAgICAgICAgICAgICBmcm9tOiB7XHJcbiAgICAgICAgICAgICAgICBzdDE6IFwicG9seWdvbigwJSAwJSwgMTAwJSAwJSwgMTAwJSAwJSwgMTAwJSAwJSwgMTAwJSAwJSwgNzUlIDI1JSwgNzUlIDI1JSwgMCUgMjUlKVwiLFxyXG4gICAgICAgICAgICAgICAgc3QyOiBcInBvbHlnb24oMCUgMCUsIDEwMCUgMCUsIDEwMCUgMTAwJSwgMTAwJSAxMDAlLCA3NSUgNzUlLCA3NSUgNzUlLCA3NSUgMjUlLCAwJSAyNSUpXCIsXHJcbiAgICAgICAgICAgICAgICBzdDM6IFwicG9seWdvbigwJSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCAwJSAxMDAlLCAwJSA3NSUsIDc1JSA3NSUsIDc1JSAyNSUsIDAlIDI1JSlcIixcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHJldmVyc2U6IHtcclxuICAgICAgICAgICAgICAgIHN0MTogXCJwb2x5Z29uKDEwMCUgMCUsIDAlIDAlLCAwJSAwJSwgMCUgMCUsIDAlIDAlLCAyNSUgMjUlLCAyNSUgMjUlLCAxMDAlIDI1JSlcIixcclxuICAgICAgICAgICAgICAgIHN0MjogXCJwb2x5Z29uKDEwMCUgMCUsIDAlIDAlLCAwJSAxMDAlLCAwJSAxMDAlLCAyNSUgNzUlLCAyNSUgNzUlLCAyNSUgMjUlLCAxMDAlIDI1JSlcIixcclxuICAgICAgICAgICAgICAgIHN0MzogXCJwb2x5Z29uKDEwMCUgMCUsIDAlIDAlLCAwJSAxMDAlLCAxMDAlIDEwMCUsIDEwMCUgNzUlLCAyNSUgNzUlLCAyNSUgMjUlLCAxMDAlIDI1JSlcIixcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGxpbmVPZGQgPSBbLi4uZXhwZXJpZW5jZVRpbWVwYXRoLnF1ZXJ5U2VsZWN0b3JBbGwoXCIubGluZTpudGgtb2YtdHlwZSg0biArIDEpXCIpXTtcclxuICAgICAgICBjb25zdCBsaW5lRXZlbiA9IFsuLi5leHBlcmllbmNlVGltZXBhdGgucXVlcnlTZWxlY3RvckFsbChcIi5saW5lOm50aC1vZi10eXBlKDRuICsgMylcIildO1xyXG4gICAgICAgIGNvbnN0IHNlbWljaXJjbGVPZGQgPSBbLi4uZXhwZXJpZW5jZVRpbWVwYXRoLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2VtaWNpcmNsZTpudGgtb2YtdHlwZSg0biArIDIpXCIpXTtcclxuICAgICAgICBjb25zdCBzZW1pY2lyY2xlRXZlbiA9IFsuLi5leHBlcmllbmNlVGltZXBhdGgucXVlcnlTZWxlY3RvckFsbChcIi5zZW1pY2lyY2xlOm50aC1vZi10eXBlKDRuICsgNClcIildO1xyXG4gICAgICAgIGV4cGVyaWVuY2VUaW1lcGF0aFRMXHJcbiAgICAgICAgICAuc2V0KGV4cGVyaWVuY2VUaW1lcGF0aEl0ZW1zLCB7IGF1dG9BbHBoYTogMSB9KVxyXG4gICAgICAgICAgLnNldChsaW5lT2RkLCB7IGNsaXBQYXRoOiBjb29yZHMueFtmcm9tRGlyXSB9KVxyXG4gICAgICAgICAgLnNldChsaW5lRXZlbiwgeyBjbGlwUGF0aDogY29vcmRzLnhbcmV2ZXJzZURpcl0gfSlcclxuICAgICAgICAgIC5zZXQoc2VtaWNpcmNsZU9kZCwgeyBjbGlwUGF0aDogY29vcmRzLmNbZnJvbURpcl0gfSlcclxuICAgICAgICAgIC5zZXQoc2VtaWNpcmNsZUV2ZW4sIHsgY2xpcFBhdGg6IGNvb3Jkcy5jW3JldmVyc2VEaXJdIH0pO1xyXG5cclxuICAgICAgICBleHBlcmllbmNlVGltZXBhdGhJdGVtcy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICAgIGlmIChsaW5lT2RkLmluY2x1ZGVzKGVsKSB8fCBsaW5lRXZlbi5pbmNsdWRlcyhlbCkpIHtcclxuICAgICAgICAgICAgZXhwZXJpZW5jZVRpbWVwYXRoVEwudG8oZWwsIHsgY2xpcFBhdGg6IGNvb3Jkcy54LnRvIH0pO1xyXG5cclxuICAgICAgICAgIH0gZWxzZSBpZiAoc2VtaWNpcmNsZU9kZC5pbmNsdWRlcyhlbCkpIHtcclxuICAgICAgICAgICAgZXhwZXJpZW5jZVRpbWVwYXRoVExcclxuICAgICAgICAgICAgICAudG8oZWwsIHsgY2xpcFBhdGg6IGNvb3Jkcy5jLnRvW2Zyb21EaXJdLnN0MSB9KVxyXG4gICAgICAgICAgICAgIC50byhlbCwgeyBjbGlwUGF0aDogY29vcmRzLmMudG9bZnJvbURpcl0uc3QyIH0pXHJcbiAgICAgICAgICAgICAgLnRvKGVsLCB7IGNsaXBQYXRoOiBjb29yZHMuYy50b1tmcm9tRGlyXS5zdDMgfSk7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIGlmIChzZW1pY2lyY2xlRXZlbi5pbmNsdWRlcyhlbCkpIHtcclxuICAgICAgICAgICAgZXhwZXJpZW5jZVRpbWVwYXRoVExcclxuICAgICAgICAgICAgICAudG8oZWwsIHsgY2xpcFBhdGg6IGNvb3Jkcy5jLnRvW3JldmVyc2VEaXJdLnN0MSB9KVxyXG4gICAgICAgICAgICAgIC50byhlbCwgeyBjbGlwUGF0aDogY29vcmRzLmMudG9bcmV2ZXJzZURpcl0uc3QyIH0pXHJcbiAgICAgICAgICAgICAgLnRvKGVsLCB7IGNsaXBQYXRoOiBjb29yZHMuYy50b1tyZXZlcnNlRGlyXS5zdDMgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1haW5FeHBlcmllbmNlVEwuYWRkKGV4cGVyaWVuY2VUaW1lcGF0aFRMKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGV4cGVyaWVuY2VJdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICBleHBlcmllbmNlSXRlbXNUTCA9IGdzYXAudGltZWxpbmUoKTtcclxuXHJcbiAgICAgICAgZXhwZXJpZW5jZUl0ZW1zLmZvckVhY2goZWwgPT4ge1xyXG4gICAgICAgICAgZXhwZXJpZW5jZUl0ZW1zVEwuZnJvbShlbCwgeyBhdXRvQWxwaGE6IDAgfSkuZnJvbShlbCwgeyBzY2FsZTogMC4yLCB9LCBcIjxcIik7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1haW5FeHBlcmllbmNlVEwuYWRkKGV4cGVyaWVuY2VJdGVtc1RMLCBcIjwgKz0wLjVcIik7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy8gdGVzdGltb25pYWxzIHNlY3Rpb24gdGl0bGVcclxuICAgIGFuaW1UZXN0aW1vbmlhbHNTZWN0aW9uVGl0bGUoKSB7XHJcbiAgICAgIGlmICghdGhpcy4kcmVmcy50ZXN0aW1vbmlhbHNTZWN0aW9uKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgZ3NhcC50aW1lbGluZSh7XHJcbiAgICAgICAgc2Nyb2xsVHJpZ2dlcjoge1xyXG4gICAgICAgICAgdHJpZ2dlcjogXCIudGVzdGltb25pYWxzLXNlY3Rpb24gLnNlY3Rpb24tdGl0bGVcIixcclxuICAgICAgICAgIHN0YXJ0OiBcInRvcCA5MCVcIixcclxuICAgICAgICAgIGVuZDogXCJ0b3AgNDAlXCIsXHJcbiAgICAgICAgICBzY3J1YjogMC4zLFxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgICAuZnJvbShcIi50ZXN0aW1vbmlhbHMtc2VjdGlvbiAuc2VjdGlvbi10aXRsZSAuc3VidGl0bGVcIiwgeyBhdXRvQWxwaGE6IDAsIHRvcDogNTAgfSlcclxuICAgICAgICAuZnJvbShcIi50ZXN0aW1vbmlhbHMtc2VjdGlvbiAuc2VjdGlvbi10aXRsZSAudGl0bGVcIiwgeyBhdXRvQWxwaGE6IDAsIHk6IDUwIH0sIFwiPCArPTAuMlwiKTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gdGVzdGltb25pYWxzIGl0ZW1zXHJcbiAgICBhbmltVGVzdGltb25pYWxzSXRlbXMoKSB7XHJcbiAgICAgIGlmICghdGhpcy4kcmVmcy50ZXN0aW1vbmlhbHNTZWN0aW9uKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgY29uc3QgdGVzdGltb25pYWxzSXRlbXMgPSBnc2FwLnV0aWxzLnRvQXJyYXkoXCIudGVzdGltb25pYWxzLXNlY3Rpb24gLnRlc3RpbW9uaWFscy1pdGVtXCIpO1xyXG4gICAgICBjb25zdCB0ZXN0aW1vbmlhbHNJdGVtc1RMID0gZ3NhcC50aW1lbGluZSh7XHJcbiAgICAgICAgc2Nyb2xsVHJpZ2dlcjoge1xyXG4gICAgICAgICAgdHJpZ2dlcjogXCIudGVzdGltb25pYWxzLXNlY3Rpb24gLnRlc3RpbW9uaWFscy1pdGVtc1wiLFxyXG4gICAgICAgICAgc3RhcnQ6IFwidG9wIDc1JVwiLFxyXG4gICAgICAgICAgZW5kOiBcInRvcCAyNSVcIixcclxuICAgICAgICAgIHNjcnViOiAwLjMsXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRlc3RpbW9uaWFsc0l0ZW1zLmZvckVhY2goKGVsLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcG9zID0gaSA9PT0gMCA/IFwiXCIgOiBcIjwgKz0wLjJcIjtcclxuICAgICAgICB0ZXN0aW1vbmlhbHNJdGVtc1RMLmZyb20oZWwsIHsgYXV0b0FscGhhOiAwIH0sIHBvcykuZnJvbShlbCwgeyBzY2FsZTogMC4yLCB9LCBcIjxcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBjb250YWN0IGluZm9cclxuICAgIGFuaW1Db250YWN0SW5mbygpIHtcclxuICAgICAgY29uc3QgY29udGFjdEluZm9JdGVtcyA9IGdzYXAudXRpbHMudG9BcnJheShcIi5jb250YWN0LXNlY3Rpb24gLmNvbnRhY3QtaW5mbyBsaVwiKTtcclxuXHJcbiAgICAgIGlmICghY29udGFjdEluZm9JdGVtcy5sZW5ndGgpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICBjb25zdCBjb250YWN0SW5mb1RMID0gZ3NhcC50aW1lbGluZSh7XHJcbiAgICAgICAgc2Nyb2xsVHJpZ2dlcjoge1xyXG4gICAgICAgICAgdHJpZ2dlcjogXCIuY29udGFjdC1zZWN0aW9uIC5jb250YWN0LWluZm9cIixcclxuICAgICAgICAgIHN0YXJ0OiBcInRvcCA4MCVcIixcclxuICAgICAgICAgIGVuZDogXCJ0b3AgNTAlXCIsXHJcbiAgICAgICAgICBzY3J1YjogMC4zLFxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb250YWN0SW5mb0l0ZW1zLmZvckVhY2goKGVsLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcG9zID0gaSA9PT0gMCA/IFwiXCIgOiBcIjwgKz0wLjJcIjtcclxuICAgICAgICBjb250YWN0SW5mb1RMLmZyb20oZWwsIHsgYXV0b0FscGhhOiAwIH0scG9zKS5mcm9tKGVsLCB7IHk6IDUwLCB9LCBcIjxcIik7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gc29jaWFsIGljb25zIGFuaW1hdGlvblxyXG4gICAgICBjb250YWN0SW5mb1RMXHJcbiAgICAgICAgLmZyb20oXCIuY29udGFjdC1zZWN0aW9uIC5jb250YWN0LXRleHQgLnNvY2lhbCBsaVwiLCB7IGF1dG9BbHBoYTogMCB9KVxyXG4gICAgICAgIC5mcm9tKFwiLmNvbnRhY3Qtc2VjdGlvbiAuY29udGFjdC10ZXh0IC5zb2NpYWwgbGlcIiwgeyB5OiA1MCwgc3RhZ2dlcjogMC4yIH0sIFwiPFwiKTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gY29udGFjdCBmb3JtXHJcbiAgICBhbmltQ29udGFjdEZvcm0oKSB7XHJcbiAgICAgIGlmICghdGhpcy4kcmVmcy5jb250YWN0Rm9ybSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIGdzYXAudGltZWxpbmUoe1xyXG4gICAgICAgIHNjcm9sbFRyaWdnZXI6IHtcclxuICAgICAgICAgIHRyaWdnZXI6IFwiLmNvbnRhY3Qtc2VjdGlvbiAuY29udGFjdC1mb3JtXCIsXHJcbiAgICAgICAgICBzdGFydDogXCJ0b3AgODAlXCIsXHJcbiAgICAgICAgICBlbmQ6IFwidG9wIDUwJVwiLFxyXG4gICAgICAgICAgc2NydWI6IDAuMyxcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmZyb20oXCIuY29udGFjdC1zZWN0aW9uIC5jb250YWN0LWZvcm1cIiwgeyBhdXRvQWxwaGE6IDAsIHNjYWxlOiAwLjcgfSk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLyogdnVlIGFwcCAqL1xyXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbmltcG9ydCBhbmltYXRpb25zTWl4aW4gZnJvbSBcIi4vYW5pbWF0aW9ucy5taXhpblwiO1xyXG5cclxuY29uc3QgYXBwID0gVnVlLmNyZWF0ZUFwcCh7XHJcbiAgbWl4aW5zOiBbYW5pbWF0aW9uc01peGluXSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLy8gdGhlIGRhdGUgbXkgY2FyZWVyIHN0YXJ0ZWQgKGNoYW5nZSB0byB5b3VycylcclxuICAgICAgY2FyZWVyU3RhcnREYXRlOiAyMDEwLFxyXG5cclxuICAgICAgLy8gdGhlIGRhdGUgY29weXJpZ2h0IHN0YXJ0ZWQgKGNoYW5nZSB0byB5b3VycylcclxuICAgICAgY29weXJpZ2h0U3RhcnREYXRlOiAyMDIxLFxyXG5cclxuICAgICAgLy8gZm9yIHRoZSB0ZW1wbGF0ZSB0aGVtZVxyXG4gICAgICBhcHBUaGVtZTogJ2xpZ2h0X3RoZW1lJyxcclxuICAgICAgc2F2ZWRUaGVtZTogbnVsbCxcclxuXHJcbiAgICAgIC8vIGZsYWcgdG8gdG9nZ2xlIHRoZSBwcmVsb2FkZXJcclxuICAgICAgaXNQcmVsb2FkaW5nOiB0cnVlLFxyXG5cclxuICAgICAgLy8gdG9hc3Qgbm90aWZpY2F0aW9ucyBhcnJheVxyXG4gICAgICBub3RpZmljYXRpb25zOiBbXSxcclxuXHJcbiAgICAgIC8vIG1hbmFnZSBsb2FkaW5nIHNwaW5uZXIgc3RhdHVzXHJcbiAgICAgIGFqYXhMb2FkaW5nOiBbXSxcclxuXHJcbiAgICAgIC8vIGZvciBtaW5pbWl6aW5nIHRoZSBoZWFkZXIgb24gc2Nyb2xsaW5nIGRvd25cclxuICAgICAgc3RhcnRNaW5pbWl6aW5nSGVhZGVyQXQ6IDEwMCxcclxuICAgICAgaXNIZWFkZXJCaWc6IHRydWUsXHJcbiAgICAgIC8vIGZvciB0b2dnbGluZyB0aGUgaGVhZGVyIG9uIHNjcm9sbGluZyBkb3duXHJcbiAgICAgIGxhc3RTY3JvbGxQb3NpdGlvbjogMCxcclxuICAgICAgaXNIZWFkZXJIaWRkZW46IGZhbHNlLFxyXG5cclxuICAgICAgLy8gZmxhZyB0byB0b2dnbGUgZm9jdXMgc3R5bGUgY2xhc3NcclxuICAgICAgaXNBbnlGb2N1czogZmFsc2UsXHJcblxyXG4gICAgICAvLyBmbGFnIHRvIHRvZ2dsZSBuYXYgbWVudVxyXG4gICAgICBpc05hdk1lbnVPcGVuOiBmYWxzZSxcclxuXHJcbiAgICAgIC8vIGxpc3Qgb2YgbmF2IGxpbmtzIHRvIGxvb3AgdGhyb3VnaCBpdFxyXG4gICAgICBuYXZMaW5rczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVybDogJyNoZXJvJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnSG9tZScsIGFyOiAn2KfZhNix2KbZitiz2YrYqScgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIHVybDogJyNhYm91dCcsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0Fib3V0JywgYXI6ICfZhdmGINij2YbYpycgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIHVybDogJyNza2lsbHMnLFxyXG4gICAgICAgICAgdGl0bGU6IHsgZW46ICdTa2lsbHMnLCBhcjogJ9mF2YfYp9ix2KfYqtmKJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgdXJsOiAnI3BvcnRmb2xpbycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ1BvcnRmb2xpbycsIGFyOiAn2KPYudmF2KfZhNmKJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgdXJsOiAnI2NvbnRhY3QnLFxyXG4gICAgICAgICAgdGl0bGU6IHsgZW46ICdDb250YWN0JywgYXI6ICfYp9iq2LXZhCDYqNmKJyB9XHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG5cclxuICAgICAgLy8gZmxhZyB0byB0b2dnbGUgYmV0d2VlbiBza2lsbHMgdHlwZXMgaW4gc2tpbGxzIHNlY3Rpb25cclxuICAgICAgc2tpbGxzVHlwZTogJycsXHJcblxyXG4gICAgICAvLyBsaXN0IG9mIHNraWxscyBpdGVtcyB0byBsb29wIHRocm91Z2ggaXRcclxuICAgICAgc2tpbGxzSXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3NraWxscy9odG1sNS5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdIVE1MNSdcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3NraWxscy9jc3MzLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogJ0NTUzMnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvamF2YXNjcmlwdC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdKYXZhU2NyaXB0J1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3R5cGVzY3JpcHQucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnVHlwZVNjcmlwdCdcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3NraWxscy9qcXVlcnkucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnalF1ZXJ5J1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL2Jvb3RzdHJhcC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdCb290c3RyYXAnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvYW5ndWxhci5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdBbmd1bGFyJ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3JlYWN0LnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogJ1JlYWN0J1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3Z1ZS5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdWdWUnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvZmlyZWJhc2UucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnRmlyZWJhc2UnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvcHVnanMucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnUHVnSlMnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvc2Fzcy5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdTQVNTJ1xyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuXHJcbiAgICAgIC8vIGxpc3Qgb2YgdG9vbHMgaXRlbXMgdG8gbG9vcCB0aHJvdWdoIGl0XHJcbiAgICAgIHRvb2xzSXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3NraWxscy9hamF4LnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogJ0FqYXgnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvZ3VscC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdHdWxwJ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3dlYnBhY2sucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnV2VicGFjaydcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3NraWxscy9naXQucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnR2l0IChHaXRodWIpJ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL25wbS5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdOcG0nXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvY29tbWFuZC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdDb21tYW5kIExpbmUnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvdnMtY29kZS5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdWUyBDb2RlJ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3RyZWxsby5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdUcmVsbG8nXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvY2xpY2t1cC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdDbGlja1VwJ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3NsYWNrLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogJ1NsYWNrJ1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvc2tpbGxzL3Bob3Rvc2hvcC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6ICdQaG90b3Nob3AnXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9za2lsbHMvYWRvYmUteGQucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiAnQWRvYmUgWEQnXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG5cclxuICAgICAgLy8gbGlzdCBvZiBleHBlcmllbmNlIGl0ZW1zIHRvIGxvb3AgdGhyb3VnaCBpdFxyXG4gICAgICBleHBlcmllbmNlSXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBkYXRlOiAnMjAxMCcsXHJcbiAgICAgICAgICBjb21wYW55TmFtZTogeyBlbjogJ0dvb2dsZSBJbmMuJywgYXI6ICfYtNix2YPYqSDYrNmI2KzZhCcgfSxcclxuICAgICAgICAgIGpvYlRpdGxlOiB7IGVuOiAnRnJvbnQtRW5kIERldmVsb3BlcicsIGFyOiAn2YXYt9mI2LEg2KfZhNmI2KfYrNmH2Kkg2KfZhNij2YXYp9mF2YrYqScgfSxcclxuICAgICAgICAgIGRlc2M6IHtcclxuICAgICAgICAgICAgZW46ICdNb25pdG9yZWQgdGVjaG5pY2FsIGFzcGVjdHMgb2YgdGhlIGZyb250LWVuZCBkZWxpdmVyeSBmb3IgcHJvamVjdHMuJyxcclxuICAgICAgICAgICAgYXI6ICfZhdix2KfZgtio2Kkg2KfZhNis2YjYp9mG2Kgg2KfZhNmB2YbZitipINmE2KrYt9mI2YrYsSDYp9mE2YjYp9is2YfYp9iqINin2YTYo9mF2KfZhdmK2Kkg2YTZhNmF2LTYp9ix2YrYuS4nXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgZGF0ZTogJzIwMTInLFxyXG4gICAgICAgICAgY29tcGFueU5hbWU6IHsgZW46ICdGYWNlYm9vayBJbmMuJywgYXI6ICfYtNix2YPYqSDZgdmK2LPYqNmI2YMnIH0sXHJcbiAgICAgICAgICBqb2JUaXRsZTogeyBlbjogJ0Z1bGwgU3RhY2sgRGV2ZWxvcGVyJywgYXI6ICfZhdi32YjZkdixINin2YTZiNmK2Kgg2KfZhNmF2KrZg9in2YXZhCcgfSxcclxuICAgICAgICAgIGRlc2M6IHtcclxuICAgICAgICAgICAgZW46ICdDb2xsYWJvcmF0ZSB3aXRoIGNyZWF0aXZlIGFuZCBkZXZlbG9wbWVudCB0ZWFtcyBvbiB0aGUgZXhlY3V0aW9uIG9mIGlkZWFzLicsXHJcbiAgICAgICAgICAgIGFyOiAn2KrYudin2YjZhtiqINmF2Lkg2KfZhNmB2LHZgiDYp9mE2KXYqNiv2KfYudmK2Kkg2YHZiiDYqti32YjZitixINmI2KrZhtmB2YrYsCDYo9mB2YPYp9ixINmF2KjYqtmD2LHYqS4nXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgZGF0ZTogJzIwMTQnLFxyXG4gICAgICAgICAgY29tcGFueU5hbWU6IHsgZW46ICdFbnZhdG8gSW5jLicsIGFyOiAn2LTYsdmD2Kkg2KfZhtmB2KfYqtmIJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdVSS9VWCBEZXZlbG9wZXInLCBhcjogJ9mF2LfZiNixIFVJL1VYJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0NvbnZlcnRlZCBQaG90b3Nob3AgbGF5b3V0cyB0byB3ZWIgcGFnZXMgdXNpbmcgSFRNTCwgQ1NTLCBhbmQgSmF2YVNjcmlwdC4nLFxyXG4gICAgICAgICAgICBhcjogJ9iq2YUg2KrYrdmI2YrZhCDYqtiu2LfZiti32KfYqiBQaG90b3Nob3Ag2KXZhNmJINi12YHYrdin2Kog2YjZitioINio2KfYs9iq2K7Yr9in2YUgSFRNTCDZiCBDU1Mg2YggSmF2YVNjcmlwdC4nXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgZGF0ZTogJzIwMTYnLFxyXG4gICAgICAgICAgY29tcGFueU5hbWU6IHsgZW46ICdHb29nbGUgSW5jLicsIGFyOiAn2LTYsdmD2Kkg2KzZiNis2YQnIH0sXHJcbiAgICAgICAgICBqb2JUaXRsZTogeyBlbjogJ0Zyb250LUVuZCBEZXZlbG9wZXInLCBhcjogJ9mF2LfZiNixINin2YTZiNin2KzZh9ipINin2YTYo9mF2KfZhdmK2KknIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTW9uaXRvcmVkIHRlY2huaWNhbCBhc3BlY3RzIG9mIHRoZSBmcm9udC1lbmQgZGVsaXZlcnkgZm9yIHByb2plY3RzLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YXYsdin2YLYqNipINin2YTYrNmI2KfZhtioINin2YTZgdmG2YrYqSDZhNiq2LfZiNmK2LEg2KfZhNmI2KfYrNmH2KfYqiDYp9mE2KPZhdin2YXZitipINmE2YTZhdi02KfYsdmK2LkuJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGRhdGU6ICcyMDE4JyxcclxuICAgICAgICAgIGNvbXBhbnlOYW1lOiB7IGVuOiAnRmFjZWJvb2sgSW5jLicsIGFyOiAn2LTYsdmD2Kkg2YHZitiz2KjZiNmDJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdGdWxsIFN0YWNrIERldmVsb3BlcicsIGFyOiAn2YXYt9mI2ZHYsSDYp9mE2YjZitioINin2YTZhdiq2YPYp9mF2YQnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnQ29sbGFib3JhdGUgd2l0aCBjcmVhdGl2ZSBhbmQgZGV2ZWxvcG1lbnQgdGVhbXMgb24gdGhlIGV4ZWN1dGlvbiBvZiBpZGVhcy4nLFxyXG4gICAgICAgICAgICBhcjogJ9iq2LnYp9mI2YbYqiDZhdi5INin2YTZgdix2YIg2KfZhNil2KjYr9in2LnZitipINmB2Yog2KrYt9mI2YrYsSDZiNiq2YbZgdmK2LAg2KPZgdmD2KfYsSDZhdio2KrZg9ix2KkuJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGRhdGU6ICcyMDIwJyxcclxuICAgICAgICAgIGNvbXBhbnlOYW1lOiB7IGVuOiAnR29vZ2xlIEluYy4nLCBhcjogJ9i02LHZg9ipINis2YjYrNmEJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdGcm9udC1FbmQgRGV2ZWxvcGVyJywgYXI6ICfZhdi32YjYsSDYp9mE2YjYp9is2YfYqSDYp9mE2KPZhdin2YXZitipJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ01vbml0b3JlZCB0ZWNobmljYWwgYXNwZWN0cyBvZiB0aGUgZnJvbnQtZW5kIGRlbGl2ZXJ5IGZvciBwcm9qZWN0cy4nLFxyXG4gICAgICAgICAgICBhcjogJ9mF2LHYp9mC2KjYqSDYp9mE2KzZiNin2YbYqCDYp9mE2YHZhtmK2Kkg2YTYqti32YjZitixINin2YTZiNin2KzZh9in2Kog2KfZhNij2YXYp9mF2YrYqSDZhNmE2YXYtNin2LHZiti5LidcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBkYXRlOiAnMjAyMicsXHJcbiAgICAgICAgICBjb21wYW55TmFtZTogeyBlbjogJ0ZhY2Vib29rIEluYy4nLCBhcjogJ9i02LHZg9ipINmB2YrYs9io2YjZgycgfSxcclxuICAgICAgICAgIGpvYlRpdGxlOiB7IGVuOiAnRnVsbCBTdGFjayBEZXZlbG9wZXInLCBhcjogJ9mF2LfZiNmR2LEg2KfZhNmI2YrYqCDYp9mE2YXYqtmD2KfZhdmEJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0NvbGxhYm9yYXRlIHdpdGggY3JlYXRpdmUgYW5kIGRldmVsb3BtZW50IHRlYW1zIG9uIHRoZSBleGVjdXRpb24gb2YgaWRlYXMuJyxcclxuICAgICAgICAgICAgYXI6ICfYqti52KfZiNmG2Kog2YXYuSDYp9mE2YHYsdmCINin2YTYpdio2K/Yp9i52YrYqSDZgdmKINiq2LfZiNmK2LEg2YjYqtmG2YHZitiwINij2YHZg9in2LEg2YXYqNiq2YPYsdipLidcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7fSwge31cclxuICAgICAgXSxcclxuXHJcbiAgICAgIC8vIGN1cnJlbnQgcGFnZSBvZiBwb3J0Zm9saW8gaXRlbXNcclxuICAgICAgcG9ydGZvbGlvSXRlbXNQYWdlOiAxLFxyXG5cclxuICAgICAgLy8gcG9ydGZvbGlvIGl0ZW1zIHBlciBwYWdlXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogNyxcclxuXHJcbiAgICAgIC8vIHBvcnRmb2xpbyBpdGVtcyBmaWx0ZXIgYnkgdHlwZVxyXG4gICAgICBmaWx0ZXJzOiBbJ0FsbCcsICdIVE1MJywgJ0FuZ3VsYXInLCAnVnVlJ10sXHJcbiAgICAgIGN1cnJlbnRGaWx0ZXI6ICdBbGwnLFxyXG5cclxuICAgICAgLy8gcG9ydGZvbGlvIGFyY2hpdmUgbmFtZVxyXG4gICAgICBwb3J0Zm9saW9BcmNoaXZlTmFtZTogJycsXHJcblxyXG4gICAgICAvLyBsaXN0IG9mIHBvcnRmb2xpbyBpdGVtcyB0byBsb29wIHRocm91Z2ggaXRcclxuICAgICAgYWxsUG9ydGZvbGlvSXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZDogMSxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD0xJyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDEnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDEnIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnSFRNTCcsXHJcbiAgICAgICAgICB0b29sczogWydIVE1MJywgJ1B1Z0pTJywgJ0NTUycsICdTQ1NTJywgJ0phdmFTY3JpcHQnLCAnR3VscCcsICdCb290c3RyYXAnLCAnQUpBWCcsICdWdWUnLCAnRmlyZWJhc2UnXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogMixcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD0yJyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDInLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDInIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnQW5ndWxhcicsXHJcbiAgICAgICAgICB0b29sczogWydIVE1MJywgJ1NsaW0nLCAnQ1NTJywgJ0xlc3MnLCAnSmF2YVNjcmlwdCcsICdUeXBlU2NyaXB0JywgJ1RhaWx3aW5kQ1NTJywgJ0FKQVgnLCAnQW5ndWxhcicsICdOb2RlSnMnLCAnTW9uZ29EQiddLFxyXG4gICAgICAgICAgc2NyZWVuc2hvdHM6IHtcclxuICAgICAgICAgICAgaW1nMToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA1JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDUnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMjoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTQucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA0JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDQnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMzoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAzJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDMnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNDoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTIucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAyJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDInIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTEucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAxJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDEnIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGlkOiAzLFxyXG4gICAgICAgICAgdXJsOiAnc2luZ2xlLXBvcnRmb2xpby5odG1sP2lkPTMnLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnTG9yZW0gSXBzdW0gRG9sb3IgMycsIGFyOiAn2YfZhtinINi52YbZiNin2YYg2KfZhNmF2LTYsdmI2LkgMycgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdWdWUnLFxyXG4gICAgICAgICAgdG9vbHM6IFsnSFRNTCcsICdQdWdKUycsICdDU1MnLCAnU0NTUycsICdKYXZhU2NyaXB0JywgJ0d1bHAnLCAnTWF0ZXJpYWxpemUnLCAnQUpBWCcsICdWdWUnLCAnRmlyZWJhc2UnXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogNCxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD00JyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDQnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDQnIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnSFRNTCcsXHJcbiAgICAgICAgICB0b29sczogWydIVE1MJywgJ1NsaW0nLCAnQ1NTJywgJ0xlc3MnLCAnSmF2YVNjcmlwdCcsICdUeXBlU2NyaXB0JywgJ1RhaWx3aW5kQ1NTJywgJ0FKQVgnLCAnQW5ndWxhcicsICdOb2RlSnMnLCAnTW9uZ29EQiddLFxyXG4gICAgICAgICAgc2NyZWVuc2hvdHM6IHtcclxuICAgICAgICAgICAgaW1nMToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA1JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDUnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMjoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTQucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA0JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDQnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMzoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAzJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDMnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNDoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTIucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAyJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDInIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTEucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAxJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDEnIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGlkOiA1LFxyXG4gICAgICAgICAgdXJsOiAnc2luZ2xlLXBvcnRmb2xpby5odG1sP2lkPTUnLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnTG9yZW0gSXBzdW0gRG9sb3IgNScsIGFyOiAn2YfZhtinINi52YbZiNin2YYg2KfZhNmF2LTYsdmI2LkgNScgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdBbmd1bGFyJyxcclxuICAgICAgICAgIHRvb2xzOiBbJ0hUTUwnLCAnUHVnSlMnLCAnQ1NTJywgJ1NDU1MnLCAnSmF2YVNjcmlwdCcsICdHdWxwJywgJ0Jvb3RzdHJhcCcsICdBSkFYJywgJ1Z1ZScsICdGaXJlYmFzZSddLFxyXG4gICAgICAgICAgc2NyZWVuc2hvdHM6IHtcclxuICAgICAgICAgICAgaW1nMToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA1JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDUnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMjoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTQucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA0JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDQnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMzoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAzJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDMnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNDoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTIucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAyJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDInIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTEucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAxJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDEnIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGlkOiA2LFxyXG4gICAgICAgICAgdXJsOiAnc2luZ2xlLXBvcnRmb2xpby5odG1sP2lkPTYnLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTYucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnTG9yZW0gSXBzdW0gRG9sb3IgNicsIGFyOiAn2YfZhtinINi52YbZiNin2YYg2KfZhNmF2LTYsdmI2LkgNicgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdWdWUnLFxyXG4gICAgICAgICAgdG9vbHM6IFsnSFRNTCcsICdTbGltJywgJ0NTUycsICdMZXNzJywgJ0phdmFTY3JpcHQnLCAnVHlwZVNjcmlwdCcsICdNYXRlcmlhbGl6ZScsICdBSkFYJywgJ0FuZ3VsYXInLCAnTm9kZUpzJywgJ01vbmdvREInXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogNyxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD03JyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby03LnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDcnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDcnIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnSFRNTCcsXHJcbiAgICAgICAgICB0b29sczogWydIVE1MJywgJ1B1Z0pTJywgJ0NTUycsICdTQ1NTJywgJ0phdmFTY3JpcHQnLCAnR3VscCcsICdCb290c3RyYXAnLCAnQUpBWCcsICdWdWUnLCAnRmlyZWJhc2UnXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogOCxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD04JyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby04LnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDgnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDgnIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnVnVlJyxcclxuICAgICAgICAgIHRvb2xzOiBbJ0hUTUwnLCAnU2xpbScsICdDU1MnLCAnTGVzcycsICdKYXZhU2NyaXB0JywgJ1R5cGVTY3JpcHQnLCAnVGFpbHdpbmRDU1MnLCAnQUpBWCcsICdBbmd1bGFyJywgJ05vZGVKcycsICdNb25nb0RCJ10sXHJcbiAgICAgICAgICBzY3JlZW5zaG90czoge1xyXG4gICAgICAgICAgICBpbWcxOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tNS5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDUnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgNScgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWcyOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tNC5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDQnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgNCcgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWczOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMy5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDMnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMycgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWc0OiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMi5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDInLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMicgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWc1OiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMS5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDEnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMScgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaWQ6IDksXHJcbiAgICAgICAgICB1cmw6ICdzaW5nbGUtcG9ydGZvbGlvLmh0bWw/aWQ9OScsXHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3BvcnRmb2xpby9wb3J0Zm9saW8tOS5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6IHsgZW46ICdMb3JlbSBJcHN1bSBEb2xvciA5JywgYXI6ICfZh9mG2Kcg2LnZhtmI2KfZhiDYp9mE2YXYtNix2YjYuSA5JyB9LFxyXG4gICAgICAgICAgZGF0ZTogeyBlbjogJ0FwcmlsIDIwMjEnLCBhcjogJ9ij2KjYsdmK2YQgMjAyMScgfSxcclxuICAgICAgICAgIGRlc2M6IHtcclxuICAgICAgICAgICAgZW46ICdMb3JlbSBJcHN1bSBpcyBzaW1wbHkgZHVtbXkgdGV4dCBvZiB0aGUgcHJpbnRpbmcgYW5kIHR5cGVzZXR0aW5nIGluZHVzdHJ5LiBMb3JlbSBJcHN1bSBoYXMgYmVlbiB0aGUgaW5kdXN0cnlcXCdzIHN0YW5kYXJkIGR1bW15IHRleHQgZXZlciBzaW5jZSB0aGUgMTUwMHMsIHdoZW4gYW4gdW5rbm93biBwcmludGVyIHRvb2sgYSBnYWxsZXkgb2YgdHlwZSBhbmQgc2NyYW1ibGVkIGl0IHRvIG1ha2UgYSB0eXBlIHNwZWNpbWVuIGJvb2suIEl0IGhhcyBzdXJ2aXZlZCBub3Qgb25seSBmaXZlIGNlbnR1cmllcywgYnV0IGFsc28gdGhlIGxlYXAgaW50byBlbGVjdHJvbmljIHR5cGVzZXR0aW5nLCByZW1haW5pbmcgZXNzZW50aWFsbHkgdW5jaGFuZ2VkLiBJdCB3YXMgcG9wdWxhcmlzZWQgaW4gdGhlIDE5NjBzIHdpdGggdGhlIHJlbGVhc2Ugb2YgTGV0cmFzZXQgc2hlZXRzIGNvbnRhaW5pbmcgTG9yZW0gSXBzdW0gcGFzc2FnZXMsIGFuZCBtb3JlIHJlY2VudGx5IHdpdGggZGVza3RvcCBwdWJsaXNoaW5nIHNvZnR3YXJlIGxpa2UgQWxkdXMgUGFnZU1ha2VyIGluY2x1ZGluZyB2ZXJzaW9ucyBvZiBMb3JlbSBJcHN1bS4nLFxyXG4gICAgICAgICAgICBhcjogJ9mH2LDYpyDYp9mE2YbYtSDZh9mIINmF2KvYp9mEINmE2YbYtSDZitmF2YPZhiDYo9mGINmK2LPYqtio2K/ZhCDZgdmKINmG2YHYsyDYp9mE2YXYs9in2K3YqdiMINmE2YLYryDYqtmFINiq2YjZhNmK2K8g2YfYsNinINin2YTZhti1INmF2YYg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJ2Iwg2K3ZitirINmK2YXZg9mG2YMg2KPZhiDYqtmI2YTYryDZhdir2YQg2YfYsNinINin2YTZhti1INij2Ygg2KfZhNi52K/ZitivINmF2YYg2KfZhNmG2LXZiNi1INin2YTYo9iu2LHZiSDYpdi22KfZgdipINil2YTZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2K3YsdmI2YEg2KfZhNiq2Ykg2YrZiNmE2K/Zh9inINin2YTYqti32KjZitmCLiDYpdiw2Kcg2YPZhtiqINiq2K3Yqtin2Kwg2KXZhNmJINi52K/YryDYo9mD2KjYsSDZhdmGINin2YTZgdmC2LHYp9iqINmK2KrZititINmE2YMg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTZgdmC2LHYp9iqINmD2YXYpyDYqtix2YrYr9iMINin2YTZhti1INmE2YYg2YrYqNiv2Ygg2YXZgtiz2YXYpyDZiNmE2Kcg2YrYrdmI2Yog2KPYrti32KfYoSDZhNi62YjZitip2Iwg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINmF2YHZitivINmE2YXYtdmF2YXZiiDYp9mE2YXZiNin2YLYuSDYudmE2Ykg2YjYrNmHINin2YTYrti12YjYtdiMINit2YrYqyDZitit2KrYp9isINin2YTYudmF2YrZhCDZgdmJINmD2KvZitixINmF2YYg2KfZhNij2K3Zitin2YYg2KPZhiDZiti32YTYuSDYudmE2Ykg2LXZiNix2Kkg2K3ZgtmK2YLZitipINmE2KrYtdmF2YrZhSDYp9mE2YXZiNmC2LkuINmI2YXZhiDZh9mG2Kcg2YjYrNioINi52YTZiSDYp9mE2YXYtdmF2YUg2KPZhiDZiti22Lkg2YbYtdmI2LXYpyDZhdik2YLYqtipINi52YTZiSDYp9mE2KrYtdmF2YrZhSDZhNmK2LjZh9ixINmE2YTYudmF2YrZhCDYp9mE2LTZg9mEINmD2KfZhdmE2KfZi9iMINiv2YjYsSDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2KPZhiDZitmI2YHYsSDYudmE2Ykg2KfZhNmF2LXZhdmFINi52YbYp9ihINin2YTYqNit2Ksg2LnZhiDZhti1INio2K/ZitmEINmE2Kcg2LnZhNin2YLYqSDZhNmHINio2KfZhNmF2YjYttmI2Lkg2KfZhNiw2Ykg2YrYqtit2K/YqyDYudmG2Ycg2KfZhNiq2LXZhdmK2YUg2YHZiti42YfYsSDYqNi02YPZhCDZhNinINmK2YTZitmCLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjYXRlZ29yeTogJ0FuZ3VsYXInLFxyXG4gICAgICAgICAgdG9vbHM6IFsnSFRNTCcsICdQdWdKUycsICdDU1MnLCAnU0NTUycsICdKYXZhU2NyaXB0JywgJ0d1bHAnLCAnTWF0ZXJpYWxpemUnLCAnQUpBWCcsICdWdWUnLCAnRmlyZWJhc2UnXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogMTAsXHJcbiAgICAgICAgICB1cmw6ICdzaW5nbGUtcG9ydGZvbGlvLmh0bWw/aWQ9MTAnLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTEwLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDEwJywgYXI6ICfZh9mG2Kcg2LnZhtmI2KfZhiDYp9mE2YXYtNix2YjYuSAxMCcgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdIVE1MJyxcclxuICAgICAgICAgIHRvb2xzOiBbJ0hUTUwnLCAnU2xpbScsICdDU1MnLCAnTGVzcycsICdKYXZhU2NyaXB0JywgJ1R5cGVTY3JpcHQnLCAnQm9vdHN0cmFwJywgJ0FKQVgnLCAnQW5ndWxhcicsICdOb2RlSnMnLCAnTW9uZ29EQiddLFxyXG4gICAgICAgICAgc2NyZWVuc2hvdHM6IHtcclxuICAgICAgICAgICAgaW1nMToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA1JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDUnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMjoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTQucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA0JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDQnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMzoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAzJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDMnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNDoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTIucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAyJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDInIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTEucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAxJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDEnIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGlkOiAxMSxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD0xMScsXHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3BvcnRmb2xpby9wb3J0Zm9saW8tMTEucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnTG9yZW0gSXBzdW0gRG9sb3IgMTEnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDExJyB9LFxyXG4gICAgICAgICAgZGF0ZTogeyBlbjogJ0FwcmlsIDIwMjEnLCBhcjogJ9ij2KjYsdmK2YQgMjAyMScgfSxcclxuICAgICAgICAgIGRlc2M6IHtcclxuICAgICAgICAgICAgZW46ICdMb3JlbSBJcHN1bSBpcyBzaW1wbHkgZHVtbXkgdGV4dCBvZiB0aGUgcHJpbnRpbmcgYW5kIHR5cGVzZXR0aW5nIGluZHVzdHJ5LiBMb3JlbSBJcHN1bSBoYXMgYmVlbiB0aGUgaW5kdXN0cnlcXCdzIHN0YW5kYXJkIGR1bW15IHRleHQgZXZlciBzaW5jZSB0aGUgMTUwMHMsIHdoZW4gYW4gdW5rbm93biBwcmludGVyIHRvb2sgYSBnYWxsZXkgb2YgdHlwZSBhbmQgc2NyYW1ibGVkIGl0IHRvIG1ha2UgYSB0eXBlIHNwZWNpbWVuIGJvb2suIEl0IGhhcyBzdXJ2aXZlZCBub3Qgb25seSBmaXZlIGNlbnR1cmllcywgYnV0IGFsc28gdGhlIGxlYXAgaW50byBlbGVjdHJvbmljIHR5cGVzZXR0aW5nLCByZW1haW5pbmcgZXNzZW50aWFsbHkgdW5jaGFuZ2VkLiBJdCB3YXMgcG9wdWxhcmlzZWQgaW4gdGhlIDE5NjBzIHdpdGggdGhlIHJlbGVhc2Ugb2YgTGV0cmFzZXQgc2hlZXRzIGNvbnRhaW5pbmcgTG9yZW0gSXBzdW0gcGFzc2FnZXMsIGFuZCBtb3JlIHJlY2VudGx5IHdpdGggZGVza3RvcCBwdWJsaXNoaW5nIHNvZnR3YXJlIGxpa2UgQWxkdXMgUGFnZU1ha2VyIGluY2x1ZGluZyB2ZXJzaW9ucyBvZiBMb3JlbSBJcHN1bS4nLFxyXG4gICAgICAgICAgICBhcjogJ9mH2LDYpyDYp9mE2YbYtSDZh9mIINmF2KvYp9mEINmE2YbYtSDZitmF2YPZhiDYo9mGINmK2LPYqtio2K/ZhCDZgdmKINmG2YHYsyDYp9mE2YXYs9in2K3YqdiMINmE2YLYryDYqtmFINiq2YjZhNmK2K8g2YfYsNinINin2YTZhti1INmF2YYg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJ2Iwg2K3ZitirINmK2YXZg9mG2YMg2KPZhiDYqtmI2YTYryDZhdir2YQg2YfYsNinINin2YTZhti1INij2Ygg2KfZhNi52K/ZitivINmF2YYg2KfZhNmG2LXZiNi1INin2YTYo9iu2LHZiSDYpdi22KfZgdipINil2YTZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2K3YsdmI2YEg2KfZhNiq2Ykg2YrZiNmE2K/Zh9inINin2YTYqti32KjZitmCLiDYpdiw2Kcg2YPZhtiqINiq2K3Yqtin2Kwg2KXZhNmJINi52K/YryDYo9mD2KjYsSDZhdmGINin2YTZgdmC2LHYp9iqINmK2KrZititINmE2YMg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTZgdmC2LHYp9iqINmD2YXYpyDYqtix2YrYr9iMINin2YTZhti1INmE2YYg2YrYqNiv2Ygg2YXZgtiz2YXYpyDZiNmE2Kcg2YrYrdmI2Yog2KPYrti32KfYoSDZhNi62YjZitip2Iwg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINmF2YHZitivINmE2YXYtdmF2YXZiiDYp9mE2YXZiNin2YLYuSDYudmE2Ykg2YjYrNmHINin2YTYrti12YjYtdiMINit2YrYqyDZitit2KrYp9isINin2YTYudmF2YrZhCDZgdmJINmD2KvZitixINmF2YYg2KfZhNij2K3Zitin2YYg2KPZhiDZiti32YTYuSDYudmE2Ykg2LXZiNix2Kkg2K3ZgtmK2YLZitipINmE2KrYtdmF2YrZhSDYp9mE2YXZiNmC2LkuINmI2YXZhiDZh9mG2Kcg2YjYrNioINi52YTZiSDYp9mE2YXYtdmF2YUg2KPZhiDZiti22Lkg2YbYtdmI2LXYpyDZhdik2YLYqtipINi52YTZiSDYp9mE2KrYtdmF2YrZhSDZhNmK2LjZh9ixINmE2YTYudmF2YrZhCDYp9mE2LTZg9mEINmD2KfZhdmE2KfZi9iMINiv2YjYsSDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2KPZhiDZitmI2YHYsSDYudmE2Ykg2KfZhNmF2LXZhdmFINi52YbYp9ihINin2YTYqNit2Ksg2LnZhiDZhti1INio2K/ZitmEINmE2Kcg2LnZhNin2YLYqSDZhNmHINio2KfZhNmF2YjYttmI2Lkg2KfZhNiw2Ykg2YrYqtit2K/YqyDYudmG2Ycg2KfZhNiq2LXZhdmK2YUg2YHZiti42YfYsSDYqNi02YPZhCDZhNinINmK2YTZitmCLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjYXRlZ29yeTogJ1Z1ZScsXHJcbiAgICAgICAgICB0b29sczogWydIVE1MJywgJ1B1Z0pTJywgJ0NTUycsICdTQ1NTJywgJ0phdmFTY3JpcHQnLCAnR3VscCcsICdUYWlsd2luZENTUycsICdBSkFYJywgJ0FuZ3VsYXInLCAnRmlyZWJhc2UnXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogMTIsXHJcbiAgICAgICAgICB1cmw6ICdzaW5nbGUtcG9ydGZvbGlvLmh0bWw/aWQ9MTInLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTEyLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDEyJywgYXI6ICfZh9mG2Kcg2LnZhtmI2KfZhiDYp9mE2YXYtNix2YjYuSAxMicgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdBbmd1bGFyJyxcclxuICAgICAgICAgIHRvb2xzOiBbJ0hUTUwnLCAnU2xpbScsICdDU1MnLCAnTGVzcycsICdKYXZhU2NyaXB0JywgJ1R5cGVTY3JpcHQnLCAnTWF0ZXJpYWxpemUnLCAnQUpBWCcsICdWdWUnLCAnTm9kZUpzJywgJ01vbmdvREInXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogMTMsXHJcbiAgICAgICAgICB1cmw6ICdzaW5nbGUtcG9ydGZvbGlvLmh0bWw/aWQ9MTMnLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTEzLnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDEzJywgYXI6ICfZh9mG2Kcg2LnZhtmI2KfZhiDYp9mE2YXYtNix2YjYuSAxMycgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdIVE1MJyxcclxuICAgICAgICAgIHRvb2xzOiBbJ0hUTUwnLCAnUHVnSlMnLCAnQ1NTJywgJ1NDU1MnLCAnSmF2YVNjcmlwdCcsICdHdWxwJywgJ1RhaWx3aW5kQ1NTJywgJ0FKQVgnLCAnQW5ndWxhcicsICdGaXJlYmFzZSddLFxyXG4gICAgICAgICAgc2NyZWVuc2hvdHM6IHtcclxuICAgICAgICAgICAgaW1nMToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA1JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDUnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMjoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTQucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA0JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDQnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMzoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAzJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDMnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNDoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTIucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAyJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDInIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTEucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAxJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDEnIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGlkOiAxNCxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD0xNCcsXHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3BvcnRmb2xpby9wb3J0Zm9saW8tMTQucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnTG9yZW0gSXBzdW0gRG9sb3IgMTQnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDE0JyB9LFxyXG4gICAgICAgICAgZGF0ZTogeyBlbjogJ0FwcmlsIDIwMjEnLCBhcjogJ9ij2KjYsdmK2YQgMjAyMScgfSxcclxuICAgICAgICAgIGRlc2M6IHtcclxuICAgICAgICAgICAgZW46ICdMb3JlbSBJcHN1bSBpcyBzaW1wbHkgZHVtbXkgdGV4dCBvZiB0aGUgcHJpbnRpbmcgYW5kIHR5cGVzZXR0aW5nIGluZHVzdHJ5LiBMb3JlbSBJcHN1bSBoYXMgYmVlbiB0aGUgaW5kdXN0cnlcXCdzIHN0YW5kYXJkIGR1bW15IHRleHQgZXZlciBzaW5jZSB0aGUgMTUwMHMsIHdoZW4gYW4gdW5rbm93biBwcmludGVyIHRvb2sgYSBnYWxsZXkgb2YgdHlwZSBhbmQgc2NyYW1ibGVkIGl0IHRvIG1ha2UgYSB0eXBlIHNwZWNpbWVuIGJvb2suIEl0IGhhcyBzdXJ2aXZlZCBub3Qgb25seSBmaXZlIGNlbnR1cmllcywgYnV0IGFsc28gdGhlIGxlYXAgaW50byBlbGVjdHJvbmljIHR5cGVzZXR0aW5nLCByZW1haW5pbmcgZXNzZW50aWFsbHkgdW5jaGFuZ2VkLiBJdCB3YXMgcG9wdWxhcmlzZWQgaW4gdGhlIDE5NjBzIHdpdGggdGhlIHJlbGVhc2Ugb2YgTGV0cmFzZXQgc2hlZXRzIGNvbnRhaW5pbmcgTG9yZW0gSXBzdW0gcGFzc2FnZXMsIGFuZCBtb3JlIHJlY2VudGx5IHdpdGggZGVza3RvcCBwdWJsaXNoaW5nIHNvZnR3YXJlIGxpa2UgQWxkdXMgUGFnZU1ha2VyIGluY2x1ZGluZyB2ZXJzaW9ucyBvZiBMb3JlbSBJcHN1bS4nLFxyXG4gICAgICAgICAgICBhcjogJ9mH2LDYpyDYp9mE2YbYtSDZh9mIINmF2KvYp9mEINmE2YbYtSDZitmF2YPZhiDYo9mGINmK2LPYqtio2K/ZhCDZgdmKINmG2YHYsyDYp9mE2YXYs9in2K3YqdiMINmE2YLYryDYqtmFINiq2YjZhNmK2K8g2YfYsNinINin2YTZhti1INmF2YYg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJ2Iwg2K3ZitirINmK2YXZg9mG2YMg2KPZhiDYqtmI2YTYryDZhdir2YQg2YfYsNinINin2YTZhti1INij2Ygg2KfZhNi52K/ZitivINmF2YYg2KfZhNmG2LXZiNi1INin2YTYo9iu2LHZiSDYpdi22KfZgdipINil2YTZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2K3YsdmI2YEg2KfZhNiq2Ykg2YrZiNmE2K/Zh9inINin2YTYqti32KjZitmCLiDYpdiw2Kcg2YPZhtiqINiq2K3Yqtin2Kwg2KXZhNmJINi52K/YryDYo9mD2KjYsSDZhdmGINin2YTZgdmC2LHYp9iqINmK2KrZititINmE2YMg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTZgdmC2LHYp9iqINmD2YXYpyDYqtix2YrYr9iMINin2YTZhti1INmE2YYg2YrYqNiv2Ygg2YXZgtiz2YXYpyDZiNmE2Kcg2YrYrdmI2Yog2KPYrti32KfYoSDZhNi62YjZitip2Iwg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINmF2YHZitivINmE2YXYtdmF2YXZiiDYp9mE2YXZiNin2YLYuSDYudmE2Ykg2YjYrNmHINin2YTYrti12YjYtdiMINit2YrYqyDZitit2KrYp9isINin2YTYudmF2YrZhCDZgdmJINmD2KvZitixINmF2YYg2KfZhNij2K3Zitin2YYg2KPZhiDZiti32YTYuSDYudmE2Ykg2LXZiNix2Kkg2K3ZgtmK2YLZitipINmE2KrYtdmF2YrZhSDYp9mE2YXZiNmC2LkuINmI2YXZhiDZh9mG2Kcg2YjYrNioINi52YTZiSDYp9mE2YXYtdmF2YUg2KPZhiDZiti22Lkg2YbYtdmI2LXYpyDZhdik2YLYqtipINi52YTZiSDYp9mE2KrYtdmF2YrZhSDZhNmK2LjZh9ixINmE2YTYudmF2YrZhCDYp9mE2LTZg9mEINmD2KfZhdmE2KfZi9iMINiv2YjYsSDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2KPZhiDZitmI2YHYsSDYudmE2Ykg2KfZhNmF2LXZhdmFINi52YbYp9ihINin2YTYqNit2Ksg2LnZhiDZhti1INio2K/ZitmEINmE2Kcg2LnZhNin2YLYqSDZhNmHINio2KfZhNmF2YjYttmI2Lkg2KfZhNiw2Ykg2YrYqtit2K/YqyDYudmG2Ycg2KfZhNiq2LXZhdmK2YUg2YHZiti42YfYsSDYqNi02YPZhCDZhNinINmK2YTZitmCLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjYXRlZ29yeTogJ0FuZ3VsYXInLFxyXG4gICAgICAgICAgdG9vbHM6IFsnSFRNTCcsICdTbGltJywgJ0NTUycsICdMZXNzJywgJ0phdmFTY3JpcHQnLCAnVHlwZVNjcmlwdCcsICdCb290c3RyYXAnLCAnQUpBWCcsICdWdWUnLCAnTm9kZUpzJywgJ01vbmdvREInXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpZDogMTUsXHJcbiAgICAgICAgICB1cmw6ICdzaW5nbGUtcG9ydGZvbGlvLmh0bWw/aWQ9MTUnLFxyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy9wb3J0Zm9saW8vcG9ydGZvbGlvLTE1LnBuZycsXHJcbiAgICAgICAgICB0aXRsZTogeyBlbjogJ0xvcmVtIElwc3VtIERvbG9yIDE1JywgYXI6ICfZh9mG2Kcg2LnZhtmI2KfZhiDYp9mE2YXYtNix2YjYuSAxNScgfSxcclxuICAgICAgICAgIGRhdGU6IHsgZW46ICdBcHJpbCAyMDIxJywgYXI6ICfYo9io2LHZitmEIDIwMjEnIH0sXHJcbiAgICAgICAgICBkZXNjOiB7XHJcbiAgICAgICAgICAgIGVuOiAnTG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5XFwncyBzdGFuZGFyZCBkdW1teSB0ZXh0IGV2ZXIgc2luY2UgdGhlIDE1MDBzLCB3aGVuIGFuIHVua25vd24gcHJpbnRlciB0b29rIGEgZ2FsbGV5IG9mIHR5cGUgYW5kIHNjcmFtYmxlZCBpdCB0byBtYWtlIGEgdHlwZSBzcGVjaW1lbiBib29rLiBJdCBoYXMgc3Vydml2ZWQgbm90IG9ubHkgZml2ZSBjZW50dXJpZXMsIGJ1dCBhbHNvIHRoZSBsZWFwIGludG8gZWxlY3Ryb25pYyB0eXBlc2V0dGluZywgcmVtYWluaW5nIGVzc2VudGlhbGx5IHVuY2hhbmdlZC4gSXQgd2FzIHBvcHVsYXJpc2VkIGluIHRoZSAxOTYwcyB3aXRoIHRoZSByZWxlYXNlIG9mIExldHJhc2V0IHNoZWV0cyBjb250YWluaW5nIExvcmVtIElwc3VtIHBhc3NhZ2VzLCBhbmQgbW9yZSByZWNlbnRseSB3aXRoIGRlc2t0b3AgcHVibGlzaGluZyBzb2Z0d2FyZSBsaWtlIEFsZHVzIFBhZ2VNYWtlciBpbmNsdWRpbmcgdmVyc2lvbnMgb2YgTG9yZW0gSXBzdW0uJyxcclxuICAgICAgICAgICAgYXI6ICfZh9iw2Kcg2KfZhNmG2LUg2YfZiCDZhdir2KfZhCDZhNmG2LUg2YrZhdmD2YYg2KPZhiDZitiz2KrYqNiv2YQg2YHZiiDZhtmB2LMg2KfZhNmF2LPYp9it2KnYjCDZhNmC2K8g2KrZhSDYqtmI2YTZitivINmH2LDYpyDYp9mE2YbYtSDZhdmGINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZidiMINit2YrYqyDZitmF2YPZhtmDINij2YYg2KrZiNmE2K8g2YXYq9mEINmH2LDYpyDYp9mE2YbYtSDYo9mIINin2YTYudiv2YrYryDZhdmGINin2YTZhti12YjYtSDYp9mE2KPYrtix2Ykg2KXYttin2YHYqSDYpdmE2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNit2LHZiNmBINin2YTYqtmJINmK2YjZhNiv2YfYpyDYp9mE2KrYt9io2YrZgi4g2KXYsNinINmD2YbYqiDYqtit2KrYp9isINil2YTZiSDYudiv2K8g2KPZg9io2LEg2YXZhiDYp9mE2YHZgtix2KfYqiDZitiq2YrYrSDZhNmDINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2YHZgtix2KfYqiDZg9mF2Kcg2KrYsdmK2K/YjCDYp9mE2YbYtSDZhNmGINmK2KjYr9mIINmF2YLYs9mF2Kcg2YjZhNinINmK2K3ZiNmKINij2K7Yt9in2KEg2YTYutmI2YrYqdiMINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDZhdmB2YrYryDZhNmF2LXZhdmF2Yog2KfZhNmF2YjYp9mC2Lkg2LnZhNmJINmI2KzZhyDYp9mE2K7YtdmI2LXYjCDYrdmK2Ksg2YrYrdiq2KfYrCDYp9mE2LnZhdmK2YQg2YHZiSDZg9ir2YrYsSDZhdmGINin2YTYo9it2YrYp9mGINij2YYg2YrYt9mE2Lkg2LnZhNmJINi12YjYsdipINit2YLZitmC2YrYqSDZhNiq2LXZhdmK2YUg2KfZhNmF2YjZgti5LiDZiNmF2YYg2YfZhtinINmI2KzYqCDYudmE2Ykg2KfZhNmF2LXZhdmFINij2YYg2YrYtti5INmG2LXZiNi12Kcg2YXYpNmC2KrYqSDYudmE2Ykg2KfZhNiq2LXZhdmK2YUg2YTZiti42YfYsSDZhNmE2LnZhdmK2YQg2KfZhNi02YPZhCDZg9in2YXZhNin2YvYjCDYr9mI2LEg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINij2YYg2YrZiNmB2LEg2LnZhNmJINin2YTZhdi12YXZhSDYudmG2KfYoSDYp9mE2KjYrdirINi52YYg2YbYtSDYqNiv2YrZhCDZhNinINi52YTYp9mC2Kkg2YTZhyDYqNin2YTZhdmI2LbZiNi5INin2YTYsNmJINmK2KrYrdiv2Ksg2LnZhtmHINin2YTYqti12YXZitmFINmB2YrYuNmH2LEg2KjYtNmD2YQg2YTYpyDZitmE2YrZgi4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2F0ZWdvcnk6ICdWdWUnLFxyXG4gICAgICAgICAgdG9vbHM6IFsnSFRNTCcsICdQdWdKUycsICdDU1MnLCAnU0NTUycsICdKYXZhU2NyaXB0JywgJ0d1bHAnLCAnTWF0ZXJpYWxpemUnLCAnQUpBWCcsICdBbmd1bGFyJywgJ0ZpcmViYXNlJ10sXHJcbiAgICAgICAgICBzY3JlZW5zaG90czoge1xyXG4gICAgICAgICAgICBpbWcxOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tNS5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDUnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgNScgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWcyOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tNC5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDQnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgNCcgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWczOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMy5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDMnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMycgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWc0OiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMi5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDInLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMicgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWc1OiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMS5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDEnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMScgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaWQ6IDE2LFxyXG4gICAgICAgICAgdXJsOiAnc2luZ2xlLXBvcnRmb2xpby5odG1sP2lkPTE2JyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby0xNi5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6IHsgZW46ICdMb3JlbSBJcHN1bSBEb2xvciAxNicsIGFyOiAn2YfZhtinINi52YbZiNin2YYg2KfZhNmF2LTYsdmI2LkgMTYnIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnSFRNTCcsXHJcbiAgICAgICAgICB0b29sczogWydIVE1MJywgJ1NsaW0nLCAnQ1NTJywgJ0xlc3MnLCAnSmF2YVNjcmlwdCcsICdUeXBlU2NyaXB0JywgJ0Jvb3RzdHJhcCcsICdBSkFYJywgJ1Z1ZScsICdOb2RlSnMnLCAnTW9uZ29EQiddLFxyXG4gICAgICAgICAgc2NyZWVuc2hvdHM6IHtcclxuICAgICAgICAgICAgaW1nMToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTUucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA1JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDUnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMjoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTQucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiA0JywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDQnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nMzoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTMucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAzJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDMnIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNDoge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTIucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAyJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDInIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW1nNToge1xyXG4gICAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9pbWFnZXMvc2luZ2xlLXBvcnRmb2xpby9zaW5nbGUtcG9ydGZvbGlvLTEucG5nJyxcclxuICAgICAgICAgICAgICBjYXB0aW9uOiB7IGVuOiAnY2FwdGlvbiAxJywgYXI6ICfYqtiz2YXZitipINiq2YjYttmK2K3ZitipIDEnIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGlkOiAxNyxcclxuICAgICAgICAgIHVybDogJ3NpbmdsZS1wb3J0Zm9saW8uaHRtbD9pZD0xNycsXHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3BvcnRmb2xpby9wb3J0Zm9saW8tMTcucG5nJyxcclxuICAgICAgICAgIHRpdGxlOiB7IGVuOiAnTG9yZW0gSXBzdW0gRG9sb3IgMTcnLCBhcjogJ9mH2YbYpyDYudmG2YjYp9mGINin2YTZhdi02LHZiNi5IDE3JyB9LFxyXG4gICAgICAgICAgZGF0ZTogeyBlbjogJ0FwcmlsIDIwMjEnLCBhcjogJ9ij2KjYsdmK2YQgMjAyMScgfSxcclxuICAgICAgICAgIGRlc2M6IHtcclxuICAgICAgICAgICAgZW46ICdMb3JlbSBJcHN1bSBpcyBzaW1wbHkgZHVtbXkgdGV4dCBvZiB0aGUgcHJpbnRpbmcgYW5kIHR5cGVzZXR0aW5nIGluZHVzdHJ5LiBMb3JlbSBJcHN1bSBoYXMgYmVlbiB0aGUgaW5kdXN0cnlcXCdzIHN0YW5kYXJkIGR1bW15IHRleHQgZXZlciBzaW5jZSB0aGUgMTUwMHMsIHdoZW4gYW4gdW5rbm93biBwcmludGVyIHRvb2sgYSBnYWxsZXkgb2YgdHlwZSBhbmQgc2NyYW1ibGVkIGl0IHRvIG1ha2UgYSB0eXBlIHNwZWNpbWVuIGJvb2suIEl0IGhhcyBzdXJ2aXZlZCBub3Qgb25seSBmaXZlIGNlbnR1cmllcywgYnV0IGFsc28gdGhlIGxlYXAgaW50byBlbGVjdHJvbmljIHR5cGVzZXR0aW5nLCByZW1haW5pbmcgZXNzZW50aWFsbHkgdW5jaGFuZ2VkLiBJdCB3YXMgcG9wdWxhcmlzZWQgaW4gdGhlIDE5NjBzIHdpdGggdGhlIHJlbGVhc2Ugb2YgTGV0cmFzZXQgc2hlZXRzIGNvbnRhaW5pbmcgTG9yZW0gSXBzdW0gcGFzc2FnZXMsIGFuZCBtb3JlIHJlY2VudGx5IHdpdGggZGVza3RvcCBwdWJsaXNoaW5nIHNvZnR3YXJlIGxpa2UgQWxkdXMgUGFnZU1ha2VyIGluY2x1ZGluZyB2ZXJzaW9ucyBvZiBMb3JlbSBJcHN1bS4nLFxyXG4gICAgICAgICAgICBhcjogJ9mH2LDYpyDYp9mE2YbYtSDZh9mIINmF2KvYp9mEINmE2YbYtSDZitmF2YPZhiDYo9mGINmK2LPYqtio2K/ZhCDZgdmKINmG2YHYsyDYp9mE2YXYs9in2K3YqdiMINmE2YLYryDYqtmFINiq2YjZhNmK2K8g2YfYsNinINin2YTZhti1INmF2YYg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJ2Iwg2K3ZitirINmK2YXZg9mG2YMg2KPZhiDYqtmI2YTYryDZhdir2YQg2YfYsNinINin2YTZhti1INij2Ygg2KfZhNi52K/ZitivINmF2YYg2KfZhNmG2LXZiNi1INin2YTYo9iu2LHZiSDYpdi22KfZgdipINil2YTZiSDYstmK2KfYr9ipINi52K/YryDYp9mE2K3YsdmI2YEg2KfZhNiq2Ykg2YrZiNmE2K/Zh9inINin2YTYqti32KjZitmCLiDYpdiw2Kcg2YPZhtiqINiq2K3Yqtin2Kwg2KXZhNmJINi52K/YryDYo9mD2KjYsSDZhdmGINin2YTZgdmC2LHYp9iqINmK2KrZititINmE2YMg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTZgdmC2LHYp9iqINmD2YXYpyDYqtix2YrYr9iMINin2YTZhti1INmE2YYg2YrYqNiv2Ygg2YXZgtiz2YXYpyDZiNmE2Kcg2YrYrdmI2Yog2KPYrti32KfYoSDZhNi62YjZitip2Iwg2YXZiNmE2K8g2KfZhNmG2LUg2KfZhNi52LHYqNmJINmF2YHZitivINmE2YXYtdmF2YXZiiDYp9mE2YXZiNin2YLYuSDYudmE2Ykg2YjYrNmHINin2YTYrti12YjYtdiMINit2YrYqyDZitit2KrYp9isINin2YTYudmF2YrZhCDZgdmJINmD2KvZitixINmF2YYg2KfZhNij2K3Zitin2YYg2KPZhiDZiti32YTYuSDYudmE2Ykg2LXZiNix2Kkg2K3ZgtmK2YLZitipINmE2KrYtdmF2YrZhSDYp9mE2YXZiNmC2LkuINmI2YXZhiDZh9mG2Kcg2YjYrNioINi52YTZiSDYp9mE2YXYtdmF2YUg2KPZhiDZiti22Lkg2YbYtdmI2LXYpyDZhdik2YLYqtipINi52YTZiSDYp9mE2KrYtdmF2YrZhSDZhNmK2LjZh9ixINmE2YTYudmF2YrZhCDYp9mE2LTZg9mEINmD2KfZhdmE2KfZi9iMINiv2YjYsSDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2KPZhiDZitmI2YHYsSDYudmE2Ykg2KfZhNmF2LXZhdmFINi52YbYp9ihINin2YTYqNit2Ksg2LnZhiDZhti1INio2K/ZitmEINmE2Kcg2LnZhNin2YLYqSDZhNmHINio2KfZhNmF2YjYttmI2Lkg2KfZhNiw2Ykg2YrYqtit2K/YqyDYudmG2Ycg2KfZhNiq2LXZhdmK2YUg2YHZiti42YfYsSDYqNi02YPZhCDZhNinINmK2YTZitmCLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjYXRlZ29yeTogJ0FuZ3VsYXInLFxyXG4gICAgICAgICAgdG9vbHM6IFsnSFRNTCcsICdQdWdKUycsICdDU1MnLCAnU0NTUycsICdKYXZhU2NyaXB0JywgJ0d1bHAnLCAnVGFpbHdpbmRDU1MnLCAnQUpBWCcsICdBbmd1bGFyJywgJ0ZpcmViYXNlJ10sXHJcbiAgICAgICAgICBzY3JlZW5zaG90czoge1xyXG4gICAgICAgICAgICBpbWcxOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tNS5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDUnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgNScgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWcyOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tNC5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDQnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgNCcgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWczOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMy5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDMnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMycgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWc0OiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMi5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDInLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMicgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWc1OiB7XHJcbiAgICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2ltYWdlcy9zaW5nbGUtcG9ydGZvbGlvL3NpbmdsZS1wb3J0Zm9saW8tMS5wbmcnLFxyXG4gICAgICAgICAgICAgIGNhcHRpb246IHsgZW46ICdjYXB0aW9uIDEnLCBhcjogJ9iq2LPZhdmK2Kkg2KrZiNi22YrYrdmK2KkgMScgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaWQ6IDE4LFxyXG4gICAgICAgICAgdXJsOiAnc2luZ2xlLXBvcnRmb2xpby5odG1sP2lkPTE4JyxcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvcG9ydGZvbGlvL3BvcnRmb2xpby0xOC5wbmcnLFxyXG4gICAgICAgICAgdGl0bGU6IHsgZW46ICdMb3JlbSBJcHN1bSBEb2xvciAxOCcsIGFyOiAn2YfZhtinINi52YbZiNin2YYg2KfZhNmF2LTYsdmI2LkgMTgnIH0sXHJcbiAgICAgICAgICBkYXRlOiB7IGVuOiAnQXByaWwgMjAyMScsIGFyOiAn2KPYqNix2YrZhCAyMDIxJyB9LFxyXG4gICAgICAgICAgZGVzYzoge1xyXG4gICAgICAgICAgICBlbjogJ0xvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeVxcJ3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHdhcyBwb3B1bGFyaXNlZCBpbiB0aGUgMTk2MHMgd2l0aCB0aGUgcmVsZWFzZSBvZiBMZXRyYXNldCBzaGVldHMgY29udGFpbmluZyBMb3JlbSBJcHN1bSBwYXNzYWdlcywgYW5kIG1vcmUgcmVjZW50bHkgd2l0aCBkZXNrdG9wIHB1Ymxpc2hpbmcgc29mdHdhcmUgbGlrZSBBbGR1cyBQYWdlTWFrZXIgaW5jbHVkaW5nIHZlcnNpb25zIG9mIExvcmVtIElwc3VtLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YfYsNinINin2YTZhti1INmH2Ygg2YXYq9in2YQg2YTZhti1INmK2YXZg9mGINij2YYg2YrYs9iq2KjYr9mEINmB2Yog2YbZgdizINin2YTZhdiz2KfYrdip2Iwg2YTZgtivINiq2YUg2KrZiNmE2YrYryDZh9iw2Kcg2KfZhNmG2LUg2YXZhiDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2YnYjCDYrdmK2Ksg2YrZhdmD2YbZgyDYo9mGINiq2YjZhNivINmF2KvZhCDZh9iw2Kcg2KfZhNmG2LUg2KPZiCDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2YbYtdmI2LUg2KfZhNij2K7YsdmJINil2LbYp9mB2Kkg2KXZhNmJINiy2YrYp9iv2Kkg2LnYr9ivINin2YTYrdix2YjZgSDYp9mE2KrZiSDZitmI2YTYr9mH2Kcg2KfZhNiq2LfYqNmK2YIuINil2LDYpyDZg9mG2Kog2KrYrdiq2KfYrCDYpdmE2Ykg2LnYr9ivINij2YPYqNixINmF2YYg2KfZhNmB2YLYsdin2Kog2YrYqtmK2K0g2YTZgyDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2LLZitin2K/YqSDYudiv2K8g2KfZhNmB2YLYsdin2Kog2YPZhdinINiq2LHZitiv2Iwg2KfZhNmG2LUg2YTZhiDZitio2K/ZiCDZhdmC2LPZhdinINmI2YTYpyDZitit2YjZiiDYo9iu2LfYp9ihINmE2LrZiNmK2KnYjCDZhdmI2YTYryDYp9mE2YbYtSDYp9mE2LnYsdio2Ykg2YXZgdmK2K8g2YTZhdi12YXZhdmKINin2YTZhdmI2KfZgti5INi52YTZiSDZiNis2Ycg2KfZhNiu2LXZiNi12Iwg2K3ZitirINmK2K3Yqtin2Kwg2KfZhNi52YXZitmEINmB2Ykg2YPYq9mK2LEg2YXZhiDYp9mE2KPYrdmK2KfZhiDYo9mGINmK2LfZhNi5INi52YTZiSDYtdmI2LHYqSDYrdmC2YrZgtmK2Kkg2YTYqti12YXZitmFINin2YTZhdmI2YLYuS4g2YjZhdmGINmH2YbYpyDZiNis2Kgg2LnZhNmJINin2YTZhdi12YXZhSDYo9mGINmK2LbYuSDZhti12YjYtdinINmF2KTZgtiq2Kkg2LnZhNmJINin2YTYqti12YXZitmFINmE2YrYuNmH2LEg2YTZhNi52YXZitmEINin2YTYtNmD2YQg2YPYp9mF2YTYp9mL2Iwg2K/ZiNixINmF2YjZhNivINin2YTZhti1INin2YTYudix2KjZiSDYo9mGINmK2YjZgdixINi52YTZiSDYp9mE2YXYtdmF2YUg2LnZhtin2KEg2KfZhNio2K3YqyDYudmGINmG2LUg2KjYr9mK2YQg2YTYpyDYudmE2KfZgtipINmE2Ycg2KjYp9mE2YXZiNi22YjYuSDYp9mE2LDZiSDZitiq2K3Yr9irINi52YbZhyDYp9mE2KrYtdmF2YrZhSDZgdmK2LjZh9ixINio2LTZg9mEINmE2Kcg2YrZhNmK2YIuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhdGVnb3J5OiAnVnVlJyxcclxuICAgICAgICAgIHRvb2xzOiBbJ0hUTUwnLCAnU2xpbScsICdDU1MnLCAnTGVzcycsICdKYXZhU2NyaXB0JywgJ1R5cGVTY3JpcHQnLCAnTWF0ZXJpYWxpemUnLCAnQUpBWCcsICdWdWUnLCAnTm9kZUpzJywgJ01vbmdvREInXSxcclxuICAgICAgICAgIHNjcmVlbnNob3RzOiB7XHJcbiAgICAgICAgICAgIGltZzE6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby01LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA1JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzI6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby00LnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gNCcsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSA0JyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzM6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0zLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMycsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAzJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzQ6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0yLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMicsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAyJyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGltZzU6IHtcclxuICAgICAgICAgICAgICB1cmw6ICdhc3NldHMvaW1hZ2VzL3NpbmdsZS1wb3J0Zm9saW8vc2luZ2xlLXBvcnRmb2xpby0xLnBuZycsXHJcbiAgICAgICAgICAgICAgY2FwdGlvbjogeyBlbjogJ2NhcHRpb24gMScsIGFyOiAn2KrYs9mF2YrYqSDYqtmI2LbZitit2YrYqSAxJyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIF0ucmV2ZXJzZSgpLFxyXG5cclxuICAgICAgLy8gdmlld2VkIHBvcnRmb2xpbyBpdGVtc1xyXG4gICAgICBwb3J0Zm9saW9JdGVtczogW10sXHJcblxyXG4gICAgICAvLyBsaXN0IG9mIHRlc3RpbW9uaWFscyBpdGVtcyB0byBsb29wIHRocm91Z2ggaXRcclxuICAgICAgdGVzdGltb25pYWxzSXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3Rlc3RpbW9uaWFscy90ZXN0aW1vbmlhbHMtMS5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnTmFmaWUgc2ltcGx5IHByb3ZpZGVzIGFtYXppbmcgd2ViIGRldmVsb3BtZW50IHNlcnZpY2UuIFRoZWlyIHRlYW0gaXMgZXh0cmVtZWx5IHByb2Zlc3Npb25hbCBhbmQgdGhlIGVhc2llc3QgdG8gbWVldCBJIGhhdmUgZXZlciB3b3JrZWQgd2l0aC4gSSB3b3VsZCByZWNvbW1lbmQgTmFmaWUgdG8gYW55b25lLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YXYrdmF2K8g2YrZgtiv2YUg2K7Yr9mF2KfYqiDZhdiw2YfZhNipINmB2Yog2KrYt9mI2YrYsSDYp9mE2YjZitio2Iwg2YjZhNiv2YrZhyDZgdix2YrZgiDZhdit2KrYsdmBINmK2KzYudmEINin2YTYqti52KfZhdmEINmF2LnZh9mFINmF2LfZhdim2YYg2YTZhNi62KfZitipLiDYo9mI2LXZiiDYqNmB2LHZitmC2YfZhSDZhNmE2KzZhdmK2LkuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnVGVycmVsbCBHcmltZXMnLCBhcjogJ9is2KfYqNixINin2YTYudmI2KfZhtmKJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdQaG90b2dyYXBoZXInLCBhcjogJ9mF2LXZiNixINmB2YjYqtmI2LrYsdin2YHZiicgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvdGVzdGltb25pYWxzL3Rlc3RpbW9uaWFscy0yLmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdFeGNlbGxlbnQgVGVhbSB0byB3b3JrIHdpdGguIEFsd2F5cyBwb3NpdGl2ZSB0byBmaW5kIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHNvbHV0aW9uLiBOYWZpZSBpcyBvbmUgb2YgdGhlIHByb2Zlc3Npb25hbCB3ZWIgZGV2ZWxvcG1lbnQgYWdlbmN5IHRoYXQgcHJvdmlkZXMgYXdlc29tZSBzZXJ2aWNlcy4nLFxyXG4gICAgICAgICAgICBhcjogJ9mB2LHZitmCINmF2YXYqtin2LIg2YTZhNi52YXZhCDZhdi52YcuINil2YrYrNin2KjZiiDYr9in2KbZhdmL2Kcg2YTZhNi52KvZiNixINi52YTZiSDYp9mE2K3ZhCDYp9mE2KPZhtiz2KguINmH2YUg2KXYrdiv2Ykg2LTYsdmD2KfYqiDYqti32YjZitixINin2YTZiNmK2Kgg2KfZhNmF2K3Yqtix2YHYqSDYp9mE2KrZiiDYqtmC2K/ZhSDYrtiv2YXYp9iqINix2KfYpti52KkuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnTG9ubnkgQ29ya2VyeScsIGFyOiAn2K3Ys9mI2YYg2KfZhNmC2YTYp9mEJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdQcm9qZWN0IE1hbmFnZXInLCBhcjogJ9mF2K/ZitixINin2YTZhdi02KfYsdmK2LknIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3Rlc3RpbW9uaWFscy90ZXN0aW1vbmlhbHMtMy5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnTmFmaWUgdGVhbSBpcyB2ZXJ5IHByb2Zlc3Npb25hbCwgYWx3YXlzIGRlbGl2ZXJzIGhpZ2ggcXVhbGl0eSByZXN1bHRzLCBhbmQgaXMgYWx3YXlzIHRoZXJlIHRvIGhlbHAuIExvb2sgZm9yd2FyZCB0byB3b3JraW5nIHdpdGggTmFmaWUgaW4gb3RoZXIgcHJvamVjdHMuJyxcclxuICAgICAgICAgICAgYXI6ICfZhdit2YXYryDZhdi32YjYsSDZhdit2KrYsdmBINmE2YTYutin2YrYqSDZitmC2K/ZhSDYr9in2KbZhdmL2Kcg2YbYqtin2KbYrCDYudin2YTZitipINin2YTYrNmI2K/YqSDYjCDZiNmH2Ygg2K/Yp9im2YXZi9inINmF2YjYrNmI2K8g2YTZhNmF2LPYp9i52K/YqS4g2YbYqti32YTYuSDYpdmE2Ykg2KfZhNi52YXZhCDZhdi52Ycg2YHZiiDZhdi02KfYsdmK2Lkg2KPYrtix2YkuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnTWF4IFNjaG1pZHQgRERTJywgYXI6ICfZhdi12LfZgdmJINin2YTYrtmE2YrZgdmKJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdDRU8sIERlc2lnbmVyJywgYXI6ICfYo9iu2LXYp9im2YogU0VPJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTQuanBnJyxcclxuICAgICAgICAgIHF1b3RlQ29udGVudDoge1xyXG4gICAgICAgICAgICBlbjogJ05hZmllIHdvcmtlZCBvbiBhIGhhbmRmdWwgb2YgcHJvamVjdHMgZm9yIHVzIGFuZCBoYXMgYWx3YXlzIGV4Y2VlZGVkIG91ciBleHBlY3RhdGlvbnMuIE5hZmllIHRlYW0gaXMgZGVkaWNhdGVkLCB0YWxlbnRlZCBhbmQgYSBkZWxpZ2h0IHRvIHdvcmsgd2l0aC4nLFxyXG4gICAgICAgICAgICBhcjogJ9i52YXZhCDZhdit2YXYryDZgdmKINi52K/YryDZg9io2YrYsSDZhdmGINin2YTZhdi02KfYsdmK2Lkg2YTYo9is2YTZhtinINmI2YPYp9mGINiv2KfYptmF2YvYpyDZitmB2YjZgiDYqtmI2YLYudin2KrZhtinLiDZhdi32YjYsSDZhdiq2K7Ytdi1INmI2YXZiNmH2YjYqCDZiNmG2LPYudivINiv2KfYptmF2YvYpyDYqNin2YTYudmF2YQg2YXYudmHLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBxdW90ZUF1dGhvcjogeyBlbjogJ0FtaXIgU3RvbHRlbmJlcmcnLCBhcjogJ9i52KjYp9izINin2YTYudmG2KfYqNmKJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdTYWxlcyBNYW5hZ2VyJywgYXI6ICfZhdiv2YrYsSDZhdio2YrYudin2KonIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3Rlc3RpbW9uaWFscy90ZXN0aW1vbmlhbHMtNS5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnSSBrbm93IEkgY2FuIGNvdW50IG9uIHlvdXIgc2VydmljZSBpZiBJIG5lZWQgbXkgcHJvamVjdCBkb25lIGZhc3QgYW5kIHdpdGggdGhlIGJlc3QgcG9zc2libGUgcmVzdWx0LiBJIGFtIGEgcmVndWxhciBjdXN0b21lciBhbmQgaG9wZSB0byBjb250aW51ZSBvdXIgd29yayEnLFxyXG4gICAgICAgICAgICBhcjogJ9mK2YXZg9mG2YbZiiDYp9mE2KfYudiq2YXYp9ivINi52YTZiSDYrtiv2YXYp9iqINmF2K3ZhdivINiv2KfYptmF2YvYpyDZiNiu2KfYtdipINil2LDYpyDZg9mG2Kog2KjYrdin2KzYqSDYpdmE2Ykg2KXZhtis2KfYsiDZhdi02LHZiNi52Yog2YHZiiDYo9mC2YQg2YjZgtiqINmI2KjYo9mB2LbZhCDZhtiq2YrYrNipINmF2YXZg9mG2KkuINij2YbYpyDYudmF2YrZhCDZhdmG2KrYuNmFINmE2K/ZitmHINmI2KLZhdmEINij2YYg2YbZiNin2LXZhCDYudmF2YTZhtinINmF2LnYpyDYr9in2KbZhdmL2KcuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnS2VudG9uIE1hcnF1YXJkdCcsIGFyOiAn2LPZhdmK2LEg2KfZhNmG2KzYp9ixJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdBcnQgRGlyZWN0b3InLCBhcjogJ9ii2LHYqiDYr9in2YrYsdmD2KrZiNixJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTYuanBnJyxcclxuICAgICAgICAgIHF1b3RlQ29udGVudDoge1xyXG4gICAgICAgICAgICBlbjogJ011aGFtbWFkIHdhcyBhIHJlYWwgcGxlYXN1cmUgdG8gd29yayB3aXRoIGFuZCB3ZSBsb29rIGZvcndhcmQgdG8gd29ya2luZyB3aXRoIGhpbSBhZ2Fpbi4gSGXigJlzIGRlZmluaXRlbHkgdGhlIGtpbmQgb2YgZGV2ZWxvcGVyIHlvdSBjYW4gdHJ1c3Qgd2l0aCBhIHByb2plY3QgZnJvbSBzdGFydCB0byBmaW5pc2guJyxcclxuICAgICAgICAgICAgYXI6ICfYo9mG2Kcg2LPYudmK2K8g2K3ZgtmL2Kcg2KjYp9mE2LnZhdmEINmF2Lkg2YXYrdmF2K8g2YjYo9iq2LfZhNi5INil2YTZiSDYp9mE2LnZhdmEINmF2LnZhyDZhdix2Kkg2KPYrtix2Ykg2YLYsdmK2KjYpy4g2YfZiCDYqNin2YTYqtij2YPZitivINmF2YYg2KfZhNmF2LfZiNix2YrZhiDYp9mE2LDZiiDZitmF2YPZhtmDINin2YTZiNir2YjZgiDYqNmH2YUg2YTZhNi52YXZhCDYudmE2Ykg2YXYtNix2YjYudmDINmF2YYg2KfZhNio2K/Yp9mK2Kkg2KXZhNmJINin2YTZhtmH2KfZitipLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBxdW90ZUF1dGhvcjogeyBlbjogJ1JleW5hIEhhbW1lcycsIGFyOiAn2KPZhdmK2LEg2K/Yp9mI2YjYrycgfSxcclxuICAgICAgICAgIGpvYlRpdGxlOiB7IGVuOiAnTW90aW9uIEdyYXBoaWMgQW5pbWF0b3InLCBhcjogJ9mF2LXZhdmFINmF2YjYtNmGINis2LHYp9mB2YrZgycgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvdGVzdGltb25pYWxzL3Rlc3RpbW9uaWFscy03LmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdNdWhhbW1hZCB3YXMgYSByZWFsIHBsZWFzdXJlIHRvIHdvcmsgd2l0aCBhbmQgd2UgbG9vayBmb3J3YXJkIHRvIHdvcmtpbmcgd2l0aCBoaW0gYWdhaW4uIEhl4oCZcyBkZWZpbml0ZWx5IHRoZSBraW5kIG9mIGRldmVsb3BlciB5b3UgY2FuIHRydXN0IHdpdGggYSBwcm9qZWN0IGZyb20gc3RhcnQgdG8gZmluaXNoLicsXHJcbiAgICAgICAgICAgIGFyOiAn2KPZhtinINiz2LnZitivINit2YLZi9inINio2KfZhNi52YXZhCDZhdi5INmF2K3ZhdivINmI2KPYqti32YTYuSDYpdmE2Ykg2KfZhNi52YXZhCDZhdi52Ycg2YXYsdipINij2K7YsdmJINmC2LHZitio2KcuINmH2Ygg2KjYp9mE2KrYo9mD2YrYryDZhdmGINin2YTZhdi32YjYsdmK2YYg2KfZhNiw2Yog2YrZhdmD2YbZgyDYp9mE2YjYq9mI2YIg2KjZh9mFINmE2YTYudmF2YQg2LnZhNmJINmF2LTYsdmI2LnZgyDZhdmGINin2YTYqNiv2KfZitipINil2YTZiSDYp9mE2YbZh9in2YrYqS4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcXVvdGVBdXRob3I6IHsgZW46ICdKb3ZhbiBQYXJpc2lhbicsIGFyOiAn2YXZhti12YjYsSDYp9mE2LPZgtin2LcnIH0sXHJcbiAgICAgICAgICBqb2JUaXRsZTogeyBlbjogJ01vdGlvbiBHcmFwaGljIEFuaW1hdG9yJywgYXI6ICfZhdi12YXZhSDZhdmI2LTZhiDYrNix2KfZgdmK2YMnIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3Rlc3RpbW9uaWFscy90ZXN0aW1vbmlhbHMtOC5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnSSBrbm93IEkgY2FuIGNvdW50IG9uIHlvdXIgc2VydmljZSBpZiBJIG5lZWQgbXkgcHJvamVjdCBkb25lIGZhc3QgYW5kIHdpdGggdGhlIGJlc3QgcG9zc2libGUgcmVzdWx0LiBJIGFtIGEgcmVndWxhciBjdXN0b21lciBhbmQgaG9wZSB0byBjb250aW51ZSBvdXIgd29yayEnLFxyXG4gICAgICAgICAgICBhcjogJ9mK2YXZg9mG2YbZiiDYp9mE2KfYudiq2YXYp9ivINi52YTZiSDYrtiv2YXYp9iqINmF2K3ZhdivINiv2KfYptmF2YvYpyDZiNiu2KfYtdipINil2LDYpyDZg9mG2Kog2KjYrdin2KzYqSDYpdmE2Ykg2KXZhtis2KfYsiDZhdi02LHZiNi52Yog2YHZiiDYo9mC2YQg2YjZgtiqINmI2KjYo9mB2LbZhCDZhtiq2YrYrNipINmF2YXZg9mG2KkuINij2YbYpyDYudmF2YrZhCDZhdmG2KrYuNmFINmE2K/ZitmHINmI2KLZhdmEINij2YYg2YbZiNin2LXZhCDYudmF2YTZhtinINmF2LnYpyDYr9in2KbZhdmL2KcuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnUGFzcXVhbGUgRGVja293JywgYXI6ICfYudi32Kcg2KjZhiDYudin2LTZiNixJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdBcnQgRGlyZWN0b3InLCBhcjogJ9ii2LHYqiDYr9in2YrYsdmD2KrZiNixJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTkuanBnJyxcclxuICAgICAgICAgIHF1b3RlQ29udGVudDoge1xyXG4gICAgICAgICAgICBlbjogJ05hZmllIHdvcmtlZCBvbiBhIGhhbmRmdWwgb2YgcHJvamVjdHMgZm9yIHVzIGFuZCBoYXMgYWx3YXlzIGV4Y2VlZGVkIG91ciBleHBlY3RhdGlvbnMuIE5hZmllIHRlYW0gaXMgZGVkaWNhdGVkLCB0YWxlbnRlZCBhbmQgYSBkZWxpZ2h0IHRvIHdvcmsgd2l0aC4nLFxyXG4gICAgICAgICAgICBhcjogJ9i52YXZhCDZhdit2YXYryDZgdmKINi52K/YryDZg9io2YrYsSDZhdmGINin2YTZhdi02KfYsdmK2Lkg2YTYo9is2YTZhtinINmI2YPYp9mGINiv2KfYptmF2YvYpyDZitmB2YjZgiDYqtmI2YLYudin2KrZhtinLiDZhdi32YjYsSDZhdiq2K7Ytdi1INmI2YXZiNmH2YjYqCDZiNmG2LPYudivINiv2KfYptmF2YvYpyDYqNin2YTYudmF2YQg2YXYudmHLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBxdW90ZUF1dGhvcjogeyBlbjogJ1Jvc2EgRmVycnknLCBhcjogJ9mG2KfZgdi5INit2KfYqtmFJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdTYWxlcyBNYW5hZ2VyJywgYXI6ICfZhdiv2YrYsSDZhdio2YrYudin2KonIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICBpbWdVcmw6ICdhc3NldHMvaW1hZ2VzL3Rlc3RpbW9uaWFscy90ZXN0aW1vbmlhbHMtMTAuanBnJyxcclxuICAgICAgICAgIHF1b3RlQ29udGVudDoge1xyXG4gICAgICAgICAgICBlbjogJ05hZmllIHRlYW0gaXMgdmVyeSBwcm9mZXNzaW9uYWwsIGFsd2F5cyBkZWxpdmVycyBoaWdoIHF1YWxpdHkgcmVzdWx0cywgYW5kIGlzIGFsd2F5cyB0aGVyZSB0byBoZWxwLiBMb29rIGZvcndhcmQgdG8gd29ya2luZyB3aXRoIE5hZmllIGluIG90aGVyIHByb2plY3RzLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YXYrdmF2K8g2YXYt9mI2LEg2YXYrdiq2LHZgSDZhNmE2LrYp9mK2Kkg2YrZgtiv2YUg2K/Yp9im2YXZi9inINmG2KrYp9im2Kwg2LnYp9mE2YrYqSDYp9mE2KzZiNiv2Kkg2Iwg2YjZh9mIINiv2KfYptmF2YvYpyDZhdmI2KzZiNivINmE2YTZhdiz2KfYudiv2KkuINmG2KrYt9mE2Lkg2KXZhNmJINin2YTYudmF2YQg2YXYudmHINmB2Yog2YXYtNin2LHZiti5INij2K7YsdmJLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBxdW90ZUF1dGhvcjogeyBlbjogJ0tlc2hhdW4gUm9iZWwnLCBhcjogJ9i12K/ZgtmKINin2YTYt9mI2YrZhCcgfSxcclxuICAgICAgICAgIGpvYlRpdGxlOiB7IGVuOiAnQ0VPLCBEZXNpZ25lcicsIGFyOiAn2KPYrti12KfYptmKIFNFTycgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvdGVzdGltb25pYWxzL3Rlc3RpbW9uaWFscy0xMS5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnRXhjZWxsZW50IFRlYW0gdG8gd29yayB3aXRoLiBBbHdheXMgcG9zaXRpdmUgdG8gZmluZCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzb2x1dGlvbi4gTmFmaWUgaXMgb25lIG9mIHRoZSBwcm9mZXNzaW9uYWwgd2ViIGRldmVsb3BtZW50IGFnZW5jeSB0aGF0IHByb3ZpZGVzIGF3ZXNvbWUgc2VydmljZXMuJyxcclxuICAgICAgICAgICAgYXI6ICfZgdix2YrZgiDZhdmF2KrYp9iyINmE2YTYudmF2YQg2YXYudmHLiDYpdmK2KzYp9io2Yog2K/Yp9im2YXZi9inINmE2YTYudir2YjYsSDYudmE2Ykg2KfZhNit2YQg2KfZhNij2YbYs9ioLiDZh9mFINil2K3Yr9mJINi02LHZg9in2Kog2KrYt9mI2YrYsSDYp9mE2YjZitioINin2YTZhdit2KrYsdmB2Kkg2KfZhNiq2Yog2KrZgtiv2YUg2K7Yr9mF2KfYqiDYsdin2KbYudipLidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBxdW90ZUF1dGhvcjogeyBlbjogJ0Nhc3BlciBQYXVjZWsnLCBhcjogJ9it2LPYp9mGINin2K/YsdmK2LMnIH0sXHJcbiAgICAgICAgICBqb2JUaXRsZTogeyBlbjogJ1Byb2plY3QgTWFuYWdlcicsIGFyOiAn2YXYr9mK2LEg2KfZhNmF2LTYp9ix2YrYuScgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvdGVzdGltb25pYWxzL3Rlc3RpbW9uaWFscy0xMi5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnTmFmaWUgc2ltcGx5IHByb3ZpZGVzIGFtYXppbmcgd2ViIGRldmVsb3BtZW50IHNlcnZpY2UuIFRoZWlyIHRlYW0gaXMgZXh0cmVtZWx5IHByb2Zlc3Npb25hbCBhbmQgdGhlIGVhc2llc3QgdG8gbWVldCBJIGhhdmUgZXZlciB3b3JrZWQgd2l0aC4gSSB3b3VsZCByZWNvbW1lbmQgTmFmaWUgdG8gYW55b25lLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YXYrdmF2K8g2YrZgtiv2YUg2K7Yr9mF2KfYqiDZhdiw2YfZhNipINmB2Yog2KrYt9mI2YrYsSDYp9mE2YjZitio2Iwg2YjZhNiv2YrZhyDZgdix2YrZgiDZhdit2KrYsdmBINmK2KzYudmEINin2YTYqti52KfZhdmEINmF2LnZh9mFINmF2LfZhdim2YYg2YTZhNi62KfZitipLiDYo9mI2LXZiiDYqNmB2LHZitmC2YfZhSDZhNmE2KzZhdmK2LkuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnQXJjaGliYWxkIEZhZGVsJywgYXI6ICfZhdis2K8g2KfZhNmD2KfZgdmKJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdQaG90b2dyYXBoZXInLCBhcjogJ9mF2LXZiNixINmB2YjYqtmI2LrYsdin2YHZiicgfVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGltZ1VybDogJ2Fzc2V0cy9pbWFnZXMvdGVzdGltb25pYWxzL3Rlc3RpbW9uaWFscy0xMy5qcGcnLFxyXG4gICAgICAgICAgcXVvdGVDb250ZW50OiB7XHJcbiAgICAgICAgICAgIGVuOiAnTmFmaWUgc2ltcGx5IHByb3ZpZGVzIGFtYXppbmcgd2ViIGRldmVsb3BtZW50IHNlcnZpY2UuIFRoZWlyIHRlYW0gaXMgZXh0cmVtZWx5IHByb2Zlc3Npb25hbCBhbmQgdGhlIGVhc2llc3QgdG8gbWVldCBJIGhhdmUgZXZlciB3b3JrZWQgd2l0aC4gSSB3b3VsZCByZWNvbW1lbmQgTmFmaWUgdG8gYW55b25lLicsXHJcbiAgICAgICAgICAgIGFyOiAn2YXYrdmF2K8g2YrZgtiv2YUg2K7Yr9mF2KfYqiDZhdiw2YfZhNipINmB2Yog2KrYt9mI2YrYsSDYp9mE2YjZitio2Iwg2YjZhNiv2YrZhyDZgdix2YrZgiDZhdit2KrYsdmBINmK2KzYudmEINin2YTYqti52KfZhdmEINmF2LnZh9mFINmF2LfZhdim2YYg2YTZhNi62KfZitipLiDYo9mI2LXZiiDYqNmB2LHZitmC2YfZhSDZhNmE2KzZhdmK2LkuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnVGFiaXRoYSBEZW5lc2lrJywgYXI6ICfYotiz2LEg2KjZhtiz2YTYp9mF2KknIH0sXHJcbiAgICAgICAgICBqb2JUaXRsZTogeyBlbjogJ1Bob3RvZ3JhcGhlcicsIGFyOiAn2YXYtdmI2LEg2YHZiNiq2YjYutix2KfZgdmKJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTE0LmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdFeGNlbGxlbnQgVGVhbSB0byB3b3JrIHdpdGguIEFsd2F5cyBwb3NpdGl2ZSB0byBmaW5kIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHNvbHV0aW9uLiBOYWZpZSBpcyBvbmUgb2YgdGhlIHByb2Zlc3Npb25hbCB3ZWIgZGV2ZWxvcG1lbnQgYWdlbmN5IHRoYXQgcHJvdmlkZXMgYXdlc29tZSBzZXJ2aWNlcy4nLFxyXG4gICAgICAgICAgICBhcjogJ9mB2LHZitmCINmF2YXYqtin2LIg2YTZhNi52YXZhCDZhdi52YcuINil2YrYrNin2KjZiiDYr9in2KbZhdmL2Kcg2YTZhNi52KvZiNixINi52YTZiSDYp9mE2K3ZhCDYp9mE2KPZhtiz2KguINmH2YUg2KXYrdiv2Ykg2LTYsdmD2KfYqiDYqti32YjZitixINin2YTZiNmK2Kgg2KfZhNmF2K3Yqtix2YHYqSDYp9mE2KrZiiDYqtmC2K/ZhSDYrtiv2YXYp9iqINix2KfYpti52KkuJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHF1b3RlQXV0aG9yOiB7IGVuOiAnSmF2b24gQm9nYW4nLCBhcjogJ9i12YfZitioINin2YTYtNix2YrZgScgfSxcclxuICAgICAgICAgIGpvYlRpdGxlOiB7IGVuOiAnUHJvamVjdCBNYW5hZ2VyJywgYXI6ICfZhdiv2YrYsSDYp9mE2YXYtNin2LHZiti5JyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTE1LmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdOYWZpZSB0ZWFtIGlzIHZlcnkgcHJvZmVzc2lvbmFsLCBhbHdheXMgZGVsaXZlcnMgaGlnaCBxdWFsaXR5IHJlc3VsdHMsIGFuZCBpcyBhbHdheXMgdGhlcmUgdG8gaGVscC4gTG9vayBmb3J3YXJkIHRvIHdvcmtpbmcgd2l0aCBOYWZpZSBpbiBvdGhlciBwcm9qZWN0cy4nLFxyXG4gICAgICAgICAgICBhcjogJ9mF2K3ZhdivINmF2LfZiNixINmF2K3Yqtix2YEg2YTZhNi62KfZitipINmK2YLYr9mFINiv2KfYptmF2YvYpyDZhtiq2KfYptisINi52KfZhNmK2Kkg2KfZhNis2YjYr9ipINiMINmI2YfZiCDYr9in2KbZhdmL2Kcg2YXZiNis2YjYryDZhNmE2YXYs9in2LnYr9ipLiDZhtiq2LfZhNi5INil2YTZiSDYp9mE2LnZhdmEINmF2LnZhyDZgdmKINmF2LTYp9ix2YrYuSDYo9iu2LHZiS4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcXVvdGVBdXRob3I6IHsgZW46ICdEdW5jYW4gS2VtbWVyJywgYXI6ICfYs9mK2K8g2YPYsdmFJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdDRU8sIERlc2lnbmVyJywgYXI6ICfYo9iu2LXYp9im2YogU0VPJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTE2LmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdOYWZpZSB3b3JrZWQgb24gYSBoYW5kZnVsIG9mIHByb2plY3RzIGZvciB1cyBhbmQgaGFzIGFsd2F5cyBleGNlZWRlZCBvdXIgZXhwZWN0YXRpb25zLiBOYWZpZSB0ZWFtIGlzIGRlZGljYXRlZCwgdGFsZW50ZWQgYW5kIGEgZGVsaWdodCB0byB3b3JrIHdpdGguJyxcclxuICAgICAgICAgICAgYXI6ICfYudmF2YQg2YXYrdmF2K8g2YHZiiDYudiv2K8g2YPYqNmK2LEg2YXZhiDYp9mE2YXYtNin2LHZiti5INmE2KPYrNmE2YbYpyDZiNmD2KfZhiDYr9in2KbZhdmL2Kcg2YrZgdmI2YIg2KrZiNmC2LnYp9iq2YbYpy4g2YXYt9mI2LEg2YXYqtiu2LXYtSDZiNmF2YjZh9mI2Kgg2YjZhtiz2LnYryDYr9in2KbZhdmL2Kcg2KjYp9mE2LnZhdmEINmF2LnZhy4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcXVvdGVBdXRob3I6IHsgZW46ICdDb3kgSm9obnMnLCBhcjogJ9mH2YrYq9mFINin2YTYtNix2YrZgScgfSxcclxuICAgICAgICAgIGpvYlRpdGxlOiB7IGVuOiAnU2FsZXMgTWFuYWdlcicsIGFyOiAn2YXYr9mK2LEg2YXYqNmK2LnYp9iqJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTE3LmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdJIGtub3cgSSBjYW4gY291bnQgb24geW91ciBzZXJ2aWNlIGlmIEkgbmVlZCBteSBwcm9qZWN0IGRvbmUgZmFzdCBhbmQgd2l0aCB0aGUgYmVzdCBwb3NzaWJsZSByZXN1bHQuIEkgYW0gYSByZWd1bGFyIGN1c3RvbWVyIGFuZCBob3BlIHRvIGNvbnRpbnVlIG91ciB3b3JrIScsXHJcbiAgICAgICAgICAgIGFyOiAn2YrZhdmD2YbZhtmKINin2YTYp9i52KrZhdin2K8g2LnZhNmJINiu2K/Zhdin2Kog2YXYrdmF2K8g2K/Yp9im2YXZi9inINmI2K7Yp9i12Kkg2KXYsNinINmD2YbYqiDYqNit2KfYrNipINil2YTZiSDYpdmG2KzYp9iyINmF2LTYsdmI2LnZiiDZgdmKINij2YLZhCDZiNmC2Kog2YjYqNij2YHYttmEINmG2KrZitis2Kkg2YXZhdmD2YbYqS4g2KPZhtinINi52YXZitmEINmF2YbYqti42YUg2YTYr9mK2Ycg2YjYotmF2YQg2KPZhiDZhtmI2KfYtdmEINi52YXZhNmG2Kcg2YXYudinINiv2KfYptmF2YvYpy4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcXVvdGVBdXRob3I6IHsgZW46ICdNdXJwaHkgUm9iZXJ0cycsIGFyOiAn2KXYs9mE2KfZhSDZhdi12LfZgdmJJyB9LFxyXG4gICAgICAgICAgam9iVGl0bGU6IHsgZW46ICdBcnQgRGlyZWN0b3InLCBhcjogJ9ii2LHYqiDYr9in2YrYsdmD2KrZiNixJyB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgaW1nVXJsOiAnYXNzZXRzL2ltYWdlcy90ZXN0aW1vbmlhbHMvdGVzdGltb25pYWxzLTE4LmpwZycsXHJcbiAgICAgICAgICBxdW90ZUNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgZW46ICdNdWhhbW1hZCB3YXMgYSByZWFsIHBsZWFzdXJlIHRvIHdvcmsgd2l0aCBhbmQgd2UgbG9vayBmb3J3YXJkIHRvIHdvcmtpbmcgd2l0aCBoaW0gYWdhaW4uIEhl4oCZcyBkZWZpbml0ZWx5IHRoZSBraW5kIG9mIGRldmVsb3BlciB5b3UgY2FuIHRydXN0IHdpdGggYSBwcm9qZWN0IGZyb20gc3RhcnQgdG8gZmluaXNoLicsXHJcbiAgICAgICAgICAgIGFyOiAn2KPZhtinINiz2LnZitivINit2YLZi9inINio2KfZhNi52YXZhCDZhdi5INmF2K3ZhdivINmI2KPYqti32YTYuSDYpdmE2Ykg2KfZhNi52YXZhCDZhdi52Ycg2YXYsdipINij2K7YsdmJINmC2LHZitio2KcuINmH2Ygg2KjYp9mE2KrYo9mD2YrYryDZhdmGINin2YTZhdi32YjYsdmK2YYg2KfZhNiw2Yog2YrZhdmD2YbZgyDYp9mE2YjYq9mI2YIg2KjZh9mFINmE2YTYudmF2YQg2LnZhNmJINmF2LTYsdmI2LnZgyDZhdmGINin2YTYqNiv2KfZitipINil2YTZiSDYp9mE2YbZh9in2YrYqS4nXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcXVvdGVBdXRob3I6IHsgZW46ICdEaW1pdHJpIExvY2ttYW4nLCBhcjogJ9mI2LPZitmFINin2YTYs9mC2KcnIH0sXHJcbiAgICAgICAgICBqb2JUaXRsZTogeyBlbjogJ01vdGlvbiBHcmFwaGljIEFuaW1hdG9yJywgYXI6ICfZhdi12YXZhSDZhdmI2LTZhiDYrNix2KfZgdmK2YMnIH1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICAvLyBnZXQgYSB0aGVtZSB0byB1c2VcclxuICAgIHRoaXMuZ2V0QXBwVGhlbWUoKTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPj0gOTkyKSB7XHJcbiAgICAgIC8vIGluaXRpYWxpemUgY2lyY2xlIGN1cnNvclxyXG4gICAgICB0aGlzLmluaXRDaXJjbGVDdXJzb3IoKTtcclxuXHJcbiAgICAgIC8vIGFwcGx5IHBhbiBlZmZlY3QgaGVybyBpbWFnZVxyXG4gICAgICB0aGlzLmhlcm9JbWdQYW5FZmZlY3QoKTtcclxuXHJcbiAgICAgIC8vIGluaXRpYWxpemUgVmFuaWxsYVRpbHQgbGlicmFyeSBpbiBwb3J0Zm9saW8gc2VjdGlvblxyXG4gICAgICB0aGlzLmluaXRpYWxpemVUaWx0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbmF2IG1lbnUgdGFiIHRyYXBcclxuICAgIHRoaXMubmF2TWVudVRhYlRyYXAoKTtcclxuXHJcbiAgICAvLyBzY3JvbGxpbmcgb3B0aW9uc1xyXG4gICAgdGhpcy5zY3JvbGxpbmdPcHRpb25zKCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLnNjcm9sbGluZ09wdGlvbnMoKSk7XHJcblxyXG4gICAgLy8gaW5pdGlhbGl6ZSBwb3BwZXIuanMgcGx1Z2luXHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuaGFzLXVsdGltYXRlLXRvb2x0aXAnKS5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgUG9wcGVyLmNyZWF0ZVBvcHBlcihlbCwgZWwucXVlcnlTZWxlY3RvcignLnVsdGltYXRlLXRvb2x0aXAnKSwge1xyXG4gICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXHJcbiAgICAgICAgbW9kaWZpZXJzOiBbeyBuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczogeyBvZmZzZXQ6IFswLCAzMF0gfX1dXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gZ2V0IHBvcnRmb2xpbyBpdGVtc1xyXG4gICAgdGhpcy5nZXRQb3J0Zm9saW9JdGVtcygpO1xyXG5cclxuICAgIC8vIGluaXQgZ2xpZ2h0Ym94IHBsdWdpblxyXG4gICAgY29uc3QgbGlnaHRib3ggPSBuZXcgR0xpZ2h0Ym94KHtcclxuICAgICAgYXV0b3BsYXlWaWRlb3M6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gaW5pdGlhbGl6ZSB0aGUgZmlyc3QgZGlzcGxheWVkIHR5cGUgb2Ygc2tpbGxzXHJcbiAgICB0aGlzLmluaXRTa2lsbHNGaXJzdFR5cGUoKTtcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8vIGluaXRpYWxpemUgY2lyY2xlIGN1cnNvclxyXG4gICAgaW5pdENpcmNsZUN1cnNvcigpIHtcclxuICAgICAgY29uc3QgYXBwID0gdGhpcy4kcmVmcy5hcHBSZWY7XHJcbiAgICAgIGNvbnN0IG91dGVyID0gdGhpcy4kcmVmcy5jaXJjbGVDdXJzb3JPdXRlcjtcclxuICAgICAgY29uc3QgaW5uZXIgPSB0aGlzLiRyZWZzLmNpcmNsZUN1cnNvcklubmVyO1xyXG5cclxuICAgICAgLy8gcmV0dXJuIGlmIGRpc2FibGVkXHJcbiAgICAgIGlmICghb3V0ZXIgfHwgIWlubmVyKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgYXBwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGUgPT4ge1xyXG4gICAgICAgIC8vIG1ha2UgdGhlIGNpcmNsZXMgZm9sbG93IHRoZSBjdXJzb3JcclxuICAgICAgICBvdXRlci5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYHZpc2liaWxpdHk6IHZpc2libGU7IHRvcDogJHtlLmNsaWVudFl9cHg7IGxlZnQ6ICR7ZS5jbGllbnRYfXB4O2ApO1xyXG4gICAgICAgIGlubmVyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBgdmlzaWJpbGl0eTogdmlzaWJsZTsgdG9wOiAke2UuY2xpZW50WX1weDsgbGVmdDogJHtlLmNsaWVudFh9cHg7YCk7XHJcblxyXG4gICAgICAgIC8vIGFkZCBsaW5rIGhvdmVyIHN0eWxlXHJcbiAgICAgICAgKGUudGFyZ2V0LmNsb3Nlc3QoJ2EnKSB8fCBlLnRhcmdldC5jbG9zZXN0KCdidXR0b24nKSB8fCBlLnRhcmdldC5jbG9zZXN0KCcubGluay1ob3ZlcicpKSA/IGlubmVyLmNsYXNzTGlzdC5hZGQoJ2N1cnNvci1saW5rLWhvdmVyJykgOiBpbm5lci5jbGFzc0xpc3QucmVtb3ZlKCdjdXJzb3ItbGluay1ob3ZlcicpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGFwcC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAvLyBhZGQgcHVsc2UgZWZmZWN0IG9uIGNsaWNrXHJcbiAgICAgICAgaW5uZXIuY2xhc3NMaXN0LmFkZCgnY3Vyc29yLWNsaWNrLWVmZmVjdCcpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gaW5uZXIuY2xhc3NMaXN0LnJlbW92ZSgnY3Vyc29yLWNsaWNrLWVmZmVjdCcpLCAyMDApO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gZ2V0IGEgdGhlbWUgdG8gdXNlXHJcbiAgICBnZXRBcHBUaGVtZSgpIHtcclxuICAgICAgLy8gZ2V0IHRoZSBzYXZlZCB0aGVtZSBmcm9tIHRoZSBsb2NhbFN0b3JhZ2VcclxuICAgICAgY29uc3Qgc3RvcmFnZVNhdmVkVGhlbWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbmFmaWVTYXZlZFRoZW1lJyk7XHJcbiAgICBcclxuICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZXJlIGEgc2F2ZWQgdGhlbWVcclxuICAgICAgaWYgKHN0b3JhZ2VTYXZlZFRoZW1lKSB7XHJcbiAgICAgICAgdGhpcy5zYXZlZFRoZW1lID0gc3RvcmFnZVNhdmVkVGhlbWU7XHJcbiAgICBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBTbywgdHJ5IHRvIGdldCB0aGUgYnJvd3NlciBkZWZhdWx0IHRoZW1lIG9yIG1ha2UgeW91ciBvd24gZGVmYXVsdFxyXG4gICAgXHJcbiAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIE1lZGlhLVF1ZXJpZXMgYXJlIHN1cHBvcnRlZFxyXG4gICAgICAgIGlmICh3aW5kb3cubWF0Y2hNZWRpYSkge1xyXG4gICAgXHJcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGFyay1tb2RlIE1lZGlhLVF1ZXJ5IG1hdGNoZXNcclxuICAgICAgICAgIGlmICh3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1hdGNoZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlZFRoZW1lID0gJ2RhcmtfdGhlbWUnO1xyXG4gICAgICAgICAgfSBlbHNlIHsgdGhpcy5zYXZlZFRoZW1lID0gJ2xpZ2h0X3RoZW1lJzsgfVxyXG4gICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIERlZmF1bHQgKHdoZW4gTWVkaWEtUXVlcmllcyBhcmUgbm90IHN1cHBvcnRlZClcclxuICAgICAgICAgIHRoaXMuc2F2ZWRUaGVtZSA9IHRoaXMuYXBwVGhlbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgLy8gc2F2ZSB0aGUgbmV3IHRoZW1lIGluIHRoZSBsb2NhbFN0b3JhZ2VcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ25hZmllU2F2ZWRUaGVtZScsIHRoaXMuc2F2ZWRUaGVtZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIGRldGVjdCB0aGUgdGhlbWUgY2hhbmdlc1xyXG4gICAgY2hhbmdlQXBwVGhlbWUoKSB7XHJcbiAgICAgICh0aGlzLnNhdmVkVGhlbWUgPT09ICdsaWdodF90aGVtZScpID8gdGhpcy5zYXZlZFRoZW1lID0gJ2RhcmtfdGhlbWUnIDogdGhpcy5zYXZlZFRoZW1lID0gJ2xpZ2h0X3RoZW1lJztcclxuXHJcbiAgICAgIC8vIHNhdmUgdGhlIG5ldyB0aGVtZSBpbiB0aGUgbG9jYWxTdG9yYWdlXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCduYWZpZVNhdmVkVGhlbWUnLCB0aGlzLnNhdmVkVGhlbWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyB0b2dnbGUgbmF2IG1lbnVcclxuICAgIHRvZ2dsZU5hdk1lbnUoKSB7XHJcbiAgICAgIHRoaXMuaXNOYXZNZW51T3BlbiA9ICF0aGlzLmlzTmF2TWVudU9wZW47XHJcbiAgICAgIHRoaXMuaXNOYXZNZW51T3BlbiA/IHRoaXMub3Blbk5hdk1lbnUoKSA6IHRoaXMuY2xvc2VOYXZNZW51KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIG9wZW4gbmF2IG1lbnVcclxuICAgIG9wZW5OYXZNZW51KCkge1xyXG4gICAgICBjb25zdCBib2R5RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xyXG5cclxuICAgICAgdGhpcy5pc05hdk1lbnVPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICAgIGJvZHlFbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ292ZXJmbG93LXk6IGhpZGRlbjsnKTtcclxuXHJcbiAgICAgIC8vIHNldCBmb2N1cyBvbiBuYXYgbWVudVxyXG4gICAgICB0aGlzLiRyZWZzLmhlYWRlck5hdi5xdWVyeVNlbGVjdG9yKCcuZGVza3RvcC1tZW51LWNvbnRlbnQnKS5mb2N1cygpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBjbG9zZSBuYXYgbWVudVxyXG4gICAgY2xvc2VOYXZNZW51KCkge1xyXG4gICAgICBjb25zdCBib2R5RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xyXG5cclxuICAgICAgdGhpcy5pc05hdk1lbnVPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICBib2R5RWwucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO1xyXG5cclxuICAgICAgLy8gc2V0IGZvY3VzIG9uIG5hdiBtZW51IHRvZ2dsZSBidXR0b25cclxuICAgICAgdGhpcy4kcmVmcy5uYXZNZW51VG9nZ2xlQnRuLmZvY3VzKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIG5hdiBtZW51IHRhYiB0cmFwXHJcbiAgICBuYXZNZW51VGFiVHJhcCgpIHtcclxuICAgICAgY29uc3QgbmF2ID0gdGhpcy4kcmVmcy5oZWFkZXJOYXY7XHJcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzU3RyaW5nID0gJ2FbaHJlZl0sIGFyZWFbaHJlZl0sIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCBbdGFiaW5kZXg9XCIwXCJdJztcclxuICAgICAgbGV0IGZpcnN0VGFiU3RvcDtcclxuICAgICAgbGV0IGxhc3RUYWJTdG9wO1xyXG4gICAgICBsZXQgaXNGaXJzdFRhYlN0b3A7XHJcbiAgICAgIGxldCBpc0xhc3RUYWJTdG9wO1xyXG5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBlID0+IHtcclxuICAgICAgICBpZiAobmF2LmNsYXNzTGlzdC5jb250YWlucygnbWVudS1vcGVuJykpIHtcclxuICAgICAgICAgIC8vIGdldCBmaXJzdCAmIGxhc3QgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBzaWRlIG1lbnUgZm9yIHRoZSB0YWIgdHJhcFxyXG4gICAgICAgICAgY29uc3QgdmlzaWJsZUZvY3VzYWJsZUVscyA9IFsuLi5uYXYucXVlcnlTZWxlY3RvckFsbChmb2N1c2FibGVFbGVtZW50c1N0cmluZyldXHJcbiAgICAgICAgICAgIC5maWx0ZXIoZWwgPT4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5VmFsdWUoJ3Zpc2liaWxpdHknKSAhPT0gJ2hpZGRlbicpO1xyXG4gICAgICAgICAgZmlyc3RUYWJTdG9wID0gdmlzaWJsZUZvY3VzYWJsZUVsc1swXTtcclxuICAgICAgICAgIGxhc3RUYWJTdG9wID0gdmlzaWJsZUZvY3VzYWJsZUVsc1t2aXNpYmxlRm9jdXNhYmxlRWxzLmxlbmd0aCAtMV07XHJcblxyXG4gICAgICAgICAgaWYgKGUuY29kZSA9PT0gJ1RhYicpIHtcclxuICAgICAgICAgICAgaWYgKGUuc2hpZnRLZXkpIC8qIHNoaWZ0ICsgdGFiICovIHtcclxuICAgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIHRoZSBmaXJzdCBpdGVtLCBtb3ZlIHRvIHRoZSBsYXN0IGl0ZW1cclxuICAgICAgICAgICAgICBpc0ZpcnN0VGFiU3RvcCAmJiBsYXN0VGFiU3RvcC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9IGVsc2UgLyogdGFiICovIHtcclxuICAgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIHRoZSBsYXN0IGl0ZW0sIGdvIGJhY2sgdG8gdGhlIGZpcnN0IGl0ZW1cclxuICAgICAgICAgICAgICBpc0xhc3RUYWJTdG9wICYmIGZpcnN0VGFiU3RvcC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBjbG9zZSBuYXYgbWVudSBvbiBFc2NhcGUgYnV0dG9uIHByZXNzXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGUuY29kZSA9PT0gJ0VzY2FwZScpIHsgdGhpcy50b2dnbGVOYXZNZW51KCk7IH1cclxuXHJcbiAgICAgICAgICAvLyBnZXQgY3VycmVudCBhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgICAgY29uc3QgYWN0aXZlRWwgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICAgIC8vIGNoZWNrIGlmIGxhc3QgaXRlbSBvciBub3RcclxuICAgICAgICAgIGlzTGFzdFRhYlN0b3AgPSAoYWN0aXZlRWwgPT09IGxhc3RUYWJTdG9wKSA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAvLyBjaGVjayBpZiBmaXJzdCBpdGVtIG9yIG5vdFxyXG4gICAgICAgICAgaXNGaXJzdFRhYlN0b3AgPSAoYWN0aXZlRWwgPT09IGZpcnN0VGFiU3RvcCkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gYXBwbHkgcGFuIGVmZmVjdCBoZXJvIGltYWdlXHJcbiAgICBoZXJvSW1nUGFuRWZmZWN0KCkge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLiRyZWZzLmhlcm9TZWN0aW9uO1xyXG5cclxuICAgICAgLy8gcmV0dXJuIGlmIGRpc2FibGVkXHJcbiAgICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXBhbmVmZmVjdCcpKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgY29uc3QgbGF5ZXIxID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5sYXllcicpWzBdO1xyXG4gICAgICBjb25zdCBsYXllcjIgPSBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLmxheWVyJylbMV07XHJcblxyXG4gICAgICBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGUpID0+IHtcclxuICAgICAgICBjb25zdCB4ID0gKChlLnggLSBwYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCkgLyBwYXJlbnQub2Zmc2V0V2lkdGgpICogMTAwO1xyXG4gICAgICAgIGNvbnN0IHkgPSAoKGUueSAtIHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55KSAvIHBhcmVudC5vZmZzZXRIZWlnaHQpICogMTAwO1xyXG5cclxuICAgICAgICBwYXJlbnQuY2xhc3NMaXN0LmFkZCgncGFyYWxsYXgtYW5pbWF0aW9uJyk7XHJcblxyXG4gICAgICAgIGxheWVyMS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYHRyYW5zZm9ybS1vcmlnaW46ICR7eH12dyAke3l9dmg7YCk7XHJcbiAgICAgICAgbGF5ZXIyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBgdHJhbnNmb3JtLW9yaWdpbjogJHt4fXZ3ICR7eX12aDtgKTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHNjcm9sbGluZyBvcHRpb25zXHJcbiAgICBzY3JvbGxpbmdPcHRpb25zKCkge1xyXG4gICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5wYWdlWU9mZnNldDtcclxuICAgIFxyXG4gICAgICAvLyBjaGVjayBmb3IgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gdG8gbWluaW1pemUgdGhlIGhlYWRlclxyXG4gICAgICB0aGlzLmlzSGVhZGVyQmlnID0gKHNjcm9sbFBvc2l0aW9uID49IHRoaXMuc3RhcnRNaW5pbWl6aW5nSGVhZGVyQXQpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgXHJcbiAgICAgIC8vIGNoZWNrIGZvciBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiB0byB0b2dnbGUgdGhlIGhlYWRlclxyXG4gICAgICB0aGlzLmlzSGVhZGVySGlkZGVuID0gKChzY3JvbGxQb3NpdGlvbiA+IDEwMCkgJiYgKHNjcm9sbFBvc2l0aW9uID4gdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24pKSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gc2Nyb2xsIHRvIHRvcFxyXG4gICAgc2Nyb2xsVG9Ub3AoKSB7XHJcbiAgICAgIHdpbmRvdy5zY3JvbGwoeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gaW5pdGlhbGl6ZSB0aGUgZmlyc3QgZGlzcGxheWVkIHR5cGUgb2Ygc2tpbGxzXHJcbiAgICBpbml0U2tpbGxzRmlyc3RUeXBlKCkge1xyXG4gICAgICBjb25zdCBza2lsbHNTd2l0Y2hCdG4gPSB0aGlzLiRyZWZzLnNraWxsc1N3aXRjaEJ0bjtcclxuXHJcbiAgICAgIC8vIHJldHVybiBpZiBkaXNhYmxlZFxyXG4gICAgICBpZiAoIXNraWxsc1N3aXRjaEJ0bikgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIHRoaXMuc2tpbGxzVHlwZSA9IHNraWxsc1N3aXRjaEJ0bi5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBpbml0aWFsaXplIFZhbmlsbGFUaWx0IGxpYnJhcnkgaW4gcG9ydGZvbGlvIHNlY3Rpb25cclxuICAgIGluaXRpYWxpemVUaWx0KCkge1xyXG4gICAgICBjb25zdCBwb3J0Zm9saW9JdGVtcyA9IHRoaXMuJHJlZnMucG9ydGZvbGlvSXRlbXM7XHJcblxyXG4gICAgICAvLyByZXR1cm4gaWYgZGlzYWJsZWRcclxuICAgICAgaWYgKCFwb3J0Zm9saW9JdGVtcykgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIFZhbmlsbGFUaWx0LmluaXQocG9ydGZvbGlvSXRlbXMucXVlcnlTZWxlY3RvckFsbCgnLnBvcnRmb2xpby1pdGVtJyksIHtcclxuICAgICAgICBtYXg6IDgsXHJcbiAgICAgICAgc3BlZWQ6IDQwMCxcclxuICAgICAgICBnbGFyZTogdHJ1ZSxcclxuICAgICAgICAnbWF4LWdsYXJlJzogMC4zXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBnZXQgcG9ydGZvbGlvIGl0ZW1zXHJcbiAgICBnZXRQb3J0Zm9saW9JdGVtcygpIHtcclxuICAgICAgY29uc3QgaXRlbXNBcnIgPSB0aGlzLmFsbFBvcnRmb2xpb0l0ZW1zXHJcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgICBjb25zdCB0YXggPSB1cmxQYXJhbXMuZ2V0KCd0YXgnKTtcclxuXHJcbiAgICAgICAgICBpZiAodGF4KSB7XHJcbiAgICAgICAgICAgIGlmICh0YXggPT09ICdjYXQnKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2F0ID0gdXJsUGFyYW1zLmdldCgnY2F0Jyk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMucG9ydGZvbGlvQXJjaGl2ZU5hbWUgPSBjYXQ7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uY2F0ZWdvcnkgPT09IGNhdDtcclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGF4ID09PSAndG9vbHMnKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9vbCA9IHVybFBhcmFtcy5nZXQoJ3Rvb2xzJyk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMucG9ydGZvbGlvQXJjaGl2ZU5hbWUgPSB0b29sO1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtLnRvb2xzLmluY2x1ZGVzKHRvb2wpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEZpbHRlciA9PT0gJ0FsbCcgfHwgaXRlbS5jYXRlZ29yeSA9PT0gdGhpcy5jdXJyZW50RmlsdGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnNsaWNlKHRoaXMuZmlsdGVyZWRQb3J0Zm9saW9JdGVtcy5sZW5ndGgsIHRoaXMucG9ydGZvbGlvSXRlbXNQYWdlICogdGhpcy5pdGVtc1BlclBhZ2UpO1xyXG5cclxuICAgICAgLy8gY2hlY2sgaWYgaGF2ZSB3b3JrcyBvciBub3RcclxuICAgICAgaWYgKGl0ZW1zQXJyLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMucG9ydGZvbGlvSXRlbXMucHVzaCguLi5pdGVtc0Fycik7XHJcblxyXG4gICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICAgIC8vIHJlaW5pdGlhbGl6ZSBWYW5pbGxhVGlsdCBmb3IgbmV3IGl0ZW1zXHJcbiAgICAgICAgICB0aGlzLnBvcnRmb2xpb0l0ZW1zUGFnZSA+IDEgJiYgdGhpcy5pbml0aWFsaXplVGlsdCgpO1xyXG5cclxuICAgICAgICAgIC8vIEZvcmNlcyB0aGUgU2Nyb2xsVHJpZ2dlciBpbnN0YW5jZSB0byByZS1jYWxjdWxhdGUgaXRzIHN0YXJ0IGFuZCBlbmQgdmFsdWVzXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IFNjcm9sbFRyaWdnZXIucmVmcmVzaCgpLCA1MDApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnBvcnRmb2xpb0l0ZW1zUGFnZSsrO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgLy8gc2hvdyBtZXNzYWdlIFwiTm8gd29ya3NcIiB0byB0aGUgdXNlclxyXG4gICAgICAgIHRoaXMuc2V0Tm90aWZ5KHtcclxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhbmdlcicsXHJcbiAgICAgICAgICBtc2c6IHRoaXMuJHJlZnMucG9ydGZvbGlvSXRlbXMuZ2V0QXR0cmlidXRlKCdkYXRhLW5vLXdvcmtzLW1zZycpLFxyXG4gICAgICAgICAgdGltZTogMzAwMFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIGZpbHRlciBwb3J0Zm9saW8gaXRlbXNcclxuICAgIGZpbHRlclBvcnRmb2xpb0l0ZW1zKGZpbHRlcikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXIgPSBmaWx0ZXI7XHJcbiAgICAgIHRoaXMucG9ydGZvbGlvSXRlbXNQYWdlID0gMTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmZpbHRlcmVkUG9ydGZvbGlvSXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgLy8gcmVpbml0aWFsaXplIFZhbmlsbGFUaWx0IGZvciBuZXcgaXRlbXNcclxuICAgICAgICAgIHRoaXMucG9ydGZvbGlvSXRlbXNQYWdlID4gMSAmJiB0aGlzLmluaXRpYWxpemVUaWx0KCk7XHJcblxyXG4gICAgICAgICAgLy8gRm9yY2VzIHRoZSBTY3JvbGxUcmlnZ2VyIGluc3RhbmNlIHRvIHJlLWNhbGN1bGF0ZSBpdHMgc3RhcnQgYW5kIGVuZCB2YWx1ZXNcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gU2Nyb2xsVHJpZ2dlci5yZWZyZXNoKCksIDUwMCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGdldCBuZXcgcG9ydGZvbGlvIGl0ZW1zXHJcbiAgICAgICAgdGhpcy5nZXRQb3J0Zm9saW9JdGVtcygpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIGNvbnRhY3QgZm9ybSB2YWxpZGF0aW9uXHJcbiAgICBjb250YWN0Rm9ybVZhbGlkYXRpb24oKSB7XHJcblxyXG4gICAgICAvLyBjb250YWN0IGZvcm1cclxuICAgICAgY29uc3QgY29udGFjdEZvcm0gPSB0aGlzLiRyZWZzLmNvbnRhY3RGb3JtO1xyXG5cclxuICAgICAgLy8gZm9ybSBjb250cm9sc1xyXG4gICAgICBjb25zdCBuYW1lICAgICAgICA9IGNvbnRhY3RGb3JtLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9XCJuYW1lXCJdJyk7XHJcbiAgICAgIGNvbnN0IGVtYWlsICAgICAgID0gY29udGFjdEZvcm0ucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT1cImVtYWlsXCJdJyk7XHJcbiAgICAgIGNvbnN0IHBob25lICAgICAgID0gY29udGFjdEZvcm0ucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT1cInBob25lXCJdJyk7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2UgICAgID0gY29udGFjdEZvcm0ucXVlcnlTZWxlY3RvcigndGV4dGFyZWEnKTtcclxuXHJcbiAgICAgIC8vIGZvcm0gdmFsaWRhdGlvbiBzdGF0dXNcclxuICAgICAgbGV0IGVycm9ycyA9IHtcclxuICAgICAgICBuYW1lOiB7IHJlcXVpcmVkOiB0cnVlLCBtaW5MZW5ndGg6IHRydWUgfSxcclxuICAgICAgICBlbWFpbDogeyByZXF1aXJlZDogdHJ1ZSwgaW52YWxpZDogdHJ1ZSB9LFxyXG4gICAgICAgIHBob25lOiB7IGludmFsaWQ6IHRydWUgfSxcclxuICAgICAgICBtZXNzYWdlOiB7IHJlcXVpcmVkOiB0cnVlIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLSAqL1xyXG4gICAgICAvKiBuYW1lIHZhbGlkYXRpb24gKi9cclxuICAgICAgLyogLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4gICAgICAvLyByZXF1aXJlZCB2YWxpZGF0aW9uXHJcbiAgICAgIGlmIChuYW1lLnZhbHVlID09PSAnJykge1xyXG4gICAgICAgIGVycm9ycy5uYW1lLnJlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldE5vdGlmeSh7XHJcbiAgICAgICAgICBpZDogJ25hbWVSZXF1aXJlZCcsXHJcbiAgICAgICAgICBjbGFzc05hbWU6ICdkYW5nZXInLFxyXG4gICAgICAgICAgbXNnOiBuYW1lLmNsb3Nlc3QoJy5jb250cm9sJykucXVlcnlTZWxlY3RvcignLmVycm9ycy1tc2dzIC5yZXF1aXJlZCcpLnZhbHVlXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVycm9ycy5uYW1lLnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5kaXNtaXNzTm90aWZ5KCduYW1lUmVxdWlyZWQnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbWlubGVuZ3RoIHZhbGlkYXRpb25cclxuICAgICAgaWYgKG5hbWUudmFsdWUubGVuZ3RoID4gMCAmJiBuYW1lLnZhbHVlLmxlbmd0aCA8IG5hbWUuZ2V0QXR0cmlidXRlKCdtaW5sZW5ndGgnKSkge1xyXG4gICAgICAgIGVycm9ycy5uYW1lLm1pbkxlbmd0aCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXROb3RpZnkoe1xyXG4gICAgICAgICAgaWQ6ICduYW1lTWluTGVuZ3RoJyxcclxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhbmdlcicsXHJcbiAgICAgICAgICBtc2c6IG5hbWUuY2xvc2VzdCgnLmNvbnRyb2wnKS5xdWVyeVNlbGVjdG9yKCcuZXJyb3JzLW1zZ3MgLm1pbkxlbmd0aCcpLnZhbHVlXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVycm9ycy5uYW1lLm1pbkxlbmd0aCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlzbWlzc05vdGlmeSgnbmFtZU1pbkxlbmd0aCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0b2dnbGUgaW52YWxpZCBlcnJvcnMgJiBzdHlsZSBjbGFzc2VzXHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMubmFtZSkuc29tZShlcnIgPT4gZXJyb3JzLm5hbWVbZXJyXSA9PT0gdHJ1ZSkpIHtcclxuICAgICAgICBuYW1lLmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkJyk7XHJcbiAgICAgICAgbmFtZS5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmFtZS5jbGFzc0xpc3QucmVtb3ZlKCdpbnZhbGlkJyk7XHJcbiAgICAgICAgbmFtZS5jbGFzc0xpc3QuYWRkKCd2YWxpZCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tICovXHJcbiAgICAgIC8qIGVtYWlsIHZhbGlkYXRpb24gKi9cclxuICAgICAgLyogLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICAgICAgLy8gcmVxdWlyZWQgdmFsaWRhdGlvblxyXG4gICAgICBpZiAoZW1haWwudmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgZXJyb3JzLmVtYWlsLnJlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldE5vdGlmeSh7XHJcbiAgICAgICAgICBpZDogJ2VtYWlsUmVxdWlyZWQnLFxyXG4gICAgICAgICAgY2xhc3NOYW1lOiAnZGFuZ2VyJyxcclxuICAgICAgICAgIG1zZzogZW1haWwuY2xvc2VzdCgnLmNvbnRyb2wnKS5xdWVyeVNlbGVjdG9yKCcuZXJyb3JzLW1zZ3MgLnJlcXVpcmVkJykudmFsdWVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZXJyb3JzLmVtYWlsLnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5kaXNtaXNzTm90aWZ5KCdlbWFpbFJlcXVpcmVkJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVtYWlsIHZhbGlkYXRpb25cclxuICAgICAgaWYgKGVtYWlsLnZhbHVlLmxlbmd0aCA+IDAgJiYgIS9eW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOS1dKyg/OlxcLlthLXpBLVowLTktXSspKiQvLnRlc3QoZW1haWwudmFsdWUpKSB7XHJcbiAgICAgICAgZXJyb3JzLmVtYWlsLmludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0Tm90aWZ5KHtcclxuICAgICAgICAgIGlkOiAnZW1haWxJbnZhbGlkJyxcclxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhbmdlcicsXHJcbiAgICAgICAgICBtc2c6IGVtYWlsLmNsb3Nlc3QoJy5jb250cm9sJykucXVlcnlTZWxlY3RvcignLmVycm9ycy1tc2dzIC5pbnZhbGlkJykudmFsdWVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZXJyb3JzLmVtYWlsLmludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpc21pc3NOb3RpZnkoJ2VtYWlsSW52YWxpZCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0b2dnbGUgaW52YWxpZCBlcnJvcnMgJiBzdHlsZSBjbGFzc2VzXHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMuZW1haWwpLnNvbWUoZXJyID0+IGVycm9ycy5lbWFpbFtlcnJdID09PSB0cnVlKSkge1xyXG4gICAgICAgIGVtYWlsLmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkJyk7XHJcbiAgICAgICAgZW1haWwuY2xhc3NMaXN0LmFkZCgnaW52YWxpZCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVtYWlsLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQnKTtcclxuICAgICAgICBlbWFpbC5jbGFzc0xpc3QuYWRkKCd2YWxpZCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tICovXHJcbiAgICAgIC8qIHBob25lIHZhbGlkYXRpb24gKi9cclxuICAgICAgLyogLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICAgICAgLy8gcGhvbmUgdmFsaWRhdGlvblxyXG4gICAgICBpZiAocGhvbmUudmFsdWUubGVuZ3RoID4gMCAmJiAhL15bXFwrXT9bKF0/WzAtOV17M31bKV0/Wy1cXHNcXC5dP1swLTldezN9Wy1cXHNcXC5dP1swLTldezQsNn0kL2ltLnRlc3QocGhvbmUudmFsdWUpKSB7XHJcbiAgICAgICAgZXJyb3JzLnBob25lLmludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0Tm90aWZ5KHtcclxuICAgICAgICAgIGlkOiAncGhvbmVJbnZhbGlkJyxcclxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhbmdlcicsXHJcbiAgICAgICAgICBtc2c6IHBob25lLmNsb3Nlc3QoJy5jb250cm9sJykucXVlcnlTZWxlY3RvcignLmVycm9ycy1tc2dzIC5pbnZhbGlkJykudmFsdWVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZXJyb3JzLnBob25lLmludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpc21pc3NOb3RpZnkoJ3Bob25lSW52YWxpZCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0b2dnbGUgaW52YWxpZCBlcnJvcnMgJiBzdHlsZSBjbGFzc2VzXHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMucGhvbmUpLnNvbWUoZXJyID0+IGVycm9ycy5waG9uZVtlcnJdID09PSB0cnVlKSkge1xyXG4gICAgICAgIHBob25lLmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkJyk7XHJcbiAgICAgICAgcGhvbmUuY2xhc3NMaXN0LmFkZCgnaW52YWxpZCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBob25lLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQnKTtcclxuICAgICAgICBwaG9uZS5jbGFzc0xpc3QuYWRkKCd2YWxpZCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuICAgICAgLyogbWVzc2FnZSB2YWxpZGF0aW9uICovXHJcbiAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICAgICAgLy8gcmVxdWlyZWQgdmFsaWRhdGlvblxyXG4gICAgICBpZiAobWVzc2FnZS52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICBlcnJvcnMubWVzc2FnZS5yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXROb3RpZnkoe1xyXG4gICAgICAgICAgaWQ6ICdtZXNzYWdlUmVxdWlyZWQnLFxyXG4gICAgICAgICAgY2xhc3NOYW1lOiAnZGFuZ2VyJyxcclxuICAgICAgICAgIG1zZzogbWVzc2FnZS5jbG9zZXN0KCcuY29udHJvbCcpLnF1ZXJ5U2VsZWN0b3IoJy5lcnJvcnMtbXNncyAucmVxdWlyZWQnKS52YWx1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlcnJvcnMubWVzc2FnZS5yZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlzbWlzc05vdGlmeSgnbWVzc2FnZVJlcXVpcmVkJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHRvZ2dsZSBpbnZhbGlkIGVycm9ycyAmIHN0eWxlIGNsYXNzZXNcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKGVycm9ycy5tZXNzYWdlKS5zb21lKGVyciA9PiBlcnJvcnMubWVzc2FnZVtlcnJdID09PSB0cnVlKSkge1xyXG4gICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LnJlbW92ZSgndmFsaWQnKTtcclxuICAgICAgICBtZXNzYWdlLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtZXNzYWdlLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQnKTtcclxuICAgICAgICBtZXNzYWdlLmNsYXNzTGlzdC5hZGQoJ3ZhbGlkJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHNlbmQgdGhlIG1lc3NhZ2UgaWYgdGhlIGZvcm0gaXMgdmFsaWRcclxuICAgICAgKCFPYmplY3QudmFsdWVzKGVycm9ycykuc29tZShjb250cm9sID0+IE9iamVjdC52YWx1ZXMoY29udHJvbCkuc29tZShCb29sZWFuKSkpICYmIHRoaXMuc2VuZENvbnRhY3RGb3JtTWVzc2FnZShjb250YWN0Rm9ybSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHNlbmQgbWVzc2FnZSBmcm9tIGNvbnRhY3QgZm9ybVxyXG4gICAgc2VuZENvbnRhY3RGb3JtTWVzc2FnZShmb3JtKSB7XHJcbiAgICAgIGNvbnN0IHVybCA9IGZvcm0uZ2V0QXR0cmlidXRlKCdhY3Rpb24nKTtcclxuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoZm9ybSk7XHJcblxyXG4gICAgICAvLyBzdGFydCBsb2FkaW5nIHNwaW5uZXJcclxuICAgICAgdGhpcy5zdGFydExvYWRpbmcoKTtcclxuXHJcbiAgICAgIC8vIHNlbmQgcG9zdCByZXF1ZXN0XHJcbiAgICAgIGZldGNoKHVybCwgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogZm9ybURhdGEgfSlcclxuICAgICAgICAudGhlbihyZXMgPT4gcmVzLnRleHQoKSlcclxuICAgICAgICAudGhlbihkYXRhID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgICAgLy8gc2hvdyBzdWNjZXNzIG1lc3NhZ2VcclxuICAgICAgICAgICAgdGhpcy5zZXROb3RpZnkoeyBjbGFzc05hbWU6ICdzdWNjZXNzJywgbXNnOiBmb3JtLmdldEF0dHJpYnV0ZSgnZGF0YS1zdWNjZXNzLW1zZycpLCB0aW1lOiA1MDAwIH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gcmVzZXQgYWxsIGZvcm0gaW5wdXRzXHJcbiAgICAgICAgICAgIGZvcm0ucmVzZXQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHJlbW92ZSBpbnB1dHMgdmFsaWQgY2xhc3Nlc1xyXG4gICAgICAgICAgICBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJy52YWxpZCcpLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LnJlbW92ZSgndmFsaWQnKSk7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgICAgIC8vIHNob3cgZXJyb3IgbWVzc2FnZVxyXG4gICAgICAgICAgICB0aGlzLnNldE5vdGlmeSh7IGNsYXNzTmFtZTogJ2RhbmdlcicsIG1zZzogZm9ybS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZXJyLW1zZycpLCB0aW1lOiA1MDAwIH0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIGVuZCBsb2FkaW5nIHNwaW5uZXJcclxuICAgICAgICAgIHRoaXMuZW5kTG9hZGluZygpO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVyciA9PiBjb25zb2xlLmxvZyhlcnIpKTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gc2hvdyBtZXNzYWdlcyBieSB0b2FzdCBub3RpZmljYXRpb25zXHJcbiAgICBzZXROb3RpZnkoe2lkLCBjbGFzc05hbWUsIG1zZywgdGltZX0pIHtcclxuICAgICAgY29uc3Qgbm90aWZ5ID0ge1xyXG4gICAgICAgIGlkOiBpZCB8fCBgJHtEYXRlLm5vdygpfSR7dGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aH1gLFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgICBtc2csXHJcbiAgICAgICAgdGltZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgKCF0aGlzLm5vdGlmaWNhdGlvbnMuc29tZShlID0+IGUuaWQgPT09IGlkKSkgJiYgdGhpcy5ub3RpZmljYXRpb25zLnB1c2gobm90aWZ5KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7IHRoaXMubm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmeSk7IH1cclxuXHJcbiAgICAgIC8vIHJlbW92ZSB0aGlzIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBhcnJheSBhZnRlciAobikgc2Vjb25kc1xyXG4gICAgICB0aW1lICYmIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kaXNtaXNzTm90aWZ5KG5vdGlmeS5pZCksIHRpbWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBkaXNtaXNzIHRoZSBub3RpZmljYXRpb25zXHJcbiAgICBkaXNtaXNzTm90aWZ5KGlkKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ub3RpZmljYXRpb25zLmZpbmRJbmRleChub3RpZnkgPT4gbm90aWZ5LmlkID09PSBpZCk7XHJcbiAgICAgIChpbmRleCA+IC0xKSAmJiB0aGlzLm5vdGlmaWNhdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gYWRkIGFqYXggbG9hZGluZyBzcGlubmVyXHJcbiAgICBzdGFydExvYWRpbmcoKSB7XHJcbiAgICAgIHRoaXMuYWpheExvYWRpbmcucHVzaCh0cnVlKTtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gcmVtb3ZlIGFqYXggbG9hZGluZyBzcGlubmVyXHJcbiAgICBlbmRMb2FkaW5nKCkge1xyXG4gICAgICB0aGlzLmFqYXhMb2FkaW5nLnBvcCgpO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAvLyBmbGFnIHRvIHRvZ2dsZSBhamF4IGxvYWRpbmcgc3Bpbm5lclxyXG4gICAgaXNBamF4TG9hZGluZygpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWpheExvYWRpbmcuc29tZShzdGF0ZSA9PiBzdGF0ZSA9PT0gdHJ1ZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIGdldCB0aGUgdG90YWwgeWVhcnMgb2YgZXhwZXJpZW5jZVxyXG4gICAgZXhwZXJpZW5jZVllYXJzKCkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoKSAtIG5ldyBEYXRlKFN0cmluZyh0aGlzLmNhcmVlclN0YXJ0RGF0ZSkpKS5nZXRGdWxsWWVhcigpIC0gMTk3MDtcclxuICAgIH0sXHJcblxyXG4gICAgLy8gc3BsaXQgZXhwZXJpZW5jZSBpdGVtcyBpbnRvIGNodW5rcyBvZiAzIGl0ZW1zXHJcbiAgICBleHBlcmllbmNlQ2h1bmtzKCkge1xyXG4gICAgICByZXR1cm4gWy4uLkFycmF5KE1hdGguZmxvb3IoKHRoaXMuZXhwZXJpZW5jZUl0ZW1zLmxlbmd0aCAtMSkgLyAzKSldO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBmaWx0ZXJlZCBwb3J0Zm9saW8gaXRlbXNcclxuICAgIGZpbHRlcmVkUG9ydGZvbGlvSXRlbXMoKSB7XHJcbiAgICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgIGNvbnN0IHRheCA9IHVybFBhcmFtcy5nZXQoJ3RheCcpO1xyXG5cclxuICAgICAgaWYgKHRheCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvcnRmb2xpb0l0ZW1zO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3J0Zm9saW9JdGVtcy5maWx0ZXIoaXRlbSA9PiB0aGlzLmN1cnJlbnRGaWx0ZXIgPT09ICdBbGwnIHx8IGl0ZW0uY2F0ZWdvcnkgPT09IHRoaXMuY3VycmVudEZpbHRlcik7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy8gZ2V0IHNpbmdsZSBwb3J0Zm9saW8gaXRlbVxyXG4gICAgZ2V0U2luZ2xlUG9ydGZvbGlvSXRlbSgpIHtcclxuICAgICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgICAgY29uc3QgaWQgPSB1cmxQYXJhbXMuZ2V0KCdpZCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuYWxsUG9ydGZvbGlvSXRlbXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT0gaWQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBnZXQgdGhlIHRvdGFsIHllYXJzIG9mIGNvcHlyaWdodFxyXG4gICAgY29weXJpZ2h0RGF0ZSgpIHtcclxuICAgICAgY29uc3QgeWVhcnNEdXJhdGlvbiA9IG5ldyBEYXRlKG5ldyBEYXRlKCkgLSBuZXcgRGF0ZShTdHJpbmcodGhpcy5jb3B5cmlnaHRTdGFydERhdGUpKSkuZ2V0RnVsbFllYXIoKSAtIDE5NzA7XHJcbiAgICAgIHJldHVybiB5ZWFyc0R1cmF0aW9uID09PSAwID8gdGhpcy5jb3B5cmlnaHRTdGFydERhdGUgOiBgJHt0aGlzLmNvcHlyaWdodFN0YXJ0RGF0ZX0gLSAke3RoaXMuY29weXJpZ2h0U3RhcnREYXRlICsgeWVhcnNEdXJhdGlvbn1gO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGlyZWN0aXZlczoge1xyXG4gICAgLy8gY2xvbmUgZGlyZWN0aXZlXHJcbiAgICBjbG9uZToge1xyXG4gICAgICBtb3VudGVkKGVsKSB7XHJcbiAgICAgICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWwuY2xvbmVOb2RlKHRydWUpLCBlbC5uZXh0U2libGluZyk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy8gYWRkIHN0YWdnZXIgZGVsYXkgdG8gY2hpbGRyZW4gZWxlbWVudHNcclxuICAgIHN0YWdnZXJkZWxheToge1xyXG4gICAgICBtb3VudGVkKGVsLCBiaW5kaW5nKSB7XHJcbiAgICAgICAgWy4uLmVsLmNoaWxkcmVuXS5mb3JFYWNoKChjaGlsZCwgaSkgPT4ge1xyXG4gICAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdzdHlsZScsIGBhbmltYXRpb24tZGVsYXk6ICR7KGkgKyAxKSAqIChiaW5kaW5nLnZhbHVlIHx8IDEwMCl9bXNgKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvLyB0b29sdGlwIGRpcmVjdGl2ZVxyXG4gICAgdG9vbHRpcDoge1xyXG4gICAgICBtb3VudGVkKGVsLCBiaW5kaW5nKSB7XHJcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCgnaGFzLXRvb2x0aXAnKTtcclxuICAgICAgICBlbC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsIGA8ZGl2IGNsYXNzPVwiY3VzdG9tLXRvb2x0aXAgY3VzdG9tLXRvb2x0aXAtJHtiaW5kaW5nLnZhbHVlLmRpcn1cIj4ke2JpbmRpbmcudmFsdWUudGV4dH08L2Rpdj5gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbn0pO1xyXG5hcHAubW91bnQoJyNhcHAnKTtcclxuIl0sIm5hbWVzIjpbIm1vdW50ZWQiLCJhbmltUHJlbG9hZGVyU2NyZWVuIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImluaXRBbmltYXRpb24iLCJtZXRob2RzIiwiY291bnQiLCJwcmVsb2FkZXIiLCIkcmVmcyIsInByZWxvYWRlckNvbnRlbnQiLCJxdWVyeVNlbGVjdG9yIiwiaW1ncyIsImRvY3VtZW50IiwiaW1hZ2VzIiwiaW1nc0xlbmd0aCIsImxlbmd0aCIsImhpZGVQcmVsb2FkZXIiLCJzZXRBdHRyaWJ1dGUiLCJnc2FwIiwidGltZWxpbmUiLCJzZXQiLCJhdXRvQWxwaGEiLCJ0byIsImRlbGF5IiwieSIsImR1cmF0aW9uIiwiZWFzZSIsImltZ0xvYWRlZCIsImxvYWRpbmdQZXJjZW50YWdlIiwiZm9yRWFjaCIsImltZyIsInRJbWciLCJJbWFnZSIsIm9ubG9hZCIsIm9uZXJyb3IiLCJzcmMiLCJyZWdpc3RlclBsdWdpbiIsIlNjcm9sbFRyaWdnZXIiLCJhbmltQmFja1RvcFNjcm9sbEluZGljYXRvciIsImFuaW1TdGF0aXN0aWNzSXRlbXMiLCJhbmltU2VjdGlvblRleHRCb3giLCJhbmltQWJvdXRJbWFnZSIsImFuaW1Ta2lsbHNJdGVtcyIsImFuaW1FeHBlcmllbmNlSXRlbXNUaW1lbGluZSIsImFuaW1UZXN0aW1vbmlhbHNTZWN0aW9uVGl0bGUiLCJhbmltVGVzdGltb25pYWxzSXRlbXMiLCJhbmltQ29udGFjdEluZm8iLCJhbmltQ29udGFjdEZvcm0iLCJiYWNrVG9wQnRuIiwic2Nyb2xsVG9wQnRuIiwic2hvd0F0IiwiZ2V0QXR0cmlidXRlIiwiYmFja1RvcEJ0blBhdGgiLCJiYWNrVG9wQnRuUGF0aExlbmd0aCIsImdldFRvdGFsTGVuZ3RoIiwiZnJvbSIsInNjcm9sbFRyaWdnZXIiLCJ0cmlnZ2VyIiwic3RhcnQiLCJlbmQiLCJ0b2dnbGVBY3Rpb25zIiwic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlRGFzaG9mZnNldCIsIm9uVXBkYXRlIiwic2VsZiIsInN0eWxlIiwicHJvZ3Jlc3MiLCJzdGF0aXN0aWNzSXRlbXMiLCJ1dGlscyIsInRvQXJyYXkiLCJzdGF0aXN0aWNzSXRlbXNUTCIsInNjcnViIiwiZWwiLCJpIiwicG9zIiwidGV4dEJveGVzIiwiYm94IiwidG9wIiwicXVlcnlTZWxlY3RvckFsbCIsInN0YWdnZXIiLCJhYm91dFNlY3Rpb24iLCJzY2FsZSIsInNraWxsc0dyb3VwcyIsImdyb3VwIiwic2tpbGxzSXRlbXNUTCIsImV4cGVyaWVuY2VUaW1lcGF0aCIsImV4cGVyaWVuY2VJdGVtcyIsImV4cGVyaWVuY2VUaW1lcGF0aFRMIiwiZXhwZXJpZW5jZUl0ZW1zVEwiLCJtYWluRXhwZXJpZW5jZVRMIiwiZXhwZXJpZW5jZVRpbWVwYXRoSXRlbXMiLCJkb2NEaXIiLCJkb2N1bWVudEVsZW1lbnQiLCJkaXIiLCJmcm9tRGlyIiwicmV2ZXJzZURpciIsImNvb3JkcyIsIngiLCJyZXZlcnNlIiwiYyIsInN0MSIsInN0MiIsInN0MyIsImxpbmVPZGQiLCJsaW5lRXZlbiIsInNlbWljaXJjbGVPZGQiLCJzZW1pY2lyY2xlRXZlbiIsImNsaXBQYXRoIiwiaW5jbHVkZXMiLCJhZGQiLCJ0ZXN0aW1vbmlhbHNTZWN0aW9uIiwidGVzdGltb25pYWxzSXRlbXMiLCJ0ZXN0aW1vbmlhbHNJdGVtc1RMIiwiY29udGFjdEluZm9JdGVtcyIsImNvbnRhY3RJbmZvVEwiLCJjb250YWN0Rm9ybSIsImFwcCIsIlZ1ZSIsImNyZWF0ZUFwcCIsIm1peGlucyIsImFuaW1hdGlvbnNNaXhpbiIsImRhdGEiLCJjYXJlZXJTdGFydERhdGUiLCJjb3B5cmlnaHRTdGFydERhdGUiLCJhcHBUaGVtZSIsInNhdmVkVGhlbWUiLCJpc1ByZWxvYWRpbmciLCJub3RpZmljYXRpb25zIiwiYWpheExvYWRpbmciLCJzdGFydE1pbmltaXppbmdIZWFkZXJBdCIsImlzSGVhZGVyQmlnIiwibGFzdFNjcm9sbFBvc2l0aW9uIiwiaXNIZWFkZXJIaWRkZW4iLCJpc0FueUZvY3VzIiwiaXNOYXZNZW51T3BlbiIsIm5hdkxpbmtzIiwidXJsIiwidGl0bGUiLCJlbiIsImFyIiwic2tpbGxzVHlwZSIsInNraWxsc0l0ZW1zIiwiaW1nVXJsIiwidG9vbHNJdGVtcyIsImRhdGUiLCJjb21wYW55TmFtZSIsImpvYlRpdGxlIiwiZGVzYyIsInBvcnRmb2xpb0l0ZW1zUGFnZSIsIml0ZW1zUGVyUGFnZSIsImZpbHRlcnMiLCJjdXJyZW50RmlsdGVyIiwicG9ydGZvbGlvQXJjaGl2ZU5hbWUiLCJhbGxQb3J0Zm9saW9JdGVtcyIsImlkIiwiY2F0ZWdvcnkiLCJ0b29scyIsInNjcmVlbnNob3RzIiwiaW1nMSIsImNhcHRpb24iLCJpbWcyIiwiaW1nMyIsImltZzQiLCJpbWc1IiwicG9ydGZvbGlvSXRlbXMiLCJxdW90ZUNvbnRlbnQiLCJxdW90ZUF1dGhvciIsImNyZWF0ZWQiLCJnZXRBcHBUaGVtZSIsImlubmVyV2lkdGgiLCJpbml0Q2lyY2xlQ3Vyc29yIiwiaGVyb0ltZ1BhbkVmZmVjdCIsImluaXRpYWxpemVUaWx0IiwibmF2TWVudVRhYlRyYXAiLCJzY3JvbGxpbmdPcHRpb25zIiwiUG9wcGVyIiwiY3JlYXRlUG9wcGVyIiwicGxhY2VtZW50IiwibW9kaWZpZXJzIiwibmFtZSIsIm9wdGlvbnMiLCJvZmZzZXQiLCJnZXRQb3J0Zm9saW9JdGVtcyIsIkdMaWdodGJveCIsImF1dG9wbGF5VmlkZW9zIiwiaW5pdFNraWxsc0ZpcnN0VHlwZSIsImFwcFJlZiIsIm91dGVyIiwiY2lyY2xlQ3Vyc29yT3V0ZXIiLCJpbm5lciIsImNpcmNsZUN1cnNvcklubmVyIiwiZSIsImNsaWVudFkiLCJjbGllbnRYIiwidGFyZ2V0IiwiY2xvc2VzdCIsImNsYXNzTGlzdCIsInJlbW92ZSIsInNldFRpbWVvdXQiLCJzdG9yYWdlU2F2ZWRUaGVtZSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJtYXRjaE1lZGlhIiwibWF0Y2hlcyIsInNldEl0ZW0iLCJjaGFuZ2VBcHBUaGVtZSIsInRvZ2dsZU5hdk1lbnUiLCJvcGVuTmF2TWVudSIsImNsb3NlTmF2TWVudSIsImJvZHlFbCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaGVhZGVyTmF2IiwiZm9jdXMiLCJyZW1vdmVBdHRyaWJ1dGUiLCJuYXZNZW51VG9nZ2xlQnRuIiwibmF2IiwiZm9jdXNhYmxlRWxlbWVudHNTdHJpbmciLCJmaXJzdFRhYlN0b3AiLCJsYXN0VGFiU3RvcCIsImlzRmlyc3RUYWJTdG9wIiwiaXNMYXN0VGFiU3RvcCIsImNvbnRhaW5zIiwidmlzaWJsZUZvY3VzYWJsZUVscyIsImZpbHRlciIsImdldENvbXB1dGVkU3R5bGUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwiY29kZSIsInNoaWZ0S2V5IiwiYWN0aXZlRWwiLCJhY3RpdmVFbGVtZW50IiwicGFyZW50IiwiaGVyb1NlY3Rpb24iLCJsYXllcjEiLCJsYXllcjIiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJvZmZzZXRXaWR0aCIsIm9mZnNldEhlaWdodCIsInNjcm9sbFBvc2l0aW9uIiwicGFnZVlPZmZzZXQiLCJzY3JvbGxUb1RvcCIsInNjcm9sbCIsImJlaGF2aW9yIiwic2tpbGxzU3dpdGNoQnRuIiwidmFsdWUiLCJWYW5pbGxhVGlsdCIsImluaXQiLCJtYXgiLCJzcGVlZCIsImdsYXJlIiwiaXRlbXNBcnIiLCJpdGVtIiwidXJsUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwibG9jYXRpb24iLCJzZWFyY2giLCJ0YXgiLCJnZXQiLCJjYXQiLCJ0b29sIiwic2xpY2UiLCJmaWx0ZXJlZFBvcnRmb2xpb0l0ZW1zIiwicHVzaCIsIiRuZXh0VGljayIsInJlZnJlc2giLCJzZXROb3RpZnkiLCJjbGFzc05hbWUiLCJtc2ciLCJ0aW1lIiwiZmlsdGVyUG9ydGZvbGlvSXRlbXMiLCJjb250YWN0Rm9ybVZhbGlkYXRpb24iLCJlbWFpbCIsInBob25lIiwibWVzc2FnZSIsImVycm9ycyIsInJlcXVpcmVkIiwibWluTGVuZ3RoIiwiaW52YWxpZCIsImRpc21pc3NOb3RpZnkiLCJPYmplY3QiLCJrZXlzIiwic29tZSIsImVyciIsInRlc3QiLCJ2YWx1ZXMiLCJjb250cm9sIiwiQm9vbGVhbiIsInNlbmRDb250YWN0Rm9ybU1lc3NhZ2UiLCJmb3JtIiwiZm9ybURhdGEiLCJGb3JtRGF0YSIsInN0YXJ0TG9hZGluZyIsImZldGNoIiwibWV0aG9kIiwiYm9keSIsInRoZW4iLCJyZXMiLCJ0ZXh0IiwicmVzZXQiLCJlbmRMb2FkaW5nIiwiY29uc29sZSIsImxvZyIsImNhdGNoIiwibm90aWZ5IiwiRGF0ZSIsIm5vdyIsImluZGV4IiwiZmluZEluZGV4Iiwic3BsaWNlIiwicG9wIiwiY29tcHV0ZWQiLCJpc0FqYXhMb2FkaW5nIiwic3RhdGUiLCJleHBlcmllbmNlWWVhcnMiLCJTdHJpbmciLCJnZXRGdWxsWWVhciIsImV4cGVyaWVuY2VDaHVua3MiLCJBcnJheSIsIk1hdGgiLCJmbG9vciIsImdldFNpbmdsZVBvcnRmb2xpb0l0ZW0iLCJmaW5kIiwiY29weXJpZ2h0RGF0ZSIsInllYXJzRHVyYXRpb24iLCJkaXJlY3RpdmVzIiwiY2xvbmUiLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwiY2xvbmVOb2RlIiwibmV4dFNpYmxpbmciLCJzdGFnZ2VyZGVsYXkiLCJiaW5kaW5nIiwiY2hpbGRyZW4iLCJjaGlsZCIsInRvb2x0aXAiLCJpbnNlcnRBZGphY2VudEhUTUwiLCJtb3VudCJdLCJtYXBwaW5ncyI6Ijs7O0VBQUE7O0VBQ0E7O0VBQ0E7QUFDQSx3QkFBZTtFQUNiQSxFQUFBQSxPQUFPLEdBQUc7RUFDUjtFQUNBLFNBQUtDLG1CQUFMLEdBRlE7O0VBS1JDLElBQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsTUFBeEIsRUFBZ0MsTUFBTSxLQUFLQyxhQUFMLEVBQXRD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