@posiwise/shared-components 0.0.129 → 0.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/privacy-policy/privacy-policy.component.mjs +3 -3
- package/esm2022/lib/resource-header/resource-header.component.mjs +38 -3
- package/esm2022/lib/shared-components.module.mjs +3 -5
- package/fesm2022/posiwise-shared-components.mjs +42 -125
- package/fesm2022/posiwise-shared-components.mjs.map +1 -1
- package/lib/resource-header/resource-header.component.d.ts +4 -0
- package/package.json +1 -1
- package/esm2022/lib/lazy-loading.service.mjs +0 -111
- package/lib/lazy-loading.service.d.ts +0 -55
|
@@ -12,12 +12,12 @@ export class PrivacyPolicyComponent extends AppBaseComponent {
|
|
|
12
12
|
this.company_email = this.appConfig.company.email;
|
|
13
13
|
}
|
|
14
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyPolicyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PrivacyPolicyComponent, selector: "pw-privacy-policy", inputs: { isPublic: "isPublic" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called \u201CContent\u201D), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a world-wide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your‎\n name,‎ email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to \u201Copt-out.\u201D If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (\u201CPayment Service\u201D). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service\u2019s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service\u2019s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions & Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:36px}.card{padding:10px 15px!important}.card ol li{padding-left:30px!important;position:relative;color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding-top:5px;padding-bottom:5px;padding-right:0}.card ol li ol.list-bullet li,.card ol li ul.list-bullet li{padding-left:0!important}.card ol li:before{font:400 16px/1.3 Roboto,sans-serif;left:0;position:absolute;top:4px}.card ol li h3{font:400 20px/1.3 Roboto,sans-serif;margin-bottom:15px}.card p{color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding:5px 0}.card p strong{font-family:Roboto,sans-serif}.banner{background:url(/assets/img/landing-page/header-bg.jpg) no-repeat center;background-size:cover;padding:0 0 130px}.terms-of-service h3{padding:5px 0 0!important}.terms-of-service ol{counter-reset:section;padding:0 5px 0 0!important}.terms-of-service ol li:before{content:counters(section,\".\") \". \";counter-increment:section;float:left;font-weight:600;padding:0 10px 0 0}.terms-of-service ol li ol li ol li:before,.terms-of-service ol li ol li ul li:before{content:\"\";counter-increment:none}li{padding:10px 0}.parent-ol>li:before{font-size:26px;margin-top:16px}ul.list-bullet,ol.list-bullet{list-style-type:disc;margin-left:20px}ul.list-bullet>li,ol.list-bullet>li{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PrivacyPolicyComponent, selector: "pw-privacy-policy", inputs: { isPublic: "isPublic" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called \u201CContent\u201D), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a worldwide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your‎\n name,‎ email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to \u201Copt-out.\u201D If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (\u201CPayment Service\u201D). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service\u2019s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service\u2019s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions & Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:36px}.card{padding:10px 15px!important}.card ol li{padding-left:30px!important;position:relative;color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding-top:5px;padding-bottom:5px;padding-right:0}.card ol li ol.list-bullet li,.card ol li ul.list-bullet li{padding-left:0!important}.card ol li:before{font:400 16px/1.3 Roboto,sans-serif;left:0;position:absolute;top:4px}.card ol li h3{font:400 20px/1.3 Roboto,sans-serif;margin-bottom:15px}.card p{color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding:5px 0}.card p strong{font-family:Roboto,sans-serif}.banner{background:url(/assets/img/landing-page/header-bg.jpg) no-repeat center;background-size:cover;padding:0 0 130px}.terms-of-service h3{padding:5px 0 0!important}.terms-of-service ol{counter-reset:section;padding:0 5px 0 0!important}.terms-of-service ol li:before{content:counters(section,\".\") \". \";counter-increment:section;float:left;font-weight:600;padding:0 10px 0 0}.terms-of-service ol li ol li ol li:before,.terms-of-service ol li ol li ul li:before{content:\"\";counter-increment:none}li{padding:10px 0}.parent-ol>li:before{font-size:26px;margin-top:16px}ul.list-bullet,ol.list-bullet{list-style-type:disc;margin-left:20px}ul.list-bullet>li,ol.list-bullet>li{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
16
16
|
}
|
|
17
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyPolicyComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
|
-
args: [{ selector: 'pw-privacy-policy', template: "<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called \u201CContent\u201D), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a world-wide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your‎\n name,‎ email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to \u201Copt-out.\u201D If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (\u201CPayment Service\u201D). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service\u2019s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service\u2019s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions & Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:36px}.card{padding:10px 15px!important}.card ol li{padding-left:30px!important;position:relative;color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding-top:5px;padding-bottom:5px;padding-right:0}.card ol li ol.list-bullet li,.card ol li ul.list-bullet li{padding-left:0!important}.card ol li:before{font:400 16px/1.3 Roboto,sans-serif;left:0;position:absolute;top:4px}.card ol li h3{font:400 20px/1.3 Roboto,sans-serif;margin-bottom:15px}.card p{color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding:5px 0}.card p strong{font-family:Roboto,sans-serif}.banner{background:url(/assets/img/landing-page/header-bg.jpg) no-repeat center;background-size:cover;padding:0 0 130px}.terms-of-service h3{padding:5px 0 0!important}.terms-of-service ol{counter-reset:section;padding:0 5px 0 0!important}.terms-of-service ol li:before{content:counters(section,\".\") \". \";counter-increment:section;float:left;font-weight:600;padding:0 10px 0 0}.terms-of-service ol li ol li ol li:before,.terms-of-service ol li ol li ul li:before{content:\"\";counter-increment:none}li{padding:10px 0}.parent-ol>li:before{font-size:26px;margin-top:16px}ul.list-bullet,ol.list-bullet{list-style-type:disc;margin-left:20px}ul.list-bullet>li,ol.list-bullet>li{padding:0}\n"] }]
|
|
19
|
+
args: [{ selector: 'pw-privacy-policy', template: "<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called \u201CContent\u201D), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a worldwide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your‎\n name,‎ email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to \u201Copt-out.\u201D If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (\u201CPayment Service\u201D). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service\u2019s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service\u2019s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions & Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:36px}.card{padding:10px 15px!important}.card ol li{padding-left:30px!important;position:relative;color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding-top:5px;padding-bottom:5px;padding-right:0}.card ol li ol.list-bullet li,.card ol li ul.list-bullet li{padding-left:0!important}.card ol li:before{font:400 16px/1.3 Roboto,sans-serif;left:0;position:absolute;top:4px}.card ol li h3{font:400 20px/1.3 Roboto,sans-serif;margin-bottom:15px}.card p{color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding:5px 0}.card p strong{font-family:Roboto,sans-serif}.banner{background:url(/assets/img/landing-page/header-bg.jpg) no-repeat center;background-size:cover;padding:0 0 130px}.terms-of-service h3{padding:5px 0 0!important}.terms-of-service ol{counter-reset:section;padding:0 5px 0 0!important}.terms-of-service ol li:before{content:counters(section,\".\") \". \";counter-increment:section;float:left;font-weight:600;padding:0 10px 0 0}.terms-of-service ol li ol li ol li:before,.terms-of-service ol li ol li ul li:before{content:\"\";counter-increment:none}li{padding:10px 0}.parent-ol>li:before{font-size:26px;margin-top:16px}ul.list-bullet,ol.list-bullet{list-style-type:disc;margin-left:20px}ul.list-bullet>li,ol.list-bullet>li{padding:0}\n"] }]
|
|
20
20
|
}], propDecorators: { isPublic: [{
|
|
21
21
|
type: Input
|
|
22
22
|
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS1wb2xpY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3ByaXZhY3ktcG9saWN5L3ByaXZhY3ktcG9saWN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LXBvbGljeS9wcml2YWN5LXBvbGljeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFMNUQ7O1FBT0ksYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBU2xFO0lBSkcsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7K0dBVlEsc0JBQXNCO21HQUF0QixzQkFBc0Isa0hDVG5DLHV0V0F1TUE7OzRGRDlMYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQU03QixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXByaXZhY3ktcG9saWN5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpdmFjeS1wb2xpY3kuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcml2YWN5UG9saWN5Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBpc1B1YmxpYyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygncHJpdmFjeS1wb2xpY3knKTtcblxuICAgIGNvbXBhbnlfbmFtZTogc3RyaW5nO1xuICAgIGNvbXBhbnlfZW1haWw6IHN0cmluZztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBhbnlfbmFtZSA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkubmFtZTtcbiAgICAgICAgdGhpcy5jb21wYW55X2VtYWlsID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5lbWFpbDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaWNcIj5cbiAgPHB3LWxhbmRpbmctcGFnZS1oZWFkZXIgW2xhbmRpbmddPVwiZmFsc2VcIj48L3B3LWxhbmRpbmctcGFnZS1oZWFkZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnbXQtNSc6IGlzUHVibGljIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGVybXMtb2Ytc2VydmljZVwiPlxuICAgICAgICAgICAgPGgxPlByaXZhY3kgcG9saWN5PC9oMT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICAgICAgICAgICAgPGgzPllvdXIgQ29udGVudDwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgSWYgeW91IG9wZXJhdGUgYSB7eyBjb21wYW55X25hbWUgfX0gVXNlciBBY2NvdW50LCBhbmQvb3IgY29tbWVudCBvbixcbiAgICAgICAgICAgICAgcG9zdCBtYXRlcmlhbCB0bywgcG9zdCBsaW5rcyBvbiBvciBvdGhlcndpc2UgbWFrZSAob3IgYWxsb3cgYW55IHRoaXJkXG4gICAgICAgICAgICAgIHBhcnR5IHRvIG1ha2UpIG1hdGVyaWFsIGF2YWlsYWJsZSBieSBtZWFucyBvZiB0aGUgV2Vic2l0ZSBhbmQgb3JcbiAgICAgICAgICAgICAgQXBwbGljYXRpb25zIChjb2xsZWN0aXZlbHkgY2FsbGVkIOKAnENvbnRlbnTigJ0pLCB5b3UgYXJlIGVudGlyZWx5XG4gICAgICAgICAgICAgIHJlc3BvbnNpYmxlIGZvciB0aGF0IENvbnRlbnQgYW5kIGFueSBoYXJtIHJlc3VsdGluZyBmcm9tIHRoYXQgQ29udGVudC5cbiAgICAgICAgICAgICAgVGhhdCBpcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIENvbnRlbnQgaW4gcXVlc3Rpb24gY29uc3RpdHV0ZXMgKGJ1dFxuICAgICAgICAgICAgICBub3QgbGltaXRlZCB0bykgdGV4dCwgZ3JhcGhpY3MsIGFuIGF1ZGlvIGZpbGUgb3IgY29tcHV0ZXIgc29mdHdhcmUuIEJ5XG4gICAgICAgICAgICAgIG1ha2luZyBDb250ZW50IGF2YWlsYWJsZSwgeW91IHJlcHJlc2VudCBhbmQgd2FycmFudCB0aGF0OlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPG9sPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgdGhlIENvbnRlbnQgaXMgbm90IGNvbnNpZGVyZWQgdG8gYmUgb2JzY2VuZSwgaW5hcHByb3ByaWF0ZSxcbiAgICAgICAgICAgICAgICBkZWZhbWF0b3J5LCBkaXNwYXJhZ2luZywgaW5kZWNlbnQsIHNlZGl0aW91cywgb2ZmZW5zaXZlLFxuICAgICAgICAgICAgICAgIHBvcm5vZ3JhcGhpYywgdGhyZWF0ZW5pbmcsIGFidXNpdmUsIGxpYWJsZSB0byBpbmNpdGUgcmFjaWFsIGhhdHJlZCxcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yeSwgYmxhc3BoZW1vdXMsIGluIGJyZWFjaCBvZiBjb25maWRlbmNlIG9yIGluIGJyZWFjaCBvZlxuICAgICAgICAgICAgICAgIHByaXZhY3k7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgZG93bmxvYWRpbmcsIGNvcHlpbmcgYW5kIHVzZSBvZiB0aGUgQ29udGVudCB3aWxsIG5vdCBpbmZyaW5nZVxuICAgICAgICAgICAgICAgIHRoZSBwcm9wcmlldGFyeSByaWdodHMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGNvcHlyaWdodCxcbiAgICAgICAgICAgICAgICBwYXRlbnQsIHRyYWRlbWFyayBvciB0cmFkZSBzZWNyZXQgcmlnaHRzLCBvZiBhbnkgdGhpcmQgcGFydHk7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICBpZiB5b3VyIGVtcGxveWVyIGhhcyByaWdodHMgdG8gaW50ZWxsZWN0dWFsIHByb3BlcnR5IHlvdSBjcmVhdGUsIHlvdVxuICAgICAgICAgICAgICAgIGhhdmUgZWl0aGVyIChpKSByZWNlaXZlZCBwZXJtaXNzaW9uIGZyb20geW91ciBlbXBsb3llciB0byBwb3N0IG9yXG4gICAgICAgICAgICAgICAgbWFrZSBhdmFpbGFibGUgdGhlIENvbnRlbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYW55XG4gICAgICAgICAgICAgICAgc29mdHdhcmUsIG9yIChpaSkgc2VjdXJlZCBmcm9tIHlvdXIgZW1wbG95ZXIgYSB3YWl2ZXIgYXMgdG8gYWxsXG4gICAgICAgICAgICAgICAgcmlnaHRzIGluIG9yIHRvIHRoZSBDb250ZW50O1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgeW91IGhhdmUgZnVsbHkgY29tcGxpZWQgd2l0aCBhbnkgdGhpcmQtcGFydHkgbGljZW5zZXMgcmVsYXRpbmcgdG9cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCwgYW5kIGhhdmUgZG9uZSBhbGwgdGhpbmdzIG5lY2Vzc2FyeSB0byBzdWNjZXNzZnVsbHkgcGFzc1xuICAgICAgICAgICAgICAgIHRocm91Z2ggdG8gZW5kIHVzZXJzIGFueSByZXF1aXJlZCB0ZXJtcztcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHRoZSBDb250ZW50IGRvZXMgbm90IGNvbnRhaW4gb3IgaW5zdGFsbCBhbnkgdmlydXNlcywgd29ybXMsIG1hbHdhcmUsXG4gICAgICAgICAgICAgICAgVHJvamFuIGhvcnNlcyBvciBvdGhlciBoYXJtZnVsIG9yIGRlc3RydWN0aXZlIGNvbnRlbnQ7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCBpcyBub3Qgc3BhbSwgaXMgbm90IG1hY2hpbmUgb3IgcmFuZG9tbHkgZ2VuZXJhdGVkIGFuZFxuICAgICAgICAgICAgICAgIGRvZXMgbm90IGNvbnRhaW4gdW5ldGhpY2FsIG9yIHVud2FudGVkIGNvbW1lcmNpYWwgY29udGVudCBkZXNpZ25lZFxuICAgICAgICAgICAgICAgIHRvIGRyaXZlIHRyYWZmaWMgdG8gdGhpcmQgcGFydHkgc2l0ZXMgb3IgZnVydGhlciB1bmxhd2Z1bCBhY3RzO1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgeW91ciBVc2VyIEFjY291bnQgaXMgbm90IGdldHRpbmcgYWR2ZXJ0aXNlZCB2aWEgdW53YW50ZWQgZWxlY3Ryb25pY1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzIHN1Y2ggYXMgc3BhbSBsaW5rcyBvbiBuZXdzZ3JvdXBzLCBlbWFpbCBsaXN0cywgb3RoZXIgYmxvZ3NcbiAgICAgICAgICAgICAgICBhbmQgd2Vic2l0ZXMsIGFuZCBzaW1pbGFyIHVuc29saWNpdGVkIHByb21vdGlvbmFsIG1ldGhvZHM7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB5b3VyIFVzZXIgQWNjb3VudCBpcyBub3QgbmFtZWQgaW4gYSBtYW5uZXIgdGhhdCBtaXNsZWFkcyB1c2VycyBpbnRvXG4gICAgICAgICAgICAgICAgdGhpbmtpbmcgdGhhdCB5b3UgYXJlIGFub3RoZXIgcGVyc29uIG9yIGNvbXBhbnk7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCB3aWxsIG5vdCBjYXVzZSB5b3Ugb3IgdXMgdG8gYnJlYWNoIGFueSBsYXcsIHJlZ3VsYXRpb24sXG4gICAgICAgICAgICAgICAgcnVsZSwgY29kZSBvciBvdGhlciBsZWdhbCBvYmxpZ2F0aW9uOyBhbmRcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPnRoZSBDb250ZW50IHdpbGwgbm90IGJyaW5nIHVzLCBvciB0aGUgU2l0ZSBpbnRvIGRpc3JlcHV0ZS48L2xpPlxuICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBCeSBzdWJtaXR0aW5nIENvbnRlbnQgZm9yIGluY2x1c2lvbiBpbiB5b3VyIFVzZXIgQWNjb3VudCBvciB0byB0aGUgU2l0ZSxcbiAgICAgICAgICAgICAgeW91IGdyYW50IHVzIGEgd29ybGQtd2lkZSwgcm95YWx0eSBmcmVlLCBhbmQgbm9uLWV4Y2x1c2l2ZSBsaWNlbnNlIHRvXG4gICAgICAgICAgICAgIHVzZSB0aGF0IGNvbnRlbnQgaW4gYW55IHdheSAoaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiwgcmVwcm9kdWNpbmcsXG4gICAgICAgICAgICAgIGNoYW5naW5nIGFuZCBjb21tdW5pY2F0aW5nIHRoZSBDb250ZW50KSBhbmQgcGVybWl0IHVzIHRvIGF1dGhvcmlzZSBhbnlcbiAgICAgICAgICAgICAgb3RoZXIgcGVyc29uIHRvIGRvIHRoZSBzYW1lIHRoaW5nLiBJZiB5b3UgZGVsZXRlIGFueSBDb250ZW50LCB3ZSB3aWxsXG4gICAgICAgICAgICAgIHVzZSByZWFzb25hYmxlIGVmZm9ydHMgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIFNpdGUsIGJ1dCB5b3UgYWNrbm93bGVkZ2VcbiAgICAgICAgICAgICAgdGhhdCBjYWNoaW5nIG9yIHJlZmVyZW5jZXMgdG8gdGhlIENvbnRlbnQgbWF5IG5vdCBiZSBtYWRlIGltbWVkaWF0ZWx5XG4gICAgICAgICAgICAgIHVuYXZhaWxhYmxlLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIFdpdGhvdXQgbGltaXRpbmcgYW55IG9mIHRob3NlIHJlcHJlc2VudGF0aW9ucyBvciB3YXJyYW50aWVzLCB3ZSByZXNlcnZlXG4gICAgICAgICAgICAgIHRoZSByaWdodCAodGhvdWdoIG5vdCB0aGUgb2JsaWdhdGlvbikgdG8sIGluIG91ciBzb2xlIGRpc2NyZXRpb25cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxvbD5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHJlZnVzZSBvciByZW1vdmUgYW55IGNvbnRlbnQgdGhhdCwgaW4gb3VyIHJlYXNvbmFibGUgb3BpbmlvbixcbiAgICAgICAgICAgICAgICB2aW9sYXRlcyBhbnkgb2Ygb3VyIHBvbGljaWVzIG9yIGFncmVlbWVudHMgb3IgaXMgaW4gYW55IHdheSBoYXJtZnVsXG4gICAgICAgICAgICAgICAgb3Igb2JqZWN0aW9uYWJsZSwgb3JcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHRlcm1pbmF0ZSBvciBkZW55IGFjY2VzcyB0byBhbmQgdXNlIG9mIHRoZSBTZXJ2aWNlIHRvIGFueSBpbmRpdmlkdWFsXG4gICAgICAgICAgICAgICAgb3IgZW50aXR5IGZvciBhbnkgcmVhc29uLCBpbiBvdXIgc29sZSBkaXNjcmV0aW9uLlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoMz5Qcml2YWN5PC9oMz5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBXZSBnZXQgaW5mb3JtYXRpb24gYWJvdXQgeW91IGluIGEgcmFuZ2Ugb2Ygd2F5cy4gV2UgY29sbGVjdCB5b3VyJmxybTtcbiAgICAgICAgICAgICAgbmFtZSwmbHJtOyBlbWFpbCBhZGRyZXNzIGFuZCBvdGhlciBpbmZvcm1hdGlvbiB5b3UgZGlyZWN0bHkgZ2l2ZSB1cyBvblxuICAgICAgICAgICAgICBvdXIgU2l0ZS4gV2UgbWF5IGdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3UgZnJvbSBvdGhlciBzb3VyY2VzLiBXZSBtYXlcbiAgICAgICAgICAgICAgYWRkIHRoaXMgdG8gaW5mb3JtYXRpb24gd2UgZ2V0IGZyb20gdGhpcyBTaXRlLiBXZSBtYXkgYXV0b21hdGljYWxseSBsb2dcbiAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgeW91IGFuZCB5b3VyIGNvbXB1dGVyLiBXZSBtYXkgbG9nIGluZm9ybWF0aW9uIHVzaW5nXG4gICAgICAgICAgICAgIFwiY29va2llcy5cIiBDb29raWVzIGFyZSBzbWFsbCBkYXRhIGZpbGVzIHN0b3JlZCBvbiB5b3VyIGhhcmQgZHJpdmUgYnkgYVxuICAgICAgICAgICAgICB3ZWJzaXRlLiBDb29raWVzIGhlbHAgdXMgbWFrZSBvdXIgU2l0ZSBhbmQgeW91ciB2aXNpdCBiZXR0ZXIuIFdlIHVzZVxuICAgICAgICAgICAgICBjb29raWVzIHRvIHNlZSB3aGljaCBwYXJ0cyBvZiBvdXIgU2l0ZSBwZW9wbGUgdXNlIGFuZCBsaWtlIGFuZCB0byBjb3VudFxuICAgICAgICAgICAgICB2aXNpdHMgdG8gb3VyIFNpdGUuIFdlIG1heSBzdG9yZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFsb25nIHdpdGhcbiAgICAgICAgICAgICAgeW91ciBmaWxlcyBhbmQgZGF0YSBvbiBhIHRoaXJkIHBhcnR5IHNlcnZlciBzdWNoIGFzIEFtYXpvbiBXZWIgU2VydmljZXM7XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgV2UgdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gb3BlcmF0ZSwgbWFpbnRhaW4sIGFuZCBpbXByb3ZlIG91clxuICAgICAgICAgICAgICBzaXRlcywgcHJvZHVjdHMsIGFuZCBzZXJ2aWNlcy4gV2UgdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG9cbiAgICAgICAgICAgICAgcmVzcG9uZCB0byBjb21tZW50cyBhbmQgcXVlc3Rpb25zIGFuZCBwcm92aWRlIGN1c3RvbWVyIHNlcnZpY2UuIFdlIHVzZVxuICAgICAgICAgICAgICB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIHRvIHByb3ZpZGUgYW5kIGRlbGl2ZXIgcHJvZHVjdHMgYW5kIHNlcnZpY2VzXG4gICAgICAgICAgICAgIGN1c3RvbWVycyByZXF1ZXN0LiBXZSBhbHNvIHVzZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIHRvIHNlbmQgeW91XG4gICAgICAgICAgICAgIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHNlcnZpY2UgYW5kIHRvIHJlc3BvbmQgdG8gY3VzdG9tZXIgc3VwcG9ydFxuICAgICAgICAgICAgICByZXF1ZXN0cy4gWW91IGNhbiBhY2Nlc3MgYW5kIGNoYW5nZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGJ5IGxvZ2dpbmdcbiAgICAgICAgICAgICAgaW4gdG8geW91ciBhY2NvdW50IHNldHRpbmdzIHBhZ2UuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgV2UgbWF5IHNoYXJlIHBlcnNvbmFsIGluZm9ybWF0aW9uIHdpdGggeW91ciBjb25zZW50LiBGb3IgZXhhbXBsZSwgeW91XG4gICAgICAgICAgICAgIG1heSBsZXQgdXMgc2hhcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gd2l0aCBvdGhlcnMgZm9yIHRoZWlyIG93blxuICAgICAgICAgICAgICBtYXJrZXRpbmcgdXNlcy4gVGhvc2UgdXNlcyB3aWxsIGJlIHN1YmplY3QgdG8gdGhlaXIgcHJpdmFjeSBwb2xpY2llcy4gV2VcbiAgICAgICAgICAgICAgbWF5IHNoYXJlIHBlcnNvbmFsIGluZm9ybWF0aW9uIHdoZW4gd2UgZG8gYSBidXNpbmVzcyBkZWFsLCBvciBuZWdvdGlhdGVcbiAgICAgICAgICAgICAgYSBidXNpbmVzcyBkZWFsLCBpbnZvbHZpbmcgc2FsZSBvciB0cmFuc2ZlciBvZiBhbGwgb3IgYSBwYXJ0IG9mIG91clxuICAgICAgICAgICAgICBidXNpbmVzcyBvciBhc3NldHMuIFRoZXNlIGRlYWxzIGNhbiBpbmNsdWRlIGFueSBtZXJnZXIsIGZpbmFuY2luZyxcbiAgICAgICAgICAgICAgYWNxdWlzaXRpb24sIG9yIGJhbmtydXB0Y3kgdHJhbnNhY3Rpb24gb3IgcHJvY2VlZGluZy4gV2UgbWF5IHNoYXJlXG4gICAgICAgICAgICAgIHBlcnNvbmFsIGluZm9ybWF0aW9uIGZvciBsZWdhbCwgcHJvdGVjdGlvbiwgYW5kIHNhZmV0eSBwdXJwb3Nlcy4gV2UgbWF5XG4gICAgICAgICAgICAgIHNoYXJlIGluZm9ybWF0aW9uIHRvIGNvbXBseSB3aXRoIGxhd3MuIFdlIG1heSBzaGFyZSBpbmZvcm1hdGlvbiB0b1xuICAgICAgICAgICAgICByZXNwb25kIHRvIGxhd2Z1bCByZXF1ZXN0cyBhbmQgbGVnYWwgcHJvY2Vzcy4gV2UgbWF5IHNoYXJlIGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgIHRvIHByb3RlY3QgdGhlIHJpZ2h0cywgcHJvcGVydHkgb3Igc2FmZXR5IG9mIHRoZSBTZXJ2aWNlLCBvdXIgdXNlcnMsXG4gICAgICAgICAgICAgIGN1c3RvbWVycywgYW5kIG90aGVycy4gVGhpcyBpbmNsdWRlcyBlbmZvcmNpbmcgb3VyIGFncmVlbWVudHMsIHBvbGljaWVzLFxuICAgICAgICAgICAgICBhbmQgdGVybXMgb2YgdXNlLiBXZSBtYXkgc2hhcmUgaW5mb3JtYXRpb24gaW4gYW4gZW1lcmdlbmN5LiBXZSBtYXkgc2hhcmVcbiAgICAgICAgICAgICAgaW5mb3JtYXRpb24gd2l0aCB0aG9zZSB3aG8gbmVlZCBpdCB0byBkbyB3b3JrIGZvciB1cy4gV2UgbWF5IGFsc28gc2hhcmVcbiAgICAgICAgICAgICAgYWdncmVnYXRlZCBhbmQvb3IgYW5vbnltaXplZCBkYXRhIHdpdGggb3RoZXJzIGZvciB0aGVpciBvd24gdXNlcy5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBPdXIgbWFya2V0aW5nIGVtYWlscyB0ZWxsIHlvdSBob3cgdG8g4oCcb3B0LW91dC7igJ0gSWYgeW91IG9wdCBvdXQsIHdlIG1heVxuICAgICAgICAgICAgICBzdGlsbCBzZW5kIHlvdSBub24tbWFya2V0aW5nIGVtYWlscy4gTm9uLW1hcmtldGluZyBlbWFpbHMgaW5jbHVkZSBlbWFpbHNcbiAgICAgICAgICAgICAgYWJvdXQgeW91ciBhY2NvdW50cyBhbmQgb3VyIGJ1c2luZXNzIGRlYWxpbmdzIHdpdGggeW91LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIFlvdSBjYW4gdHlwaWNhbGx5IHJlbW92ZSBhbmQgcmVqZWN0IGNvb2tpZXMgZnJvbSBvdXIgU2l0ZSB3aXRoIHlvdXJcbiAgICAgICAgICAgICAgYnJvd3NlciBzZXR0aW5ncy4gTWFueSBicm93c2VycyBhcmUgc2V0IHRvIGFjY2VwdCBjb29raWVzIHVudGlsIHlvdVxuICAgICAgICAgICAgICBjaGFuZ2UgeW91ciBzZXR0aW5ncy4gSWYgeW91IHJlbW92ZSBvciByZWplY3Qgb3VyIGNvb2tpZXMsIGl0IGNvdWxkXG4gICAgICAgICAgICAgIGFmZmVjdCBob3cgb3VyIFNpdGUgd29ya3MgZm9yIHlvdS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBJZiB7eyBjb21wYW55X25hbWUgfX0gc2VsbHMgYWxsIG9yIHBhcnQgb2YgaXRzIGJ1c2luZXNzIG9yIG1ha2VzIGEgc2FsZVxuICAgICAgICAgICAgICBvciB0cmFuc2ZlciBvZiBpdHMgYXNzZXRzIG9yIGlzIG90aGVyd2lzZSBpbnZvbHZlZCBpbiBhIG1lcmdlciBvclxuICAgICAgICAgICAgICB0cmFuc2ZlciBvZiBhbGwgb3IgYSBtYXRlcmlhbCBwYXJ0IG9mIGl0cyBidXNpbmVzcyxcbiAgICAgICAgICAgICAge3sgY29tcGFueV9uYW1lIH19IG1heSB0cmFuc2ZlciB5b3VyIGluZm9ybWF0aW9uIHRvIHRoZSBwYXJ0eSBvciBwYXJ0aWVzXG4gICAgICAgICAgICAgIGludm9sdmVkIGluIHRoZSB0cmFuc2FjdGlvbiBhcyBwYXJ0IG9mIHRoYXQgdHJhbnNhY3Rpb24uXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3sgY29tcGFueV9uYW1lIH19IHVzZXMgYSByYW5nZSBvZiBjb21tZXJjaWFsbHkgcmVhc29uYWJsZSBtZWFzdXJlcyB0b1xuICAgICAgICAgICAgICBzYWZlZ3VhcmQgUGVyc29uYWwgSW5mb3JtYXRpb24gaW4gaXRzIHBvc3Nlc3Npb24gYWdhaW5zdCBsb3NzLCB0aGVmdCBhbmRcbiAgICAgICAgICAgICAgdW5hdXRob3JpemVkIHVzZSwgZGlzY2xvc3VyZSBvciBtb2RpZmljYXRpb24uIEhvd2V2ZXIsIG5vIG9uZSBjYW5cbiAgICAgICAgICAgICAgZ3VhcmFudGVlIHRoZSBjb21wbGV0ZSBzYWZldHkgb2YgeW91ciBpbmZvcm1hdGlvbi4gUGxlYXNlIGltbWVkaWF0ZWx5XG4gICAgICAgICAgICAgIG5vdGlmeSB1cyBpZiB5b3UgYmVsaWV2ZSB0aGVyZSBtYXkgYmUgYW4gaXNzdWUgb3IgYSBwcm9ibGVtIHJlZ2FyZGluZ1xuICAgICAgICAgICAgICB0aGUgaW50ZWdyaXR5IG9mIHlvdXIgaW5mb3JtYXRpb24gYnkgY29udGFjdGluZyB1cy5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBJbiBzb21lIGNhc2VzLCB3ZSBtYXkgdXNlIGFuIHVuYWZmaWxpYXRlZCBwYXltZW50IHNlcnZpY2UgdG8gYWxsb3cgeW91XG4gICAgICAgICAgICAgIHRvIHB1cmNoYXNlIGEgcHJvZHVjdCBvciBtYWtlIHBheW1lbnRzICjigJxQYXltZW50IFNlcnZpY2XigJ0pLiBJZiB5b3Ugd2lzaFxuICAgICAgICAgICAgICB0byBwdXJjaGFzZSBhIHByb2R1Y3Qgb3IgbWFrZSBhIHBheW1lbnQgaW4gc3VjaCBhIGNhc2UsIHlvdSB3aWxsIGJlXG4gICAgICAgICAgICAgIGRpcmVjdGVkIHRvIGEgUGF5bWVudCBTZXJ2aWNlIHdlYnBhZ2UuIEFueSBpbmZvcm1hdGlvbiB0aGF0IHlvdSBwcm92aWRlXG4gICAgICAgICAgICAgIHRvIGEgUGF5bWVudCBTZXJ2aWNlIHdpbGwgYmUgc3ViamVjdCB0byB0aGUgYXBwbGljYWJsZSBQYXltZW50IFNlcnZpY2XigJlzXG4gICAgICAgICAgICAgIHByaXZhY3kgcG9saWN5LCByYXRoZXIgdGhhbiB0aGlzIFByaXZhY3kgUG9saWN5LiBXZSBoYXZlIG5vIGNvbnRyb2xcbiAgICAgICAgICAgICAgb3ZlciwgYW5kIGFyZSBub3QgcmVzcG9uc2libGUgZm9yLCBhbnkgUGF5bWVudCBTZXJ2aWNl4oCZcyB1c2Ugb2ZcbiAgICAgICAgICAgICAgaW5mb3JtYXRpb24gY29sbGVjdGVkIHRocm91Z2ggYW55IFBheW1lbnQgU2VydmljZS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBUaGUge3sgY29tcGFueV9uYW1lIH19IHdlYnNpdGUgbWF5IGFsc28gYmUgbGlua2VkIHRvIHNpdGVzIG9wZXJhdGVkIGJ5XG4gICAgICAgICAgICAgIHRoaXJkIHBhcnRpZXMsIGFuZCBtYXkgY2FycnkgYWR2ZXJ0aXNlbWVudHMgb3Igb2ZmZXIgY29udGVudCxcbiAgICAgICAgICAgICAgZnVuY3Rpb25hbGl0eSwgZ2FtZXMgb3IgYXBwbGljYXRpb25zIGRldmVsb3BlZCBhbmQgbWFpbnRhaW5lZCBieSB0aGlyZFxuICAgICAgICAgICAgICBwYXJ0aWVzLiBTb21lIG9mIHRoZXNlIHRoaXJkIHBhcnR5IHNpdGVzIG1heSBiZSBjby1icmFuZGVkIHdpdGggYVxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gbG9nbywgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm90IG9wZXJhdGVkIG9yIG1haW50YWluZWRcbiAgICAgICAgICAgICAgYnkgdXMuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3sgY29tcGFueV9uYW1lIH19IGlzIG5vdCByZXNwb25zaWJsZSBmb3IgdGhlIHByaXZhY3kgcHJhY3RpY2VzIG9mIGFueVxuICAgICAgICAgICAgICBzdWNoIHRoaXJkIHBhcnRpZXMsIGFuZCBvbmNlIHlvdSBsZWF2ZSB0aGUge3sgY29tcGFueV9uYW1lIH19IHdlYnNpdGUsXG4gICAgICAgICAgICAgIHlvdSBzaG91bGQgY2hlY2sgdGhlIGFwcGxpY2FibGUgcHJpdmFjeSBwb2xpY3kgb2YgdGhlIG90aGVyIHNlcnZpY2UuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8aDM+UXVlc3Rpb25zICZhbXA7IENvbW1lbnRzPC9oMz5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIGFib3V0IG91ciBQcml2YWN5IFBvbGljeSwgcGxlYXNlXG4gICAgICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86e3sgY29tcGFueV9lbWFpbCB9fVwiPmxldCB1cyBrbm93PC9hPi5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS1wb2xpY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3ByaXZhY3ktcG9saWN5L3ByaXZhY3ktcG9saWN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LXBvbGljeS9wcml2YWN5LXBvbGljeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFMNUQ7O1FBT0ksYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBU2xFO0lBSkcsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7K0dBVlEsc0JBQXNCO21HQUF0QixzQkFBc0Isa0hDVG5DLHN0V0F1TUE7OzRGRDlMYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQU03QixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXByaXZhY3ktcG9saWN5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpdmFjeS1wb2xpY3kuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcml2YWN5UG9saWN5Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBpc1B1YmxpYyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygncHJpdmFjeS1wb2xpY3knKTtcblxuICAgIGNvbXBhbnlfbmFtZTogc3RyaW5nO1xuICAgIGNvbXBhbnlfZW1haWw6IHN0cmluZztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBhbnlfbmFtZSA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkubmFtZTtcbiAgICAgICAgdGhpcy5jb21wYW55X2VtYWlsID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5lbWFpbDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaWNcIj5cbiAgPHB3LWxhbmRpbmctcGFnZS1oZWFkZXIgW2xhbmRpbmddPVwiZmFsc2VcIj48L3B3LWxhbmRpbmctcGFnZS1oZWFkZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnbXQtNSc6IGlzUHVibGljIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGVybXMtb2Ytc2VydmljZVwiPlxuICAgICAgICAgICAgPGgxPlByaXZhY3kgcG9saWN5PC9oMT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICAgICAgICAgICAgPGgzPllvdXIgQ29udGVudDwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgSWYgeW91IG9wZXJhdGUgYSB7eyBjb21wYW55X25hbWUgfX0gVXNlciBBY2NvdW50LCBhbmQvb3IgY29tbWVudCBvbixcbiAgICAgICAgICAgICAgcG9zdCBtYXRlcmlhbCB0bywgcG9zdCBsaW5rcyBvbiBvciBvdGhlcndpc2UgbWFrZSAob3IgYWxsb3cgYW55IHRoaXJkXG4gICAgICAgICAgICAgIHBhcnR5IHRvIG1ha2UpIG1hdGVyaWFsIGF2YWlsYWJsZSBieSBtZWFucyBvZiB0aGUgV2Vic2l0ZSBhbmQgb3JcbiAgICAgICAgICAgICAgQXBwbGljYXRpb25zIChjb2xsZWN0aXZlbHkgY2FsbGVkIOKAnENvbnRlbnTigJ0pLCB5b3UgYXJlIGVudGlyZWx5XG4gICAgICAgICAgICAgIHJlc3BvbnNpYmxlIGZvciB0aGF0IENvbnRlbnQgYW5kIGFueSBoYXJtIHJlc3VsdGluZyBmcm9tIHRoYXQgQ29udGVudC5cbiAgICAgICAgICAgICAgVGhhdCBpcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIENvbnRlbnQgaW4gcXVlc3Rpb24gY29uc3RpdHV0ZXMgKGJ1dFxuICAgICAgICAgICAgICBub3QgbGltaXRlZCB0bykgdGV4dCwgZ3JhcGhpY3MsIGFuIGF1ZGlvIGZpbGUgb3IgY29tcHV0ZXIgc29mdHdhcmUuIEJ5XG4gICAgICAgICAgICAgIG1ha2luZyBDb250ZW50IGF2YWlsYWJsZSwgeW91IHJlcHJlc2VudCBhbmQgd2FycmFudCB0aGF0OlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPG9sPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgdGhlIENvbnRlbnQgaXMgbm90IGNvbnNpZGVyZWQgdG8gYmUgb2JzY2VuZSwgaW5hcHByb3ByaWF0ZSxcbiAgICAgICAgICAgICAgICBkZWZhbWF0b3J5LCBkaXNwYXJhZ2luZywgaW5kZWNlbnQsIHNlZGl0aW91cywgb2ZmZW5zaXZlLFxuICAgICAgICAgICAgICAgIHBvcm5vZ3JhcGhpYywgdGhyZWF0ZW5pbmcsIGFidXNpdmUsIGxpYWJsZSB0byBpbmNpdGUgcmFjaWFsIGhhdHJlZCxcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yeSwgYmxhc3BoZW1vdXMsIGluIGJyZWFjaCBvZiBjb25maWRlbmNlIG9yIGluIGJyZWFjaCBvZlxuICAgICAgICAgICAgICAgIHByaXZhY3k7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgZG93bmxvYWRpbmcsIGNvcHlpbmcgYW5kIHVzZSBvZiB0aGUgQ29udGVudCB3aWxsIG5vdCBpbmZyaW5nZVxuICAgICAgICAgICAgICAgIHRoZSBwcm9wcmlldGFyeSByaWdodHMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGNvcHlyaWdodCxcbiAgICAgICAgICAgICAgICBwYXRlbnQsIHRyYWRlbWFyayBvciB0cmFkZSBzZWNyZXQgcmlnaHRzLCBvZiBhbnkgdGhpcmQgcGFydHk7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICBpZiB5b3VyIGVtcGxveWVyIGhhcyByaWdodHMgdG8gaW50ZWxsZWN0dWFsIHByb3BlcnR5IHlvdSBjcmVhdGUsIHlvdVxuICAgICAgICAgICAgICAgIGhhdmUgZWl0aGVyIChpKSByZWNlaXZlZCBwZXJtaXNzaW9uIGZyb20geW91ciBlbXBsb3llciB0byBwb3N0IG9yXG4gICAgICAgICAgICAgICAgbWFrZSBhdmFpbGFibGUgdGhlIENvbnRlbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYW55XG4gICAgICAgICAgICAgICAgc29mdHdhcmUsIG9yIChpaSkgc2VjdXJlZCBmcm9tIHlvdXIgZW1wbG95ZXIgYSB3YWl2ZXIgYXMgdG8gYWxsXG4gICAgICAgICAgICAgICAgcmlnaHRzIGluIG9yIHRvIHRoZSBDb250ZW50O1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgeW91IGhhdmUgZnVsbHkgY29tcGxpZWQgd2l0aCBhbnkgdGhpcmQtcGFydHkgbGljZW5zZXMgcmVsYXRpbmcgdG9cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCwgYW5kIGhhdmUgZG9uZSBhbGwgdGhpbmdzIG5lY2Vzc2FyeSB0byBzdWNjZXNzZnVsbHkgcGFzc1xuICAgICAgICAgICAgICAgIHRocm91Z2ggdG8gZW5kIHVzZXJzIGFueSByZXF1aXJlZCB0ZXJtcztcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHRoZSBDb250ZW50IGRvZXMgbm90IGNvbnRhaW4gb3IgaW5zdGFsbCBhbnkgdmlydXNlcywgd29ybXMsIG1hbHdhcmUsXG4gICAgICAgICAgICAgICAgVHJvamFuIGhvcnNlcyBvciBvdGhlciBoYXJtZnVsIG9yIGRlc3RydWN0aXZlIGNvbnRlbnQ7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCBpcyBub3Qgc3BhbSwgaXMgbm90IG1hY2hpbmUgb3IgcmFuZG9tbHkgZ2VuZXJhdGVkIGFuZFxuICAgICAgICAgICAgICAgIGRvZXMgbm90IGNvbnRhaW4gdW5ldGhpY2FsIG9yIHVud2FudGVkIGNvbW1lcmNpYWwgY29udGVudCBkZXNpZ25lZFxuICAgICAgICAgICAgICAgIHRvIGRyaXZlIHRyYWZmaWMgdG8gdGhpcmQgcGFydHkgc2l0ZXMgb3IgZnVydGhlciB1bmxhd2Z1bCBhY3RzO1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgeW91ciBVc2VyIEFjY291bnQgaXMgbm90IGdldHRpbmcgYWR2ZXJ0aXNlZCB2aWEgdW53YW50ZWQgZWxlY3Ryb25pY1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzIHN1Y2ggYXMgc3BhbSBsaW5rcyBvbiBuZXdzZ3JvdXBzLCBlbWFpbCBsaXN0cywgb3RoZXIgYmxvZ3NcbiAgICAgICAgICAgICAgICBhbmQgd2Vic2l0ZXMsIGFuZCBzaW1pbGFyIHVuc29saWNpdGVkIHByb21vdGlvbmFsIG1ldGhvZHM7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB5b3VyIFVzZXIgQWNjb3VudCBpcyBub3QgbmFtZWQgaW4gYSBtYW5uZXIgdGhhdCBtaXNsZWFkcyB1c2VycyBpbnRvXG4gICAgICAgICAgICAgICAgdGhpbmtpbmcgdGhhdCB5b3UgYXJlIGFub3RoZXIgcGVyc29uIG9yIGNvbXBhbnk7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCB3aWxsIG5vdCBjYXVzZSB5b3Ugb3IgdXMgdG8gYnJlYWNoIGFueSBsYXcsIHJlZ3VsYXRpb24sXG4gICAgICAgICAgICAgICAgcnVsZSwgY29kZSBvciBvdGhlciBsZWdhbCBvYmxpZ2F0aW9uOyBhbmRcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPnRoZSBDb250ZW50IHdpbGwgbm90IGJyaW5nIHVzLCBvciB0aGUgU2l0ZSBpbnRvIGRpc3JlcHV0ZS48L2xpPlxuICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBCeSBzdWJtaXR0aW5nIENvbnRlbnQgZm9yIGluY2x1c2lvbiBpbiB5b3VyIFVzZXIgQWNjb3VudCBvciB0byB0aGUgU2l0ZSxcbiAgICAgICAgICAgICAgeW91IGdyYW50IHVzIGEgd29ybGR3aWRlLCByb3lhbHR5IGZyZWUsIGFuZCBub24tZXhjbHVzaXZlIGxpY2Vuc2UgdG9cbiAgICAgICAgICAgICAgdXNlIHRoYXQgY29udGVudCBpbiBhbnkgd2F5IChpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uLCByZXByb2R1Y2luZyxcbiAgICAgICAgICAgICAgY2hhbmdpbmcgYW5kIGNvbW11bmljYXRpbmcgdGhlIENvbnRlbnQpIGFuZCBwZXJtaXQgdXMgdG8gYXV0aG9yaXNlIGFueVxuICAgICAgICAgICAgICBvdGhlciBwZXJzb24gdG8gZG8gdGhlIHNhbWUgdGhpbmcuIElmIHlvdSBkZWxldGUgYW55IENvbnRlbnQsIHdlIHdpbGxcbiAgICAgICAgICAgICAgdXNlIHJlYXNvbmFibGUgZWZmb3J0cyB0byByZW1vdmUgaXQgZnJvbSB0aGUgU2l0ZSwgYnV0IHlvdSBhY2tub3dsZWRnZVxuICAgICAgICAgICAgICB0aGF0IGNhY2hpbmcgb3IgcmVmZXJlbmNlcyB0byB0aGUgQ29udGVudCBtYXkgbm90IGJlIG1hZGUgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgdW5hdmFpbGFibGUuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgV2l0aG91dCBsaW1pdGluZyBhbnkgb2YgdGhvc2UgcmVwcmVzZW50YXRpb25zIG9yIHdhcnJhbnRpZXMsIHdlIHJlc2VydmVcbiAgICAgICAgICAgICAgdGhlIHJpZ2h0ICh0aG91Z2ggbm90IHRoZSBvYmxpZ2F0aW9uKSB0bywgaW4gb3VyIHNvbGUgZGlzY3JldGlvblxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPG9sPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgcmVmdXNlIG9yIHJlbW92ZSBhbnkgY29udGVudCB0aGF0LCBpbiBvdXIgcmVhc29uYWJsZSBvcGluaW9uLFxuICAgICAgICAgICAgICAgIHZpb2xhdGVzIGFueSBvZiBvdXIgcG9saWNpZXMgb3IgYWdyZWVtZW50cyBvciBpcyBpbiBhbnkgd2F5IGhhcm1mdWxcbiAgICAgICAgICAgICAgICBvciBvYmplY3Rpb25hYmxlLCBvclxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgdGVybWluYXRlIG9yIGRlbnkgYWNjZXNzIHRvIGFuZCB1c2Ugb2YgdGhlIFNlcnZpY2UgdG8gYW55IGluZGl2aWR1YWxcbiAgICAgICAgICAgICAgICBvciBlbnRpdHkgZm9yIGFueSByZWFzb24sIGluIG91ciBzb2xlIGRpc2NyZXRpb24uXG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGgzPlByaXZhY3k8L2gzPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIFdlIGdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3UgaW4gYSByYW5nZSBvZiB3YXlzLiBXZSBjb2xsZWN0IHlvdXImbHJtO1xuICAgICAgICAgICAgICBuYW1lLCZscm07IGVtYWlsIGFkZHJlc3MgYW5kIG90aGVyIGluZm9ybWF0aW9uIHlvdSBkaXJlY3RseSBnaXZlIHVzIG9uXG4gICAgICAgICAgICAgIG91ciBTaXRlLiBXZSBtYXkgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHlvdSBmcm9tIG90aGVyIHNvdXJjZXMuIFdlIG1heVxuICAgICAgICAgICAgICBhZGQgdGhpcyB0byBpbmZvcm1hdGlvbiB3ZSBnZXQgZnJvbSB0aGlzIFNpdGUuIFdlIG1heSBhdXRvbWF0aWNhbGx5IGxvZ1xuICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB5b3UgYW5kIHlvdXIgY29tcHV0ZXIuIFdlIG1heSBsb2cgaW5mb3JtYXRpb24gdXNpbmdcbiAgICAgICAgICAgICAgXCJjb29raWVzLlwiIENvb2tpZXMgYXJlIHNtYWxsIGRhdGEgZmlsZXMgc3RvcmVkIG9uIHlvdXIgaGFyZCBkcml2ZSBieSBhXG4gICAgICAgICAgICAgIHdlYnNpdGUuIENvb2tpZXMgaGVscCB1cyBtYWtlIG91ciBTaXRlIGFuZCB5b3VyIHZpc2l0IGJldHRlci4gV2UgdXNlXG4gICAgICAgICAgICAgIGNvb2tpZXMgdG8gc2VlIHdoaWNoIHBhcnRzIG9mIG91ciBTaXRlIHBlb3BsZSB1c2UgYW5kIGxpa2UgYW5kIHRvIGNvdW50XG4gICAgICAgICAgICAgIHZpc2l0cyB0byBvdXIgU2l0ZS4gV2UgbWF5IHN0b3JlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gYWxvbmcgd2l0aFxuICAgICAgICAgICAgICB5b3VyIGZpbGVzIGFuZCBkYXRhIG9uIGEgdGhpcmQgcGFydHkgc2VydmVyIHN1Y2ggYXMgQW1hem9uIFdlYiBTZXJ2aWNlcztcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBXZSB1c2UgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiB0byBvcGVyYXRlLCBtYWludGFpbiwgYW5kIGltcHJvdmUgb3VyXG4gICAgICAgICAgICAgIHNpdGVzLCBwcm9kdWN0cywgYW5kIHNlcnZpY2VzLiBXZSB1c2UgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiB0b1xuICAgICAgICAgICAgICByZXNwb25kIHRvIGNvbW1lbnRzIGFuZCBxdWVzdGlvbnMgYW5kIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gV2UgdXNlXG4gICAgICAgICAgICAgIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gcHJvdmlkZSBhbmQgZGVsaXZlciBwcm9kdWN0cyBhbmQgc2VydmljZXNcbiAgICAgICAgICAgICAgY3VzdG9tZXJzIHJlcXVlc3QuIFdlIGFsc28gdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gc2VuZCB5b3VcbiAgICAgICAgICAgICAgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgc2VydmljZSBhbmQgdG8gcmVzcG9uZCB0byBjdXN0b21lciBzdXBwb3J0XG4gICAgICAgICAgICAgIHJlcXVlc3RzLiBZb3UgY2FuIGFjY2VzcyBhbmQgY2hhbmdlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gYnkgbG9nZ2luZ1xuICAgICAgICAgICAgICBpbiB0byB5b3VyIGFjY291bnQgc2V0dGluZ3MgcGFnZS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBXZSBtYXkgc2hhcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gd2l0aCB5b3VyIGNvbnNlbnQuIEZvciBleGFtcGxlLCB5b3VcbiAgICAgICAgICAgICAgbWF5IGxldCB1cyBzaGFyZSBwZXJzb25hbCBpbmZvcm1hdGlvbiB3aXRoIG90aGVycyBmb3IgdGhlaXIgb3duXG4gICAgICAgICAgICAgIG1hcmtldGluZyB1c2VzLiBUaG9zZSB1c2VzIHdpbGwgYmUgc3ViamVjdCB0byB0aGVpciBwcml2YWN5IHBvbGljaWVzLiBXZVxuICAgICAgICAgICAgICBtYXkgc2hhcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gd2hlbiB3ZSBkbyBhIGJ1c2luZXNzIGRlYWwsIG9yIG5lZ290aWF0ZVxuICAgICAgICAgICAgICBhIGJ1c2luZXNzIGRlYWwsIGludm9sdmluZyBzYWxlIG9yIHRyYW5zZmVyIG9mIGFsbCBvciBhIHBhcnQgb2Ygb3VyXG4gICAgICAgICAgICAgIGJ1c2luZXNzIG9yIGFzc2V0cy4gVGhlc2UgZGVhbHMgY2FuIGluY2x1ZGUgYW55IG1lcmdlciwgZmluYW5jaW5nLFxuICAgICAgICAgICAgICBhY3F1aXNpdGlvbiwgb3IgYmFua3J1cHRjeSB0cmFuc2FjdGlvbiBvciBwcm9jZWVkaW5nLiBXZSBtYXkgc2hhcmVcbiAgICAgICAgICAgICAgcGVyc29uYWwgaW5mb3JtYXRpb24gZm9yIGxlZ2FsLCBwcm90ZWN0aW9uLCBhbmQgc2FmZXR5IHB1cnBvc2VzLiBXZSBtYXlcbiAgICAgICAgICAgICAgc2hhcmUgaW5mb3JtYXRpb24gdG8gY29tcGx5IHdpdGggbGF3cy4gV2UgbWF5IHNoYXJlIGluZm9ybWF0aW9uIHRvXG4gICAgICAgICAgICAgIHJlc3BvbmQgdG8gbGF3ZnVsIHJlcXVlc3RzIGFuZCBsZWdhbCBwcm9jZXNzLiBXZSBtYXkgc2hhcmUgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgdG8gcHJvdGVjdCB0aGUgcmlnaHRzLCBwcm9wZXJ0eSBvciBzYWZldHkgb2YgdGhlIFNlcnZpY2UsIG91ciB1c2VycyxcbiAgICAgICAgICAgICAgY3VzdG9tZXJzLCBhbmQgb3RoZXJzLiBUaGlzIGluY2x1ZGVzIGVuZm9yY2luZyBvdXIgYWdyZWVtZW50cywgcG9saWNpZXMsXG4gICAgICAgICAgICAgIGFuZCB0ZXJtcyBvZiB1c2UuIFdlIG1heSBzaGFyZSBpbmZvcm1hdGlvbiBpbiBhbiBlbWVyZ2VuY3kuIFdlIG1heSBzaGFyZVxuICAgICAgICAgICAgICBpbmZvcm1hdGlvbiB3aXRoIHRob3NlIHdobyBuZWVkIGl0IHRvIGRvIHdvcmsgZm9yIHVzLiBXZSBtYXkgYWxzbyBzaGFyZVxuICAgICAgICAgICAgICBhZ2dyZWdhdGVkIGFuZC9vciBhbm9ueW1pemVkIGRhdGEgd2l0aCBvdGhlcnMgZm9yIHRoZWlyIG93biB1c2VzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIE91ciBtYXJrZXRpbmcgZW1haWxzIHRlbGwgeW91IGhvdyB0byDigJxvcHQtb3V0LuKAnSBJZiB5b3Ugb3B0IG91dCwgd2UgbWF5XG4gICAgICAgICAgICAgIHN0aWxsIHNlbmQgeW91IG5vbi1tYXJrZXRpbmcgZW1haWxzLiBOb24tbWFya2V0aW5nIGVtYWlscyBpbmNsdWRlIGVtYWlsc1xuICAgICAgICAgICAgICBhYm91dCB5b3VyIGFjY291bnRzIGFuZCBvdXIgYnVzaW5lc3MgZGVhbGluZ3Mgd2l0aCB5b3UuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgWW91IGNhbiB0eXBpY2FsbHkgcmVtb3ZlIGFuZCByZWplY3QgY29va2llcyBmcm9tIG91ciBTaXRlIHdpdGggeW91clxuICAgICAgICAgICAgICBicm93c2VyIHNldHRpbmdzLiBNYW55IGJyb3dzZXJzIGFyZSBzZXQgdG8gYWNjZXB0IGNvb2tpZXMgdW50aWwgeW91XG4gICAgICAgICAgICAgIGNoYW5nZSB5b3VyIHNldHRpbmdzLiBJZiB5b3UgcmVtb3ZlIG9yIHJlamVjdCBvdXIgY29va2llcywgaXQgY291bGRcbiAgICAgICAgICAgICAgYWZmZWN0IGhvdyBvdXIgU2l0ZSB3b3JrcyBmb3IgeW91LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIElmIHt7IGNvbXBhbnlfbmFtZSB9fSBzZWxscyBhbGwgb3IgcGFydCBvZiBpdHMgYnVzaW5lc3Mgb3IgbWFrZXMgYSBzYWxlXG4gICAgICAgICAgICAgIG9yIHRyYW5zZmVyIG9mIGl0cyBhc3NldHMgb3IgaXMgb3RoZXJ3aXNlIGludm9sdmVkIGluIGEgbWVyZ2VyIG9yXG4gICAgICAgICAgICAgIHRyYW5zZmVyIG9mIGFsbCBvciBhIG1hdGVyaWFsIHBhcnQgb2YgaXRzIGJ1c2luZXNzLFxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gbWF5IHRyYW5zZmVyIHlvdXIgaW5mb3JtYXRpb24gdG8gdGhlIHBhcnR5IG9yIHBhcnRpZXNcbiAgICAgICAgICAgICAgaW52b2x2ZWQgaW4gdGhlIHRyYW5zYWN0aW9uIGFzIHBhcnQgb2YgdGhhdCB0cmFuc2FjdGlvbi5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gdXNlcyBhIHJhbmdlIG9mIGNvbW1lcmNpYWxseSByZWFzb25hYmxlIG1lYXN1cmVzIHRvXG4gICAgICAgICAgICAgIHNhZmVndWFyZCBQZXJzb25hbCBJbmZvcm1hdGlvbiBpbiBpdHMgcG9zc2Vzc2lvbiBhZ2FpbnN0IGxvc3MsIHRoZWZ0IGFuZFxuICAgICAgICAgICAgICB1bmF1dGhvcml6ZWQgdXNlLCBkaXNjbG9zdXJlIG9yIG1vZGlmaWNhdGlvbi4gSG93ZXZlciwgbm8gb25lIGNhblxuICAgICAgICAgICAgICBndWFyYW50ZWUgdGhlIGNvbXBsZXRlIHNhZmV0eSBvZiB5b3VyIGluZm9ybWF0aW9uLiBQbGVhc2UgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgbm90aWZ5IHVzIGlmIHlvdSBiZWxpZXZlIHRoZXJlIG1heSBiZSBhbiBpc3N1ZSBvciBhIHByb2JsZW0gcmVnYXJkaW5nXG4gICAgICAgICAgICAgIHRoZSBpbnRlZ3JpdHkgb2YgeW91ciBpbmZvcm1hdGlvbiBieSBjb250YWN0aW5nIHVzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIEluIHNvbWUgY2FzZXMsIHdlIG1heSB1c2UgYW4gdW5hZmZpbGlhdGVkIHBheW1lbnQgc2VydmljZSB0byBhbGxvdyB5b3VcbiAgICAgICAgICAgICAgdG8gcHVyY2hhc2UgYSBwcm9kdWN0IG9yIG1ha2UgcGF5bWVudHMgKOKAnFBheW1lbnQgU2VydmljZeKAnSkuIElmIHlvdSB3aXNoXG4gICAgICAgICAgICAgIHRvIHB1cmNoYXNlIGEgcHJvZHVjdCBvciBtYWtlIGEgcGF5bWVudCBpbiBzdWNoIGEgY2FzZSwgeW91IHdpbGwgYmVcbiAgICAgICAgICAgICAgZGlyZWN0ZWQgdG8gYSBQYXltZW50IFNlcnZpY2Ugd2VicGFnZS4gQW55IGluZm9ybWF0aW9uIHRoYXQgeW91IHByb3ZpZGVcbiAgICAgICAgICAgICAgdG8gYSBQYXltZW50IFNlcnZpY2Ugd2lsbCBiZSBzdWJqZWN0IHRvIHRoZSBhcHBsaWNhYmxlIFBheW1lbnQgU2VydmljZeKAmXNcbiAgICAgICAgICAgICAgcHJpdmFjeSBwb2xpY3ksIHJhdGhlciB0aGFuIHRoaXMgUHJpdmFjeSBQb2xpY3kuIFdlIGhhdmUgbm8gY29udHJvbFxuICAgICAgICAgICAgICBvdmVyLCBhbmQgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IsIGFueSBQYXltZW50IFNlcnZpY2XigJlzIHVzZSBvZlxuICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQgdGhyb3VnaCBhbnkgUGF5bWVudCBTZXJ2aWNlLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIFRoZSB7eyBjb21wYW55X25hbWUgfX0gd2Vic2l0ZSBtYXkgYWxzbyBiZSBsaW5rZWQgdG8gc2l0ZXMgb3BlcmF0ZWQgYnlcbiAgICAgICAgICAgICAgdGhpcmQgcGFydGllcywgYW5kIG1heSBjYXJyeSBhZHZlcnRpc2VtZW50cyBvciBvZmZlciBjb250ZW50LFxuICAgICAgICAgICAgICBmdW5jdGlvbmFsaXR5LCBnYW1lcyBvciBhcHBsaWNhdGlvbnMgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoaXJkXG4gICAgICAgICAgICAgIHBhcnRpZXMuIFNvbWUgb2YgdGhlc2UgdGhpcmQgcGFydHkgc2l0ZXMgbWF5IGJlIGNvLWJyYW5kZWQgd2l0aCBhXG4gICAgICAgICAgICAgIHt7IGNvbXBhbnlfbmFtZSB9fSBsb2dvLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3Qgb3BlcmF0ZWQgb3IgbWFpbnRhaW5lZFxuICAgICAgICAgICAgICBieSB1cy5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gaXMgbm90IHJlc3BvbnNpYmxlIGZvciB0aGUgcHJpdmFjeSBwcmFjdGljZXMgb2YgYW55XG4gICAgICAgICAgICAgIHN1Y2ggdGhpcmQgcGFydGllcywgYW5kIG9uY2UgeW91IGxlYXZlIHRoZSB7eyBjb21wYW55X25hbWUgfX0gd2Vic2l0ZSxcbiAgICAgICAgICAgICAgeW91IHNob3VsZCBjaGVjayB0aGUgYXBwbGljYWJsZSBwcml2YWN5IHBvbGljeSBvZiB0aGUgb3RoZXIgc2VydmljZS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxoMz5RdWVzdGlvbnMgJmFtcDsgQ29tbWVudHM8L2gzPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgYWJvdXQgb3VyIFByaXZhY3kgUG9saWN5LCBwbGVhc2VcbiAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzp7eyBjb21wYW55X2VtYWlsIH19XCI+bGV0IHVzIGtub3c8L2E+LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -94,9 +94,41 @@ export class ResourceHeaderComponent extends AppBaseComponent {
|
|
|
94
94
|
collapseElement.classList.remove('show');
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
+
// Close all dropdowns when scrolling
|
|
98
|
+
this.closeAllDropdowns();
|
|
97
99
|
});
|
|
98
100
|
}, 50);
|
|
99
101
|
}
|
|
102
|
+
onDocumentClick(event) {
|
|
103
|
+
console.log('In Bus');
|
|
104
|
+
// Close all dropdowns when clicking outside
|
|
105
|
+
const target = event.target;
|
|
106
|
+
if (!target.closest('.nav-item') && !target.closest('.popup')) {
|
|
107
|
+
this.closeAllDropdowns();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
closeAllDropdowns() {
|
|
111
|
+
console.log('In tluc');
|
|
112
|
+
if (this.navbarItems) {
|
|
113
|
+
this.navbarItems.forEach(item => {
|
|
114
|
+
if (item.open) {
|
|
115
|
+
item.open = false;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
openDropdown(item) {
|
|
121
|
+
// Close other dropdowns first
|
|
122
|
+
this.navbarItems.forEach(navItem => {
|
|
123
|
+
if (navItem !== item) {
|
|
124
|
+
navItem.open = false;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
item.open = true;
|
|
128
|
+
}
|
|
129
|
+
onDropdownItemClick(item) {
|
|
130
|
+
item.open = false;
|
|
131
|
+
}
|
|
100
132
|
openEditNavbarModal() {
|
|
101
133
|
const navbarConfig = this.appConfig.pages_config?.navbar || {};
|
|
102
134
|
navbarConfig.items = navbarConfig.items || [];
|
|
@@ -146,11 +178,11 @@ export class ResourceHeaderComponent extends AppBaseComponent {
|
|
|
146
178
|
moveItemInArray(this.editingNavbar.items[index].subtitles, event.previousIndex, event.currentIndex);
|
|
147
179
|
}
|
|
148
180
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderComponent, deps: [{ token: i0.Injector }, { token: DOCUMENT }, { token: i1.AdminService }, { token: i2.NgbModal }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceHeaderComponent, selector: "pw-resource-header", host: { listeners: { "window:scroll": "onScroll()" } }, viewQueries: [{ propertyName: "navbarCollapse", first: true, predicate: ["collapsibleNavbar"], descendants: true }, { propertyName: "editNavbarModal", first: true, predicate: ["editNavbarModal"], descendants: true }, { propertyName: "logoEditModal", first: true, predicate: ["logoEditModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top cloudolive-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img [src]=\"logo\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div *ngIf=\"logo\">\n <img [src]=\"logo\"\n (load)=\"logoLoaded = true\"\n (error)=\"logoLoaded = false\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (mouseenter)=\"item.open = true\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n\n\n<ng-template #editNavbarModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Title</label>\n <input class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Path</label>\n <input class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Title</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Path</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveNavbarLinks(modal)\">Save</button>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap\";:root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}*{font-family:Montserrat,sans-serif}h2{font-size:32px;font-weight:700;letter-spacing:.03em;line-height:1.1em;text-transform:uppercase}@media (max-width: 1200px){.container-wrapper{padding:0 20px!important}}.navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.popup.ngIf{opacity:1}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.LazyImgDirective, selector: "img" }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.CustomUploaderComponent, selector: "pw-custom-uploader", inputs: ["controlName", "previewData", "aspectRatio", "title"], outputs: ["saveEvent"] }] }); }
|
|
181
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceHeaderComponent, selector: "pw-resource-header", host: { listeners: { "window:scroll": "onScroll()", "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "navbarCollapse", first: true, predicate: ["collapsibleNavbar"], descendants: true }, { propertyName: "editNavbarModal", first: true, predicate: ["editNavbarModal"], descendants: true }, { propertyName: "logoEditModal", first: true, predicate: ["logoEditModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top cloudolive-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img [src]=\"logo\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div *ngIf=\"logo\">\n <img [src]=\"logo\"\n (load)=\"logoLoaded = true\"\n (error)=\"logoLoaded = false\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n\n\n<ng-template #editNavbarModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Title</label>\n <input class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Path</label>\n <input class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Title</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Path</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveNavbarLinks(modal)\">Save</button>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap\";:root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}*{font-family:Montserrat,sans-serif}h2{font-size:32px;font-weight:700;letter-spacing:.03em;line-height:1.1em;text-transform:uppercase}@media (max-width: 1200px){.container-wrapper{padding:0 20px!important}}.navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.dropdown-container{position:relative;display:inline-block}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.dropdown-container{position:relative;display:inline-block}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}.dropdown-container{position:relative;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.LazyImgDirective, selector: "img" }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.CustomUploaderComponent, selector: "pw-custom-uploader", inputs: ["controlName", "previewData", "aspectRatio", "title"], outputs: ["saveEvent"] }] }); }
|
|
150
182
|
}
|
|
151
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderComponent, decorators: [{
|
|
152
184
|
type: Component,
|
|
153
|
-
args: [{ selector: 'pw-resource-header', template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top cloudolive-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img [src]=\"logo\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div *ngIf=\"logo\">\n <img [src]=\"logo\"\n (load)=\"logoLoaded = true\"\n (error)=\"logoLoaded = false\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (mouseenter)=\"item.open = true\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n\n\n<ng-template #editNavbarModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Title</label>\n <input class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Path</label>\n <input class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Title</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Path</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveNavbarLinks(modal)\">Save</button>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap\";:root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}*{font-family:Montserrat,sans-serif}h2{font-size:32px;font-weight:700;letter-spacing:.03em;line-height:1.1em;text-transform:uppercase}@media (max-width: 1200px){.container-wrapper{padding:0 20px!important}}.navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.popup.ngIf{opacity:1}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}\n"] }]
|
|
185
|
+
args: [{ selector: 'pw-resource-header', template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top cloudolive-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img [src]=\"logo\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div *ngIf=\"logo\">\n <img [src]=\"logo\"\n (load)=\"logoLoaded = true\"\n (error)=\"logoLoaded = false\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <button class=\"sign-btn sign-header-btn\"\n routerLink=\"/login\">Log In</button>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n\n\n<ng-template #editNavbarModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Title</label>\n <input class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label class=\"form-label\">Path</label>\n <input class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Title</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label class=\"form-label\">Subtitle Path</label>\n <input class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveNavbarLinks(modal)\">Save</button>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap\";:root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}*{font-family:Montserrat,sans-serif}h2{font-size:32px;font-weight:700;letter-spacing:.03em;line-height:1.1em;text-transform:uppercase}@media (max-width: 1200px){.container-wrapper{padding:0 20px!important}}.navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.dropdown-container{position:relative;display:inline-block}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.dropdown-container{position:relative;display:inline-block}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}.dropdown-container{position:relative;display:inline-block}\n"] }]
|
|
154
186
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: Document, decorators: [{
|
|
155
187
|
type: Inject,
|
|
156
188
|
args: [DOCUMENT]
|
|
@@ -166,5 +198,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
166
198
|
}], onScroll: [{
|
|
167
199
|
type: HostListener,
|
|
168
200
|
args: ['window:scroll', []]
|
|
201
|
+
}], onDocumentClick: [{
|
|
202
|
+
type: HostListener,
|
|
203
|
+
args: ['document:click', ['$event']]
|
|
169
204
|
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9yZXNvdXJjZS1oZWFkZXIvcmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9yZXNvdXJjZS1oZWFkZXIvcmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBRVIsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7OztBQVN0RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBcUJ6RCxZQUNJLFFBQWtCLEVBQ2lCLFFBQWtCLEVBQ3BDLFlBQTBCLEVBQzFCLFlBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUptQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBcEIzQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFNB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ZSxDQUFDLEtBQUs7UUFDakIsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsS0FBSztRQUNwQyxlQUFlLENBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUN6QyxLQUFLLENBQUMsYUFBYSxFQUNuQixLQUFLLENBQUMsWUFBWSxDQUNyQixDQUFDO0lBQ04sQ0FBQzsrR0F2S1EsdUJBQXVCLDBDQXVCcEIsUUFBUTttR0F2QlgsdUJBQXVCLG9jQzFCcEMsdTNOQXNMYzs7NEZENUpELHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxvQkFBb0I7OzBCQTJCekIsTUFBTTsyQkFBQyxRQUFROzJGQXRCWSxjQUFjO3NCQUE3QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDQSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDQSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBOEUxQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFRPS0VOX0tFWSwgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcblxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tLXVwbG9hZGVyL2N1c3RvbS11cGxvYWRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXJlc291cmNlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdjb2xsYXBzaWJsZU5hdmJhcicpIG5hdmJhckNvbGxhcHNlOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXROYXZiYXJNb2RhbCcpIGVkaXROYXZiYXJNb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2xvZ29FZGl0TW9kYWwnKSBsb2dvRWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBpc1Njcm9sbGVkID0gZmFsc2U7XG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIGxvZ287XG4gICAgbmF2YmFySXRlbXMgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5uYXZiYXI/Lml0ZW1zO1xuICAgIGRvbWFpbklkID0gdGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZDtcbiAgICBjb250cmFzdEltYWdlVXJsID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2NvbnRyYXN0Py51cmw7XG4gICAgZGFya0ltYWdlVXJsID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2Rhcms/LnVybDtcblxuICAgIGVkaXRpbmdOYXZiYXIgPSB7XG4gICAgICAgIGl0ZW1zOiBbXVxuICAgIH07XG4gICAgaWQ6IHN0cmluZztcbiAgICB1c2VyTG9nZ2VkSW46IGJvb2xlYW47XG4gICAgdXNlcjogVXNlcjtcbiAgICBzY3JvbGxUaW1lb3V0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbFxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGlzQWJvdXRVcyA9IHRoaXMucm91dGVyLnVybD8uaW5jbHVkZXMoJy9hYm91dC11cycpO1xuXG4gICAgICAgIHRoaXMubG9nbyA9IGlzQWJvdXRVc1xuICAgICAgICAgICAgPyB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fY29udHJhc3Q/LnVybFxuICAgICAgICAgICAgOiB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fZGFyaz8udXJsO1xuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJChUT0tFTl9LRVkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyTG9nZ2VkSW4gPSAhIXJlcztcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKCdwcm9kdWN0Jykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMgPyBKU09OLnBhcnNlKHJlcykgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlkID0gZGF0YT8uc3Vic2NyaXB0aW9uSWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW5mbygpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyID0gZGF0YTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkxvZ29FZGl0TW9kYWwoKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5sb2dvRWRpdE1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnIH0pO1xuICAgIH1cblxuICAgIG9uU2F2ZUxvZ28oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdzdWJzY3JpcHRpb25faWQnLCB0aGlzLmlkKTtcbiAgICAgICAgaWYgKGV2ZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQodGhpcy5pc1Njcm9sbGVkID8gJ2xvZ29fbWFpbl9jb250cmFzdCcgOiAnbG9nb19tYWluX2RhcmsnLCBldmVudC5maWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICB0aGlzLmlzU2Nyb2xsZWQgPyAncmVtb3ZlX2xvZ29fbWFpbl9jb250cmFzdCcgOiAncmVtb3ZlX2xvZ29fbWFpbl9kYXJrJyxcbiAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5kb21haW5JZCwgZm9ybURhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nbyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZXZlbnQuZmlsZSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTY3JvbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyYXN0SW1hZ2VVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGV2ZW50LmZpbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGFya0ltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChldmVudC5maWxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKGV2ZW50LmZpbGUgPyAnTG9nbyB1cGRhdGVkJyA6ICdMb2dvIHJlbW92ZWQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxuICAgIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5zY3JvbGxUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWJvdXRVcyA9IHRoaXMucm91dGVyPy51cmw/LmluY2x1ZGVzKCcvYWJvdXQtdXMnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWSA+IDE1MDtcbiAgICAgICAgICAgICAgICB0aGlzLmlzU2Nyb2xsZWQgPSBzaG91bGRTY3JvbGw7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzQWJvdXRVcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdMb2dvID0gc2hvdWxkU2Nyb2xsID8gdGhpcy5jb250cmFzdEltYWdlVXJsIDogdGhpcy5kYXJrSW1hZ2VVcmw7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ28gIT09IG5ld0xvZ28pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nbyA9IG5ld0xvZ287XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA3NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbGxhcHNlRWxlbWVudCA9IHRoaXMubmF2YmFyQ29sbGFwc2U/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZUVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnc2hvdycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIDUwKTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdE5hdmJhck1vZGFsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuYXZiYXJDb25maWcgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWc/Lm5hdmJhciB8fCB7fTtcbiAgICAgICAgbmF2YmFyQ29uZmlnLml0ZW1zID0gbmF2YmFyQ29uZmlnLml0ZW1zIHx8IFtdO1xuXG4gICAgICAgIHRoaXMuZWRpdGluZ05hdmJhciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmF2YmFyQ29uZmlnKSk7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5lZGl0TmF2YmFyTW9kYWwsIHtcbiAgICAgICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlTmF2YmFyTGlua3MobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IHtcbiAgICAgICAgICAgIG5hdmJhcjogdGhpcy5lZGl0aW5nTmF2YmFyLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwgdXBkYXRlZENvbmZpZylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnTmF2YmFyIGxpbmtzIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdmJhckl0ZW1zID0gWy4uLnRoaXMuZWRpdGluZ05hdmJhci5pdGVtc107XG4gICAgICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZE5hdmJhckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ05hdmJhci5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgc3VidGl0bGVzOiBbXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVOYXZiYXJJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nTmF2YmFyLml0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgYWRkTmF2YmFyU3VidGl0bGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdOYXZiYXIuaXRlbXNbaW5kZXhdLnN1YnRpdGxlcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZU5hdmJhclN1YnRpdGxlKG5hdkluZGV4OiBudW1iZXIsIHN1YkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nTmF2YmFyLml0ZW1zW25hdkluZGV4XS5zdWJ0aXRsZXMuc3BsaWNlKHN1YkluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBkcm9wTmF2YmFySXRlbXMoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ05hdmJhci5pdGVtcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG5cbiAgICBkcm9wTmF2YmFyU3VidGl0bGVzKGluZGV4OiBudW1iZXIsIGV2ZW50KTogdm9pZCB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ05hdmJhci5pdGVtc1tpbmRleF0uc3VidGl0bGVzLFxuICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItZGFyayBmaXhlZC10b3AgY2xvdWRvbGl2ZS1uYXYtYmctY29sb3IgcmVzb3VyY2UtaGVhZGVyXCJcbiAgaWQ9XCJiYW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItd3JhcHBlciBiYW5uZXItc2VjdGlvblwiPlxuXG4gICAgPCEtLSBUb2dnbGVyL2NvbGxhcHNpYmUgQnV0dG9uIC0tPlxuICAgIDxidXR0b24gY2xhc3M9XCJuYXZiYXItdG9nZ2xlciBoZWFkZXItbWVudS1iYXJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxuICAgICAgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXG4gICAgICBkYXRhLWJzLXRhcmdldD1cIiNjb2xsYXBzaWJsZU5hdmJhclwiPlxuICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9wcm9kdWN0cy90cmlhbC9uYXZiYXItdG9nZ2xlLWljb24ucG5nXCJcbiAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbmF2YmFyLXRvZ2dsZS1pY29uXCJcbiAgICAgICAgYWx0PVwiXCIgLz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gTW9iaWxlIExvZ28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtbWQtbm9uZSBtYi1pY29uXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aW1nIFtzcmNdPVwibG9nb1wiXG4gICAgICAgICAgcm91dGVyTGluaz1cIi9cIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGxvZ29faW1nXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG5cbiAgICA8aSAqbmdJZj1cInVzZXJMb2dnZWRJbiAmJiB1c2VyPy5hdXRoPy5ncmFudGVkWydQYWdlcy5BZG1pbiddXCJcbiAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC1ibGFjayBtZS0zXCJcbiAgICAoY2xpY2spPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgdGl0bGU9XCJFZGl0IExvZ29cIj48L2k+XG5cblxuICAgIDwhLS0gTmF2YmFyIGxpbmtzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2UgbXQtMyBtdC1tZC0wXCJcbiAgICAgIGlkPVwiY29sbGFwc2libGVOYXZiYXJcIlxuICAgICAgI2NvbGxhcHNpYmxlTmF2YmFyPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cblxuICAgICAgICA8IS0tIEFsd2F5cyBvY2N1cHkgMyBjb2x1bW5zIGZvciBsb2dvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1ub25lIGQtbWQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nb1wiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIlxuICAgICAgICAgICAgICAobG9hZCk9XCJsb2dvTG9hZGVkID0gdHJ1ZVwiXG4gICAgICAgICAgICAgIChlcnJvcik9XCJsb2dvTG9hZGVkID0gZmFsc2VcIlxuICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL1wiXG4gICAgICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCBsb2dvX2ltZ1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cbiAgICAgICAgICA8dWwgI2FuY2hvckxpbmtzXG4gICAgICAgICAgICBjbGFzcz1cIm5hdmJhci1uYXYgZmxleCBnYXAtNCBtZS0wIHdvdyBmYWRlSW5VcCBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICBkYXRhLXdvdy1kdXJhdGlvbj1cIjJzXCI+XG5cbiAgICAgICAgICA8aSAqbmdJZj1cInVzZXJMb2dnZWRJbiAmJiB1c2VyPy5hdXRoPy5ncmFudGVkWydQYWdlcy5BZG1pbiddXCJcbiAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC1ibGFjayBtZS0zXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkVkaXROYXZiYXJNb2RhbCgpXCJcbiAgICAgICAgICB0aXRsZT1cIkVkaXQgTmF2YmFyIExpbmtzXCI+PC9pPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZiYXJJdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXG4gICAgICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Njcm9sbGVkLW5hdi1saW5rJzogaXNTY3JvbGxlZCB9XCJcbiAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIml0ZW0ub3BlbiA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW0uc3VidGl0bGVzPy5sZW5ndGggPyAoaXRlbS5vcGVuID0gIWl0ZW0ub3BlbikgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiIShpdGVtLnN1YnRpdGxlcz8ubGVuZ3RoKSA/IGl0ZW0ucGF0aCA6IG51bGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uc3VidGl0bGVzLmxlbmd0aCA+IDAgJiYgaXRlbS5vcGVuXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cCBwb3NpdGlvbi1hYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZXMubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5cIj5cbiAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3ViIG9mIGl0ZW0uc3VidGl0bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic3ViLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duSXRlbVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHN1Yi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbXMtMiBtYi0zIGQtZmxleCBkLW1kLW5vbmVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNpZ24tYnRuIHNpZ24taGVhZGVyLWJ0blwiXG4gICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9sb2dpblwiPkxvZyBJbjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFsd2F5cyAzIGNvbHVtbnMgZm9yIGxvZ2luIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgZC1ub25lIGQtbWQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNpZ24tYnRuIHNpZ24taGVhZGVyLWJ0blwiXG4gICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2xvZ2luXCI+TG9nIEluPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25hdj5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjZWRpdE5hdmJhck1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBOYXZiYXIgTGlua3M8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5OYXZiYXIgU2VjdGlvbjwvaDQ+XG4gICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BOYXZiYXJJdGVtcygkZXZlbnQpXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVkaXRpbmdOYXZiYXIuaXRlbXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImJvcmRlciBwLTMgbWItM1wiIGNka0RyYWc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgbWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRpdGxlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiaXRlbS50aXRsZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IG1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5QYXRoPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiaXRlbS5wYXRoXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoIGluLXBhZ2UtdHJhc2gtaWNvbiB0ZXh0LWRhbmdlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZW1vdmVOYXZiYXJJdGVtKGkpXCI+PC9pPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1wb2ludGVyXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wTmF2YmFyU3VidGl0bGVzKGksICRldmVudClcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdWIgb2YgaXRlbS5zdWJ0aXRsZXM7IGxldCBqID0gaW5kZXhcIiBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgY2RrRHJhZz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3VidGl0bGUgVGl0bGU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInN1Yi50aXRsZVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3VidGl0bGUgUGF0aDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic3ViLnBhdGhcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZU5hdmJhclN1YnRpdGxlKGksIGopXCI+PC9pPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgaW4tcGFnZS1iYXJzLWljb24gY3Vyc29yLXBvaW50ZXJcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLXNtIG10LTJcIiAoY2xpY2spPVwiYWRkTmF2YmFyU3VidGl0bGUoaSlcIj5cbiAgICAgICAgICArIEFkZCBTdWJ0aXRsZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCIgKGNsaWNrKT1cImFkZE5hdmJhckl0ZW0oKVwiPlxuICAgICAgKyBBZGQgTmF2YmFyIEl0ZW1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVOYXZiYXJMaW5rcyhtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cblxuPG5nLXRlbXBsYXRlICNsb2dvRWRpdE1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+VXBsb2FkIExvZ288L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8cHctY3VzdG9tLXVwbG9hZGVyXG4gICAgICBbdGl0bGVdPVwiJ01haW4gTG9nbydcIlxuICAgICAgW2NvbnRyb2xOYW1lXT1cIidsb2dvX21haW4nXCJcbiAgICAgIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgIFtwcmV2aWV3RGF0YV09XCJ7IHVybDogbG9nbywgbmFtZTogJ2xvZ29fbWFpbi5wbmcnIH1cIlxuICAgICAgKHNhdmVFdmVudCk9XCJvblNhdmVMb2dvKCRldmVudClcIj5cbiAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9yZXNvdXJjZS1oZWFkZXIvcmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9yZXNvdXJjZS1oZWFkZXIvcmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBRVIsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7OztBQVN0RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBcUJ6RCxZQUNJLFFBQWtCLEVBQ2lCLFFBQWtCLEVBQ3BDLFlBQTBCLEVBQzFCLFlBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUptQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBcEIzQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFYixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDMUQsYUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxDQUFDO1FBQ3RFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUM7UUFFOUQsa0JBQWEsR0FBRztZQUNaLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztJQWFGLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUztZQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzFCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUMxQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxjQUFjLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLEtBQUssQ0FBQyxJQUFJLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNGLENBQUM7YUFBTSxDQUFDO1lBQ0osUUFBUSxDQUFDLE1BQU0sQ0FDWCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEVBQ3ZFLE1BQU0sQ0FDVCxDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pFLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbkMsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsUUFBUTtRQUNKLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7Z0JBRS9CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDYixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztvQkFDekUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztvQkFDeEIsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ2xCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDO29CQUMzRCxJQUFJLGVBQWUsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7d0JBQzlDLGVBQWUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQscUNBQXFDO2dCQUNyQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBWTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLDRDQUE0QztRQUM1QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFJO1FBQ2IsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNuQixPQUFPLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBSTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUMvRCxZQUFZLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QyxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLGNBQWM7U0FDOUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sYUFBYSxHQUFHO1lBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtZQUMxQixlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZO2FBQ1osa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDO2FBQzVELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDMUIsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxFQUFFO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUMzQyxLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxFQUFFO1NBQ1gsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG9CQUFvQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLO1FBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBYSxFQUFFLEtBQUs7UUFDcEMsZUFBZSxDQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFDekMsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFlBQVksQ0FDckIsQ0FBQztJQUNOLENBQUM7K0dBN01RLHVCQUF1QiwwQ0F1QnBCLFFBQVE7bUdBdkJYLHVCQUF1QixpZkMxQnBDLHFuT0F5TGM7OzRGRC9KRCx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksb0JBQW9COzswQkEyQnpCLE1BQU07MkJBQUMsUUFBUTsyRkF0QlksY0FBYztzQkFBN0MsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ0EsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0EsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQThFMUIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFO2dCQStCakMsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBUT0tFTl9LRVksIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbS11cGxvYWRlci9jdXN0b20tdXBsb2FkZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1yZXNvdXJjZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnY29sbGFwc2libGVOYXZiYXInKSBuYXZiYXJDb2xsYXBzZTogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdlZGl0TmF2YmFyTW9kYWwnKSBlZGl0TmF2YmFyTW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdsb2dvRWRpdE1vZGFsJykgbG9nb0VkaXRNb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuXG4gICAgaXNTY3JvbGxlZCA9IGZhbHNlO1xuICAgIG9wZW4gPSBmYWxzZTtcbiAgICBsb2dvO1xuICAgIG5hdmJhckl0ZW1zID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8ubmF2YmFyPy5pdGVtcztcbiAgICBkb21haW5JZCA9IHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQ7XG4gICAgY29udHJhc3RJbWFnZVVybCA9IHRoaXMuYXBwQ29uZmlnPy5jb21wYW55Py5sb2dvcz8ubWFpbl9jb250cmFzdD8udXJsO1xuICAgIGRhcmtJbWFnZVVybCA9IHRoaXMuYXBwQ29uZmlnPy5jb21wYW55Py5sb2dvcz8ubWFpbl9kYXJrPy51cmw7XG5cbiAgICBlZGl0aW5nTmF2YmFyID0ge1xuICAgICAgICBpdGVtczogW11cbiAgICB9O1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuICAgIHVzZXI6IFVzZXI7XG4gICAgc2Nyb2xsVGltZW91dDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBpc0Fib3V0VXMgPSB0aGlzLnJvdXRlci51cmw/LmluY2x1ZGVzKCcvYWJvdXQtdXMnKTtcblxuICAgICAgICB0aGlzLmxvZ28gPSBpc0Fib3V0VXNcbiAgICAgICAgICAgID8gdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2NvbnRyYXN0Py51cmxcbiAgICAgICAgICAgIDogdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2Rhcms/LnVybDtcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoVE9LRU5fS0VZKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlckxvZ2dlZEluID0gISFyZXM7XG4gICAgICAgICAgICBpZiAodGhpcy51c2VyTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJCgncHJvZHVjdCcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzID8gSlNPTi5wYXJzZShyZXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGE/LnN1YnNjcmlwdGlvbklkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlckluZm8oKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlciA9IGRhdGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9wZW5Mb2dvRWRpdE1vZGFsKCkge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMubG9nb0VkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJyB9KTtcbiAgICB9XG5cbiAgICBvblNhdmVMb2dvKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc3Vic2NyaXB0aW9uX2lkJywgdGhpcy5pZCk7XG4gICAgICAgIGlmIChldmVudC5maWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKHRoaXMuaXNTY3JvbGxlZCA/ICdsb2dvX21haW5fY29udHJhc3QnIDogJ2xvZ29fbWFpbl9kYXJrJywgZXZlbnQuZmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGVkID8gJ3JlbW92ZV9sb2dvX21haW5fY29udHJhc3QnIDogJ3JlbW92ZV9sb2dvX21haW5fZGFyaycsXG4gICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmZpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGV2ZW50LmZpbGUpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2Nyb2xsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cmFzdEltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChldmVudC5maWxlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhcmtJbWFnZVVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZXZlbnQuZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhldmVudC5maWxlID8gJ0xvZ28gdXBkYXRlZCcgOiAnTG9nbyByZW1vdmVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGltZW91dCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Fib3V0VXMgPSB0aGlzLnJvdXRlcj8udXJsPy5pbmNsdWRlcygnL2Fib3V0LXVzJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gd2luZG93LnNjcm9sbFkgPiAxNTA7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGVkID0gc2hvdWxkU2Nyb2xsO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc0Fib3V0VXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3TG9nbyA9IHNob3VsZFNjcm9sbCA/IHRoaXMuY29udHJhc3RJbWFnZVVybCA6IHRoaXMuZGFya0ltYWdlVXJsO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2dvICE9PSBuZXdMb2dvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBuZXdMb2dvO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsYXBzZUVsZW1lbnQgPSB0aGlzLm5hdmJhckNvbGxhcHNlPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGFwc2VFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3Nob3cnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIENsb3NlIGFsbCBkcm9wZG93bnMgd2hlbiBzY3JvbGxpbmdcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWxsRHJvcGRvd25zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJbiBCdXMnKTtcbiAgICAgICAgLy8gQ2xvc2UgYWxsIGRyb3Bkb3ducyB3aGVuIGNsaWNraW5nIG91dHNpZGVcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcubmF2LWl0ZW0nKSAmJiAhdGFyZ2V0LmNsb3Nlc3QoJy5wb3B1cCcpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQWxsRHJvcGRvd25zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZUFsbERyb3Bkb3ducygpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIHRsdWMnKTtcbiAgICAgICAgaWYgKHRoaXMubmF2YmFySXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMubmF2YmFySXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5vcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlbkRyb3Bkb3duKGl0ZW0pOiB2b2lkIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3RoZXIgZHJvcGRvd25zIGZpcnN0XG4gICAgICAgIHRoaXMubmF2YmFySXRlbXMuZm9yRWFjaChuYXZJdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChuYXZJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgbmF2SXRlbS5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm9wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIG9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdE5hdmJhck1vZGFsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuYXZiYXJDb25maWcgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWc/Lm5hdmJhciB8fCB7fTtcbiAgICAgICAgbmF2YmFyQ29uZmlnLml0ZW1zID0gbmF2YmFyQ29uZmlnLml0ZW1zIHx8IFtdO1xuXG4gICAgICAgIHRoaXMuZWRpdGluZ05hdmJhciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmF2YmFyQ29uZmlnKSk7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5lZGl0TmF2YmFyTW9kYWwsIHtcbiAgICAgICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlTmF2YmFyTGlua3MobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IHtcbiAgICAgICAgICAgIG5hdmJhcjogdGhpcy5lZGl0aW5nTmF2YmFyLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwgdXBkYXRlZENvbmZpZylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnTmF2YmFyIGxpbmtzIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdmJhckl0ZW1zID0gWy4uLnRoaXMuZWRpdGluZ05hdmJhci5pdGVtc107XG4gICAgICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZE5hdmJhckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ05hdmJhci5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgc3VidGl0bGVzOiBbXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVOYXZiYXJJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nTmF2YmFyLml0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgYWRkTmF2YmFyU3VidGl0bGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdOYXZiYXIuaXRlbXNbaW5kZXhdLnN1YnRpdGxlcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZU5hdmJhclN1YnRpdGxlKG5hdkluZGV4OiBudW1iZXIsIHN1YkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nTmF2YmFyLml0ZW1zW25hdkluZGV4XS5zdWJ0aXRsZXMuc3BsaWNlKHN1YkluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBkcm9wTmF2YmFySXRlbXMoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ05hdmJhci5pdGVtcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG5cbiAgICBkcm9wTmF2YmFyU3VidGl0bGVzKGluZGV4OiBudW1iZXIsIGV2ZW50KTogdm9pZCB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ05hdmJhci5pdGVtc1tpbmRleF0uc3VidGl0bGVzLFxuICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItZGFyayBmaXhlZC10b3AgY2xvdWRvbGl2ZS1uYXYtYmctY29sb3IgcmVzb3VyY2UtaGVhZGVyXCJcbiAgaWQ9XCJiYW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItd3JhcHBlciBiYW5uZXItc2VjdGlvblwiPlxuXG4gICAgPCEtLSBUb2dnbGVyL2NvbGxhcHNpYmUgQnV0dG9uIC0tPlxuICAgIDxidXR0b24gY2xhc3M9XCJuYXZiYXItdG9nZ2xlciBoZWFkZXItbWVudS1iYXJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxuICAgICAgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXG4gICAgICBkYXRhLWJzLXRhcmdldD1cIiNjb2xsYXBzaWJsZU5hdmJhclwiPlxuICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9wcm9kdWN0cy90cmlhbC9uYXZiYXItdG9nZ2xlLWljb24ucG5nXCJcbiAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbmF2YmFyLXRvZ2dsZS1pY29uXCJcbiAgICAgICAgYWx0PVwiXCIgLz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gTW9iaWxlIExvZ28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtbWQtbm9uZSBtYi1pY29uXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aW1nIFtzcmNdPVwibG9nb1wiXG4gICAgICAgICAgcm91dGVyTGluaz1cIi9cIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGxvZ29faW1nXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG5cbiAgICA8aSAqbmdJZj1cInVzZXJMb2dnZWRJbiAmJiB1c2VyPy5hdXRoPy5ncmFudGVkWydQYWdlcy5BZG1pbiddXCJcbiAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC1ibGFjayBtZS0zXCJcbiAgICAoY2xpY2spPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgdGl0bGU9XCJFZGl0IExvZ29cIj48L2k+XG5cblxuICAgIDwhLS0gTmF2YmFyIGxpbmtzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2UgbXQtMyBtdC1tZC0wXCJcbiAgICAgIGlkPVwiY29sbGFwc2libGVOYXZiYXJcIlxuICAgICAgI2NvbGxhcHNpYmxlTmF2YmFyPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cblxuICAgICAgICA8IS0tIEFsd2F5cyBvY2N1cHkgMyBjb2x1bW5zIGZvciBsb2dvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1ub25lIGQtbWQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nb1wiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIlxuICAgICAgICAgICAgICAobG9hZCk9XCJsb2dvTG9hZGVkID0gdHJ1ZVwiXG4gICAgICAgICAgICAgIChlcnJvcik9XCJsb2dvTG9hZGVkID0gZmFsc2VcIlxuICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL1wiXG4gICAgICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCBsb2dvX2ltZ1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cbiAgICAgICAgICA8dWwgI2FuY2hvckxpbmtzXG4gICAgICAgICAgICBjbGFzcz1cIm5hdmJhci1uYXYgZmxleCBnYXAtNCBtZS0wIHdvdyBmYWRlSW5VcCBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICBkYXRhLXdvdy1kdXJhdGlvbj1cIjJzXCI+XG5cbiAgICAgICAgICA8aSAqbmdJZj1cInVzZXJMb2dnZWRJbiAmJiB1c2VyPy5hdXRoPy5ncmFudGVkWydQYWdlcy5BZG1pbiddXCJcbiAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC1ibGFjayBtZS0zXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkVkaXROYXZiYXJNb2RhbCgpXCJcbiAgICAgICAgICB0aXRsZT1cIkVkaXQgTmF2YmFyIExpbmtzXCI+PC9pPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZiYXJJdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib3BlbkRyb3Bkb3duKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Njcm9sbGVkLW5hdi1saW5rJzogaXNTY3JvbGxlZCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5zdWJ0aXRsZXM/Lmxlbmd0aCA/IChpdGVtLm9wZW4gPSAhaXRlbS5vcGVuKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiIShpdGVtLnN1YnRpdGxlcz8ubGVuZ3RoKSA/IGl0ZW0ucGF0aCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uc3VidGl0bGVzLmxlbmd0aCA+IDAgJiYgaXRlbS5vcGVuXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cCBwb3NpdGlvbi1hYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZXMubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3ViIG9mIGl0ZW0uc3VidGl0bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic3ViLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duSXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtcy0yIG1iLTMgZC1mbGV4IGQtbWQtbm9uZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2xvZ2luXCI+TG9nIEluPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQWx3YXlzIDMgY29sdW1ucyBmb3IgbG9naW4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBkLW5vbmUgZC1tZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuXCJcbiAgICAgICAgICAgIHJvdXRlckxpbms9XCIvbG9naW5cIj5Mb2cgSW48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmF2PlxuXG5cblxuPG5nLXRlbXBsYXRlICNlZGl0TmF2YmFyTW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IE5hdmJhciBMaW5rczwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGg0IGNsYXNzPVwibWItM1wiPk5hdmJhciBTZWN0aW9uPC9oND5cbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE5hdmJhckl0ZW1zKCRldmVudClcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZWRpdGluZ05hdmJhci5pdGVtczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiYm9yZGVyIHAtMyBtYi0zXCIgY2RrRHJhZz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSBtYi0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGl0bGU8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJpdGVtLnRpdGxlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgbWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBhdGg8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJpdGVtLnBhdGhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZU5hdmJhckl0ZW0oaSlcIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgaW4tcGFnZS1iYXJzLWljb24gY3Vyc29yLXBvaW50ZXJcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BOYXZiYXJTdWJ0aXRsZXMoaSwgJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN1YiBvZiBpdGVtLnN1YnRpdGxlczsgbGV0IGogPSBpbmRleFwiIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdWJ0aXRsZSBUaXRsZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic3ViLnRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdWJ0aXRsZSBQYXRoPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJzdWIucGF0aFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaCBpbi1wYWdlLXRyYXNoLWljb24gdGV4dC1kYW5nZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVtb3ZlTmF2YmFyU3VidGl0bGUoaSwgailcIj48L2k+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFycyBpbi1wYWdlLWJhcnMtaWNvbiBjdXJzb3ItcG9pbnRlclwiIGNka0RyYWdIYW5kbGU+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tc20gbXQtMlwiIChjbGljayk9XCJhZGROYXZiYXJTdWJ0aXRsZShpKVwiPlxuICAgICAgICAgICsgQWRkIFN1YnRpdGxlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIiAoY2xpY2spPVwiYWRkTmF2YmFySXRlbSgpXCI+XG4gICAgICArIEFkZCBOYXZiYXIgSXRlbVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZU5hdmJhckxpbmtzKG1vZGFsKVwiPlNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuXG48bmctdGVtcGxhdGUgI2xvZ29FZGl0TW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5VcGxvYWQgTG9nbzwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxwdy1jdXN0b20tdXBsb2FkZXJcbiAgICAgIFt0aXRsZV09XCInTWFpbiBMb2dvJ1wiXG4gICAgICBbY29udHJvbE5hbWVdPVwiJ2xvZ29fbWFpbidcIlxuICAgICAgW2FzcGVjdFJhdGlvXT1cIidmdWxsTG9nbydcIlxuICAgICAgW3ByZXZpZXdEYXRhXT1cInsgdXJsOiBsb2dvLCBuYW1lOiAnbG9nb19tYWluLnBuZycgfVwiXG4gICAgICAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUxvZ28oJGV2ZW50KVwiPlxuICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
|