-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path2312.0ce1b360.iframe.bundle.js
2 lines (2 loc) · 556 KB
/
2312.0ce1b360.iframe.bundle.js
1
2
(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[2312,7873],{"./src/sharedComponents/Notification.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NotificationType=exports.NotificationResponsive=void 0;var _lodash=_interopRequireDefault(__webpack_require__("./node_modules/lodash/lodash.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_reactTooltip=_interopRequireDefault(__webpack_require__("./node_modules/react-tooltip/dist/index.js")),_fontConstants=_interopRequireDefault(__webpack_require__("./src/fontConstants.js")),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_FontAwesome=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx")),_firehose=_interopRequireDefault(__webpack_require__("./src/metrics/firehose.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _slicedToArray(r,e){return function _arrayWithHoles(r){if(Array.isArray(r))return r}(r)||function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}(r,e)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r,e)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var NotificationType=exports.NotificationType={default:"default",information:"information",success:"success",failure:"failure",warning:"warning",course:"course",bullhorn:"bullhorn",feedback:"feedback",bullhorn_yellow:"bullhorn_yellow",collaborate:"collaborate"},Notification=function Notification(_ref){var buttonClassName=_ref.buttonClassName,buttonLink=_ref.buttonLink,buttons=_ref.buttons,buttonsStyles=_ref.buttonsStyles,buttonText=_ref.buttonText,buttonColor=_ref.buttonColor,children=_ref.children,details=_ref.details,detailsLink=_ref.detailsLink,detailsLinkNewWindow=_ref.detailsLinkNewWindow,detailsLinkText=_ref.detailsLinkText,dismissible=_ref.dismissible,firehoseAnalyticsData=_ref.firehoseAnalyticsData,iconStyles=_ref.iconStyles,isRtl=_ref.isRtl,newWindow=_ref.newWindow,notice=_ref.notice,onDismiss=_ref.onDismiss,onButtonClick=_ref.onButtonClick,responsiveSize=_ref.responsiveSize,type=_ref.type,tooltipText=_ref.tooltipText,width=_ref.width,colors=_ref.colors,_useState2=_slicedToArray((0,_react.useState)(!0),2),open=_useState2[0],setOpen=_useState2[1],desktop=void 0===responsiveSize||"lg"===responsiveSize,icons={information:"info-circle",success:"check-circle",failure:"exclamation-triangle",warning:"exclamation-triangle",bullhorn:"bullhorn",bullhorn_yellow:"bullhorn",feedback:"envelope",collaborate:"users"},mainStyle=_objectSpread(_objectSpread({},styles.main),{},{direction:isRtl?"rtl":"ltr",width:width||styles.main.width});if(!open)return null;var colorStyles=_objectSpread(_objectSpread({},styles.colors[type]),colors),tooltipId=_lodash.default.uniqueId();return _react.default.createElement("div",{className:"announcement-notification"},_react.default.createElement("div",{style:_objectSpread(_objectSpread({},colorStyles),mainStyle)},type!==NotificationType.course&&_react.default.createElement("div",{style:_objectSpread(_objectSpread(_objectSpread({},styles.iconBox),colorStyles),iconStyles)},icons[type]&&_react.default.createElement(_FontAwesome.default,{icon:icons[type],style:styles.icon})),_react.default.createElement("div",{style:styles.contentBox},_react.default.createElement("div",{style:styles.wordBox},_react.default.createElement("div",{style:_objectSpread(_objectSpread({},colorStyles),styles.notice)},notice,tooltipText?_react.default.createElement("span",null,_react.default.createElement("span",{"data-tip":!0,"data-for":tooltipId,style:styles.tooltip},_react.default.createElement(_FontAwesome.default,{icon:"info-circle"})),_react.default.createElement(_reactTooltip.default,{id:tooltipId,effect:"solid"},_react.default.createElement("p",{style:styles.tooltipText},tooltipText))):null),_react.default.createElement("div",{style:styles.details},details,detailsLinkText&&detailsLink&&_react.default.createElement("span",null," ",_react.default.createElement("a",{href:detailsLink,style:styles.detailsLink,target:detailsLinkNewWindow?"_blank":null,rel:detailsLinkNewWindow?"noreferrer":void 0},detailsLinkText)))),_react.default.createElement("div",{style:desktop?buttonsStyles:_objectSpread(_objectSpread({},styles.buttonsMobile),{},{buttonsStyles})},buttonText&&buttonLink&&_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,href:buttonLink,color:buttonColor||_Button.default.ButtonColor.gray,text:buttonText,style:styles.button,target:newWindow?"_blank":null,onClick:function onAnnouncementClick(){firehoseAnalyticsData&&function logAnnouncementClickToFirehose(){var record={};["user_id","script_id","lesson_id"].forEach((function(firehoseMetadataKey){firehoseMetadataKey in firehoseAnalyticsData&&(record[firehoseMetadataKey]=firehoseAnalyticsData[firehoseMetadataKey])})),record=_objectSpread(_objectSpread({},record),{},{study:"notification_engagement",event:"notification_click",data_json:JSON.stringify(_objectSpread(_objectSpread({},firehoseAnalyticsData),{},{notice,details,buttonLink}))}),_firehose.default.putRecord(record,{includeUserId:!0})}(),onButtonClick&&onButtonClick()},className:buttonClassName}),buttons&&buttons.map((function(button,index){return _react.default.createElement(_Button.default,{key:index,href:button.link,color:button.color||_Button.default.ButtonColor.gray,text:button.text,style:_objectSpread(_objectSpread({},styles.button),button.style),onClick:button.onClick,className:button.className})})),children)),dismissible&&_react.default.createElement("div",{style:styles.dismiss},_react.default.createElement(_FontAwesome.default,{icon:"times",onClick:function handleDismiss(){setOpen(!1),onDismiss&&onDismiss()}}))),_react.default.createElement("div",{style:styles.clear}))};Notification.propTypes={type:_propTypes.default.oneOf(Object.keys(NotificationType)).isRequired,notice:_propTypes.default.string.isRequired,details:_propTypes.default.oneOfType([_propTypes.default.string,_propTypes.default.object]).isRequired,detailsLinkText:_propTypes.default.string,detailsLink:_propTypes.default.string,detailsLinkNewWindow:_propTypes.default.bool,buttonText:_propTypes.default.string,buttonLink:_propTypes.default.string,buttonColor:_propTypes.default.string,dismissible:_propTypes.default.bool.isRequired,iconStyles:_propTypes.default.object,onDismiss:_propTypes.default.func,newWindow:_propTypes.default.bool,firehoseAnalyticsData:_propTypes.default.object,responsiveSize:_propTypes.default.oneOf(["lg","md","sm","xs"]),isRtl:_propTypes.default.bool.isRequired,onButtonClick:_propTypes.default.func,buttonClassName:_propTypes.default.string,tooltipText:_propTypes.default.string,buttonsStyles:_propTypes.default.object,buttons:_propTypes.default.arrayOf(_propTypes.default.shape({text:_propTypes.default.string,link:_propTypes.default.string,onClick:_propTypes.default.func,className:_propTypes.default.string,color:_propTypes.default.oneOf(Object.keys(_Button.default.ButtonColor)),style:_propTypes.default.object})),children:_propTypes.default.node,width:_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.string]),colors:_propTypes.default.shape({backgroundColor:_propTypes.default.string,borderColor:_propTypes.default.string,color:_propTypes.default.string})},Notification.defaultProps={type:NotificationType.default,colors:{}};var styles={main:{borderWidth:1,borderStyle:"solid",minHeight:72,width:"100%",backgroundColor:_color.default.white,marginBottom:20,display:"flex",flexFlow:"wrap",boxSizing:"border-box"},notice:_objectSpread(_objectSpread({},_fontConstants.default["main-font-regular"]),{},{fontSize:18,letterSpacing:-.2,lineHeight:1.5,marginTop:16,backgroundColor:_color.default.white}),details:_objectSpread(_objectSpread({},_fontConstants.default["main-font-regular"]),{},{fontSize:14,lineHeight:1.5,paddingTop:6,paddingBottom:16,color:_color.default.charcoal}),detailsLink:_objectSpread(_objectSpread({},_fontConstants.default["main-font-semi-bold"]),{},{color:_color.default.teal}),wordBox:{flex:1,marginLeft:25,marginRight:25},dismiss:{color:_color.default.lighter_gray,marginTop:5,marginRight:0,marginLeft:10,cursor:"pointer"},iconBox:{width:72,backgroundColor:_color.default.lightest_gray,textAlign:"center",float:"left"},contentBox:{width:"calc(100% - 100px)",display:"flex",flexFlow:"wrap"},icon:{color:"rgba(255,255,255, .8)",fontSize:38,lineHeight:2},buttonsMobile:{width:"100%"},button:{marginLeft:25,marginRight:25,marginTop:18,marginBottom:18},colors:_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},NotificationType.default,{borderColor:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.information,{borderColor:_color.default.teal,color:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.success,{borderColor:_color.default.level_perfect,color:_color.default.level_perfect,backgroundColor:_color.default.level_perfect}),NotificationType.failure,{borderColor:_color.default.red,color:_color.default.red,backgroundColor:_color.default.red}),NotificationType.warning,{borderColor:_color.default.mustardyellow,color:_color.default.charcoal,backgroundColor:_color.default.mustardyellow}),NotificationType.course,{borderColor:_color.default.border_gray,color:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.bullhorn,{borderColor:_color.default.teal,color:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.bullhorn_yellow,{borderColor:_color.default.yellow,color:_color.default.yellow,backgroundColor:_color.default.yellow}),NotificationType.feedback,{borderColor:_color.default.purple,color:_color.default.purple,backgroundColor:_color.default.purple}),NotificationType.collaborate,{borderColor:_color.default.light_secondary_500,color:_color.default.light_secondary_500,backgroundColor:_color.default.light_secondary_500}),clear:{clear:"both"},tooltip:{cursor:"pointer",marginLeft:"5px",marginRight:"5px",fontSize:"14px",verticalAlign:"middle",color:_color.default.light_gray_500},tooltipText:{color:_color.default.white,margin:0}};exports.default=(0,_reactRedux.connect)((function(state){return{isRtl:state.isRtl}}))(Notification),exports.NotificationResponsive=(0,_reactRedux.connect)((function(state){return{isRtl:state.isRtl,responsiveSize:state.responsive.responsiveSize}}))(Notification)},"./src/sharedComponents/Spinner.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_FontAwesome=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}!function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}(exports.default=function(_React$Component){function Spinner(){return _React$Component.apply(this,arguments)||this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(Spinner,_React$Component),Spinner.prototype.render=function render(){var _this$props=this.props,size=_this$props.size,style=_this$props.style,displaySize="small"===size?"":"medium"===size?"fa-2x":"fa-3x";return _react.default.createElement(_FontAwesome.default,{style,icon:"spinner",className:"fa-pulse ".concat(displaySize),title:_locale.default.loading(),id:"uitest-spinner"})},Spinner}(_react.default.Component),"propTypes",{size:_propTypes.default.oneOf(["small","medium","large"]),style:_propTypes.default.object}),module.exports=exports.default},"./src/templates/ContentContainer.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_radium=_interopRequireDefault(__webpack_require__("./node_modules/radium/es/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_fontConstants=_interopRequireDefault(__webpack_require__("./src/fontConstants.js")),_FontAwesome=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx")),_styleConstants=_interopRequireDefault(__webpack_require__("./src/styleConstants.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_contentContainerModule=_interopRequireDefault(__webpack_require__("./src/templates/content-container.module.scss"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var contentWidth=_styleConstants.default["content-width"],ContentContainer=function(_Component){function ContentContainer(){return _Component.apply(this,arguments)||this}return _inheritsLoose(ContentContainer,_Component),ContentContainer.prototype.render=function render(){var _this$props=this.props,heading=_this$props.heading,link=_this$props.link,linkText=_this$props.linkText,description=_this$props.description,isRtl=_this$props.isRtl,responsiveSize=_this$props.responsiveSize,hideBottomMargin=_this$props.hideBottomMargin,showLinkTop="lg"===responsiveSize&&link&&linkText,showLinkBottom="lg"!==responsiveSize&&link&&linkText,boxStyles=styles.boxResponsive,bottomMargin=hideBottomMargin?"":styles.bottomMargin;return _react.default.createElement("div",{style:[boxStyles,bottomMargin]},(heading||link&&linkText)&&_react.default.createElement("div",{className:_contentContainerModule.default.contentContainerHeading,style:styles.headingBox},_react.default.createElement("h4",{style:isRtl?styles.headingTextRtl:styles.headingText},heading),showLinkTop&&_react.default.createElement(Link,{link,linkText,isRtl})),description&&_react.default.createElement("div",{style:styles.description},description),_react.default.createElement("div",{style:styles.children},_react.default.Children.map(this.props.children,(function(child,index){return _react.default.createElement("div",{key:index},child)}))),showLinkBottom&&_react.default.createElement("div",{style:styles.standaloneLinkBox},_react.default.createElement(Link,{link,linkText,isRtl,bottom:!0})),_react.default.createElement("div",{style:styles.clear}))},ContentContainer}(_react.Component);_defineProperty(ContentContainer,"propTypes",{children:_propTypes.default.oneOfType([_propTypes.default.node,_propTypes.default.arrayOf(_propTypes.default.node)]),heading:_propTypes.default.string,linkText:_propTypes.default.string,link:_propTypes.default.string,isRtl:_propTypes.default.bool.isRequired,description:_propTypes.default.string,responsiveSize:_propTypes.default.oneOf(["lg","md","sm","xs"]).isRequired,hideBottomMargin:_propTypes.default.bool});var Link=function(_Component2){function Link(){return _Component2.apply(this,arguments)||this}return _inheritsLoose(Link,_Component2),Link.prototype.render=function render(){var linkBoxStyle,_this$props2=this.props,link=_this$props2.link,linkText=_this$props2.linkText,isRtl=_this$props2.isRtl,bottom=_this$props2.bottom;linkBoxStyle=isRtl?bottom?styles.linkBoxRtlBottom:styles.linkBoxRtl:bottom?styles.linkBoxBottom:styles.linkBox;var icon=isRtl?"chevron-left":"chevron-right";return _react.default.createElement("div",{style:linkBoxStyle},_react.default.createElement("a",{style:styles.linkTag,href:link},_react.default.createElement("span",{style:{display:"inline-block"}},isRtl&&_react.default.createElement(_FontAwesome.default,{icon,style:styles.chevronRtl})),_react.default.createElement("div",{style:styles.linkToViewAll},linkText),_react.default.createElement("span",{style:{display:"inline-block"}},!isRtl&&_react.default.createElement(_FontAwesome.default,{icon,style:styles.chevron}))))},Link}(_react.Component);_defineProperty(Link,"propTypes",{linkText:_propTypes.default.string.isRequired,link:_propTypes.default.string.isRequired,isRtl:_propTypes.default.bool.isRequired,bottom:_propTypes.default.bool});var styles={box:{width:contentWidth},boxResponsive:{width:"100%"},bottomMargin:{marginBottom:60},headingBox:{paddingRight:10,paddingTop:10,overflow:"hidden",zIndex:2,position:"relative"},headingText:{fontSize:24,lineHeight:"26px",color:_color.default.neutral_dark,float:"left",paddingRight:20},headingTextRtl:{fontSize:24,lineHeight:"26px",color:_color.default.neutral_dark,float:"right",paddingLeft:20},standaloneLinkBox:{paddingTop:10,position:"relative",clear:"both"},linkBox:{display:"inline",position:"absolute",bottom:20,right:0,lineHeight:"26 px"},linkBoxRtl:{display:"inline",float:"left",paddingLeft:10,position:"absolute",bottom:20,left:0,lineHeight:"26 px"},linkBoxBottom:{display:"inline",left:0},linkBoxRtlBottom:{display:"inline",right:0},description:_objectSpread(_objectSpread({fontSize:14,lineHeight:"22px"},_fontConstants.default["main-font-regular"]),{},{zIndex:2,color:_color.default.neutral_dark,width:"100%",marginTop:-10,marginBottom:10,clear:"both"}),linkTag:{textDecoration:"none"},linkToViewAll:_objectSpread(_objectSpread({fontSize:14},_fontConstants.default["main-font-semi-bold"]),{},{marginTop:-2,display:"inline"}),chevron:{display:"inline",fontSize:10,fontWeight:"bold",marginLeft:15},chevronRtl:{display:"inline",color:_color.default.neutral_dark,fontSize:10,fontWeight:"bold",marginRight:15},children:{justifyContent:"space-between",flexWrap:"wrap"},clear:{clear:"both"}};exports.default=(0,_reactRedux.connect)((function(state){return{responsiveSize:state.responsive.responsiveSize,isRtl:state.isRtl}}))((0,_radium.default)(ContentContainer));module.exports=exports.default},"./src/templates/studioHomepages/BorderedCallToAction.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _button=__webpack_require__("../frontend/packages/component-library/dist/cjs/button/index.js"),_typography=__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_borderedCallToActionModule=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/borderedCallToAction.module.scss"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var BorderedCallToAction=function BorderedCallToAction(_ref){var headingText=_ref.headingText,descriptionText=_ref.descriptionText,className=_ref.className,buttonType=_ref.buttonType,buttonText=_ref.buttonText,buttonUrl=_ref.buttonUrl,buttonClass=_ref.buttonClass,buttonColor=_ref.buttonColor,_ref$buttonDisabled=_ref.buttonDisabled,buttonDisabled=void 0!==_ref$buttonDisabled&&_ref$buttonDisabled,onClick=_ref.onClick,solidBorder=_ref.solidBorder;if(!buttonUrl&&!onClick)throw new Error("Expect at least one of buttonUrl / onClick");var borderStyle=solidBorder?_borderedCallToActionModule.default.solidBorder:_borderedCallToActionModule.default.dashedBorder;return _react.default.createElement("div",{className:"".concat(_borderedCallToActionModule.default.outerBox," ").concat(borderStyle," ").concat(className)},_react.default.createElement("div",{className:_borderedCallToActionModule.default.textWrapper},_react.default.createElement(_typography.Heading3,{visualAppearance:"heading-sm"},headingText),_react.default.createElement(_typography.BodyThreeText,null,descriptionText)),_react.default.createElement(_button.Button,{onClick,className:buttonClass,color:buttonColor,size:"s",type:buttonType,text:buttonText,href:buttonUrl,useAsLink:!!buttonUrl,disabled:buttonDisabled}))};BorderedCallToAction.propTypes={headingText:_propTypes.default.string.isRequired,descriptionText:_propTypes.default.string.isRequired,className:_propTypes.default.string,buttonType:_propTypes.default.string,buttonText:_propTypes.default.string.isRequired,buttonUrl:_propTypes.default.string,buttonClass:_propTypes.default.string,buttonColor:_propTypes.default.string,onClick:_propTypes.default.func,solidBorder:_propTypes.default.bool,buttonDisabled:_propTypes.default.bool};exports.default=BorderedCallToAction;module.exports=exports.default},"./src/templates/studioHomepages/CoteacherInviteNotification.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedCoteacherInviteNotification=void 0;var _typography=__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireWildcard(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_AnalyticsConstants=__webpack_require__("./src/metrics/AnalyticsConstants.js"),_AnalyticsReporter=_interopRequireDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),_Notification=_interopRequireWildcard(__webpack_require__("./src/sharedComponents/Notification.jsx")),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_HttpClient=_interopRequireDefault(__webpack_require__("./src/util/HttpClient.ts")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var CoteacherInviteNotification=function CoteacherInviteNotification(_ref){var isForPl=_ref.isForPl,asyncLoadCoteacherInvite=_ref.asyncLoadCoteacherInvite,asyncLoadSectionData=_ref.asyncLoadSectionData,coteacherInvite=_ref.coteacherInvite,coteacherInviteForPl=_ref.coteacherInviteForPl,invite=(0,_react.useMemo)((function(){return coteacherInviteForPl&&isForPl?coteacherInviteForPl:coteacherInvite&&!isForPl?coteacherInvite:null}),[coteacherInvite,coteacherInviteForPl,isForPl]),buttonAction=function buttonAction(api){_HttpClient.default.put(api,"",!0).then((function(){asyncLoadCoteacherInvite(),asyncLoadSectionData()})).catch((function(err){return console.error(err)}))};return invite?_react.default.createElement(_Notification.default,{dismissible:!1,type:_Notification.NotificationType.collaborate,iconStyles:styles.icon,notice:_locale.default.coteacherInvite({invitedByName:invite.invited_by_name}),details:_react.default.createElement(_typography.BodyTwoText,{style:{marginBottom:0}},_locale.default.coteacherInviteDescription({invitedByEmail:invite.invited_by_email}),_react.default.createElement("br",null),_react.default.createElement(_typography.StrongText,null,invite.section_name)),tooltipText:_locale.default.coteacherTooltip(),buttonsStyles:styles.buttons,buttons:[{text:"Decline",onClick:function onClick(){return function declineCoteacherInvite(id,sectionId){_AnalyticsReporter.default.sendEvent(_AnalyticsConstants.EVENTS.COTEACHER_INVITE_DECLINED,{sectionId}),buttonAction("/api/v1/section_instructors/".concat(id,"/decline"))}(invite.id,invite.section_id)},color:_Button.default.ButtonColor.neutralDark,style:styles.declineButton},{text:"Accept",onClick:function onClick(){return function acceptCoteacherInvite(id,sectionId){_AnalyticsReporter.default.sendEvent(_AnalyticsConstants.EVENTS.COTEACHER_INVITE_ACCEPTED,{sectionId}),buttonAction("/api/v1/section_instructors/".concat(id,"/accept"))}(invite.id,invite.section_id)},color:_Button.default.ButtonColor.brandSecondaryDefault,style:styles.acceptButton}]}):null};exports.UnconnectedCoteacherInviteNotification=CoteacherInviteNotification,exports.default=(0,_reactRedux.connect)((function(state){return{coteacherInvite:state.teacherSections.coteacherInvite,coteacherInviteForPl:state.teacherSections.coteacherInviteForPl}}),{asyncLoadCoteacherInvite:_teacherSectionsRedux.asyncLoadCoteacherInvite,asyncLoadSectionData:_teacherSectionsRedux.asyncLoadSectionData})(CoteacherInviteNotification);CoteacherInviteNotification.propTypes={isForPl:_propTypes.default.bool,asyncLoadCoteacherInvite:_propTypes.default.func.isRequired,asyncLoadSectionData:_propTypes.default.func.isRequired,coteacherInvite:_propTypes.default.object,coteacherInviteForPl:_propTypes.default.object};var styles={acceptButton:{marginLeft:"20px",marginRight:"0px",lineHeight:"100%",display:"flex",alignItems:"center"},declineButton:{marginRight:0,display:"flex",alignItems:"center"},buttons:{display:"flex",alignItems:"center"},icon:{display:"flex",alignItems:"center",justifyContent:"center"}}},"./src/templates/studioHomepages/SetUpSections.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedSetUpSections=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_AnalyticsConstants=__webpack_require__("./src/metrics/AnalyticsConstants.js"),_AnalyticsReporter=_interopRequireDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_BorderedCallToAction=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/BorderedCallToAction.jsx"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var SetUpSections=function(_Component){function SetUpSections(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"beginEditingSection",(function(){_this.recordSectionSetupStartedEvent(),_this.props.beginEditingSection()})),_defineProperty(_this,"recordSectionSetupStartedEvent",(function(){_AnalyticsReporter.default.sendEvent(_AnalyticsConstants.EVENTS.SECTION_SETUP_STARTED,{},_AnalyticsConstants.PLATFORMS.BOTH)})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(SetUpSections,_Component),SetUpSections.prototype.render=function render(){return _react.default.createElement(_BorderedCallToAction.default,{type:"sections",headingText:this.props.headingText||_locale.default.newSectionAdd(),descriptionText:this.props.descriptionText||_locale.default.createNewClassroom(),buttonText:_locale.default.createSection(),className:"uitest-set-up-sections",buttonClass:"uitest-newsection",buttonDisabled:!this.props.asyncLoadComplete,onClick:this.beginEditingSection,solidBorder:this.props.solidBorder||!1})},SetUpSections}(_react.Component);_defineProperty(SetUpSections,"propTypes",{beginEditingSection:_propTypes.default.func.isRequired,headingText:_propTypes.default.string,descriptionText:_propTypes.default.string,solidBorder:_propTypes.default.bool,asyncLoadComplete:_propTypes.default.bool});exports.UnconnectedSetUpSections=SetUpSections,exports.default=(0,_reactRedux.connect)((function(state){return{asyncLoadComplete:state.teacherSections.asyncLoadComplete}}),{beginEditingSection:_teacherSectionsRedux.beginEditingSection})(SetUpSections)},"./src/templates/studioHomepages/TeacherSections.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedTeacherSections=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_Spinner=_interopRequireDefault(__webpack_require__("./src/sharedComponents/Spinner.jsx")),_AgeGatedSectionsBanner=__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_ContentContainer=_interopRequireDefault(__webpack_require__("./src/templates/ContentContainer.jsx")),_AddSectionDialog=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/AddSectionDialog.jsx")),_OwnedSections=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/OwnedSections.jsx")),_RosterDialog=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/RosterDialog.jsx")),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js"),_CoteacherInviteNotification=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/CoteacherInviteNotification.jsx")),_SetUpSections=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/SetUpSections.jsx"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(r,e){return function _arrayWithHoles(r){if(Array.isArray(r))return r}(r)||function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}(r,e)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r,e)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function TeacherSections(_ref){var asyncLoadSectionData=_ref.asyncLoadSectionData,asyncLoadCoteacherInvite=_ref.asyncLoadCoteacherInvite,coteacherInvite=_ref.coteacherInvite,ageGatedSections=_ref.ageGatedSections,studentSectionIds=_ref.studentSectionIds,hiddenStudentSectionIds=_ref.hiddenStudentSectionIds,sectionsAreLoaded=_ref.sectionsAreLoaded,_useState2=_slicedToArray((0,_react.useState)(!1),2),modalOpen=_useState2[0],setModalOpen=_useState2[1];(0,_react.useEffect)((function(){asyncLoadSectionData(),asyncLoadCoteacherInvite()}),[asyncLoadSectionData,asyncLoadCoteacherInvite]);return _react.default.createElement("div",{id:"classroom-sections"},_react.default.createElement(_ContentContainer.default,{heading:_locale.default.createSection()},_react.default.createElement(_SetUpSections.default,null),!sectionsAreLoaded&&_react.default.createElement(_Spinner.default,{size:"large",style:styles.spinner})),function shouldRenderSections(){return(null==studentSectionIds?void 0:studentSectionIds.length)>0||!!coteacherInvite}()&&_react.default.createElement(_ContentContainer.default,{heading:_locale.default.sectionsTitle()},_react.default.createElement(_CoteacherInviteNotification.default,{isForPl:!1}),function shouldDisplayAtRiskAgeGatedWarning(){return(null==ageGatedSections?void 0:ageGatedSections.length)>0}()&&_react.default.createElement(_AgeGatedSectionsBanner.AgeGatedSectionsBanner,{toggleModal:function toggleModal(){setModalOpen(!modalOpen)},modalOpen,ageGatedSections}),_react.default.createElement(_OwnedSections.default,{sectionIds:studentSectionIds,hiddenSectionIds:hiddenStudentSectionIds})),_react.default.createElement(_RosterDialog.default,null),_react.default.createElement(_AddSectionDialog.default,null))}TeacherSections.propTypes={asyncLoadSectionData:_propTypes.default.func.isRequired,asyncLoadCoteacherInvite:_propTypes.default.func.isRequired,coteacherInvite:_propTypes.default.object,coteacherInviteForPl:_propTypes.default.object,ageGatedSections:_propTypes.default.array,studentSectionIds:_propTypes.default.array,plSectionIds:_propTypes.default.array,hiddenStudentSectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,sectionsAreLoaded:_propTypes.default.bool};exports.UnconnectedTeacherSections=TeacherSections,exports.default=(0,_reactRedux.connect)((function(state){return{coteacherInvite:state.teacherSections.coteacherInvite,ageGatedSections:(0,_teacherSectionsReduxSelectors.atRiskAgeGatedSections)(state),studentSectionIds:state.teacherSections.studentSectionIds,hiddenStudentSectionIds:(0,_teacherSectionsReduxSelectors.hiddenStudentSectionIds)(state),sectionsAreLoaded:state.teacherSections.sectionsAreLoaded}}),{asyncLoadCoteacherInvite:_teacherSectionsRedux.asyncLoadCoteacherInvite,asyncLoadSectionData:_teacherSectionsRedux.asyncLoadSectionData})(TeacherSections);var styles={spinner:{marginTop:"10px"}}},"./src/templates/teacherDashboard/AddSectionDialog.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedAddSectionDialog=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_Spinner=_interopRequireDefault(__webpack_require__("./src/sharedComponents/Spinner.jsx")),_utils=__webpack_require__("./src/utils.js"),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_BaseDialog=_interopRequireDefault(__webpack_require__("./src/templates/BaseDialog.jsx")),_LoginTypeConstants=__webpack_require__("./src/templates/teacherDashboard/LoginTypeConstants.tsx"),_LoginTypePicker=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/LoginTypePicker.jsx")),_PadAndCenter=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/PadAndCenter.jsx")),_ParticipantTypePicker=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/ParticipantTypePicker.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var redirectToNewSectionPage=function redirectToNewSectionPage(participantType,loginType){if(participantType&&loginType){var createSectionFromMyPl="student"!==participantType,hrefNav="/sections/new?participantType=".concat(participantType,"&loginType=").concat(loginType)+(createSectionFromMyPl?"&redirectToPage=my-professional-learning":"");(0,_utils.navigateToHref)(hrefNav)}},AddSectionDialog=function AddSectionDialog(_ref){var isOpen=_ref.isOpen,section=_ref.section,beginImportRosterFlow=_ref.beginImportRosterFlow,setRosterProvider=_ref.setRosterProvider,setLoginType=_ref.setLoginType,setParticipantType=_ref.setParticipantType,handleCancel=_ref.handleCancel,availableParticipantTypes=_ref.availableParticipantTypes,assignedCourseOffering=_ref.assignedCourseOffering,asyncLoadComplete=_ref.asyncLoadComplete;(0,_react.useEffect)((function(){!assignedCourseOffering||!asyncLoadComplete||null!=section&§ion.participantType||setParticipantType(assignedCourseOffering.participant_audience)}),[assignedCourseOffering,asyncLoadComplete,null==section?void 0:section.participantType]);var _ref2=section||{},loginType=_ref2.loginType,participantType=_ref2.participantType,title=_locale.default.newSectionUpdated(),onParticipantTypeSelection=function onParticipantTypeSelection(participantType){"student"!==participantType&&redirectToNewSectionPage(participantType,_sharedConstants.SectionLoginType.email),setParticipantType(participantType)},onLoginTypeSelection=function onLoginTypeSelection(loginType){_LoginTypeConstants.NON_LMS_LOGIN_TYPES.includes(loginType)&&redirectToNewSectionPage(participantType,loginType),setLoginType(loginType)};return participantType&&loginType?null:_react.default.createElement(_BaseDialog.default,{useUpdatedStyles:!0,fixedWidth:1010,isOpen,overflow:"auto",uncloseable:!0,style:{overflow:"hidden"}},_react.default.createElement(_PadAndCenter.default,null,function getDialogContent(){return asyncLoadComplete?participantType?loginType?void 0:_react.default.createElement(_LoginTypePicker.default,{title,handleImportOpen:beginImportRosterFlow,setRosterProvider,setLoginType:onLoginTypeSelection,handleCancel}):_react.default.createElement(_ParticipantTypePicker.default,{title,setParticipantType:onParticipantTypeSelection,handleCancel,availableParticipantTypes}):_react.default.createElement(_Spinner.default,{size:"large",style:{padding:50}})}()))};AddSectionDialog.propTypes={isOpen:_propTypes.default.bool.isRequired,section:_shapes.sectionShape,beginImportRosterFlow:_propTypes.default.func.isRequired,setRosterProvider:_propTypes.default.func.isRequired,setLoginType:_propTypes.default.func.isRequired,setParticipantType:_propTypes.default.func.isRequired,handleCancel:_propTypes.default.func.isRequired,availableParticipantTypes:_propTypes.default.arrayOf(_propTypes.default.string).isRequired,assignedCourseOffering:_propTypes.default.object,asyncLoadComplete:_propTypes.default.bool};exports.UnconnectedAddSectionDialog=AddSectionDialog,exports.default=(0,_reactRedux.connect)((function(state){return{isOpen:(0,_teacherSectionsReduxSelectors.isAddingSection)(state.teacherSections),section:state.teacherSections.sectionBeingEdited,availableParticipantTypes:state.teacherSections.availableParticipantTypes,assignedCourseOffering:(0,_teacherSectionsReduxSelectors.assignedCourseOffering)(state),asyncLoadComplete:state.teacherSections.asyncLoadComplete}}),(function(dispatch){return{beginImportRosterFlow:function beginImportRosterFlow(){return dispatch((0,_teacherSectionsRedux.beginImportRosterFlow)())},setRosterProvider:function setRosterProvider(provider){return dispatch((0,_teacherSectionsRedux.setRosterProvider)(provider))},setLoginType:function setLoginType(loginType){return dispatch((0,_teacherSectionsRedux.editSectionProperties)({loginType}))},setParticipantType:function setParticipantType(participantType){return dispatch((0,_teacherSectionsRedux.editSectionProperties)({participantType}))},handleCancel:function handleCancel(){return dispatch((0,_teacherSectionsRedux.cancelEditingSection)())}}}))(AddSectionDialog)},"./src/templates/teacherDashboard/OwnedPlSectionsTable.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.studentsFormatter=exports.sectionLinkFormatter=exports.loginInfoFormatter=exports.default=exports.courseLinkFormatter=exports.UnconnectedOwnedPlSectionsTable=exports.COLUMNS=void 0;var _lodash=__webpack_require__("./node_modules/lodash/lodash.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireWildcard(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),Table=_interopRequireWildcard(__webpack_require__("./node_modules/reactabular-table/dist/index.js")),sort=_interopRequireWildcard(__webpack_require__("./node_modules/sortabular/dist/index.js")),_constants=__webpack_require__("./src/accounts/constants.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_urlHelpers=__webpack_require__("./src/templates/teacherDashboard/urlHelpers.js"),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_utils=__webpack_require__("./src/utils.js"),_tableConstants=__webpack_require__("./src/templates/tables/tableConstants.js"),_wrapped_sortable=_interopRequireDefault(__webpack_require__("./src/templates/tables/wrapped_sortable.js")),_SectionActionDropdown=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/SectionActionDropdown.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js"),_skeletonizeContentModule=_interopRequireDefault(__webpack_require__("./src/sharedComponents/skeletonize-content.module.scss"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var COLUMNS=exports.COLUMNS={ID:0,SECTION_NAME:1,GRADE:2,COURSE:3,STUDENTS:4,LOGIN_INFO:5,EDIT_DELETE:6},participantNames={facilitator:_locale.default.participantTypeFacilitatorTitle(),teacher:_locale.default.participantTypeTeacherTitle()},sectionLinkFormatter=exports.sectionLinkFormatter=function sectionLinkFormatter(name,_ref){var rowData=_ref.rowData;return _react.default.createElement("a",{style:_tableConstants.plTableLayoutStyles.link,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id)},rowData.name)},courseLinkFormatter=exports.courseLinkFormatter=function courseLinkFormatter(course,_ref2){var rowData=_ref2.rowData,assignmentNames=rowData.assignmentNames,assignmentPaths=rowData.assignmentPaths,courseOfferingsAreLoaded=rowData.courseOfferingsAreLoaded,isAssignedSingleUnitCourse=rowData.isAssignedSingleUnitCourse;return _react.default.createElement("div",null,courseOfferingsAreLoaded?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement("a",{href:"".concat(assignmentPaths[0]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.plTableLayoutStyles.link},assignmentNames[0]),assignmentPaths.length>1&&!isAssignedSingleUnitCourse&&_react.default.createElement("div",{style:_tableConstants.plTableLayoutStyles.currentUnit},_react.default.createElement("div",null,_locale.default.currentUnit()),_react.default.createElement("a",{href:"".concat(assignmentPaths[1]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.plTableLayoutStyles.link},assignmentNames[1])),assignmentPaths.length<1&&_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.coursesCardAction(),href:"/catalog",color:_Button.default.ButtonColor.neutralDark})):_react.default.createElement("span",{className:_skeletonizeContentModule.default.skeletonizeContent,style:{width:(0,_lodash.random)(30,90)+"%"}}))},loginInfoFormatter=exports.loginInfoFormatter=function loginInfoFormatter(loginType,_ref3){var rowData=_ref3.rowData,sectionCode="";return sectionCode=rowData.loginType===_constants.OAuthSectionTypes.clever?_locale.default.loginTypeClever():rowData.loginType===_constants.OAuthSectionTypes.google_classroom?_locale.default.loginTypeGoogleClassroom():rowData.loginType===_sharedConstants.SectionLoginType.lti_v1?rowData.loginTypeName:rowData.code,_react.default.createElement("a",{style:_tableConstants.plTableLayoutStyles.sectionCodeLink,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/login_info")},sectionCode)},studentsFormatter=exports.studentsFormatter=function studentsFormatter(studentCount,_ref4){var rowData=_ref4.rowData,manageStudentsUrl=(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/manage_students");return rowData.studentCount<=0?_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.addStudents(),href:manageStudentsUrl,color:_Button.default.ButtonColor.neutralDark}):_react.default.createElement("a",{style:_tableConstants.plTableLayoutStyles.link,href:manageStudentsUrl,"aria-label":_locale.default.manageStudentsAriaLabel({numStudents:studentCount})},rowData.studentCount)},OwnedPlSectionsTable=function(_Component){function OwnedPlSectionsTable(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"state",{sortingColumns:_defineProperty({},COLUMNS.ID,{direction:"desc",position:0})}),_defineProperty(_this,"participantNameFormatter",(function(participantType,_ref5){var rowData=_ref5.rowData;return _react.default.createElement("div",null,participantNames[rowData.participantType])})),_defineProperty(_this,"actionCellFormatter",(function(temp,_ref6){var rowData=_ref6.rowData;return _react.default.createElement(_SectionActionDropdown.default,{sectionData:rowData,handleEdit:_this.props.onEdit})})),_defineProperty(_this,"onSort",(function(selectedColumn){_this.setState({sortingColumns:sort.byColumn({sortingColumns:_this.state.sortingColumns,sortingOrder:{FIRST:"asc",asc:"desc",desc:"asc"},selectedColumn})})})),_defineProperty(_this,"getSortingColumns",(function(){return _this.state.sortingColumns||{}})),_defineProperty(_this,"getColumns",(function(sortable){return[{property:"name",header:{label:_locale.default.section(),transforms:[sortable]},cell:{formatters:[sectionLinkFormatter]}},{property:"participantType",header:{label:_locale.default.participants(),props:{className:"uitest-participant-type-header"},transforms:[sortable]},cell:{formatters:[_this.participantNameFormatter],props:{style:_tableConstants.plTableLayoutStyles.participantTypeCell}}},{property:"course",header:{label:_locale.default.course()},cell:{formatters:[courseLinkFormatter]}},{property:"studentCount",header:{label:_locale.default.students(),transforms:[sortable]},cell:{formatters:[studentsFormatter]}},{property:"loginType",header:{label:_locale.default.loginInfo()},cell:{formatters:[loginInfoFormatter]}},{property:"actions",cell:{formatters:[_this.actionCellFormatter],props:{style:_objectSpread({},_tableConstants.plTableLayoutStyles.colButton)}}}]})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(OwnedPlSectionsTable,_Component),OwnedPlSectionsTable.prototype.render=function render(){var sortable=(0,_wrapped_sortable.default)(this.getSortingColumns,this.onSort,_tableConstants.sortableOptions),columns=this.getColumns(sortable),sortingColumns=this.getSortingColumns(),sortedRows=sort.sorter({columns,sortingColumns,sort:function sort(x,y,z){return(0,_lodash.orderBy)(x,y,z)}})(this.props.sectionRows);return _react.default.createElement(Table.Provider,{className:"uitest-owned-pl-sections",columns},_react.default.createElement(Table.Header,null),_react.default.createElement(Table.Body,{className:"uitest-sorted-rows",rows:sortedRows,rowKey:"id"}))},OwnedPlSectionsTable}(_react.Component);_defineProperty(OwnedPlSectionsTable,"propTypes",{sectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,onEdit:_propTypes.default.func.isRequired,sectionRows:_propTypes.default.arrayOf(_shapes.sortableSectionShape).isRequired,isRtl:_propTypes.default.bool});exports.UnconnectedOwnedPlSectionsTable=OwnedPlSectionsTable,exports.default=(0,_reactRedux.connect)((function(state,ownProps){return{sectionRows:(0,_teacherSectionsReduxSelectors.getSectionRows)(state,ownProps.sectionIds),isRtl:state.isRtl}}))(OwnedPlSectionsTable)},"./src/templates/teacherDashboard/OwnedSections.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedOwnedSections=void 0;var _lodash=_interopRequireDefault(__webpack_require__("./node_modules/lodash/lodash.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_LtiFeedbackBanner=_interopRequireDefault(__webpack_require__("./src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx")),_styleConstants=_interopRequireDefault(__webpack_require__("./src/styleConstants.js")),_GlobalEditionWrapper=_interopRequireDefault(__webpack_require__("./src/templates/GlobalEditionWrapper.tsx")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_experiments=_interopRequireDefault(__webpack_require__("./src/util/experiments.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_impressionHelpers=__webpack_require__("./src/templates/teacherDashboard/impressionHelpers.js"),_OwnedPlSectionsTable=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/OwnedPlSectionsTable.jsx")),_OwnedSectionsTable=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/OwnedSectionsTable.jsx")),_sectionHelpers=__webpack_require__("./src/templates/teacherDashboard/sectionHelpers.js"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _toConsumableArray(r){return function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}(r)||function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var OwnedSections=function(_React$Component){function OwnedSections(props){var _this;return _defineProperty(_this=_React$Component.call(this,props)||this,"state",{viewHidden:!1}),_defineProperty(_this,"beginEditingSection",(function(){return _this.props.beginEditingSection()})),_defineProperty(_this,"toggleViewHidden",(function(){_this.setState({viewHidden:!_this.state.viewHidden})})),_defineProperty(_this,"ownedSectionsTable",(function(showHidden){var _this$props=_this.props,isPlSections=_this$props.isPlSections,sectionIds=_this$props.sectionIds,hiddenSectionIds=_this$props.hiddenSectionIds,sectionsToShow=showHidden?hiddenSectionIds:_lodash.default.without.apply(_lodash.default,[sectionIds].concat(_toConsumableArray(hiddenSectionIds)));return isPlSections?_react.default.createElement(_OwnedPlSectionsTable.default,{sectionIds:sectionsToShow,onEdit:_this.onEditSection}):_react.default.createElement(_OwnedSectionsTable.default,{sectionIds:sectionsToShow,onEdit:_this.onEditSection})})),_this.onEditSection=_this.onEditSection.bind(_this),_experiments.default.isEnabled(_experiments.default.TEACHER_DASHBOARD_SECTION_BUTTONS)?(0,_impressionHelpers.recordImpression)("owned_sections_table_with_dashboard_header_buttons"):(0,_impressionHelpers.recordImpression)("owned_sections_table_without_dashboard_header_buttons"),_this}!function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(OwnedSections,_React$Component);var _proto=OwnedSections.prototype;return _proto.onEditSection=function onEditSection(id){this.props.beginEditingSection(id),_experiments.default.isEnabled(_experiments.default.TEACHER_DASHBOARD_SECTION_BUTTONS)?(0,_sectionHelpers.recordOpenEditSectionDetails)(id,"owned_sections_table_with_dashboard_header_buttons"):(0,_sectionHelpers.recordOpenEditSectionDetails)(id,"owned_sections_table_without_dashboard_header_buttons")},_proto.render=function render(){var _this$props2=this.props,sectionIds=_this$props2.sectionIds,hiddenSectionIds=_this$props2.hiddenSectionIds,viewHidden=this.state.viewHidden,hasSections=sectionIds.length>0;return _react.default.createElement("div",null,hasSections&&_react.default.createElement("div",null,_react.default.createElement(_GlobalEditionWrapper.default,{component:_LtiFeedbackBanner.default,componentId:"LtiFeedbackBanner"}),this.ownedSectionsTable(!1),_react.default.createElement("div",{style:styles.buttonContainer},hiddenSectionIds.length>0&&_react.default.createElement(_Button.default,{className:"ui-test-show-hide",onClick:this.toggleViewHidden,icon:viewHidden?"caret-up":"caret-down",text:viewHidden?_locale.default.hideArchivedSections():_locale.default.viewArchivedSections(),color:_Button.default.ButtonColor.gray})),viewHidden&&hiddenSectionIds.length>0&&_react.default.createElement("div",null,_react.default.createElement("div",{style:styles.hiddenSectionLabel},_locale.default.archivedSections()),_react.default.createElement("div",{style:styles.hiddenSectionDesc},_locale.default.archivedSectionsTeacherDescription()),this.ownedSectionsTable(!0))))},OwnedSections}(_react.default.Component);_defineProperty(OwnedSections,"propTypes",{isPlSections:_propTypes.default.bool,sectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,hiddenSectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,beginEditingSection:_propTypes.default.func.isRequired});var styles={button:{marginBottom:20,float:"right"},buttonContainer:{width:_styleConstants.default["content-width"],textAlign:"right",paddingTop:10,paddingBottom:10},hiddenSectionLabel:{fontSize:18,paddingBottom:10,color:_color.default.charcoal},hiddenSectionDesc:{fontSize:14,lineHeight:"22px",paddingBottom:10,color:_color.default.charcoal}};exports.UnconnectedOwnedSections=OwnedSections,exports.default=(0,_reactRedux.connect)((function(){return{}}),{beginEditingSection:_teacherSectionsRedux.beginEditingSection})(OwnedSections)},"./src/templates/teacherDashboard/OwnedSectionsTable.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.studentsFormatter=exports.sectionLinkFormatter=exports.loginInfoFormatter=exports.default=exports.courseLinkFormatter=exports.UnconnectedOwnedSectionsTable=exports.COLUMNS=void 0;var _lodash=__webpack_require__("./node_modules/lodash/lodash.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireWildcard(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),Table=_interopRequireWildcard(__webpack_require__("./node_modules/reactabular-table/dist/index.js")),sort=_interopRequireWildcard(__webpack_require__("./node_modules/sortabular/dist/index.js")),_constants=__webpack_require__("./src/accounts/constants.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_urlHelpers=__webpack_require__("./src/templates/teacherDashboard/urlHelpers.js"),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_utils=__webpack_require__("./src/utils.js"),_tableConstants=__webpack_require__("./src/templates/tables/tableConstants.js"),_wrapped_sortable=_interopRequireDefault(__webpack_require__("./src/templates/tables/wrapped_sortable.js")),_TeacherNavFlagUtils=__webpack_require__("./src/templates/teacherNavigation/TeacherNavFlagUtils.ts"),_SectionActionDropdown=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/SectionActionDropdown.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js"),_skeletonizeContentModule=_interopRequireDefault(__webpack_require__("./src/sharedComponents/skeletonize-content.module.scss"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var COLUMNS=exports.COLUMNS={ID:0,SECTION_NAME:1,GRADE:2,COURSE:3,STUDENTS:4,LOGIN_INFO:5,EDIT_DELETE:6},sectionLinkFormatter=exports.sectionLinkFormatter=function sectionLinkFormatter(name,_ref){var rowData=_ref.rowData;return _react.default.createElement("a",{style:_tableConstants.tableLayoutStyles.link,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id)},rowData.name)},courseLinkFormatter=exports.courseLinkFormatter=function courseLinkFormatter(course,_ref2){var rowData=_ref2.rowData,assignmentNames=rowData.assignmentNames,assignmentPaths=rowData.assignmentPaths,courseOfferingsAreLoaded=rowData.courseOfferingsAreLoaded,isAssignedSingleUnitCourse=rowData.isAssignedSingleUnitCourse;return _react.default.createElement("div",null,courseOfferingsAreLoaded?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement("a",{href:(0,_TeacherNavFlagUtils.showV2TeacherDashboard)()?assignmentPaths.length>0&&assignmentPaths[0].includes("/s/")?(0,_urlHelpers.teacherDashboardUrl)(rowData.id,assignmentPaths[0].replace("/s/","/unit/")):(0,_urlHelpers.teacherDashboardUrl)(rowData.id,assignmentPaths[0]):"".concat(assignmentPaths[0]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.tableLayoutStyles.link},assignmentNames[0]),assignmentPaths.length>1&&!isAssignedSingleUnitCourse&&_react.default.createElement("div",{style:styles.currentUnit},_react.default.createElement("div",null,_locale.default.currentUnit()),_react.default.createElement("a",{href:(0,_TeacherNavFlagUtils.showV2TeacherDashboard)()?(0,_urlHelpers.teacherDashboardUrl)(rowData.id,assignmentPaths[1].replace("/s/","/unit/")):"".concat(assignmentPaths[1]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.tableLayoutStyles.link},assignmentNames[1])),assignmentPaths.length<1&&_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.coursesCardAction(),href:"/catalog",color:_Button.default.ButtonColor.neutralDark})):_react.default.createElement("span",{className:_skeletonizeContentModule.default.skeletonizeContent,"data-testid":"skeletonize-content",style:{width:(0,_lodash.random)(30,90)+"%"}}))},loginInfoFormatter=exports.loginInfoFormatter=function loginInfoFormatter(loginType,_ref3){var rowData=_ref3.rowData,sectionCode="";return sectionCode=rowData.loginType===_constants.OAuthSectionTypes.clever?_locale.default.loginTypeClever():rowData.loginType===_constants.OAuthSectionTypes.google_classroom?_locale.default.loginTypeGoogleClassroom():rowData.loginType===_sharedConstants.SectionLoginType.lti_v1?rowData.loginTypeName:rowData.code,_react.default.createElement("a",{style:_tableConstants.tableLayoutStyles.link,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/login_info")},sectionCode)},studentsFormatter=exports.studentsFormatter=function studentsFormatter(studentCount,_ref4){var rowData=_ref4.rowData,manageStudentsUrl=(0,_TeacherNavFlagUtils.showV2TeacherDashboard)()?(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/roster"):(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/manage_students");return rowData.studentCount<=0?_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.addStudents(),href:manageStudentsUrl,color:_Button.default.ButtonColor.neutralDark}):_react.default.createElement("a",{style:_tableConstants.tableLayoutStyles.link,href:manageStudentsUrl,"aria-label":_locale.default.manageStudentsAriaLabel({numStudents:studentCount})},rowData.studentCount)},hiddenFormatter=function hiddenFormatter(id){return null},OwnedSectionsTable=function(_Component){function OwnedSectionsTable(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"state",{sortingColumns:_defineProperty({},COLUMNS.ID,{direction:"desc",position:0})}),_defineProperty(_this,"determineSorter",(function(data,activeColumn,directionArray){var gradeCol=COLUMNS.GRADE.toString();if(_this.state.sortingColumns[gradeCol]){var mult="asc"===directionArray[0]?1:-1;return(0,_lodash.sortBy)(data,(function(obj){return mult*_sharedConstants.StudentGradeLevels.concat(null).indexOf(obj.grades?obj.grades[0]:null)}))}return(0,_lodash.orderBy)(data,activeColumn,directionArray)})),_defineProperty(_this,"gradeFormatter",(function(grades,_ref5){var rowData=_ref5.rowData,formattedGrades=rowData.grades?rowData.grades.join(", "):null;return _react.default.createElement("div",null,formattedGrades)})),_defineProperty(_this,"actionCellFormatter",(function(temp,_ref6){var rowData=_ref6.rowData;return _react.default.createElement(_SectionActionDropdown.default,{sectionData:rowData,handleEdit:_this.props.onEdit})})),_defineProperty(_this,"onSort",(function(selectedColumn){_this.setState({sortingColumns:sort.byColumn({sortingColumns:_this.state.sortingColumns,sortingOrder:{FIRST:"asc",asc:"desc",desc:"asc"},selectedColumn})})})),_defineProperty(_this,"getSortingColumns",(function(){return _this.state.sortingColumns||{}})),_defineProperty(_this,"getColumns",(function(sortable){var colStyle=_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.cell),styles.sectionCol),unsortableHeaderStyle=_this.props.isRtl?styles.unsortableHeaderRTL:styles.unsortableHeader;return[{property:"id",header:{props:{style:styles.hiddenCol}},cell:{formatters:[hiddenFormatter],props:{style:styles.hiddenCol}}},{property:"name",header:{label:_locale.default.section(),props:{style:_tableConstants.tableLayoutStyles.headerCell},transforms:[sortable]},cell:{formatters:[sectionLinkFormatter],props:{style:_objectSpread(_objectSpread({},colStyle),styles.leftHiddenCol)}}},{property:"grades",header:{label:_locale.default.grade(),props:{className:"uitest-grade-header",style:_tableConstants.tableLayoutStyles.headerCell},transforms:[sortable]},cell:{formatters:[_this.gradeFormatter],props:{style:colStyle}}},{property:"course",header:{label:_locale.default.course(),props:{style:_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.headerCell),unsortableHeaderStyle)}},cell:{formatters:[courseLinkFormatter],props:{style:colStyle}}},{property:"studentCount",header:{label:_locale.default.students(),props:{style:_tableConstants.tableLayoutStyles.headerCell},transforms:[sortable]},cell:{formatters:[studentsFormatter],props:{style:colStyle}}},{property:"loginType",header:{label:_locale.default.loginInfo(),props:{style:_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.headerCell),unsortableHeaderStyle)}},cell:{formatters:[loginInfoFormatter],props:{style:colStyle}}},{property:"actions",header:{props:{style:_tableConstants.tableLayoutStyles.headerCell}},cell:{formatters:[_this.actionCellFormatter],props:{style:_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.cell),styles.colButton)}}}]})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(OwnedSectionsTable,_Component),OwnedSectionsTable.prototype.render=function render(){var _this2=this,sortable=(0,_wrapped_sortable.default)(this.getSortingColumns,this.onSort,_tableConstants.sortableOptions),columns=this.getColumns(sortable),sortingColumns=this.getSortingColumns(),sortedRows=sort.sorter({columns,sortingColumns,sort:function sort(x,y,z){return _this2.determineSorter(x,y,z)}})(this.props.sectionRows);return _react.default.createElement(Table.Provider,{className:"uitest-owned-sections",columns,style:_tableConstants.tableLayoutStyles.table},_react.default.createElement(Table.Header,null),_react.default.createElement(Table.Body,{className:"uitest-sorted-rows",rows:sortedRows,rowKey:"id"}))},OwnedSectionsTable}(_react.Component);_defineProperty(OwnedSectionsTable,"propTypes",{sectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,onEdit:_propTypes.default.func.isRequired,sectionRows:_propTypes.default.arrayOf(_shapes.sortableSectionShape).isRequired,isRtl:_propTypes.default.bool});var styles={currentUnit:{marginTop:10},hiddenCol:{width:0,padding:0,border:0},leftHiddenCol:{borderLeft:0},unsortableHeader:_tableConstants.tableLayoutStyles.unsortableHeader,unsortableHeaderRTL:_tableConstants.tableLayoutStyles.unsortableHeaderRTL,colButton:{paddingTop:20,paddingLeft:20,paddingBottom:20,width:40},sectionCol:{paddingLeft:20},sectionCodeNone:{color:_color.default.light_gray,fontSize:16}};exports.UnconnectedOwnedSectionsTable=OwnedSectionsTable,exports.default=(0,_reactRedux.connect)((function(state,ownProps){return{sectionRows:(0,_teacherSectionsReduxSelectors.getSectionRows)(state,ownProps.sectionIds),isRtl:state.isRtl}}))(OwnedSectionsTable)},"./src/templates/teacherDashboard/PadAndCenter.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var PadAndCenter=function PadAndCenter(_ref){var children=_ref.children;return _react.default.createElement("div",{style:{display:"flex",flexFlow:"row",justifyContent:"center",marginTop:20,marginBottom:20}},children)};PadAndCenter.propTypes={children:_propTypes.default.any};exports.default=PadAndCenter;module.exports=exports.default},"./src/templates/teacherDashboard/ParticipantTypePicker.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_Headings=__webpack_require__("./src/legacySharedComponents/Headings.jsx"),_styleConstants=_interopRequireDefault(__webpack_require__("./src/styleConstants.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_CardContainer=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/CardContainer.jsx")),_LoginTypeCard=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/LoginTypeCard.jsx"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}var cardInfoByAudience={student:{title:_locale.default.participantTypeStudentTitle(),description:_locale.default.participantTypeStudentDescription()},teacher:{title:_locale.default.participantTypeTeacherTitle(),description:_locale.default.participantTypeTeacherDescription()},facilitator:{title:_locale.default.participantTypeFacilitatorTitle(),description:_locale.default.participantTypeFacilitatorDescription()}};!function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}(exports.default=function(_Component){function ParticipantTypePicker(){return _Component.apply(this,arguments)||this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(ParticipantTypePicker,_Component),ParticipantTypePicker.prototype.render=function render(){var _this$props=this.props,title=_this$props.title,setParticipantType=_this$props.setParticipantType,handleCancel=_this$props.handleCancel;return _react.default.createElement("div",{style:style.container,className:"uitest-participant-type-picker"},_react.default.createElement(_Headings.Heading3,{isRebranded:!0},title),_react.default.createElement("p",{style:style.bodyText},_locale.default.professionalLearningParticipantQuestion()),_react.default.createElement("div",{style:style.scroll},_react.default.createElement(_CardContainer.default,null,this.props.availableParticipantTypes.map((function(type){return _react.default.createElement(ParticipantTypeCard,{onClick:setParticipantType,key:type,type})})))),_react.default.createElement("div",{style:style.footer},_react.default.createElement(_Button.default,{onClick:handleCancel,text:_locale.default.dialogCancel(),color:_Button.default.ButtonColor.neutralDark,style:{margin:0}})))},ParticipantTypePicker}(_react.Component),"propTypes",{title:_propTypes.default.string.isRequired,setParticipantType:_propTypes.default.func.isRequired,handleCancel:_propTypes.default.func.isRequired,availableParticipantTypes:_propTypes.default.arrayOf(_propTypes.default.string).isRequired});var ParticipantTypeCard=function ParticipantTypeCard(props){return _react.default.createElement(_LoginTypeCard.default,{className:"uitest-".concat(props.type,"-type"),title:cardInfoByAudience[props.type].title,subtitle:cardInfoByAudience[props.type].description,onClick:function onClick(){return props.onClick(props.type)}})};ParticipantTypeCard.propTypes={onClick:_propTypes.default.func.isRequired,type:_propTypes.default.string};var style={container:{width:_styleConstants.default["content-width"],color:_color.default.neutral_dark,height:"300px",left:"20px",right:"20px"},bodyText:{fontSize:"1em"},scroll:{overflowX:"hidden",overflowY:"auto",height:"calc(80vh - 200px)"},footer:{position:"absolute",width:_styleConstants.default["content-width"],height:"50px",left:0,bottom:"-23px",padding:"0px 20px 20px 20px",backgroundColor:"#fff",borderRadius:"5px"}};module.exports=exports.default},"./src/templates/teacherDashboard/RosterDialog.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedRosterDialog=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_constants=__webpack_require__("./src/accounts/constants.js"),_AnalyticsConstants=__webpack_require__("./src/metrics/AnalyticsConstants.js"),_AnalyticsReporter=_interopRequireDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_RailsAuthenticityToken=_interopRequireDefault(__webpack_require__("./src/lib/util/RailsAuthenticityToken.jsx")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_BaseDialog=_interopRequireDefault(__webpack_require__("./src/templates/BaseDialog.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var ctaButtonStyle={background:_color.default.orange,color:_color.default.white,border:"1px solid #b07202",borderRadius:3,boxShadow:"inset 0 1px 0 0 rgba(255, 255, 255, 0.63)",fontSize:14,padding:"8px 20px"},ClassroomList=function ClassroomList(_ref){var classrooms=_ref.classrooms,onSelect=_ref.onSelect,selectedId=_ref.selectedId,rosterProvider=_ref.rosterProvider;return classrooms.length?_react.default.createElement("div",null,classrooms.map((function(classroom){return _react.default.createElement("div",{style:Object.assign({},styles.classroomRow,selectedId===classroom.id&&styles.highlightRow),key:classroom.id,onClick:onSelect.bind(null,classroom.id)},classroom.name,classroom.section&&_react.default.createElement("span",{style:{color:"#aaa"}}," (",classroom.section,")"),"ARCHIVED"===classroom.course_state&&_react.default.createElement("span",{id:"course-state",style:{color:_color.default.bootstrap_error_text}}," ","- ",classroom.course_state),_react.default.createElement("span",{style:{float:"right"}},_locale.default.code(),_react.default.createElement("span",{style:{fontFamily:"monospace"}}," ",classroom.enrollment_code)))}))):_react.default.createElement(NoClassroomsFound,{rosterProvider})};ClassroomList.propTypes={classrooms:_propTypes.default.array.isRequired,onSelect:_propTypes.default.func.isRequired,selectedId:_propTypes.default.string,rosterProvider:_propTypes.default.oneOf(Object.keys(_constants.OAuthSectionTypes))};var NoClassroomsFound=function NoClassroomsFound(_ref2){switch(_ref2.rosterProvider){case _constants.OAuthSectionTypes.google_classroom:return _react.default.createElement("div",null,_react.default.createElement("p",null,_locale.default.noClassroomsFound()),_react.default.createElement("a",{href:"https://classroom.google.com/"},_locale.default.addRemoveGoogleClassrooms()));case _constants.OAuthSectionTypes.clever:return _react.default.createElement("div",null,_react.default.createElement("p",null,_locale.default.noClassroomsFound()),_react.default.createElement("a",{href:"https://clever.com/"},_locale.default.addRemoveCleverClassrooms()))}};NoClassroomsFound.propTypes={rosterProvider:_propTypes.default.oneOf(Object.keys(_constants.OAuthSectionTypes))};var LoadError=function LoadError(_ref3){var rosterProvider=_ref3.rosterProvider,loginType=_ref3.loginType;return rosterProvider===_constants.OAuthSectionTypes.google_classroom?_react.default.createElement("div",null,_react.default.createElement("p",null,_locale.default.authorizeGoogleClassroomsText()),_react.default.createElement(ReauthorizeGoogleClassroom,null),_react.default.createElement("p",null,_react.default.createElement("a",{href:"https://support.code.org/hc/en-us/articles/115001319312",target:"_blank",rel:"noopener noreferrer"},_locale.default.errorLoadingRosteredSectionsSupport()))):_react.default.createElement("p",null,_locale.default.errorLoadingRosteredSections({type:loginType})," ",_react.default.createElement("a",{href:"https://support.code.org/hc/en-us/articles/6496495212557",target:"_blank",rel:"noopener noreferrer"},_locale.default.errorLoadingRosteredSectionsSupport()))};LoadError.propTypes={rosterProvider:_propTypes.default.string,loginType:_propTypes.default.string};var REAUTHORIZE_URL="/users/auth/google_oauth2?scope=userinfo.email,userinfo.profile,classroom.courses.readonly,classroom.rosters.readonly";function ReauthorizeGoogleClassroom(){return _react.default.createElement("form",{method:"POST",action:REAUTHORIZE_URL},_react.default.createElement(_RailsAuthenticityToken.default,null),_react.default.createElement("button",{type:"submit",style:ctaButtonStyle},_locale.default.authorizeGoogleClassrooms()))}var RosterDialog=function(_React$Component){function RosterDialog(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_React$Component.call.apply(_React$Component,[this].concat(args))||this,"state",{selectedId:null}),_defineProperty(_this,"importClassroom",(function(){_this.recordSectionSetupExitEvent("Section Setup Completed");var classrooms=_this.props.classrooms,selectedName=classrooms&&classrooms.find((function(classroom){return classroom.id===_this.state.selectedId})).name;_this.props.handleImport(_this.state.selectedId,selectedName),_this.setState({selectedId:null})})),_defineProperty(_this,"redirectToEditSectionPage",(function(sectionId){var redirectUrl="/sections/"+sectionId+"/edit";window.location.href=redirectUrl})),_defineProperty(_this,"handleRedirect",(function(){_this.recordSectionSetupExitEvent("Section Setup Completed");var classrooms=_this.props.classrooms,courseName=classrooms&&classrooms.find((function(classroom){return classroom.id===_this.state.selectedId})).name,importSectionUrl=_this.props.rosterProvider===_constants.OAuthSectionTypes.google_classroom?"/dashboardapi/import_google_classroom":"/dashboardapi/import_clever_classroom",courseId=_this.state.selectedId;return new Promise((function(resolve,reject){$.getJSON(importSectionUrl,{courseId,courseName}).done(resolve).fail((function(jqxhr){_this.props.handleImportFailure(jqxhr),reject(new Error("\n url: ".concat(importSectionUrl,"\n status: ").concat(jqxhr.status,"\n statusText: ").concat(jqxhr.statusText,"\n responseText: ").concat(jqxhr.responseText,"\n ")))}))})).then((function(newSection){return _this.redirectToEditSectionPage(newSection.id)}))})),_defineProperty(_this,"cancel",(function(){_this.recordSectionSetupExitEvent("Section Setup Cancelled"),_this.props.handleCancel()})),_defineProperty(_this,"onClassroomSelected",(function(id){_this.setState({selectedId:id})})),_defineProperty(_this,"recordSectionSetupExitEvent",(function(eventName){var rosterProvider=_this.props.rosterProvider;_AnalyticsReporter.default.sendEvent(eventName,{oauthSource:rosterProvider},_AnalyticsConstants.PLATFORMS.BOTH)})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(RosterDialog,_React$Component),RosterDialog.prototype.render=function render(){var title="",loginType="";switch(this.props.rosterProvider){case _constants.OAuthSectionTypes.google_classroom:title=_locale.default.selectGoogleClassroom(),loginType=_locale.default.loginTypeGoogleClassroom();break;case _constants.OAuthSectionTypes.clever:title=_locale.default.selectCleverSection(),loginType=_locale.default.loginTypeClever()}return _react.default.createElement(_BaseDialog.default,_extends({useUpdatedStyles:!0,fixedHeight:480,isOpen:this.props.isOpen,handleClose:this.cancel},this.props),_react.default.createElement("h2",{style:styles.title},title),_react.default.createElement("div",{style:styles.content},this.props.loadError?_react.default.createElement(LoadError,{rosterProvider:this.props.rosterProvider,loginType}):this.props.classrooms?_react.default.createElement(ClassroomList,{classrooms:this.props.classrooms,onSelect:this.onClassroomSelected,selectedId:this.state.selectedId,rosterProvider:this.props.rosterProvider}):_locale.default.loading()),_react.default.createElement("div",{style:styles.footer},_react.default.createElement("button",{id:"cancel-button",type:"button",onClick:this.cancel,style:_objectSpread(_objectSpread({},styles.buttonPrimary),styles.buttonSecondary)},_locale.default.dialogCancel()),_react.default.createElement("button",{id:"import-button-and-redirect",type:"button",onClick:this.handleRedirect,style:Object.assign({},styles.buttonPrimary,!this.state.selectedId&&{opacity:.5}),disabled:!this.state.selectedId},_locale.default.chooseSection())))},RosterDialog}(_react.default.Component);_defineProperty(RosterDialog,"propTypes",{handleImport:_propTypes.default.func,handleCancel:_propTypes.default.func,handleImportFailure:_propTypes.default.func,isOpen:_propTypes.default.bool,classrooms:_propTypes.default.arrayOf(_shapes.classroomShape),loadError:_shapes.loadErrorShape,rosterProvider:_propTypes.default.oneOf(Object.keys(_constants.OAuthSectionTypes))});var styles={title:{position:"absolute",left:20,color:_color.default.dark_charcoal,margin:"15px 0"},content:{position:"absolute",left:20,top:50,right:20,bottom:70,overflowY:"scroll"},classroomRow:{padding:10,cursor:"pointer"},highlightRow:{backgroundColor:_color.default.default_blue,color:_color.default.white},footer:{position:"absolute",bottom:15,right:20,left:20},buttonPrimary:_objectSpread(_objectSpread({},ctaButtonStyle),{},{float:"right"}),buttonSecondary:{float:"left",background:"#eee",color:"#5b6770",border:"1px solid #c5c5c5"}};exports.UnconnectedRosterDialog=RosterDialog,exports.default=(0,_reactRedux.connect)((function(state){return{isOpen:(0,_teacherSectionsReduxSelectors.isRosterDialogOpen)(state),classrooms:state.teacherSections.classrooms,loadError:state.teacherSections.loadError,rosterProvider:state.teacherSections.rosterProvider}}),{handleImport:_teacherSectionsRedux.importOrUpdateRoster,handleCancel:_teacherSectionsRedux.cancelImportRosterFlow,handleImportFailure:_teacherSectionsRedux.rosterImportFailed})(RosterDialog)},"./src/templates/teacherDashboard/TeacherDashboardNavigation.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TEACHER_DASHBOARD_PATHS=exports.LABELED_TEACHER_DASHBOARD_PATHS=void 0,exports.default=TeacherDashboardNavigation;var _classnames=_interopRequireDefault(__webpack_require__("./node_modules/classnames/index.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_reactRouterDom=__webpack_require__("./node_modules/react-router-dom/dist/index.js"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_teacherDashboardModule=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/teacher-dashboard.module.scss"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(r){return function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}(r)||function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var TEACHER_DASHBOARD_PATHS=exports.TEACHER_DASHBOARD_PATHS={progress:"/progress",textResponses:"/text_responses",assessments:"/assessments",projects:"/projects",stats:"/stats",manageStudents:"/manage_students",loginInfo:"/login_info",standardsReport:"/standards_report",aiTutorChatMessages:"/ai_tutor"},LABELED_TEACHER_DASHBOARD_PATHS=exports.LABELED_TEACHER_DASHBOARD_PATHS=[{label:_locale.default.teacherTabProgress(),url:TEACHER_DASHBOARD_PATHS.progress},{label:_locale.default.teacherTabStatsTextResponses(),url:TEACHER_DASHBOARD_PATHS.textResponses},{label:_locale.default.teacherTabAssessments(),url:TEACHER_DASHBOARD_PATHS.assessments},{label:_locale.default.teacherTabProjects(),url:TEACHER_DASHBOARD_PATHS.projects},{label:_locale.default.teacherTabStats(),url:TEACHER_DASHBOARD_PATHS.stats},{label:_locale.default.teacherTabManageStudents(),url:TEACHER_DASHBOARD_PATHS.manageStudents}];function TeacherDashboardNavigation(_ref){var links=_ref.links,aiTutorLinks=_ref.showAITutorTab?[{label:_locale.default.aiTutor(),url:TEACHER_DASHBOARD_PATHS.aiTutorChatMessages}]:[],renderedLinks=[].concat(_toConsumableArray(links||LABELED_TEACHER_DASHBOARD_PATHS),aiTutorLinks);return _react.default.createElement("div",{id:"uitest-teacher-dashboard-nav",className:_teacherDashboardModule.default.navContainer},renderedLinks.map((function(link){return _react.default.createElement(_reactRouterDom.NavLink,{key:link.url,to:link.url,className:function className(_ref2){var isActive=_ref2.isActive;return(0,_classnames.default)(_teacherDashboardModule.default.linkContainer,isActive&&_teacherDashboardModule.default.activeLinkContainer)}},_react.default.createElement("div",{className:_teacherDashboardModule.default.link},link.label))})))}TeacherDashboardNavigation.propTypes={showAITutorTab:_propTypes.default.bool,links:_propTypes.default.arrayOf(_propTypes.default.shape({label:_propTypes.default.string.isRequired,url:_propTypes.default.string.isRequired}))}},"./src/templates/teacherDashboard/impressionHelpers.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.recordImpression=function recordImpression(study_group){_firehose.default.putRecord({study:"teacher_dashboard_actions",study_group,event:"load_feature",data_json:"{}"})};var _firehose=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__("./src/metrics/firehose.js"))},"./src/templates/teacherDashboard/sectionHelpers.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.recordOpenEditSectionDetails=function recordOpenEditSectionDetails(sectionId,studyGroup){_firehose.default.putRecord({study:"teacher_dashboard_actions",study_group:studyGroup,event:"open_edit_section_dashboard_header",data_json:JSON.stringify({section_id:sectionId})},{includeUserId:!0})},exports.recordSwitchToSection=function recordSwitchToSection(toSectionId,fromSectionId,studyGroup){_firehose.default.putRecord({study:"teacher_dashboard_actions",study_group:studyGroup,event:"change_section",data_json:JSON.stringify({section_id:fromSectionId,old_section_id:fromSectionId,new_section_id:toSectionId})},{includeUserId:!0})},exports.switchToSection=function switchToSection(toSectionId,fromSectionId){var baseUrl="/teacher_dashboard/sections/".concat(toSectionId,"/"),currentTab=_lodash.default.last(_lodash.default.split(window.location.pathname,"/")),sectionUrl=_lodash.default.values(_TeacherDashboardNavigation.TEACHER_DASHBOARD_PATHS).includes("/".concat(currentTab))?baseUrl.concat(currentTab):baseUrl;(0,_utils.navigateToHref)(sectionUrl)};var _lodash=_interopRequireDefault(__webpack_require__("./node_modules/lodash/lodash.js")),_utils=__webpack_require__("./src/utils.js"),_firehose=_interopRequireDefault(__webpack_require__("./src/metrics/firehose.js")),_TeacherDashboardNavigation=__webpack_require__("./src/templates/teacherDashboard/TeacherDashboardNavigation.jsx");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/sharedComponents/userFeedback/FeedbackBanner.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".feedback-banner{background-color:#dceffb;border-color:#dceffb;color:#4d575f;line-height:2rem}.feedback-banner .share-more,.feedback-banner .feedback-title{font-size:16px}.feedback-banner .feedback-banner-greeting{display:inline-block;margin-right:1rem;animation-name:wave-animation;animation-timing-function:linear;animation-duration:.75s;transform-origin:70% 70%;animation-iteration-count:2}@keyframes wave-animation{0%{transform:rotate(0deg)}25%{transform:rotate(-10deg)}75%{transform:rotate(12deg)}100%{transform:rotate(0deg)}}.feedback-banner .feedback-banner-greeting .fa-hand-wave{font-weight:400;vertical-align:middle}.feedback-banner .feedback-banner-greeting .fa-hand-wave:hover{animation-name:high-five-animation;animation-timing-function:ease-in-out;animation-duration:.5s}@keyframes high-five-animation{0%{cursor:grab;transform:rotate(0) scale(1)}25%{cursor:grab;transform:rotate(50deg) scale(1)}50%{cursor:grab;transform:rotate(50deg) scale(1.5)}75%{cursor:grab;transform:rotate(50deg) scale(1)}100%{cursor:initial;transform:rotate(0) scale(1)}}.feedback-banner i{color:#0f0f0f;font-size:1.3rem}.feedback-banner #feedback-banner-share-more-link{font-weight:normal}.feedback-banner button.close{border:unset !important;box-shadow:none;font-size:1.6rem;font-weight:normal;line-height:unset;margin:0;top:0}.feedback-banner .feedback{margin-left:1rem}.feedback-banner .feedback button{all:unset;border:unset !important;box-shadow:none;cursor:pointer}.feedback-banner .feedback button:not(:last-child){margin-right:.5rem}.feedback-banner .feedback button:has(.fa-thumbs-o-down){transform:scaleX(-1)}.feedback-banner .feedback button i:hover{animation-name:approval-animation;animation-timing-function:ease-in-out;animation-duration:.75s;transform-origin:-10% 100%;color:rgba(0,0,0,.6)}@keyframes approval-animation{0%{transform:rotate(0deg)}25%{transform:rotate(-10deg)}50%{transform:rotate(5deg)}100%{transform:rotate(0deg)}}","",{version:3,sources:["webpack://./src/sharedComponents/userFeedback/FeedbackBanner.scss","webpack://./../shared/css/color.scss","webpack://./../shared/css/animations.scss"],names:[],mappings:"AAIA,iBAGE,wBCoOe,CDnOf,oBCmOe,CDlOf,aCGc,CDFd,gBAAA,CAEA,8DAEE,cAAA,CAGF,2CACE,oBAAA,CACA,iBAdO,CEiBT,6BAAA,CACA,gCAAA,CACA,uBAAA,CACA,wBAAA,CFHE,2BAAA,CEPF,0BACE,GAAA,sBAAA,CACA,IAAA,wBAAA,CACA,IAAA,uBAAA,CACA,KAAA,sBAAA,CAAA,CFKA,yDACE,eAAA,CACA,qBAAA,CAEA,+DESJ,kCAAA,CACA,qCAAA,CACA,sBAAA,CAVA,+BACE,GAAA,WAAA,CAAA,4BAAA,CACA,IAAA,WAAA,CAAA,gCAAA,CACA,IAAA,WAAA,CAAA,kCAAA,CACA,IAAA,WAAA,CAAA,gCAAA,CACA,KAAA,cAAA,CAAA,4BAAA,CAAA,CAAA,mBFCA,aAAA,CACA,gBAAA,CAGF,kDACE,kBAAA,CAGF,8BACE,uBAAA,CACA,eAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,QAAA,CACA,KAAA,CAGF,2BACE,gBAjDO,CAmDP,kCACE,SAAA,CACA,uBAAA,CACA,eAAA,CACA,cAAA,CAEA,mDACE,kBAAA,CAGF,yDACE,oBAAA,CAIA,0CE/DN,iCAAA,CACA,qCAAA,CACA,uBAAA,CACA,0BAAA,CF8DQ,oBAAA,CExER,8BACE,GAAA,sBAAA,CACA,IAAA,wBAAA,CACA,IAAA,sBAAA,CACA,KAAA,sBAAA,CAAA",sourcesContent:["@import 'animations';\n@import 'color';\n@import '@code-dot-org/component-library-styles/font';\n\n.feedback-banner {\n $indent: 1rem;\n\n background-color: $light_info_100;\n border-color: $light_info_100;\n color: $dark_charcoal;\n line-height: 2rem;\n\n & .share-more,\n & .feedback-title {\n font-size: 16px;\n }\n\n & .feedback-banner-greeting {\n display: inline-block;\n margin-right: $indent;\n\n @include wave-animation;\n animation-iteration-count: 2;\n\n & .fa-hand-wave {\n font-weight: 400;\n vertical-align: middle;\n\n &:hover {\n @include high-five-animation;\n }\n }\n }\n\n & i {\n color: #0f0f0f;\n font-size: 1.3rem;\n }\n\n & #feedback-banner-share-more-link {\n font-weight: normal;\n }\n\n & button.close {\n border: unset !important;\n box-shadow: none;\n font-size: 1.6rem;\n font-weight: normal;\n line-height: unset;\n margin: 0;\n top: 0;\n }\n\n & .feedback {\n margin-left: $indent;\n\n & button {\n all: unset;\n border: unset !important;\n box-shadow: none;\n cursor: pointer;\n\n &:not(:last-child) {\n margin-right: 0.5rem;\n }\n\n &:has(.fa-thumbs-o-down) {\n transform: scaleX(-1);\n }\n\n & i {\n &:hover {\n @include approval-animation;\n color: rgb(0 0 0 / 0.6);\n }\n }\n }\n }\n}\n","// colors from https://www.dropbox.com/s/ycjiwt8vxlmv2ih/Code.org_stylesheet_v2_09.05.13.pdf\n\n// Please keep this file simple; it should only contain color definitions\n// and aliases. Variables defined in this file are exported to\n// apps/src/util/color.js during the apps build process.\n\n$black: #000;\n$background_black: #121416;\n$dark_gray: #2D3139;\n$darkest_gray: #292F36;\n$dark_slate_gray: #282c34;\n$darkest_slate_gray: #25292d;\n$dark_charcoal: #4d575f;\n$charcoal: #5b6770;\n$light_gray: #949ca2;\n$lighter_gray: #c6cacd;\n$lightest_gray: #e7e8ea;\n$background_gray: #f2f2f2;\n$dimgray: #696969;\n$white: #fff;\n$default_blue: #3670b3;\n\n$dark_teal: #0094a3;\n$teal: #0093a4;\n$applab_button_teal: #1abc9c;\n$light_teal: #59cad3;\n$lightish_teal: #80d6de;\n$lighter_teal: #a6e3e8;\n$lightest_teal: #d9f3f5;\n$ai_rubric_cyan: #3cfff8;\n\n$purple: #8c52ba;\n$light_purple: #a69bc1;\n$lighter_purple: #cfc9de;\n$lightest_purple: #ebe8f1;\n\n$cyan: #0094ca;\n$light_cyan: #59b9dc;\n$lighter_cyan: #a6daed;\n$lightest_cyan: #d9eff7;\n$almost_white_cyan: #f5fcff;\n\n$orange: #ffa400;\n$light_orange: #ffc459;\n$lighter_orange: #ffe0a6;\n$lightest_orange: #fff2d9;\n$dark_orange: #ff8600;\n\n$green: #b9bf15;\n$light_green: #d1d567;\n$lighter_green: #e7e9ad;\n$lightest_green: #f5f5dc;\n$highlight_green: #8afc9b;\n\n$yellow: #ffb81d;\n$light_yellow: #ffdb74;\n$lighter_yellow: #ffebb5;\n$lightest_yellow: #fff7df;\n\n$goldenrod: #daa520;\n\n$header_text: $white;\n$bkgnd_color: $teal;\n$inset_color: $lighter_gray;\n$dark_color: $purple;\n$hdr_color: $purple;\n\n// Some extra colors.\n$red: #c00;\n$lightest_red: #fcc;\n$dark_red: #d62911;\n$realgreen: #008000;\n$realyellow: #ff0;\n$mustardyellow: #efcd1c;\n$twitter_blue: #00aced;\n$facebook_blue: #3b5998;\n$linkedin_blue: #0077B5;\n$dark_blue: #00647f;\n$blockly_flyout_gray: #ddd;\n$default_text: #333;\n$border_gray: #bbb;\n$border_light_gray: #d8d8d8;\n$table_header: #ececec;\n$table_light_row: #fcfcfc;\n$table_dark_row: #f4f4f4;\n\n// Progress colors.\n$level_submitted: $purple;\n$level_perfect: rgb(14, 190, 14);\n$level_passed: rgb(159, 212, 159);\n$level_attempted: $realyellow;\n$level_not_tried: #fefefe;\n$level_current: $orange;\n$level_review_rejected: $red;\n$level_review_accepted: rgb(11, 142, 11); // TODO: $level_passed;\n$assessment: $cyan;\n$workspace_running_background: #e5e5e5;\n\n// Experimental Sprite Lab validation colors.\n$dark_purple: #682A77;\n$bright_green: #0ebe0e;\n$neon_pink: #e9118f;\n\n// Links (used in apps).\n$link_color: #0596ce;\n\n// Shadow.\n$shadow: rgba(0, 0, 0, 0.3);\n\n// Colors that are taken from bootstrap, and not necessarily part of our core theme.\n$bootstrap_button_blue: #337ab7;\n$bootstrap_button_red: #d9534f;\n$bootstrap_error_background: #f2dede;\n$bootstrap_error_text: #b94a48;\n$bootstrap_v3_error_text: #a94442;\n$bootstrap_error_border: #ebccd1;\n$bootstrap_warning_background: #fcf8e3;\n$bootstrap_warning_text: #c09853;\n$bootstrap_warning_border: #faebcc;\n$bootstrap_border_color: #cccccc;\n$bootstrap_success_background: #dff0d8;\n$bootstrap_success_text: #468847;\n$bootstrap_success_border: #d6e9c6;\n\n// Colors taken from droplet, not part of our core theme.\n$droplet_light_green: #d3e965;\n$droplet_blue: #64b5f6;\n$droplet_bright_blue: #19c3e1;\n$droplet_yellow: #fff176;\n$droplet_orange: #ffb74d;\n$droplet_red: #f78183;\n$droplet_cyan: #4dd0e1;\n$droplet_pink: #f57ac6;\n$droplet_purple: #bb77c7;\n$droplet_green: #68d995;\n$droplet_white: $white;\n\n// Oceans: deep blue background.\n$oceans_deep_blue: rgb(2, 0, 28);\n\n// Dark theme background (used by default in Music Lab)\n$dark_black: #121212;\n\n// ===----===----===---- Phase 1 Colors: ----===----===----===\n// Brand\n$brand_primary_light: #E0F8F9;\n$brand_primary_default: #009EB0;\n$brand_primary_dark: #007785;\n\n$brand_secondary_light: #E0D1EC;\n$brand_secondary_default: #8C52BA;\n$brand_secondary_dark: #6C468A;\n\n$brand_accent_default: #ED6060;\n\n$brand_teal_5: #DFF2F4;\n\n//Product\n$product_affirmative_default: #3EA33E;\n\n$product_negative_light: #FDEBE9;\n$product_negative_default: #E5311A;\n$product_negative_dark: #AA2513;\n\n$product_caution_default: #F9CB28;\n\n$product_information_default: #007ACC;\n\n// Neutral\n$neutral_white: #FFFFFF;\n$neutral_light: #F7F8FA;\n$neutral_gray10: #EAEBEB;\n$neutral_dark10: #EAECEF;\n$neutral_dark20: #D1D4D8;\n$neutral_dark30: #BEC2C7;\n$neutral_dark40: #ABB0B6;\n$neutral_dark50: #989EA5;\n$neutral_dark60: #858C94;\n$neutral_dark70: #727A83;\n$neutral_dark80: #5F6872;\n$neutral_dark90: #4C5661;\n$neutral_dark: #292F36;\n\n//Brands\n$google_brand_color: #0F9D58;\n$microsoft_brand_color: #FFB900;\n$facebook_brand_color: #3B5998;\n$clever_brand_color: #1464FF;\n\n// ===----===----===---- Design system colors: ----===----===----===\n\n$light_primary_100: #BFE4E8;\n$light_primary_500: #0093A4;\n$light_primary_700: #007785;\n\n$light_secondary_100: #E2D4EE;\n$light_secondary_500: #8C52BA;\n$light_secondary_700: #6C468A;\n\n$light_gray_50: #F7F8FA;\n$light_gray_100: #EAECEF;\n$light_gray_200: #D1D4D8;\n$light_gray_300: #BEC2C7;\n$light_gray_400: #ABB0B6;\n$light_gray_500: #989EA5;\n$light_gray_600: #858C94;\n$light_gray_700: #727A83;\n$light_gray_800: #5F6872;\n$light_gray_900: #4C5661;\n$light_gray_950: #394450;\n\n$light_affirmative_100: #E2F1E2;\n$light_affirmative_500: #3EA33E;\n$light_affirmative_700: #2D742D;\n\n$light_negative_100: #FBE0DD;\n$light_negative_500: #E5311A;\n$light_negative_700: #B24949;\n\n$light_caution_100: #FEF7DF;\n$light_caution_500: #F9CB28;\n$light_caution_700: #C7A220;\n\n$light_accent_100: #FAD7D7;\n$light_accent_500: #ED6060;\n$light_accent_700: #D84C4C;\n\n$light_aqua_100: #CEFFFD;\n$light_aqua_500: #3CFFF8;\n$light_aqua_700: #30CCC6;\n\n$light_orange_100: #FFEDCC;\n$light_orange_500: #FFA400;\n$light_orange_700: #CC8300;\n\n$light_info_100: #DCEFFB;\n$light_info_500: #1892E3;\n$light_info_700: #1375B6;\n\n$light_white: #FFFFFF;\n\n$light_black: #292F36;\n\n$light_black_opacity_90: rgba(41, 47, 54, 0.90);\n$light_black_opacity-80: rgba(41, 47, 54, 0.80);\n$light_black_opacity-70: rgba(41, 47, 54, 0.70);\n$light_black_opacity-60: rgba(41, 47, 54, 0.60);\n$light_black_opacity-50: rgba(41, 47, 54, 0.50);\n$light_black_opacity-40: rgba(41, 47, 54, 0.40);\n$light_black_opacity-30: rgba(41, 47, 54, 0.30);\n$light_black_opacity-20: rgba(41, 47, 54, 0.20);\n$light_black_opacity-10: rgba(41, 47, 54, 0.10);\n","@mixin approval-animation {\n @keyframes approval-animation {\n 0% { transform: rotate(0deg) }\n 25% { transform: rotate(-10deg) }\n 50% { transform: rotate(5deg) }\n 100% { transform: rotate(0deg) }\n }\n\n animation-name: approval-animation;\n animation-timing-function: ease-in-out;\n animation-duration: .75s;\n transform-origin: -10% 100%;\n}\n\n@mixin wave-animation {\n @keyframes wave-animation {\n 0% { transform: rotate(0deg) }\n 25% { transform: rotate(-10deg) }\n 75% { transform: rotate(12deg) }\n 100% { transform: rotate(0deg) }\n }\n\n animation-name: wave-animation;\n animation-timing-function: linear;\n animation-duration: .75s;\n transform-origin: 70% 70%;\n}\n\n@mixin high-five-animation {\n @keyframes high-five-animation {\n 0% { cursor: grab; transform: rotate(0) scale(1); }\n 25% { cursor: grab; transform: rotate(50deg) scale(1); }\n 50% { cursor: grab; transform: rotate(50deg) scale(1.5); }\n 75% { cursor: grab; transform: rotate(50deg) scale(1); }\n 100% { cursor: initial; transform: rotate(0) scale(1); }\n }\n\n animation-name: high-five-animation;\n animation-timing-function: ease-in-out;\n animation-duration: .5s;\n}\n"],sourceRoot:""}]);const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/content-container.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".iG_U7133clrJGp9EvJu0 a:hover{text-decoration:underline !important}","",{version:3,sources:["webpack://./src/templates/content-container.module.scss"],names:[],mappings:"AACE,8BAEE,oCAAA",sourcesContent:[".contentContainerHeading {\n a:hover {\n //We need !important to overwrite the default state inline style (inline hover state is not working, unfortunately)\n text-decoration: underline !important;\n }\n}\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={contentContainerHeading:"iG_U7133clrJGp9EvJu0"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".m8cwhnOmvuUNyvUAMcF3{padding:20px}.m8cwhnOmvuUNyvUAMcF3 hr{border-color:#c6cacd}.RgPr8TwstTtXpzw5riJw{color:#000;font-weight:600}.IRUPgw9jZMG5BwGTv0VJ{text-align:end}.IRUPgw9jZMG5BwGTv0VJ button{background-color:#8c52ba;border-color:#8c52ba;color:#fff}","",{version:3,sources:["webpack://./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss","webpack://./../shared/css/color.scss"],names:[],mappings:"AAGA,sBACE,YAAA,CAEA,yBACE,oBCQW,CDJf,sBACE,UCNM,CDON,eAAA,CAGF,sBACE,cAAA,CAEA,6BACE,wBCkIsB,CDjItB,oBCiIsB,CDhItB,UCmJY",sourcesContent:["@use 'sass:math';\n@import 'color.scss';\n\n.modalContainer {\n padding: 20px;\n\n hr {\n border-color: $lighter_gray;\n }\n}\n\n.modalHeader {\n color: $black;\n font-weight: 600;\n}\n\n.modalButton {\n text-align: end;\n\n button {\n background-color: $brand_secondary_default;\n border-color: $brand_secondary_default;\n color: $neutral_white;\n }\n}\n","// colors from https://www.dropbox.com/s/ycjiwt8vxlmv2ih/Code.org_stylesheet_v2_09.05.13.pdf\n\n// Please keep this file simple; it should only contain color definitions\n// and aliases. Variables defined in this file are exported to\n// apps/src/util/color.js during the apps build process.\n\n$black: #000;\n$background_black: #121416;\n$dark_gray: #2D3139;\n$darkest_gray: #292F36;\n$dark_slate_gray: #282c34;\n$darkest_slate_gray: #25292d;\n$dark_charcoal: #4d575f;\n$charcoal: #5b6770;\n$light_gray: #949ca2;\n$lighter_gray: #c6cacd;\n$lightest_gray: #e7e8ea;\n$background_gray: #f2f2f2;\n$dimgray: #696969;\n$white: #fff;\n$default_blue: #3670b3;\n\n$dark_teal: #0094a3;\n$teal: #0093a4;\n$applab_button_teal: #1abc9c;\n$light_teal: #59cad3;\n$lightish_teal: #80d6de;\n$lighter_teal: #a6e3e8;\n$lightest_teal: #d9f3f5;\n$ai_rubric_cyan: #3cfff8;\n\n$purple: #8c52ba;\n$light_purple: #a69bc1;\n$lighter_purple: #cfc9de;\n$lightest_purple: #ebe8f1;\n\n$cyan: #0094ca;\n$light_cyan: #59b9dc;\n$lighter_cyan: #a6daed;\n$lightest_cyan: #d9eff7;\n$almost_white_cyan: #f5fcff;\n\n$orange: #ffa400;\n$light_orange: #ffc459;\n$lighter_orange: #ffe0a6;\n$lightest_orange: #fff2d9;\n$dark_orange: #ff8600;\n\n$green: #b9bf15;\n$light_green: #d1d567;\n$lighter_green: #e7e9ad;\n$lightest_green: #f5f5dc;\n$highlight_green: #8afc9b;\n\n$yellow: #ffb81d;\n$light_yellow: #ffdb74;\n$lighter_yellow: #ffebb5;\n$lightest_yellow: #fff7df;\n\n$goldenrod: #daa520;\n\n$header_text: $white;\n$bkgnd_color: $teal;\n$inset_color: $lighter_gray;\n$dark_color: $purple;\n$hdr_color: $purple;\n\n// Some extra colors.\n$red: #c00;\n$lightest_red: #fcc;\n$dark_red: #d62911;\n$realgreen: #008000;\n$realyellow: #ff0;\n$mustardyellow: #efcd1c;\n$twitter_blue: #00aced;\n$facebook_blue: #3b5998;\n$linkedin_blue: #0077B5;\n$dark_blue: #00647f;\n$blockly_flyout_gray: #ddd;\n$default_text: #333;\n$border_gray: #bbb;\n$border_light_gray: #d8d8d8;\n$table_header: #ececec;\n$table_light_row: #fcfcfc;\n$table_dark_row: #f4f4f4;\n\n// Progress colors.\n$level_submitted: $purple;\n$level_perfect: rgb(14, 190, 14);\n$level_passed: rgb(159, 212, 159);\n$level_attempted: $realyellow;\n$level_not_tried: #fefefe;\n$level_current: $orange;\n$level_review_rejected: $red;\n$level_review_accepted: rgb(11, 142, 11); // TODO: $level_passed;\n$assessment: $cyan;\n$workspace_running_background: #e5e5e5;\n\n// Experimental Sprite Lab validation colors.\n$dark_purple: #682A77;\n$bright_green: #0ebe0e;\n$neon_pink: #e9118f;\n\n// Links (used in apps).\n$link_color: #0596ce;\n\n// Shadow.\n$shadow: rgba(0, 0, 0, 0.3);\n\n// Colors that are taken from bootstrap, and not necessarily part of our core theme.\n$bootstrap_button_blue: #337ab7;\n$bootstrap_button_red: #d9534f;\n$bootstrap_error_background: #f2dede;\n$bootstrap_error_text: #b94a48;\n$bootstrap_v3_error_text: #a94442;\n$bootstrap_error_border: #ebccd1;\n$bootstrap_warning_background: #fcf8e3;\n$bootstrap_warning_text: #c09853;\n$bootstrap_warning_border: #faebcc;\n$bootstrap_border_color: #cccccc;\n$bootstrap_success_background: #dff0d8;\n$bootstrap_success_text: #468847;\n$bootstrap_success_border: #d6e9c6;\n\n// Colors taken from droplet, not part of our core theme.\n$droplet_light_green: #d3e965;\n$droplet_blue: #64b5f6;\n$droplet_bright_blue: #19c3e1;\n$droplet_yellow: #fff176;\n$droplet_orange: #ffb74d;\n$droplet_red: #f78183;\n$droplet_cyan: #4dd0e1;\n$droplet_pink: #f57ac6;\n$droplet_purple: #bb77c7;\n$droplet_green: #68d995;\n$droplet_white: $white;\n\n// Oceans: deep blue background.\n$oceans_deep_blue: rgb(2, 0, 28);\n\n// Dark theme background (used by default in Music Lab)\n$dark_black: #121212;\n\n// ===----===----===---- Phase 1 Colors: ----===----===----===\n// Brand\n$brand_primary_light: #E0F8F9;\n$brand_primary_default: #009EB0;\n$brand_primary_dark: #007785;\n\n$brand_secondary_light: #E0D1EC;\n$brand_secondary_default: #8C52BA;\n$brand_secondary_dark: #6C468A;\n\n$brand_accent_default: #ED6060;\n\n$brand_teal_5: #DFF2F4;\n\n//Product\n$product_affirmative_default: #3EA33E;\n\n$product_negative_light: #FDEBE9;\n$product_negative_default: #E5311A;\n$product_negative_dark: #AA2513;\n\n$product_caution_default: #F9CB28;\n\n$product_information_default: #007ACC;\n\n// Neutral\n$neutral_white: #FFFFFF;\n$neutral_light: #F7F8FA;\n$neutral_gray10: #EAEBEB;\n$neutral_dark10: #EAECEF;\n$neutral_dark20: #D1D4D8;\n$neutral_dark30: #BEC2C7;\n$neutral_dark40: #ABB0B6;\n$neutral_dark50: #989EA5;\n$neutral_dark60: #858C94;\n$neutral_dark70: #727A83;\n$neutral_dark80: #5F6872;\n$neutral_dark90: #4C5661;\n$neutral_dark: #292F36;\n\n//Brands\n$google_brand_color: #0F9D58;\n$microsoft_brand_color: #FFB900;\n$facebook_brand_color: #3B5998;\n$clever_brand_color: #1464FF;\n\n// ===----===----===---- Design system colors: ----===----===----===\n\n$light_primary_100: #BFE4E8;\n$light_primary_500: #0093A4;\n$light_primary_700: #007785;\n\n$light_secondary_100: #E2D4EE;\n$light_secondary_500: #8C52BA;\n$light_secondary_700: #6C468A;\n\n$light_gray_50: #F7F8FA;\n$light_gray_100: #EAECEF;\n$light_gray_200: #D1D4D8;\n$light_gray_300: #BEC2C7;\n$light_gray_400: #ABB0B6;\n$light_gray_500: #989EA5;\n$light_gray_600: #858C94;\n$light_gray_700: #727A83;\n$light_gray_800: #5F6872;\n$light_gray_900: #4C5661;\n$light_gray_950: #394450;\n\n$light_affirmative_100: #E2F1E2;\n$light_affirmative_500: #3EA33E;\n$light_affirmative_700: #2D742D;\n\n$light_negative_100: #FBE0DD;\n$light_negative_500: #E5311A;\n$light_negative_700: #B24949;\n\n$light_caution_100: #FEF7DF;\n$light_caution_500: #F9CB28;\n$light_caution_700: #C7A220;\n\n$light_accent_100: #FAD7D7;\n$light_accent_500: #ED6060;\n$light_accent_700: #D84C4C;\n\n$light_aqua_100: #CEFFFD;\n$light_aqua_500: #3CFFF8;\n$light_aqua_700: #30CCC6;\n\n$light_orange_100: #FFEDCC;\n$light_orange_500: #FFA400;\n$light_orange_700: #CC8300;\n\n$light_info_100: #DCEFFB;\n$light_info_500: #1892E3;\n$light_info_700: #1375B6;\n\n$light_white: #FFFFFF;\n\n$light_black: #292F36;\n\n$light_black_opacity_90: rgba(41, 47, 54, 0.90);\n$light_black_opacity-80: rgba(41, 47, 54, 0.80);\n$light_black_opacity-70: rgba(41, 47, 54, 0.70);\n$light_black_opacity-60: rgba(41, 47, 54, 0.60);\n$light_black_opacity-50: rgba(41, 47, 54, 0.50);\n$light_black_opacity-40: rgba(41, 47, 54, 0.40);\n$light_black_opacity-30: rgba(41, 47, 54, 0.30);\n$light_black_opacity-20: rgba(41, 47, 54, 0.20);\n$light_black_opacity-10: rgba(41, 47, 54, 0.10);\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={modalContainer:"m8cwhnOmvuUNyvUAMcF3",modalHeader:"RgPr8TwstTtXpzw5riJw",modalButton:"IRUPgw9jZMG5BwGTv0VJ"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/studioHomepages/borderedCallToAction.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".jeQElweAU_GtNeIy9K9G{background-color:#fff;border-color:#d1d4d8;box-sizing:border-box;margin-bottom:20px;padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-flow:row wrap;gap:1rem}@media(max-width: 768px){.jeQElweAU_GtNeIy9K9G{flex-direction:column;align-items:start}}.X_k8CN8v6FKWMe7h0QZY{flex:2}.X_k8CN8v6FKWMe7h0QZY p{margin-bottom:.25rem}.CXirVuIL7JddB4BjhWwk{border-style:solid;border-width:1px}.dLR1CRqRrtuCZaoNdxpw{border-style:dashed;border-width:5px}","",{version:3,sources:["webpack://./src/templates/studioHomepages/borderedCallToAction.module.scss","webpack://./../shared/css/color.scss"],names:[],mappings:"AAEA,sBACE,qBC4OY,CD3OZ,oBCqMe,CDpMf,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,YAAA,CACA,6BAAA,CACA,kBAAA,CACA,kBAAA,CACA,QAAA,CAEA,yBAZF,sBAaI,qBAAA,CACA,iBAAA,CAAA,CAIJ,sBACE,MAAA,CAEA,wBACE,oBAAA,CAIJ,sBACE,kBAAA,CACA,gBAAA,CAGF,sBACE,mBAAA,CACA,gBAAA",sourcesContent:["@import 'color';\n\n.outerBox {\n background-color: $light_white;\n border-color: $light_gray_200;\n box-sizing: border-box;\n margin-bottom: 20px;\n padding: 1.25rem 1.5rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-flow: row wrap;\n gap: 1rem;\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: start;\n }\n}\n\n.textWrapper {\n flex: 2;\n\n p {\n margin-bottom: 0.25rem;\n }\n}\n\n.solidBorder {\n border-style: solid;\n border-width: 1px;\n}\n\n.dashedBorder {\n border-style: dashed;\n border-width: 5px;\n}\n","// colors from https://www.dropbox.com/s/ycjiwt8vxlmv2ih/Code.org_stylesheet_v2_09.05.13.pdf\n\n// Please keep this file simple; it should only contain color definitions\n// and aliases. Variables defined in this file are exported to\n// apps/src/util/color.js during the apps build process.\n\n$black: #000;\n$background_black: #121416;\n$dark_gray: #2D3139;\n$darkest_gray: #292F36;\n$dark_slate_gray: #282c34;\n$darkest_slate_gray: #25292d;\n$dark_charcoal: #4d575f;\n$charcoal: #5b6770;\n$light_gray: #949ca2;\n$lighter_gray: #c6cacd;\n$lightest_gray: #e7e8ea;\n$background_gray: #f2f2f2;\n$dimgray: #696969;\n$white: #fff;\n$default_blue: #3670b3;\n\n$dark_teal: #0094a3;\n$teal: #0093a4;\n$applab_button_teal: #1abc9c;\n$light_teal: #59cad3;\n$lightish_teal: #80d6de;\n$lighter_teal: #a6e3e8;\n$lightest_teal: #d9f3f5;\n$ai_rubric_cyan: #3cfff8;\n\n$purple: #8c52ba;\n$light_purple: #a69bc1;\n$lighter_purple: #cfc9de;\n$lightest_purple: #ebe8f1;\n\n$cyan: #0094ca;\n$light_cyan: #59b9dc;\n$lighter_cyan: #a6daed;\n$lightest_cyan: #d9eff7;\n$almost_white_cyan: #f5fcff;\n\n$orange: #ffa400;\n$light_orange: #ffc459;\n$lighter_orange: #ffe0a6;\n$lightest_orange: #fff2d9;\n$dark_orange: #ff8600;\n\n$green: #b9bf15;\n$light_green: #d1d567;\n$lighter_green: #e7e9ad;\n$lightest_green: #f5f5dc;\n$highlight_green: #8afc9b;\n\n$yellow: #ffb81d;\n$light_yellow: #ffdb74;\n$lighter_yellow: #ffebb5;\n$lightest_yellow: #fff7df;\n\n$goldenrod: #daa520;\n\n$header_text: $white;\n$bkgnd_color: $teal;\n$inset_color: $lighter_gray;\n$dark_color: $purple;\n$hdr_color: $purple;\n\n// Some extra colors.\n$red: #c00;\n$lightest_red: #fcc;\n$dark_red: #d62911;\n$realgreen: #008000;\n$realyellow: #ff0;\n$mustardyellow: #efcd1c;\n$twitter_blue: #00aced;\n$facebook_blue: #3b5998;\n$linkedin_blue: #0077B5;\n$dark_blue: #00647f;\n$blockly_flyout_gray: #ddd;\n$default_text: #333;\n$border_gray: #bbb;\n$border_light_gray: #d8d8d8;\n$table_header: #ececec;\n$table_light_row: #fcfcfc;\n$table_dark_row: #f4f4f4;\n\n// Progress colors.\n$level_submitted: $purple;\n$level_perfect: rgb(14, 190, 14);\n$level_passed: rgb(159, 212, 159);\n$level_attempted: $realyellow;\n$level_not_tried: #fefefe;\n$level_current: $orange;\n$level_review_rejected: $red;\n$level_review_accepted: rgb(11, 142, 11); // TODO: $level_passed;\n$assessment: $cyan;\n$workspace_running_background: #e5e5e5;\n\n// Experimental Sprite Lab validation colors.\n$dark_purple: #682A77;\n$bright_green: #0ebe0e;\n$neon_pink: #e9118f;\n\n// Links (used in apps).\n$link_color: #0596ce;\n\n// Shadow.\n$shadow: rgba(0, 0, 0, 0.3);\n\n// Colors that are taken from bootstrap, and not necessarily part of our core theme.\n$bootstrap_button_blue: #337ab7;\n$bootstrap_button_red: #d9534f;\n$bootstrap_error_background: #f2dede;\n$bootstrap_error_text: #b94a48;\n$bootstrap_v3_error_text: #a94442;\n$bootstrap_error_border: #ebccd1;\n$bootstrap_warning_background: #fcf8e3;\n$bootstrap_warning_text: #c09853;\n$bootstrap_warning_border: #faebcc;\n$bootstrap_border_color: #cccccc;\n$bootstrap_success_background: #dff0d8;\n$bootstrap_success_text: #468847;\n$bootstrap_success_border: #d6e9c6;\n\n// Colors taken from droplet, not part of our core theme.\n$droplet_light_green: #d3e965;\n$droplet_blue: #64b5f6;\n$droplet_bright_blue: #19c3e1;\n$droplet_yellow: #fff176;\n$droplet_orange: #ffb74d;\n$droplet_red: #f78183;\n$droplet_cyan: #4dd0e1;\n$droplet_pink: #f57ac6;\n$droplet_purple: #bb77c7;\n$droplet_green: #68d995;\n$droplet_white: $white;\n\n// Oceans: deep blue background.\n$oceans_deep_blue: rgb(2, 0, 28);\n\n// Dark theme background (used by default in Music Lab)\n$dark_black: #121212;\n\n// ===----===----===---- Phase 1 Colors: ----===----===----===\n// Brand\n$brand_primary_light: #E0F8F9;\n$brand_primary_default: #009EB0;\n$brand_primary_dark: #007785;\n\n$brand_secondary_light: #E0D1EC;\n$brand_secondary_default: #8C52BA;\n$brand_secondary_dark: #6C468A;\n\n$brand_accent_default: #ED6060;\n\n$brand_teal_5: #DFF2F4;\n\n//Product\n$product_affirmative_default: #3EA33E;\n\n$product_negative_light: #FDEBE9;\n$product_negative_default: #E5311A;\n$product_negative_dark: #AA2513;\n\n$product_caution_default: #F9CB28;\n\n$product_information_default: #007ACC;\n\n// Neutral\n$neutral_white: #FFFFFF;\n$neutral_light: #F7F8FA;\n$neutral_gray10: #EAEBEB;\n$neutral_dark10: #EAECEF;\n$neutral_dark20: #D1D4D8;\n$neutral_dark30: #BEC2C7;\n$neutral_dark40: #ABB0B6;\n$neutral_dark50: #989EA5;\n$neutral_dark60: #858C94;\n$neutral_dark70: #727A83;\n$neutral_dark80: #5F6872;\n$neutral_dark90: #4C5661;\n$neutral_dark: #292F36;\n\n//Brands\n$google_brand_color: #0F9D58;\n$microsoft_brand_color: #FFB900;\n$facebook_brand_color: #3B5998;\n$clever_brand_color: #1464FF;\n\n// ===----===----===---- Design system colors: ----===----===----===\n\n$light_primary_100: #BFE4E8;\n$light_primary_500: #0093A4;\n$light_primary_700: #007785;\n\n$light_secondary_100: #E2D4EE;\n$light_secondary_500: #8C52BA;\n$light_secondary_700: #6C468A;\n\n$light_gray_50: #F7F8FA;\n$light_gray_100: #EAECEF;\n$light_gray_200: #D1D4D8;\n$light_gray_300: #BEC2C7;\n$light_gray_400: #ABB0B6;\n$light_gray_500: #989EA5;\n$light_gray_600: #858C94;\n$light_gray_700: #727A83;\n$light_gray_800: #5F6872;\n$light_gray_900: #4C5661;\n$light_gray_950: #394450;\n\n$light_affirmative_100: #E2F1E2;\n$light_affirmative_500: #3EA33E;\n$light_affirmative_700: #2D742D;\n\n$light_negative_100: #FBE0DD;\n$light_negative_500: #E5311A;\n$light_negative_700: #B24949;\n\n$light_caution_100: #FEF7DF;\n$light_caution_500: #F9CB28;\n$light_caution_700: #C7A220;\n\n$light_accent_100: #FAD7D7;\n$light_accent_500: #ED6060;\n$light_accent_700: #D84C4C;\n\n$light_aqua_100: #CEFFFD;\n$light_aqua_500: #3CFFF8;\n$light_aqua_700: #30CCC6;\n\n$light_orange_100: #FFEDCC;\n$light_orange_500: #FFA400;\n$light_orange_700: #CC8300;\n\n$light_info_100: #DCEFFB;\n$light_info_500: #1892E3;\n$light_info_700: #1375B6;\n\n$light_white: #FFFFFF;\n\n$light_black: #292F36;\n\n$light_black_opacity_90: rgba(41, 47, 54, 0.90);\n$light_black_opacity-80: rgba(41, 47, 54, 0.80);\n$light_black_opacity-70: rgba(41, 47, 54, 0.70);\n$light_black_opacity-60: rgba(41, 47, 54, 0.60);\n$light_black_opacity-50: rgba(41, 47, 54, 0.50);\n$light_black_opacity-40: rgba(41, 47, 54, 0.40);\n$light_black_opacity-30: rgba(41, 47, 54, 0.30);\n$light_black_opacity-20: rgba(41, 47, 54, 0.20);\n$light_black_opacity-10: rgba(41, 47, 54, 0.10);\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={outerBox:"jeQElweAU_GtNeIy9K9G",textWrapper:"X_k8CN8v6FKWMe7h0QZY",solidBorder:"CXirVuIL7JddB4BjhWwk",dashedBorder:"dLR1CRqRrtuCZaoNdxpw"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/teacherDashboard/teacher-dashboard.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,'.r148GL9rctMi8ic2Rxza{display:flex;flex-direction:row;min-height:100%}.vjcqcsC5UHnHu5fNdCXN{flex-grow:1;padding:20px;overflow-y:auto}._ufMiRT2rImClZHTHXsY{background-color:#292f36;display:flex;position:relative;padding-left:64px;overflow-x:auto}._ufMiRT2rImClZHTHXsY a.K4bOcbHynyN6DM_4XxwR{white-space:nowrap;text-decoration:none;background-color:#727a83;color:#fff;font-size:16px;font-weight:600;margin:10px 8px 0 0;padding:0 10px;border-radius:4px 4px 0 0}._ufMiRT2rImClZHTHXsY a.iFFFlUnwt7wjku1AH9l8{background-color:#fff;color:#007785}._ufMiRT2rImClZHTHXsY ._DQzQuZMqTQ4AaDj6ieA{height:40px;display:flex;align-items:center;text-align:center}.XhiG1LHSFBpFTYIFpEDO{max-width:970px;padding:10px 64px 64px 64px}.dZ1cN21ftqwdzRMxDKWJ{font-style:italic;text-align:center;padding-top:10px}.RRKm8HObqgvgLIDRnrnH{text-align:center;max-width:538px;margin:104px auto 82px auto}.L2s7SrfstbuNPJP2R5Eg{text-align:center;max-width:538px;margin:auto}.MAwG_rhRKPg2Qr3Aq48_{margin:24px 64px 82px 64px;text-align:center}.TB231FCuQzi61ewVP13q{height:200px;align-items:end;display:flex;justify-content:center}.OfTGsPghs6k9isqTaBNW{display:flex;justify-content:space-between}.d0KdEv8rn7naofB9JwqY{padding:0 64px}.d0KdEv8rn7naofB9JwqY h1{font-family:"Barlow Semi Condensed Medium","Noto Sans","Noto Sans Math","Noto Sans Arabic","Noto Sans Armenian","Noto Sans Bengali","Noto Sans SC","Noto Sans TC","Noto Sans Devanagari","Noto Sans Georgian","Noto Sans Hebrew","Noto Sans JP","Noto Sans Kannada","Noto Sans Khmer","Noto Sans KR","Noto Sans Myanmar","Noto Sans Sinhala","Noto Sans Tamil","Noto Sans Telugu","Noto Sans Thai","Noto Sans Thaana",sans-serif;font-weight:600;font-size:34px;color:#292f36;line-height:42px;margin-top:18px}.n7rpdhnG6mIZfM70nNjU{margin-top:12px}.l8gYGLAH5fYSyauaGD6j{margin-inline-end:8px;color:#8c52ba}.l8gYGLAH5fYSyauaGD6j:hover,.l8gYGLAH5fYSyauaGD6j :active,.l8gYGLAH5fYSyauaGD6j :visited,.l8gYGLAH5fYSyauaGD6j :focus-visible{color:#8c52ba}._VkciawW6i8aF2Krqekv{margin-bottom:8px}.r5TWkKyCpKGzB7lR2OQi{display:flex;flex-direction:column-reverse}.l1ZcMn86WVEtMfMtwzB8{display:flex;margin-bottom:5px}.GstPHhi_pXMjWq6OgTwb{display:inline-block;background-color:#8c52ba;color:#fff;text-align:center;padding:10px 20px;border-radius:5px;text-decoration:none;height:auto;line-height:24px;font-weight:600}.GstPHhi_pXMjWq6OgTwb:hover{background-color:#6c468a;color:#fff;text-decoration:none}.GstPHhi_pXMjWq6OgTwb:focus{outline:#009eb0 solid 2px;outline-offset:2px;color:#fff;text-decoration:none}.nOQrendyXUo0K9rMKg74{padding-top:24px}.PoYjg6Og_fERdeAt26oG{text-align:left}',"",{version:3,sources:["webpack://./src/templates/teacherDashboard/teacher-dashboard.module.scss","webpack://./../shared/css/color.scss","webpack://./../shared/css/style-constants.scss","webpack://./../frontend/packages/component-library-styles/font.scss"],names:[],mappings:"AAIA,sBACE,YAAA,CACA,kBAAA,CACA,eAAA,CAGF,sBACE,WAAA,CACA,YAAA,CACA,eAAA,CAGF,sBACE,wBCoKa,CDnKb,YAAA,CACA,iBAAA,CACA,iBAAA,CACA,eAAA,CAEA,6CACE,kBAAA,CACA,oBAAA,CACA,wBCwJa,CDvJb,UC8IY,CD7IZ,cAAA,CACA,eAAA,CACA,mBAAA,CACA,cAAA,CACA,yBAAA,CAGF,6CACE,qBCqIY,CDpIZ,aAAA,CAGF,4CACE,WAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CAIJ,sBACE,eEpCc,CFqCd,2BAAA,CAGF,sBACE,iBAAA,CACA,iBAAA,CACA,gBAAA,CAGF,sBACE,iBAAA,CACA,eAAA,CACA,2BAAA,CAGF,sBACE,iBAAA,CACA,eAAA,CACA,WAAA,CAGF,sBACE,0BAAA,CACA,iBAAA,CAGF,sBACE,YAAA,CACA,eAAA,CACA,YAAA,CACA,sBAAA,CAGF,sBACE,YAAA,CACA,6BAAA,CAEA,sBACE,cAAA,CAEA,yBACE,gaGsCuB,CHrCvB,eAAA,CACA,cAAA,CACA,aCrFS,CDsFT,gBAAA,CACA,eAAA,CAIJ,sBACE,eAAA,CAEA,sBACE,qBAAA,CACA,aC2FgB,CDzFhB,8HAIE,aCqFc,CDhFpB,sBACE,iBAAA,CAGF,sBACE,YAAA,CACA,6BAAA,CAGF,sBACE,YAAA,CACA,iBAAA,CAIJ,sBACE,oBAAA,CACA,wBCtGO,CDuGP,UCnHM,CDoHN,iBAAA,CACA,iBAAA,CACA,iBAAA,CACA,oBAAA,CACA,WAAA,CACA,gBAAA,CACA,eAAA,CAEA,4BACE,wBCOmB,CDNnB,UC9HI,CD+HJ,oBAAA,CAGF,4BACE,yBAAA,CACA,kBAAA,CACA,UCrII,CDsIJ,oBAAA,CAIJ,sBACE,gBAAA,CAGF,sBACE,eAAA",sourcesContent:["@import 'color.scss';\n@import '@code-dot-org/component-library-styles/font';\n@import 'style-constants';\n\n.pageContainer {\n display: flex;\n flex-direction: row;\n min-height: 100%;\n}\n\n.content {\n flex-grow: 1;\n padding: 20px;\n overflow-y: auto;\n}\n\n.navContainer {\n background-color: $neutral_dark;\n display: flex;\n position: relative;\n padding-left: 64px;\n overflow-x: auto;\n\n a.linkContainer {\n white-space: nowrap;\n text-decoration: none;\n background-color: $neutral_dark70;\n color: $neutral_white;\n font-size: 16px;\n font-weight: 600;\n margin: 10px 8px 0 0;\n padding: 0 10px;\n border-radius: 4px 4px 0 0;\n }\n\n a.activeLinkContainer {\n background-color: $neutral_white;\n color: #007785;\n }\n\n .link {\n height: 40px;\n display: flex;\n align-items: center;\n text-align: center;\n }\n}\n\n.dashboardPage {\n max-width: $content-width;\n padding: 10px 64px 64px 64px;\n}\n\n.text {\n font-style: italic;\n text-align: center;\n padding-top: 10px;\n}\n\n.emptyClassroom {\n text-align: center;\n max-width: 538px;\n margin: 104px auto 82px auto;\n}\n\n.emptyClassroomProgress {\n text-align: center;\n max-width: 538px;\n margin: auto;\n}\n\n.emptyClassroomDiv {\n margin: 24px 64px 82px 64px;\n text-align: center;\n}\n\n.emptyClassroomImage {\n height: 200px;\n align-items: end;\n display: flex;\n justify-content: center;\n}\n\n.header {\n display: flex;\n justify-content: space-between;\n\n &Container {\n padding: 0 64px;\n\n & h1 {\n font-family: $barlowSemiCondensed-medium;\n font-weight: 600;\n font-size: 34px;\n color: $darkest_gray;\n line-height: 42px;\n margin-top: 18px;\n }\n }\n\n &Link {\n margin-top: 12px;\n\n &Chevron {\n margin-inline-end: 8px;\n color: $light_secondary_500;\n\n &:hover,\n :active,\n :visited,\n :focus-visible {\n color: $light_secondary_500;\n }\n }\n }\n\n &Curriculum {\n margin-bottom: 8px;\n }\n\n &RightColumn {\n display: flex;\n flex-direction: column-reverse;\n }\n\n &ButtonSection {\n display: flex;\n margin-bottom: 5px;\n }\n}\n\n.navLink {\n display: inline-block;\n background-color: $purple;\n color: $white;\n text-align: center;\n padding: 10px 20px;\n border-radius: 5px;\n text-decoration: none;\n height: auto;\n line-height: 24px;\n font-weight: 600;\n\n &:hover {\n background-color: $brand_secondary_dark;\n color: $white;\n text-decoration: none;\n }\n\n &:focus {\n outline: $brand_primary_default solid 2px;\n outline-offset: 2px;\n color: $white;\n text-decoration: none;\n }\n}\n\n.topPadding {\n padding-top: 24px;\n}\n\n.progressHeaderV1 {\n text-align: left;\n}\n","// colors from https://www.dropbox.com/s/ycjiwt8vxlmv2ih/Code.org_stylesheet_v2_09.05.13.pdf\n\n// Please keep this file simple; it should only contain color definitions\n// and aliases. Variables defined in this file are exported to\n// apps/src/util/color.js during the apps build process.\n\n$black: #000;\n$background_black: #121416;\n$dark_gray: #2D3139;\n$darkest_gray: #292F36;\n$dark_slate_gray: #282c34;\n$darkest_slate_gray: #25292d;\n$dark_charcoal: #4d575f;\n$charcoal: #5b6770;\n$light_gray: #949ca2;\n$lighter_gray: #c6cacd;\n$lightest_gray: #e7e8ea;\n$background_gray: #f2f2f2;\n$dimgray: #696969;\n$white: #fff;\n$default_blue: #3670b3;\n\n$dark_teal: #0094a3;\n$teal: #0093a4;\n$applab_button_teal: #1abc9c;\n$light_teal: #59cad3;\n$lightish_teal: #80d6de;\n$lighter_teal: #a6e3e8;\n$lightest_teal: #d9f3f5;\n$ai_rubric_cyan: #3cfff8;\n\n$purple: #8c52ba;\n$light_purple: #a69bc1;\n$lighter_purple: #cfc9de;\n$lightest_purple: #ebe8f1;\n\n$cyan: #0094ca;\n$light_cyan: #59b9dc;\n$lighter_cyan: #a6daed;\n$lightest_cyan: #d9eff7;\n$almost_white_cyan: #f5fcff;\n\n$orange: #ffa400;\n$light_orange: #ffc459;\n$lighter_orange: #ffe0a6;\n$lightest_orange: #fff2d9;\n$dark_orange: #ff8600;\n\n$green: #b9bf15;\n$light_green: #d1d567;\n$lighter_green: #e7e9ad;\n$lightest_green: #f5f5dc;\n$highlight_green: #8afc9b;\n\n$yellow: #ffb81d;\n$light_yellow: #ffdb74;\n$lighter_yellow: #ffebb5;\n$lightest_yellow: #fff7df;\n\n$goldenrod: #daa520;\n\n$header_text: $white;\n$bkgnd_color: $teal;\n$inset_color: $lighter_gray;\n$dark_color: $purple;\n$hdr_color: $purple;\n\n// Some extra colors.\n$red: #c00;\n$lightest_red: #fcc;\n$dark_red: #d62911;\n$realgreen: #008000;\n$realyellow: #ff0;\n$mustardyellow: #efcd1c;\n$twitter_blue: #00aced;\n$facebook_blue: #3b5998;\n$linkedin_blue: #0077B5;\n$dark_blue: #00647f;\n$blockly_flyout_gray: #ddd;\n$default_text: #333;\n$border_gray: #bbb;\n$border_light_gray: #d8d8d8;\n$table_header: #ececec;\n$table_light_row: #fcfcfc;\n$table_dark_row: #f4f4f4;\n\n// Progress colors.\n$level_submitted: $purple;\n$level_perfect: rgb(14, 190, 14);\n$level_passed: rgb(159, 212, 159);\n$level_attempted: $realyellow;\n$level_not_tried: #fefefe;\n$level_current: $orange;\n$level_review_rejected: $red;\n$level_review_accepted: rgb(11, 142, 11); // TODO: $level_passed;\n$assessment: $cyan;\n$workspace_running_background: #e5e5e5;\n\n// Experimental Sprite Lab validation colors.\n$dark_purple: #682A77;\n$bright_green: #0ebe0e;\n$neon_pink: #e9118f;\n\n// Links (used in apps).\n$link_color: #0596ce;\n\n// Shadow.\n$shadow: rgba(0, 0, 0, 0.3);\n\n// Colors that are taken from bootstrap, and not necessarily part of our core theme.\n$bootstrap_button_blue: #337ab7;\n$bootstrap_button_red: #d9534f;\n$bootstrap_error_background: #f2dede;\n$bootstrap_error_text: #b94a48;\n$bootstrap_v3_error_text: #a94442;\n$bootstrap_error_border: #ebccd1;\n$bootstrap_warning_background: #fcf8e3;\n$bootstrap_warning_text: #c09853;\n$bootstrap_warning_border: #faebcc;\n$bootstrap_border_color: #cccccc;\n$bootstrap_success_background: #dff0d8;\n$bootstrap_success_text: #468847;\n$bootstrap_success_border: #d6e9c6;\n\n// Colors taken from droplet, not part of our core theme.\n$droplet_light_green: #d3e965;\n$droplet_blue: #64b5f6;\n$droplet_bright_blue: #19c3e1;\n$droplet_yellow: #fff176;\n$droplet_orange: #ffb74d;\n$droplet_red: #f78183;\n$droplet_cyan: #4dd0e1;\n$droplet_pink: #f57ac6;\n$droplet_purple: #bb77c7;\n$droplet_green: #68d995;\n$droplet_white: $white;\n\n// Oceans: deep blue background.\n$oceans_deep_blue: rgb(2, 0, 28);\n\n// Dark theme background (used by default in Music Lab)\n$dark_black: #121212;\n\n// ===----===----===---- Phase 1 Colors: ----===----===----===\n// Brand\n$brand_primary_light: #E0F8F9;\n$brand_primary_default: #009EB0;\n$brand_primary_dark: #007785;\n\n$brand_secondary_light: #E0D1EC;\n$brand_secondary_default: #8C52BA;\n$brand_secondary_dark: #6C468A;\n\n$brand_accent_default: #ED6060;\n\n$brand_teal_5: #DFF2F4;\n\n//Product\n$product_affirmative_default: #3EA33E;\n\n$product_negative_light: #FDEBE9;\n$product_negative_default: #E5311A;\n$product_negative_dark: #AA2513;\n\n$product_caution_default: #F9CB28;\n\n$product_information_default: #007ACC;\n\n// Neutral\n$neutral_white: #FFFFFF;\n$neutral_light: #F7F8FA;\n$neutral_gray10: #EAEBEB;\n$neutral_dark10: #EAECEF;\n$neutral_dark20: #D1D4D8;\n$neutral_dark30: #BEC2C7;\n$neutral_dark40: #ABB0B6;\n$neutral_dark50: #989EA5;\n$neutral_dark60: #858C94;\n$neutral_dark70: #727A83;\n$neutral_dark80: #5F6872;\n$neutral_dark90: #4C5661;\n$neutral_dark: #292F36;\n\n//Brands\n$google_brand_color: #0F9D58;\n$microsoft_brand_color: #FFB900;\n$facebook_brand_color: #3B5998;\n$clever_brand_color: #1464FF;\n\n// ===----===----===---- Design system colors: ----===----===----===\n\n$light_primary_100: #BFE4E8;\n$light_primary_500: #0093A4;\n$light_primary_700: #007785;\n\n$light_secondary_100: #E2D4EE;\n$light_secondary_500: #8C52BA;\n$light_secondary_700: #6C468A;\n\n$light_gray_50: #F7F8FA;\n$light_gray_100: #EAECEF;\n$light_gray_200: #D1D4D8;\n$light_gray_300: #BEC2C7;\n$light_gray_400: #ABB0B6;\n$light_gray_500: #989EA5;\n$light_gray_600: #858C94;\n$light_gray_700: #727A83;\n$light_gray_800: #5F6872;\n$light_gray_900: #4C5661;\n$light_gray_950: #394450;\n\n$light_affirmative_100: #E2F1E2;\n$light_affirmative_500: #3EA33E;\n$light_affirmative_700: #2D742D;\n\n$light_negative_100: #FBE0DD;\n$light_negative_500: #E5311A;\n$light_negative_700: #B24949;\n\n$light_caution_100: #FEF7DF;\n$light_caution_500: #F9CB28;\n$light_caution_700: #C7A220;\n\n$light_accent_100: #FAD7D7;\n$light_accent_500: #ED6060;\n$light_accent_700: #D84C4C;\n\n$light_aqua_100: #CEFFFD;\n$light_aqua_500: #3CFFF8;\n$light_aqua_700: #30CCC6;\n\n$light_orange_100: #FFEDCC;\n$light_orange_500: #FFA400;\n$light_orange_700: #CC8300;\n\n$light_info_100: #DCEFFB;\n$light_info_500: #1892E3;\n$light_info_700: #1375B6;\n\n$light_white: #FFFFFF;\n\n$light_black: #292F36;\n\n$light_black_opacity_90: rgba(41, 47, 54, 0.90);\n$light_black_opacity-80: rgba(41, 47, 54, 0.80);\n$light_black_opacity-70: rgba(41, 47, 54, 0.70);\n$light_black_opacity-60: rgba(41, 47, 54, 0.60);\n$light_black_opacity-50: rgba(41, 47, 54, 0.50);\n$light_black_opacity-40: rgba(41, 47, 54, 0.40);\n$light_black_opacity-30: rgba(41, 47, 54, 0.30);\n$light_black_opacity-20: rgba(41, 47, 54, 0.20);\n$light_black_opacity-10: rgba(41, 47, 54, 0.10);\n","// Common styles and measures accessible from all stylesheets\n\n// Height of workspace headers (above actual blockly/droplet space, beneath\n// site header)\n$workspace-headers-height: 30px;\n\n// Width of horizontal and vertical resize bars\n$resize-bar-width: 13px;\n\n// Opacity of elements that are dragged out to be deleted\n$delete-opacity: 0.5;\n\n// Width of pegasus content as of 2017 redesign\n$content-width: 970px;\n","// Common site-wide fonts, put here for easy access from all scss files\n\n// Please note (!): use only single quotes (' ') for strings (!) to allow our custom converter to work properly.\n// This file is being transpiled to js object.\n// (So it can be used in jsx/tsx files for inline styles. This is made mostly for legacy.\n// Try to avoid use of inline styles if you're creating new component).\n// Keeping that in mind -\n\n/* stylelint-disable import-notation */\n\n$figtree-font: 'Figtree';\n$noto-sans-fonts: 'Noto Sans', 'Noto Sans Math', 'Noto Sans Arabic',\n 'Noto Sans Armenian', 'Noto Sans Bengali', 'Noto Sans SC', 'Noto Sans TC',\n 'Noto Sans Devanagari', 'Noto Sans Georgian', 'Noto Sans Hebrew',\n 'Noto Sans JP', 'Noto Sans Kannada', 'Noto Sans Khmer', 'Noto Sans KR',\n 'Noto Sans Myanmar', 'Noto Sans Sinhala', 'Noto Sans Tamil',\n 'Noto Sans Telugu', 'Noto Sans Thai', 'Noto Sans Thaana';\n$main-font: $figtree-font, $noto-sans-fonts, sans-serif;\n$thin-font-weight: 100;\n$extra-light-font-weight: 200;\n$light-font-weight: 300;\n$regular-font-weight: 400;\n$medium-font-weight: 500;\n$semi-bold-font-weight: 600;\n$bold-font-weight: 700;\n$extra-bold-font-weight: 800;\n$black-font-weight: 900;\n\n@mixin main-font-thin {\n font-family: $main-font;\n font-weight: $thin-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-thin-italic {\n @include main-font-thin;\n font-style: italic;\n}\n\n@mixin main-font-extra-light {\n font-family: $main-font;\n font-weight: $extra-light-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-extra-light-italic {\n @include main-font-extra-light;\n font-style: italic;\n}\n\n@mixin main-font-light {\n font-family: $main-font;\n font-weight: $light-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-light-italic {\n @include main-font-light;\n font-style: italic;\n}\n\n@mixin main-font-regular {\n font-family: $main-font;\n font-weight: $regular-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-regular-italic {\n @include main-font-regular;\n font-style: italic;\n}\n\n@mixin main-font-medium {\n font-family: $main-font;\n font-weight: $medium-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-medium-italic {\n @include main-font-medium;\n font-style: italic;\n}\n\n@mixin main-font-semi-bold {\n font-family: $main-font;\n font-weight: $semi-bold-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-semi-bold-italic {\n @include main-font-semi-bold;\n font-style: italic;\n}\n\n@mixin main-font-bold {\n font-family: $main-font;\n font-weight: $bold-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-bold-italic {\n @include main-font-bold;\n font-style: italic;\n}\n\n@mixin main-font-extra-bold {\n font-family: $main-font;\n font-weight: $extra-bold-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-extra-bold-italic {\n @include main-font-extra-bold;\n font-style: italic;\n}\n\n@mixin main-font-black {\n font-family: $main-font;\n font-weight: $black-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-black-italic {\n @include main-font-black;\n font-style: italic;\n}\n\n$barlowSemiCondensed-semibold: 'Barlow Semi Condensed Semibold',\n $noto-sans-fonts, sans-serif;\n$barlowSemiCondensed-medium: 'Barlow Semi Condensed Medium', $noto-sans-fonts,\n sans-serif;\n\n/*\n Font Awesome S3 Bucket URLs\n Current version: 6.6.0\n If you are changing the location of these files,\n see the readme in this directory for more detail on manual steps to take when uploading new files.\n */\n$font-awesome-core-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/fontawesome.min.css';\n$font-awesome-brands-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/brands.min.css';\n$font-awesome-solid-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/solid.min.css';\n$font-awesome-regular-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/regular.min.css';\n$font-awesome-v4-fonts-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/v4-font-face.min.css';\n$font-awesome-v4-shims-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/v4-shims.min.css';\n$font-awesome-v4-shims-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/v4-shims.min.css';\n$font-awesome-duotone-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/duotone.min.css';\n$font-awesome-custom-icons-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/custom-icons.min.css';\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={pageContainer:"r148GL9rctMi8ic2Rxza",content:"vjcqcsC5UHnHu5fNdCXN",navContainer:"_ufMiRT2rImClZHTHXsY",linkContainer:"K4bOcbHynyN6DM_4XxwR",activeLinkContainer:"iFFFlUnwt7wjku1AH9l8",link:"_DQzQuZMqTQ4AaDj6ieA",dashboardPage:"XhiG1LHSFBpFTYIFpEDO",text:"dZ1cN21ftqwdzRMxDKWJ",emptyClassroom:"RRKm8HObqgvgLIDRnrnH",emptyClassroomProgress:"L2s7SrfstbuNPJP2R5Eg",emptyClassroomDiv:"MAwG_rhRKPg2Qr3Aq48_",emptyClassroomImage:"TB231FCuQzi61ewVP13q",header:"OfTGsPghs6k9isqTaBNW",headerContainer:"d0KdEv8rn7naofB9JwqY",headerLink:"n7rpdhnG6mIZfM70nNjU",headerLinkChevron:"l8gYGLAH5fYSyauaGD6j",headerCurriculum:"_VkciawW6i8aF2Krqekv",headerRightColumn:"r5TWkKyCpKGzB7lR2OQi",headerButtonSection:"l1ZcMn86WVEtMfMtwzB8",navLink:"GstPHhi_pXMjWq6OgTwb",topPadding:"nOQrendyXUo0K9rMKg74",progressHeaderV1:"PoYjg6Og_fERdeAt26oG"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/nise sync recursive":module=>{function webpackEmptyContext(req){var e=new Error("Cannot find module '"+req+"'");throw e.code="MODULE_NOT_FOUND",e}webpackEmptyContext.keys=()=>[],webpackEmptyContext.resolve=webpackEmptyContext,webpackEmptyContext.id="./node_modules/nise sync recursive",module.exports=webpackEmptyContext},"./src/sharedComponents/userFeedback/FeedbackBanner.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_FeedbackBanner_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/sharedComponents/userFeedback/FeedbackBanner.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_FeedbackBanner_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_FeedbackBanner_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_FeedbackBanner_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_FeedbackBanner_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/content-container.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_content_container_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/content-container.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_content_container_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_content_container_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_content_container_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_content_container_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_age_gated_sections_modal_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_age_gated_sections_modal_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_age_gated_sections_modal_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_age_gated_sections_modal_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_age_gated_sections_modal_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/studioHomepages/borderedCallToAction.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_borderedCallToAction_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/studioHomepages/borderedCallToAction.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_borderedCallToAction_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_borderedCallToAction_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_borderedCallToAction_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_borderedCallToAction_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/teacherDashboard/teacher-dashboard.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_teacher_dashboard_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/teacherDashboard/teacher-dashboard.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_teacher_dashboard_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_teacher_dashboard_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_teacher_dashboard_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_teacher_dashboard_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/redux/lti/ltiFeedbackReducer.ts":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=_.trys,(t=t.length>0&&t[t.length-1])||6!==op[0]&&2!==op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createLtiFeedback=exports.fetchLtiFeedback=void 0,exports.ltiFeedbackReducer=function ltiFeedbackReducer(state,action){switch(action.type){case LTI_FEEDBACK_FETCH_REQUEST:return __assign(__assign({},state),{isLoading:!0});case LTI_FEEDBACK_FETCH_SUCCESS:return __assign(__assign({},state),{isLoading:!1,ltiFeedback:action.ltiFeedback});case LTI_FEEDBACK_FETCH_FAILURE:return __assign(__assign({},state),{isLoading:!1,error:action.error});case LTI_FEEDBACK_CREATE_REQUEST:return __assign(__assign({},state),{isLoading:!0});case LTI_FEEDBACK_CREATE_SUCCESS:return __assign(__assign({},state),{isLoading:!1,ltiFeedback:action.ltiFeedback});case LTI_FEEDBACK_CREATE_FAILURE:return __assign(__assign({},state),{isLoading:!1,error:action.error});default:return state}};var AuthenticityTokenStore_1=__webpack_require__("./src/util/AuthenticityTokenStore.ts"),LTI_FEEDBACK_FETCH_REQUEST="lti/feedback/fetchRequest",LTI_FEEDBACK_FETCH_SUCCESS="lti/feedback/fetchSuccess",LTI_FEEDBACK_FETCH_FAILURE="lti/feedback/fetchFailure",LTI_FEEDBACK_CREATE_REQUEST="lti/feedback/createRequest",LTI_FEEDBACK_CREATE_SUCCESS="lti/feedback/createSuccess",LTI_FEEDBACK_CREATE_FAILURE="lti/feedback/createFailure";exports.fetchLtiFeedback=function(dispatch){dispatch({type:LTI_FEEDBACK_FETCH_REQUEST}),fetch("/lti/v1/feedback",{method:"GET",headers:{"Content-Type":"application/json"}}).then((function(response){if(!response.ok)throw new Error("Failed to fetch feedback");return response.json()})).then((function(ltiFeedback){dispatch({type:LTI_FEEDBACK_FETCH_SUCCESS,ltiFeedback})})).catch((function(error){dispatch({type:LTI_FEEDBACK_FETCH_FAILURE,error:error instanceof Error?error.message:"An error occurred"})}))};exports.createLtiFeedback=function(dispatch,ltiFeedback){return __awaiter(void 0,void 0,void 0,(function(){var _a,_b,_c,_d,_e;return __generator(this,(function(_f){switch(_f.label){case 0:return dispatch({type:LTI_FEEDBACK_CREATE_REQUEST}),_a=fetch,_b=["/lti/v1/feedback"],_d={method:"POST"},_e={"Content-Type":"application/json"},_c="X-CSRF-Token",[4,(0,AuthenticityTokenStore_1.getAuthenticityToken)()];case 1:return _a.apply(void 0,_b.concat([(_d.headers=(_e[_c]=_f.sent(),_e),_d.body=JSON.stringify({lti_feedback:ltiFeedback}),_d)])).then((function(response){if(!response.ok)throw new Error("Failed to create feedback");return response.json()})).then((function(ltiFeedback){dispatch({type:LTI_FEEDBACK_CREATE_SUCCESS,ltiFeedback})})).catch((function(error){dispatch({type:LTI_FEEDBACK_CREATE_FAILURE,error:error instanceof Error?error.message:"An error occurred"})})),[2]}}))}))}},"./src/sharedComponents/userFeedback/FeedbackBanner.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BANNER_STATUS=void 0;var react_1=__importDefault(__webpack_require__("./node_modules/react/index.js")),react_bootstrap_1=__webpack_require__("./node_modules/react-bootstrap/es/index.js"),FontAwesome_1=__importDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx"));__webpack_require__("./src/sharedComponents/userFeedback/FeedbackBanner.scss"),exports.BANNER_STATUS=Object.freeze({UNSET:"",UNAVAILABLE:"unavailable",UNANSWERED:"unanswered",ANSWERED:"answered",PREVIOUSLY_ANSWERED:"previously_answered",CLOSED:"closed"});var FeedbackBanner=function(_a){var alertKey=_a.alertKey,answerStatus=_a.answerStatus,answer=_a.answer,close=_a.close,isLoading=_a.isLoading,closeLabel=_a.closeLabel,question=_a.question,positiveAnswer=_a.positiveAnswer,negativeAnswer=_a.negativeAnswer,shareMore=_a.shareMore,shareMoreLink=_a.shareMoreLink,shareMoreLinkText=_a.shareMoreLinkText,isBannerVisible=react_1.default.useMemo((function(){return[exports.BANNER_STATUS.UNANSWERED,exports.BANNER_STATUS.ANSWERED].includes(answerStatus)}),[answerStatus]);return react_1.default.createElement(react_bootstrap_1.Fade,{in:isBannerVisible,unmountOnExit:!0},react_1.default.createElement(react_bootstrap_1.Alert,{key:alertKey,bsStyle:"info",className:"feedback-banner","aria-labelledby":"feedback-banner-title",closeLabel,onDismiss:answerStatus===exports.BANNER_STATUS.ANSWERED?close:void 0},react_1.default.createElement("span",{className:"feedback-banner-greeting"},react_1.default.createElement(FontAwesome_1.default,{icon:"hand-wave",className:"fa-fw",title:"","aria-hidden":"true"})),react_1.default.createElement(react_bootstrap_1.Fade,{in:!isLoading},answerStatus===exports.BANNER_STATUS.UNANSWERED?react_1.default.createElement("span",null,react_1.default.createElement("span",{id:"feedback-banner-title",className:"feedback-title","aria-hidden":"true"},question),react_1.default.createElement("span",{className:"feedback"},react_1.default.createElement("button",{type:"button",title:positiveAnswer,onClick:function(){return answer(!0)}},react_1.default.createElement(FontAwesome_1.default,{icon:"thumbs-o-up",className:"fa-fw",title:"","aria-hidden":"true"})),react_1.default.createElement("button",{type:"button",title:negativeAnswer,onClick:function(){return answer(!1)}},react_1.default.createElement(FontAwesome_1.default,{icon:"thumbs-o-down",className:"fa-fw",title:"","aria-hidden":"true"})))):react_1.default.createElement("span",{className:"share-more"},react_1.default.createElement("span",{id:"feedback-banner-title","aria-hidden":"true"},shareMore),react_1.default.createElement("span",{"aria-hidden":"true"}," "),react_1.default.createElement("a",{id:"feedback-banner-share-more-link",href:shareMoreLink,target:"_blank",rel:"noreferrer"},shareMoreLinkText)))))};exports.default=FeedbackBanner;try{FeedbackBanner.displayName="FeedbackBanner",FeedbackBanner.__docgenInfo={description:"",displayName:"FeedbackBanner",props:{alertKey:{defaultValue:null,description:"",name:"alertKey",required:!0,type:{name:"string"}},answerStatus:{defaultValue:null,description:"",name:"answerStatus",required:!0,type:{name:"string"}},answer:{defaultValue:null,description:"",name:"answer",required:!0,type:{name:"(satisfied: boolean) => void"}},close:{defaultValue:null,description:"",name:"close",required:!0,type:{name:"() => void"}},isLoading:{defaultValue:null,description:"",name:"isLoading",required:!0,type:{name:"boolean"}},closeLabel:{defaultValue:null,description:"",name:"closeLabel",required:!0,type:{name:"string"}},question:{defaultValue:null,description:"",name:"question",required:!0,type:{name:"string"}},positiveAnswer:{defaultValue:null,description:"",name:"positiveAnswer",required:!0,type:{name:"string"}},negativeAnswer:{defaultValue:null,description:"",name:"negativeAnswer",required:!0,type:{name:"string"}},shareMore:{defaultValue:null,description:"",name:"shareMore",required:!0,type:{name:"string"}},shareMoreLink:{defaultValue:null,description:"",name:"shareMoreLink",required:!0,type:{name:"string"}},shareMoreLinkText:{defaultValue:null,description:"",name:"shareMoreLinkText",required:!0,type:{name:"string"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/sharedComponents/userFeedback/FeedbackBanner.tsx#FeedbackBanner"]={docgenInfo:FeedbackBanner.__docgenInfo,name:"FeedbackBanner",path:"src/sharedComponents/userFeedback/FeedbackBanner.tsx#FeedbackBanner"})}catch(__react_docgen_typescript_loader_error){}},"./src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__read=this&&this.__read||function(o,n){var m="function"==typeof Symbol&&o[Symbol.iterator];if(!m)return o;var r,e,i=m.call(o),ar=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)ar.push(r.value)}catch(error){e={error}}finally{try{r&&!r.done&&(m=i.return)&&m.call(i)}finally{if(e)throw e.error}}return ar},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__importStar(__webpack_require__("./node_modules/react/index.js")),react_redux_1=__webpack_require__("./node_modules/react-redux/es/index.js"),ltiFeedbackReducer_1=__webpack_require__("./src/redux/lti/ltiFeedbackReducer.ts"),utils_1=__webpack_require__("./src/utils.js"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),FeedbackBanner_1=__importStar(__webpack_require__("./src/sharedComponents/userFeedback/FeedbackBanner.tsx")),LtiFeedbackBanner=function(){var currentUser=(0,react_redux_1.useSelector)((function(state){return state.currentUser})),key=(0,react_1.useMemo)((function(){return currentUser?"lti-fb-".concat(currentUser.uuid):""}),[currentUser]),_a=__read((0,react_1.useReducer)(ltiFeedbackReducer_1.ltiFeedbackReducer,{isLoading:!1}),2),_b=_a[0],isLoading=_b.isLoading,error=_b.error,ltiFeedback=_b.ltiFeedback,ltiFeedbackAction=_a[1],_c=__read((0,react_1.useState)((function(){return FeedbackBanner_1.BANNER_STATUS.UNSET})),2),status=_c[0],setStatus=_c[1];(0,react_1.useEffect)((function(){currentUser&¤tUser.isLti&¤tUser.isTeacher||setStatus(FeedbackBanner_1.BANNER_STATUS.UNAVAILABLE);var status=(0,utils_1.tryGetLocalStorage)(key,FeedbackBanner_1.BANNER_STATUS.UNSET);status===FeedbackBanner_1.BANNER_STATUS.UNAVAILABLE&&(status=FeedbackBanner_1.BANNER_STATUS.UNSET),!status&&(0,ltiFeedbackReducer_1.fetchLtiFeedback)(ltiFeedbackAction),setStatus(status)}),[currentUser,key]),(0,react_1.useEffect)((function(){key&&(0,utils_1.trySetLocalStorage)(key,status)}),[key,status]),(0,react_1.useEffect)((function(){null===ltiFeedback?setStatus(FeedbackBanner_1.BANNER_STATUS.UNANSWERED):ltiFeedback&&setStatus(FeedbackBanner_1.BANNER_STATUS.ANSWERED)}),[ltiFeedback]),(0,react_1.useEffect)((function(){error&&setStatus(FeedbackBanner_1.BANNER_STATUS.UNSET)}),[error]);return react_1.default.createElement(FeedbackBanner_1.default,{alertKey:key,answerStatus:status,answer:function(satisfied){return(0,ltiFeedbackReducer_1.createLtiFeedback)(ltiFeedbackAction,{satisfied})},close:function(){return setStatus(FeedbackBanner_1.BANNER_STATUS.CLOSED)},isLoading,closeLabel:locale_1.default.closeDialog(),question:locale_1.default.lti_feedbackBanner_question(),positiveAnswer:locale_1.default.lti_feedbackBanner_answer_positive(),negativeAnswer:locale_1.default.lti_feedbackBanner_answer_negative(),shareMore:locale_1.default.lti_feedbackBanner_shareMore_text(),shareMoreLink:sharedConstants_1.LmsLinks.ADDITIONAL_FEEDBACK_URL,shareMoreLinkText:locale_1.default.lti_feedbackBanner_shareMore_link()})};exports.default=LtiFeedbackBanner;try{LtiFeedbackBanner.displayName="LtiFeedbackBanner",LtiFeedbackBanner.__docgenInfo={description:"LtiFeedbackBanner component\nThis component is responsible for displaying the LMS Feedback banner for LTI teachers.\nThe banner asks the teacher for feedback and provides options to respond.\nThe banner's visibility and state are managed through local storage and state variables.",displayName:"LtiFeedbackBanner",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx#LtiFeedbackBanner"]={docgenInfo:LtiFeedbackBanner.__docgenInfo,name:"LtiFeedbackBanner",path:"src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx#LtiFeedbackBanner"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/GlobalEditionWrapper.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GlobalEditionWrapper=void 0;var react_1=__importDefault(__webpack_require__("./node_modules/react/index.js")),globalEdition_1=__webpack_require__("./src/util/globalEdition.ts"),GlobalEditionWrapper=function(_a){var component=_a.component,componentId=_a.componentId,_b=_a.props,props=void 0===_b?{}:_b,pageConfig=((0,globalEdition_1.currentGlobalConfiguration)().pages||[]).filter((function(filterInfo){return RegExp("^/global/.*"+filterInfo.path+"(?:/.*)?").test(window.location.pathname)&&componentId in filterInfo.components})).slice(-1)[0],visible=!pageConfig||!1!==pageConfig.components[componentId],GlobalWrappedComponent=visible?component:function(){return null},wrappedProps=visible?pageConfig&&pageConfig.components[componentId]?__assign(__assign({},props),pageConfig.components[componentId]):props:{};return react_1.default.createElement(GlobalWrappedComponent,__assign({},wrappedProps))};exports.GlobalEditionWrapper=GlobalEditionWrapper,exports.default=exports.GlobalEditionWrapper;try{GlobalEditionWrapper.displayName="GlobalEditionWrapper",GlobalEditionWrapper.__docgenInfo={description:'Provides a wrapper around an existing component that allows it to be\nconfigured via a Global Edition configuration.\n\nThe global edition configurations are in the config directory at the\nroot of the repository. For instance: config/global_editions/fa.yml\n\nEssentially you can take an existing component like <Foo> and then wrap it\nas such:\n\n<GlobalEditionWrapper\n component={Foo}\n componentId="Foo"\n props={{\n bar: "baz",\n }}\n/>\n\nWhere the props go into the props property of the wrapper. The `componentId`\nis the name of the component which is then used to refer to it in the\nregional configuration.\n\nFor instance, in the config/global_editions/india.yml (let\'s say) we could\nhave:\n\n```\n pages:\n - path: /\n components:\n Foo: false\n```\n\nWhich will render an "EmptyComponent" and essentially hide the component when\nviewing any page in the "india" region.\n\nWe can, instead, just override properties:\n\n```\n pages:\n - path: /\n components:\n Foo:\n bar: chaz\n```\n\nThis means, in this region (as opposed to any other), the component will be\nrendered and visible, but with the \'bar\' property overriden.\n\nSee the \'pages\' section of an existing configuration for more information\non the format of the configuration and its use here.',displayName:"GlobalEditionWrapper",props:{component:{defaultValue:null,description:"",name:"component",required:!0,type:{name:"FunctionComponent<{}>"}},componentId:{defaultValue:null,description:"",name:"componentId",required:!0,type:{name:"string"}},props:{defaultValue:{value:"{}"},description:"",name:"props",required:!1,type:{name:"object"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/GlobalEditionWrapper.tsx#GlobalEditionWrapper"]={docgenInfo:GlobalEditionWrapper.__docgenInfo,name:"GlobalEditionWrapper",path:"src/templates/GlobalEditionWrapper.tsx#GlobalEditionWrapper"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgeGatedSectionsBanner=void 0;var react_1=__importStar(__webpack_require__("./node_modules/react/index.js")),react_redux_1=__webpack_require__("./node_modules/react-redux/es/index.js"),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),Notification_1=__importStar(__webpack_require__("./src/sharedComponents/Notification.jsx")),AgeGatedSectionsModal_1=__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx"),AgeGatedSectionsBanner=function(_a){var _b,_c,toggleModal=_a.toggleModal,modalOpen=_a.modalOpen,ageGatedSections=_a.ageGatedSections,currentUser=(0,react_redux_1.useSelector)((function(state){return state.currentUser})),userId=currentUser.userId,usState=null===(_b=ageGatedSections[0])||void 0===_b?void 0:_b.atRiskAgeGatedUsState,numberOfAgeGatedSections=ageGatedSections.length;(0,react_1.useEffect)((function(){var eventName,payload;eventName=AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_BANNER_SHOWN,void 0===(payload={user_id:userId,number_of_age_gated_sections:numberOfAgeGatedSections,us_state:usState})&&(payload={}),AnalyticsReporter_1.default.sendEvent(eventName,payload)}),[userId,numberOfAgeGatedSections,usState]);var startDate=null===(_c=ageGatedSections[0])||void 0===_c?void 0:_c.atRiskAgeGatedDate,startDateText=(null==startDate?void 0:startDate.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}))||"???";return react_1.default.createElement("div",{id:"uitest-age-gated-sections-banner"},react_1.default.createElement(Notification_1.default,{type:Notification_1.NotificationType.warning,notice:locale_1.default.headsUp(),details:locale_1.default.childAccountPolicy_ageGatedSectionsWarning({startDate:startDateText}),buttonText:locale_1.default.childAccountPolicy_ageGatedSectionsWarning_button(),buttonLink:"#",onButtonClick:toggleModal,dismissible:!1}),modalOpen&&react_1.default.createElement(AgeGatedSectionsModal_1.AgeGatedSectionsModal,{isOpen:modalOpen,onClose:toggleModal,ageGatedSections}))};exports.AgeGatedSectionsBanner=AgeGatedSectionsBanner;try{AgeGatedSectionsBanner.displayName="AgeGatedSectionsBanner",AgeGatedSectionsBanner.__docgenInfo={description:"",displayName:"AgeGatedSectionsBanner",props:{toggleModal:{defaultValue:null,description:"",name:"toggleModal",required:!0,type:{name:"() => void"}},modalOpen:{defaultValue:null,description:"",name:"modalOpen",required:!0,type:{name:"boolean"}},ageGatedSections:{defaultValue:null,description:"",name:"ageGatedSections",required:!0,type:{name:"Section[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx#AgeGatedSectionsBanner"]={docgenInfo:AgeGatedSectionsBanner.__docgenInfo,name:"AgeGatedSectionsBanner",path:"src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx#AgeGatedSectionsBanner"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgeGatedSectionsModal=void 0;var link_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/link/index.js")),typography_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js")),react_1=__importStar(__webpack_require__("./node_modules/react/index.js")),react_redux_1=__webpack_require__("./node_modules/react-redux/es/index.js"),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),AgeGatedSectionsTable_1=__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),BaseDialog_1=__importDefault(__webpack_require__("./src/templates/BaseDialog.jsx")),age_gated_sections_modal_module_scss_1=__importDefault(__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss")),AgeGatedSectionsModal=function(_a){var _b,_c,isOpen=_a.isOpen,onClose=_a.onClose,ageGatedSections=_a.ageGatedSections,currentUser=(0,react_redux_1.useSelector)((function(state){return state.currentUser})),reportEvent=function(eventName,payload){void 0===payload&&(payload={}),AnalyticsReporter_1.default.sendEvent(eventName,payload)},helpDocsUrl=sharedConstants_1.CapLinks.PARENTAL_CONSENT_GUIDE_URL,userId=currentUser.userId,usState=null===(_b=ageGatedSections[0])||void 0===_b?void 0:_b.atRiskAgeGatedUsState,modalClosed=function(){reportEvent(AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_MODAL_CLOSED,{user_id:userId,us_state:usState}),onClose()};(0,react_1.useEffect)((function(){reportEvent(AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_MODAL_SHOWN,{user_id:userId,us_state:usState})}),[userId,usState]);var startDate=null===(_c=ageGatedSections.find((function(section){return section.atRiskAgeGatedDate})))||void 0===_c?void 0:_c.atRiskAgeGatedDate,startDateText=(null==startDate?void 0:startDate.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}))||"???";return react_1.default.createElement(BaseDialog_1.default,{isOpen,handleClose:modalClosed,useUpdatedStyles:!0,fixedWidth:800},react_1.default.createElement("div",{className:age_gated_sections_modal_module_scss_1.default.modalContainer,"data-testid":"age-gated-sections-modal",id:"uitest-age-gated-sections-modal"},react_1.default.createElement("div",null,react_1.default.createElement(typography_1.default,{semanticTag:"h2",visualAppearance:"heading-md",className:age_gated_sections_modal_module_scss_1.default.modalHeader},locale_1.default.childAccountPolicy_ageGatedSectionsModal_header()),react_1.default.createElement("hr",null),react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},locale_1.default.childAccountPolicy_ageGatedSectionsModal_notice({startDate:startDateText})),react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},react_1.default.createElement("strong",null,locale_1.default.childAccountPolicy_ageGatedSectionsModal_action())),react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},react_1.default.createElement(link_1.default,{href:helpDocsUrl,onClick:function(){reportEvent(AnalyticsConstants_1.EVENTS.CAP_STUDENT_WARNING_LINK_CLICKED,{user_id:userId,us_state:usState})},openInNewTab:!0},locale_1.default.childAccountPolicy_ageGatedSectionsModal_readMore())),react_1.default.createElement(AgeGatedSectionsTable_1.AgeGatedSectionsTable,{ageGatedSections}),react_1.default.createElement("hr",null),react_1.default.createElement("div",{className:age_gated_sections_modal_module_scss_1.default.modalButton},react_1.default.createElement("button",{type:"button",onClick:modalClosed},locale_1.default.closeDialog())))))};exports.AgeGatedSectionsModal=AgeGatedSectionsModal;try{AgeGatedSectionsModal.displayName="AgeGatedSectionsModal",AgeGatedSectionsModal.__docgenInfo={description:"",displayName:"AgeGatedSectionsModal",props:{onClose:{defaultValue:null,description:"",name:"onClose",required:!0,type:{name:"() => void"}},isOpen:{defaultValue:null,description:"",name:"isOpen",required:!0,type:{name:"boolean"}},ageGatedSections:{defaultValue:null,description:"",name:"ageGatedSections",required:!0,type:{name:"Section[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx#AgeGatedSectionsModal"]={docgenInfo:AgeGatedSectionsModal.__docgenInfo,name:"AgeGatedSectionsModal",path:"src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx#AgeGatedSectionsModal"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__read=this&&this.__read||function(o,n){var m="function"==typeof Symbol&&o[Symbol.iterator];if(!m)return o;var r,e,i=m.call(o),ar=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)ar.push(r.value)}catch(error){e={error}}finally{try{r&&!r.done&&(m=i.return)&&m.call(i)}finally{if(e)throw e.error}}return ar},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgeGatedSectionsTable=void 0;var link_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/link/index.js")),typography_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js")),lodash_1=__webpack_require__("./node_modules/lodash/lodash.js"),react_1=__importDefault(__webpack_require__("./node_modules/react/index.js")),Table=__importStar(__webpack_require__("./node_modules/reactabular-table/dist/index.js")),sort=__importStar(__webpack_require__("./node_modules/sortabular/dist/index.js")),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),tableConstants_1=__webpack_require__("./src/templates/tables/tableConstants.js"),wrapped_sortable_1=__importDefault(__webpack_require__("./src/templates/tables/wrapped_sortable.js")),urlHelpers_1=__webpack_require__("./src/templates/teacherDashboard/urlHelpers.js"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),AgeGatedSectionsTable=function(_a){var ageGatedSections=_a.ageGatedSections,_b=__read(react_1.default.useState({0:{direction:"asc",position:0}}),2),sortingColumns=_b[0],setSortingColumns=_b[1],sortable=(0,wrapped_sortable_1.default)((function(){return sortingColumns}),(function(selectedColumn){setSortingColumns(sort.byColumn({sortingColumns,sortingOrder:{FIRST:"asc",asc:"desc",desc:"asc"},selectedColumn}))}),tableConstants_1.sortableOptions),sectionFormatter=function(name,_a){var rowData=_a.rowData;return react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},react_1.default.createElement(link_1.default,{href:(0,urlHelpers_1.teacherDashboardUrl)(rowData.section.id),onClick:function(){var eventName,payload;eventName=AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_TABLE_SECTION_NAME_LINK_CLICKED,void 0===(payload={section_id:rowData.section.id,us_state:rowData.section.atRiskAgeGatedUsState})&&(payload={}),AnalyticsReporter_1.default.sendEvent(eventName,payload)},openInNewTab:!0},name))},gradesFormatter=function(grades){return react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},grades&&grades.join(", "))},gradesColumn=function(){return{property:"grades",header:{label:locale_1.default.childAccountPolicy_ageGatedSectionsTable_gradesHeader(),props:{style:__assign({},tableConstants_1.tableLayoutStyles.headerCell)}},cell:{formatters:[gradesFormatter],props:{style:__assign({},tableConstants_1.tableLayoutStyles.cell)}}}},columns=[function(){return{property:"name",header:{label:locale_1.default.childAccountPolicy_ageGatedSectionsTable_sectionHeader(),props:{style:__assign({},tableConstants_1.tableLayoutStyles.headerCell)},transforms:[sortable]},cell:{formatters:[sectionFormatter],props:{style:__assign({},tableConstants_1.tableLayoutStyles.cell)}}}}(),gradesColumn()],sectionData=ageGatedSections.map((function(section){return{id:section.id,section,grades:section.grades,name:section.name}})),sortedData=sort.sorter({columns,sortingColumns,sort:lodash_1.orderBy})(sectionData);return react_1.default.createElement("div",null,sortedData&&0!==sortedData.length&&react_1.default.createElement(Table.Provider,{columns,style:tableConstants_1.tableLayoutStyles.table,"data-testid":"uitest-age-gated-sections-table"},react_1.default.createElement(Table.Header,null),react_1.default.createElement(Table.Body,{rows:sortedData,rowKey:"id"})))};exports.AgeGatedSectionsTable=AgeGatedSectionsTable;try{AgeGatedSectionsTable.displayName="AgeGatedSectionsTable",AgeGatedSectionsTable.__docgenInfo={description:"",displayName:"AgeGatedSectionsTable",props:{ageGatedSections:{defaultValue:null,description:"",name:"ageGatedSections",required:!0,type:{name:"Section[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx#AgeGatedSectionsTable"]={docgenInfo:AgeGatedSectionsTable.__docgenInfo,name:"AgeGatedSectionsTable",path:"src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx#AgeGatedSectionsTable"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/teacherDashboard/LoginTypeConstants.tsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LOGIN_TYPES_WITH_NO_SECTION_CODE=exports.LOGIN_TYPES_WITH_GENDER_COLUMN=exports.PICTURE_OR_WORD_LOGIN_TYPES=exports.LOGIN_TYPES_WITH_ACTIONS_COLUMN=exports.LOGIN_TYPES_WITH_PASSWORD_COLUMN=exports.NON_LMS_LOGIN_TYPES=void 0;var sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts");exports.NON_LMS_LOGIN_TYPES=[sharedConstants_1.SectionLoginType.word,sharedConstants_1.SectionLoginType.picture,sharedConstants_1.SectionLoginType.email],exports.LOGIN_TYPES_WITH_PASSWORD_COLUMN=exports.NON_LMS_LOGIN_TYPES,exports.LOGIN_TYPES_WITH_ACTIONS_COLUMN=[sharedConstants_1.SectionLoginType.word,sharedConstants_1.SectionLoginType.picture,sharedConstants_1.SectionLoginType.email,sharedConstants_1.SectionLoginType.google_classroom,sharedConstants_1.SectionLoginType.clever,sharedConstants_1.SectionLoginType.lti_v1],exports.PICTURE_OR_WORD_LOGIN_TYPES=[sharedConstants_1.SectionLoginType.word,sharedConstants_1.SectionLoginType.picture],exports.LOGIN_TYPES_WITH_GENDER_COLUMN=exports.PICTURE_OR_WORD_LOGIN_TYPES,exports.LOGIN_TYPES_WITH_NO_SECTION_CODE=[sharedConstants_1.SectionLoginType.google_classroom,sharedConstants_1.SectionLoginType.clever]}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFBQXhlLGlCQUFpQnFlLEtBQ2pCLGtCQUFBcmUsaUJBQWlCc2UsUUFDakIsa0JBQUF0ZSxpQkFBaUJDLE1BQ2pCLGtCQUFBRCxpQkFBaUI0RCxpQkFDakIsa0JBQUE1RCxpQkFBaUIwRCxPQUNqQixrQkFBQTFELGlCQUFpQjhELFFBR04sUUFBQTJhLDRCQUE4QixDQUN6QyxrQkFBQXplLGlCQUFpQnFlLEtBQ2pCLGtCQUFBcmUsaUJBQWlCc2UsU0FFTixRQUFBSSwrQkFBaUMsUUFBQUQsNEJBRWpDLFFBQUFFLGlDQUFtQyxDQUM5QyxrQkFBQTNlLGlCQUFpQjRELGlCQUNqQixrQkFBQTVELGlCQUFpQjBELE8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2hhcmVkQ29tcG9uZW50cy9Ob3RpZmljYXRpb24uanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL1NwaW5uZXIuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvQ29udGVudENvbnRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zdHVkaW9Ib21lcGFnZXMvQm9yZGVyZWRDYWxsVG9BY3Rpb24uanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvc3R1ZGlvSG9tZXBhZ2VzL0NvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbi5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zdHVkaW9Ib21lcGFnZXMvU2V0VXBTZWN0aW9ucy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zdHVkaW9Ib21lcGFnZXMvVGVhY2hlclNlY3Rpb25zLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvQWRkU2VjdGlvbkRpYWxvZy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL093bmVkUGxTZWN0aW9uc1RhYmxlLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvT3duZWRTZWN0aW9ucy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL093bmVkU2VjdGlvbnNUYWJsZS5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1BhZEFuZENlbnRlci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1BhcnRpY2lwYW50VHlwZVBpY2tlci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1Jvc3RlckRpYWxvZy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1RlYWNoZXJEYXNoYm9hcmROYXZpZ2F0aW9uLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvaW1wcmVzc2lvbkhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL3NlY3Rpb25IZWxwZXJzLmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL3VzZXJGZWVkYmFjay9GZWVkYmFja0Jhbm5lci5zY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsLm1vZHVsZS5zY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvc3R1ZGlvSG9tZXBhZ2VzL2JvcmRlcmVkQ2FsbFRvQWN0aW9uLm1vZHVsZS5zY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2NzcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvbmlzZS8gc3luYyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2hhcmVkQ29tcG9uZW50cy91c2VyRmVlZGJhY2svRmVlZGJhY2tCYW5uZXIuc2Nzcz9iZDc5Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3M/M2EzZCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3BvbGljeV9jb21wbGlhbmNlL0FnZUdhdGVkU2VjdGlvbnNNb2RhbC9hZ2UtZ2F0ZWQtc2VjdGlvbnMtbW9kYWwubW9kdWxlLnNjc3M/MGQ5NCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3N0dWRpb0hvbWVwYWdlcy9ib3JkZXJlZENhbGxUb0FjdGlvbi5tb2R1bGUuc2Nzcz80ODkxIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2Nzcz9jOGM2Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9yZWR1eC9sdGkvbHRpRmVlZGJhY2tSZWR1Y2VyLnRzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL3VzZXJGZWVkYmFjay9GZWVkYmFja0Jhbm5lci50c3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3NpbXBsZVNpZ25VcC9sdGkvZmVlZGJhY2svTHRpRmVlZGJhY2tCYW5uZXIudHN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvR2xvYmFsRWRpdGlvbldyYXBwZXIudHN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvcG9saWN5X2NvbXBsaWFuY2UvQWdlR2F0ZWRTZWN0aW9uc01vZGFsL0FnZUdhdGVkU2VjdGlvbnNCYW5uZXIudHN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvcG9saWN5X2NvbXBsaWFuY2UvQWdlR2F0ZWRTZWN0aW9uc01vZGFsL0FnZUdhdGVkU2VjdGlvbnNNb2RhbC50c3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvQWdlR2F0ZWRTZWN0aW9uc1RhYmxlLnRzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvTG9naW5UeXBlQ29uc3RhbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBSZWFjdFRvb2x0aXAgZnJvbSAncmVhY3QtdG9vbHRpcCc7XG5cbmltcG9ydCBmb250Q29uc3RhbnRzIGZyb20gJ0BjZG8vYXBwcy9mb250Q29uc3RhbnRzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCBGb250QXdlc29tZSBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9Gb250QXdlc29tZSc7XG5pbXBvcnQgZmlyZWhvc2VDbGllbnQgZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvZmlyZWhvc2UnO1xuaW1wb3J0IGNvbG9yIGZyb20gJ0BjZG8vYXBwcy91dGlsL2NvbG9yJztcblxuZXhwb3J0IGNvbnN0IE5vdGlmaWNhdGlvblR5cGUgPSB7XG4gIGRlZmF1bHQ6ICdkZWZhdWx0JyxcbiAgaW5mb3JtYXRpb246ICdpbmZvcm1hdGlvbicsXG4gIHN1Y2Nlc3M6ICdzdWNjZXNzJyxcbiAgZmFpbHVyZTogJ2ZhaWx1cmUnLFxuICB3YXJuaW5nOiAnd2FybmluZycsXG4gIGNvdXJzZTogJ2NvdXJzZScsXG4gIGJ1bGxob3JuOiAnYnVsbGhvcm4nLFxuICBmZWVkYmFjazogJ2ZlZWRiYWNrJyxcbiAgYnVsbGhvcm5feWVsbG93OiAnYnVsbGhvcm5feWVsbG93JyxcbiAgY29sbGFib3JhdGU6ICdjb2xsYWJvcmF0ZScsXG59O1xuXG5jb25zdCBOb3RpZmljYXRpb24gPSAoe1xuICBidXR0b25DbGFzc05hbWUsXG4gIGJ1dHRvbkxpbmssXG4gIGJ1dHRvbnMsXG4gIGJ1dHRvbnNTdHlsZXMsXG4gIGJ1dHRvblRleHQsXG4gIGJ1dHRvbkNvbG9yLFxuICBjaGlsZHJlbixcbiAgZGV0YWlscyxcbiAgZGV0YWlsc0xpbmssXG4gIGRldGFpbHNMaW5rTmV3V2luZG93LFxuICBkZXRhaWxzTGlua1RleHQsXG4gIGRpc21pc3NpYmxlLFxuICBmaXJlaG9zZUFuYWx5dGljc0RhdGEsXG4gIGljb25TdHlsZXMsXG4gIGlzUnRsLFxuICBuZXdXaW5kb3csXG4gIG5vdGljZSxcbiAgb25EaXNtaXNzLFxuICBvbkJ1dHRvbkNsaWNrLFxuICByZXNwb25zaXZlU2l6ZSxcbiAgdHlwZSxcbiAgdG9vbHRpcFRleHQsXG4gIHdpZHRoLFxuICBjb2xvcnMsXG59KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuXG4gIGNvbnN0IGhhbmRsZURpc21pc3MgPSAoKSA9PiB7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgaWYgKG9uRGlzbWlzcykge1xuICAgICAgb25EaXNtaXNzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxvZ0Fubm91bmNlbWVudENsaWNrVG9GaXJlaG9zZSA9ICgpID0+IHtcbiAgICBsZXQgcmVjb3JkID0ge307XG5cbiAgICAvLyBPdXIgZmlyZWhvc2UgbG9nZ2luZyBzeXN0ZW0gaGFzIHN0YW5kYWxvbmUgZmllbGRzIGZvciBjb21tb25seSB1c2VkIG1ldGFkYXRhIChlZywgdXNlcl9pZCkuXG4gICAgLy8gSGVyZSwgd2Ugc2VwYXJhdGUgb3V0IHRob3NlIGZpZWxkcyBmcm9tIGFueSBvdGhlciBhbmFseXRpY3MgZGF0YSBwcm92aWRlZCBpbiB0aGUgZmlyZWhvc2VBbmFseXRpY3NEYXRhIHByb3AuXG4gICAgLy8gV2UgaW5jbHVkZSB0aGVzZSBwcm9wZXJ0aWVzIGluIHRoZSBkYXRhX2pzb24gb2JqZWN0IGFzIHdlbGwsIGluIGNhc2UgdGhhdCBpcyBlYXNpZXIgZm9yIG91ciBwcm9kdWN0IHRlYW0gdG8gdXNlLlxuICAgIFsndXNlcl9pZCcsICdzY3JpcHRfaWQnLCAnbGVzc29uX2lkJ10uZm9yRWFjaChmaXJlaG9zZU1ldGFkYXRhS2V5ID0+IHtcbiAgICAgIGlmIChmaXJlaG9zZU1ldGFkYXRhS2V5IGluIGZpcmVob3NlQW5hbHl0aWNzRGF0YSkge1xuICAgICAgICByZWNvcmRbZmlyZWhvc2VNZXRhZGF0YUtleV0gPVxuICAgICAgICAgIGZpcmVob3NlQW5hbHl0aWNzRGF0YVtmaXJlaG9zZU1ldGFkYXRhS2V5XTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlY29yZCA9IHtcbiAgICAgIC4uLnJlY29yZCxcbiAgICAgIHN0dWR5OiAnbm90aWZpY2F0aW9uX2VuZ2FnZW1lbnQnLFxuICAgICAgZXZlbnQ6ICdub3RpZmljYXRpb25fY2xpY2snLFxuICAgICAgZGF0YV9qc29uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIC4uLmZpcmVob3NlQW5hbHl0aWNzRGF0YSxcbiAgICAgICAgbm90aWNlOiBub3RpY2UsXG4gICAgICAgIGRldGFpbHM6IGRldGFpbHMsXG4gICAgICAgIGJ1dHRvbkxpbms6IGJ1dHRvbkxpbmssXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgZmlyZWhvc2VDbGllbnQucHV0UmVjb3JkKHJlY29yZCwge2luY2x1ZGVVc2VySWQ6IHRydWV9KTtcbiAgfTtcblxuICBjb25zdCBvbkFubm91bmNlbWVudENsaWNrID0gKCkgPT4ge1xuICAgIC8vIExvZyB0byBGaXJlaG9zZVxuICAgIGlmIChmaXJlaG9zZUFuYWx5dGljc0RhdGEpIHtcbiAgICAgIGxvZ0Fubm91bmNlbWVudENsaWNrVG9GaXJlaG9zZSgpO1xuICAgIH1cblxuICAgIGlmIChvbkJ1dHRvbkNsaWNrKSB7XG4gICAgICBvbkJ1dHRvbkNsaWNrKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRlc2t0b3AgPSByZXNwb25zaXZlU2l6ZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3BvbnNpdmVTaXplID09PSAnbGcnO1xuXG4gIGNvbnN0IGljb25zID0ge1xuICAgIGluZm9ybWF0aW9uOiAnaW5mby1jaXJjbGUnLFxuICAgIHN1Y2Nlc3M6ICdjaGVjay1jaXJjbGUnLFxuICAgIGZhaWx1cmU6ICdleGNsYW1hdGlvbi10cmlhbmdsZScsXG4gICAgd2FybmluZzogJ2V4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICBidWxsaG9ybjogJ2J1bGxob3JuJyxcbiAgICBidWxsaG9ybl95ZWxsb3c6ICdidWxsaG9ybicsXG4gICAgZmVlZGJhY2s6ICdlbnZlbG9wZScsXG4gICAgY29sbGFib3JhdGU6ICd1c2VycycsXG4gIH07XG5cbiAgY29uc3QgbWFpblN0eWxlID0ge1xuICAgIC4uLnN0eWxlcy5tYWluLFxuICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6ICdsdHInLFxuICAgIHdpZHRoOiB3aWR0aCB8fCBzdHlsZXMubWFpbi53aWR0aCxcbiAgfTtcblxuICBpZiAoIW9wZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbG9yU3R5bGVzID0gey4uLnN0eWxlcy5jb2xvcnNbdHlwZV0sIC4uLmNvbG9yc307XG5cbiAgY29uc3QgdG9vbHRpcElkID0gXy51bmlxdWVJZCgpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJhbm5vdW5jZW1lbnQtbm90aWZpY2F0aW9uXCI+XG4gICAgICA8ZGl2IHN0eWxlPXt7Li4uY29sb3JTdHlsZXMsIC4uLm1haW5TdHlsZX19PlxuICAgICAgICB7dHlwZSAhPT0gTm90aWZpY2F0aW9uVHlwZS5jb3Vyc2UgJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3suLi5zdHlsZXMuaWNvbkJveCwgLi4uY29sb3JTdHlsZXMsIC4uLmljb25TdHlsZXN9fT5cbiAgICAgICAgICAgIHtpY29uc1t0eXBlXSAmJiAoXG4gICAgICAgICAgICAgIDxGb250QXdlc29tZSBpY29uPXtpY29uc1t0eXBlXX0gc3R5bGU9e3N0eWxlcy5pY29ufSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmNvbnRlbnRCb3h9PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy53b3JkQm94fT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3suLi5jb2xvclN0eWxlcywgLi4uc3R5bGVzLm5vdGljZX19PlxuICAgICAgICAgICAgICB7bm90aWNlfVxuICAgICAgICAgICAgICB7dG9vbHRpcFRleHQgPyAoXG4gICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRpcCBkYXRhLWZvcj17dG9vbHRpcElkfSBzdHlsZT17c3R5bGVzLnRvb2x0aXB9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWUgaWNvbj1cImluZm8tY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxSZWFjdFRvb2x0aXAgaWQ9e3Rvb2x0aXBJZH0gZWZmZWN0PVwic29saWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3N0eWxlcy50b29sdGlwVGV4dH0+e3Rvb2x0aXBUZXh0fTwvcD5cbiAgICAgICAgICAgICAgICAgIDwvUmVhY3RUb29sdGlwPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kZXRhaWxzfT5cbiAgICAgICAgICAgICAge2RldGFpbHN9XG4gICAgICAgICAgICAgIHtkZXRhaWxzTGlua1RleHQgJiYgZGV0YWlsc0xpbmsgJiYgKFxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBocmVmPXtkZXRhaWxzTGlua31cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5kZXRhaWxzTGlua31cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXtkZXRhaWxzTGlua05ld1dpbmRvdyA/ICdfYmxhbmsnIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgcmVsPXtkZXRhaWxzTGlua05ld1dpbmRvdyA/ICdub3JlZmVycmVyJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RldGFpbHNMaW5rVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgIGRlc2t0b3AgPyBidXR0b25zU3R5bGVzIDogey4uLnN0eWxlcy5idXR0b25zTW9iaWxlLCBidXR0b25zU3R5bGVzfVxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtidXR0b25UZXh0ICYmIGJ1dHRvbkxpbmsgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgX191c2VEZXByZWNhdGVkVGFnXG4gICAgICAgICAgICAgICAgaHJlZj17YnV0dG9uTGlua31cbiAgICAgICAgICAgICAgICBjb2xvcj17YnV0dG9uQ29sb3IgfHwgQnV0dG9uLkJ1dHRvbkNvbG9yLmdyYXl9XG4gICAgICAgICAgICAgICAgdGV4dD17YnV0dG9uVGV4dH1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9e25ld1dpbmRvdyA/ICdfYmxhbmsnIDogbnVsbH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkFubm91bmNlbWVudENsaWNrfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3NOYW1lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtidXR0b25zICYmXG4gICAgICAgICAgICAgIGJ1dHRvbnMubWFwKChidXR0b24sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGhyZWY9e2J1dHRvbi5saW5rfVxuICAgICAgICAgICAgICAgICAgY29sb3I9e2J1dHRvbi5jb2xvciB8fCBCdXR0b24uQnV0dG9uQ29sb3IuZ3JheX1cbiAgICAgICAgICAgICAgICAgIHRleHQ9e2J1dHRvbi50ZXh0fVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3suLi5zdHlsZXMuYnV0dG9uLCAuLi5idXR0b24uc3R5bGV9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17YnV0dG9uLm9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2J1dHRvbi5jbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7ZGlzbWlzc2libGUgJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kaXNtaXNzfT5cbiAgICAgICAgICAgIDxGb250QXdlc29tZSBpY29uPVwidGltZXNcIiBvbkNsaWNrPXtoYW5kbGVEaXNtaXNzfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuY2xlYXJ9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Ob3RpZmljYXRpb24ucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LmtleXMoTm90aWZpY2F0aW9uVHlwZSkpLmlzUmVxdWlyZWQsXG4gIG5vdGljZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkZXRhaWxzOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSkuaXNSZXF1aXJlZCxcbiAgZGV0YWlsc0xpbmtUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkZXRhaWxzTGluazogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGV0YWlsc0xpbmtOZXdXaW5kb3c6IFByb3BUeXBlcy5ib29sLFxuICBidXR0b25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidXR0b25MaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidXR0b25Db2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzbWlzc2libGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGljb25TdHlsZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uRGlzbWlzczogUHJvcFR5cGVzLmZ1bmMsXG4gIG5ld1dpbmRvdzogUHJvcFR5cGVzLmJvb2wsXG4gIC8vIGZpcmVob3NlQW5hbHl0aWNzRGF0YSBhcmUgb25seSB1c2VkIHdoZW4gYSBwcmltYXJ5IGJ1dHRvbiBpcyBwcm92aWRlZC5cbiAgLy8gSXQncyBub3QgdXNlZCBieSB0aGUgYXJyYXkgb2YgYnV0dG9ucy5cbiAgZmlyZWhvc2VBbmFseXRpY3NEYXRhOiBQcm9wVHlwZXMub2JqZWN0LFxuICByZXNwb25zaXZlU2l6ZTogUHJvcFR5cGVzLm9uZU9mKFsnbGcnLCAnbWQnLCAnc20nLCAneHMnXSksXG4gIGlzUnRsOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkJ1dHRvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgYnV0dG9uQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8vIE9wdGlvbmFsbHkgY2FuIHByb3ZpZGUgYSB0b29sdGlwIGFmdGVyIHRoZSB0aXRsZSB3aXRoIHRleHQgb24gaG92ZXIuXG4gIHRvb2x0aXBUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8vIE9wdGlvbmFsbHkgY2FuIHByb3ZpZGUgYW4gYXJyYXkgb2YgYnV0dG9ucy5cbiAgYnV0dG9uc1N0eWxlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgYnV0dG9uczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBsaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBjb2xvcjogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC5rZXlzKEJ1dHRvbi5CdXR0b25Db2xvcikpLFxuICAgICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgfSlcbiAgKSxcblxuICAvLyBPcHRpb25hbGx5IGNhbiBwcm92aWRlIGNoaWxkcmVuLCBzdWNoIGFzIG9uZSBvciBtb3JlIGJ1dHRvbnMuXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvLyBDYW4gYmUgc3BlY2lmaWVkIHRvIG92ZXJyaWRlIGRlZmF1bHQgd2lkdGhcbiAgd2lkdGg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKSxcblxuICBjb2xvcnM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGJvcmRlckNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KSxcbn07XG5cbk5vdGlmaWNhdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuZGVmYXVsdCxcbiAgY29sb3JzOiB7fSxcbn07XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbWFpbjoge1xuICAgIGJvcmRlcldpZHRoOiAxLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIG1pbkhlaWdodDogNzIsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLndoaXRlLFxuICAgIG1hcmdpbkJvdHRvbTogMjAsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhGbG93OiAnd3JhcCcsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gIH0sXG4gIG5vdGljZToge1xuICAgIC4uLmZvbnRDb25zdGFudHNbJ21haW4tZm9udC1yZWd1bGFyJ10sXG4gICAgZm9udFNpemU6IDE4LFxuICAgIGxldHRlclNwYWNpbmc6IC0wLjIsXG4gICAgbGluZUhlaWdodDogMS41LFxuICAgIG1hcmdpblRvcDogMTYsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci53aGl0ZSxcbiAgfSxcbiAgZGV0YWlsczoge1xuICAgIC4uLmZvbnRDb25zdGFudHNbJ21haW4tZm9udC1yZWd1bGFyJ10sXG4gICAgZm9udFNpemU6IDE0LFxuICAgIGxpbmVIZWlnaHQ6IDEuNSxcbiAgICBwYWRkaW5nVG9wOiA2LFxuICAgIHBhZGRpbmdCb3R0b206IDE2LFxuICAgIGNvbG9yOiBjb2xvci5jaGFyY29hbCxcbiAgfSxcbiAgZGV0YWlsc0xpbms6IHtcbiAgICAuLi5mb250Q29uc3RhbnRzWydtYWluLWZvbnQtc2VtaS1ib2xkJ10sXG4gICAgY29sb3I6IGNvbG9yLnRlYWwsXG4gIH0sXG4gIHdvcmRCb3g6IHtcbiAgICAvLyBmbGV4IHByaW9yaXR5XG4gICAgZmxleDogMSxcbiAgICBtYXJnaW5MZWZ0OiAyNSxcbiAgICBtYXJnaW5SaWdodDogMjUsXG4gIH0sXG4gIGRpc21pc3M6IHtcbiAgICBjb2xvcjogY29sb3IubGlnaHRlcl9ncmF5LFxuICAgIG1hcmdpblRvcDogNSxcbiAgICBtYXJnaW5SaWdodDogMCxcbiAgICBtYXJnaW5MZWZ0OiAxMCxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgfSxcbiAgaWNvbkJveDoge1xuICAgIHdpZHRoOiA3MixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmxpZ2h0ZXN0X2dyYXksXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBmbG9hdDogJ2xlZnQnLFxuICB9LFxuICBjb250ZW50Qm94OiB7XG4gICAgLy8gVGhlIHN1YnRyYWN0ZWQgMTAwcHggbGVhdmVzIHJvb20gZm9yIGJvdGggdGhlIGljb24gY29sdW1uIG9uIHRoZSBsZWZ0IGFuZFxuICAgIC8vIHRoZSBkaXNtaXNzIFggaWNvbiBjb2x1bW4gb24gdGhlIHJpZ2h0LlxuICAgIHdpZHRoOiAnY2FsYygxMDAlIC0gMTAwcHgpJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleEZsb3c6ICd3cmFwJyxcbiAgfSxcbiAgaWNvbjoge1xuICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwgLjgpJyxcbiAgICBmb250U2l6ZTogMzgsXG4gICAgbGluZUhlaWdodDogMixcbiAgfSxcbiAgYnV0dG9uc01vYmlsZToge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGJ1dHRvbjoge1xuICAgIG1hcmdpbkxlZnQ6IDI1LFxuICAgIG1hcmdpblJpZ2h0OiAyNSxcbiAgICBtYXJnaW5Ub3A6IDE4LFxuICAgIG1hcmdpbkJvdHRvbTogMTgsXG4gIH0sXG4gIGNvbG9yczoge1xuICAgIFtOb3RpZmljYXRpb25UeXBlLmRlZmF1bHRdOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLmluZm9ybWF0aW9uXToge1xuICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLnRlYWwsXG4gICAgICBjb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLnN1Y2Nlc3NdOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IubGV2ZWxfcGVyZmVjdCxcbiAgICAgIGNvbG9yOiBjb2xvci5sZXZlbF9wZXJmZWN0LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5sZXZlbF9wZXJmZWN0LFxuICAgIH0sXG4gICAgW05vdGlmaWNhdGlvblR5cGUuZmFpbHVyZV06IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5yZWQsXG4gICAgICBjb2xvcjogY29sb3IucmVkLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5yZWQsXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS53YXJuaW5nXToge1xuICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLm11c3RhcmR5ZWxsb3csXG4gICAgICBjb2xvcjogY29sb3IuY2hhcmNvYWwsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLm11c3RhcmR5ZWxsb3csXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS5jb3Vyc2VdOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IuYm9yZGVyX2dyYXksXG4gICAgICBjb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLmJ1bGxob3JuXToge1xuICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLnRlYWwsXG4gICAgICBjb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLmJ1bGxob3JuX3llbGxvd106IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci55ZWxsb3csXG4gICAgICBjb2xvcjogY29sb3IueWVsbG93LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci55ZWxsb3csXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS5mZWVkYmFja106IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5wdXJwbGUsXG4gICAgICBjb2xvcjogY29sb3IucHVycGxlLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5wdXJwbGUsXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS5jb2xsYWJvcmF0ZV06IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5saWdodF9zZWNvbmRhcnlfNTAwLFxuICAgICAgY29sb3I6IGNvbG9yLmxpZ2h0X3NlY29uZGFyeV81MDAsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmxpZ2h0X3NlY29uZGFyeV81MDAsXG4gICAgfSxcbiAgfSxcbiAgY2xlYXI6IHtcbiAgICBjbGVhcjogJ2JvdGgnLFxuICB9LFxuICB0b29sdGlwOiB7XG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgbWFyZ2luTGVmdDogJzVweCcsXG4gICAgbWFyZ2luUmlnaHQ6ICc1cHgnLFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gICAgY29sb3I6IGNvbG9yLmxpZ2h0X2dyYXlfNTAwLFxuICB9LFxuICB0b29sdGlwVGV4dDoge1xuICAgIGNvbG9yOiBjb2xvci53aGl0ZSxcbiAgICBtYXJnaW46IDAsXG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KHN0YXRlID0+ICh7XG4gIGlzUnRsOiBzdGF0ZS5pc1J0bCxcbn0pKShOb3RpZmljYXRpb24pO1xuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uUmVzcG9uc2l2ZSA9IGNvbm5lY3Qoc3RhdGUgPT4gKHtcbiAgaXNSdGw6IHN0YXRlLmlzUnRsLFxuICByZXNwb25zaXZlU2l6ZTogc3RhdGUucmVzcG9uc2l2ZS5yZXNwb25zaXZlU2l6ZSxcbn0pKShOb3RpZmljYXRpb24pO1xuIiwiLyoqXG4gKiBMb2FkaW5nIHNwaW5uZXIuXG4gKi9cblxuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBGb250QXdlc29tZSBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9Gb250QXdlc29tZSc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwaW5uZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNpemU6IFByb3BUeXBlcy5vbmVPZihbJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZSddKSxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3NpemUsIHN0eWxlfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IGRpc3BsYXlTaXplID1cbiAgICAgIHNpemUgPT09ICdzbWFsbCcgPyAnJyA6IHNpemUgPT09ICdtZWRpdW0nID8gJ2ZhLTJ4JyA6ICdmYS0zeCc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGb250QXdlc29tZVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIGljb249XCJzcGlubmVyXCJcbiAgICAgICAgY2xhc3NOYW1lPXtgZmEtcHVsc2UgJHtkaXNwbGF5U2l6ZX1gfVxuICAgICAgICB0aXRsZT17aTE4bi5sb2FkaW5nKCl9XG4gICAgICAgIGlkPVwidWl0ZXN0LXNwaW5uZXJcIlxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJhZGl1bSBmcm9tICdyYWRpdW0nOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IGZvbnRDb25zdGFudHMgZnJvbSAnQGNkby9hcHBzL2ZvbnRDb25zdGFudHMnO1xuXG5pbXBvcnQgRm9udEF3ZXNvbWUgZnJvbSAnLi4vbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9Gb250QXdlc29tZSc7XG5pbXBvcnQgc3R5bGVDb25zdGFudHMgZnJvbSAnLi4vc3R5bGVDb25zdGFudHMnO1xuaW1wb3J0IGNvbG9yIGZyb20gJy4uL3V0aWwvY29sb3InO1xuXG5pbXBvcnQgbW9kdWxlU3R5bGVzIGZyb20gJy4vY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3MnO1xuXG4vLyBDb250ZW50Q29udGFpbmVyIHByb3ZpZGVzIGEgZnVsbC13aWR0aCBjb250YWluZXIgd2hpY2ggd2lsbCByZW5kZXIgd2hhdGV2ZXJcbi8vIGNoaWxkcmVuIGFyZSBwYXNzZWQgdG8gaXQuIFRoZSBjb21wb25lbnQgaXMgdXNlZnVsIGZvciBjcmVhdGluZyBjbGVhcixcbi8vIHN1Yi1zZWN0aW9ucyBvbiBhIHBhZ2UgYmVjYXVzZSBpdCB3YXMgYnVpbHQgdG8gcmV1c2UgdGhlIHN0eWxpbmcgYW5kXG4vLyBmdW5jdGlvbmFsaXR5IG9mIGEgaGVhZGluZyBhbmQgdGhlIG9wdGlvbiB0byBzaG93IGEgbGluay4gWW91IGNhbiBmaW5kIGFuXG4vLyBleGFtcGxlIG9mIGl0cyB1c2Ugb24gc3R1ZGlvLmNvZGUub3JnL2hvbWUuXG5cbmNvbnN0IGNvbnRlbnRXaWR0aCA9IHN0eWxlQ29uc3RhbnRzWydjb250ZW50LXdpZHRoJ107XG5jb25zdCBsaW5rQm94TGluZUhlaWdodCA9ICcyNiBweCc7XG5cbmNsYXNzIENvbnRlbnRDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5ub2RlLFxuICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLFxuICAgIF0pLFxuICAgIGhlYWRpbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGlua1RleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGluazogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpc1J0bDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBkZXNjcmlwdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZXNwb25zaXZlU2l6ZTogUHJvcFR5cGVzLm9uZU9mKFsnbGcnLCAnbWQnLCAnc20nLCAneHMnXSkuaXNSZXF1aXJlZCxcbiAgICBoaWRlQm90dG9tTWFyZ2luOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgaGVhZGluZyxcbiAgICAgIGxpbmssXG4gICAgICBsaW5rVGV4dCxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgaXNSdGwsXG4gICAgICByZXNwb25zaXZlU2l6ZSxcbiAgICAgIGhpZGVCb3R0b21NYXJnaW4sXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzaG93TGlua1RvcCA9IHJlc3BvbnNpdmVTaXplID09PSAnbGcnICYmIGxpbmsgJiYgbGlua1RleHQ7XG4gICAgY29uc3Qgc2hvd0xpbmtCb3R0b20gPSByZXNwb25zaXZlU2l6ZSAhPT0gJ2xnJyAmJiBsaW5rICYmIGxpbmtUZXh0O1xuICAgIGNvbnN0IGJveFN0eWxlcyA9IHN0eWxlcy5ib3hSZXNwb25zaXZlO1xuICAgIGNvbnN0IGJvdHRvbU1hcmdpbiA9IGhpZGVCb3R0b21NYXJnaW4gPyAnJyA6IHN0eWxlcy5ib3R0b21NYXJnaW47XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17W2JveFN0eWxlcywgYm90dG9tTWFyZ2luXX0+XG4gICAgICAgIHsoaGVhZGluZyB8fCAobGluayAmJiBsaW5rVGV4dCkpICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e21vZHVsZVN0eWxlcy5jb250ZW50Q29udGFpbmVySGVhZGluZ31cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZXMuaGVhZGluZ0JveH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aDQgc3R5bGU9e2lzUnRsID8gc3R5bGVzLmhlYWRpbmdUZXh0UnRsIDogc3R5bGVzLmhlYWRpbmdUZXh0fT5cbiAgICAgICAgICAgICAge2hlYWRpbmd9XG4gICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAge3Nob3dMaW5rVG9wICYmIChcbiAgICAgICAgICAgICAgPExpbmsgbGluaz17bGlua30gbGlua1RleHQ9e2xpbmtUZXh0fSBpc1J0bD17aXNSdGx9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7ZGVzY3JpcHRpb24gJiYgPGRpdiBzdHlsZT17c3R5bGVzLmRlc2NyaXB0aW9ufT57ZGVzY3JpcHRpb259PC9kaXY+fVxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuY2hpbGRyZW59PlxuICAgICAgICAgIHtSZWFjdC5DaGlsZHJlbi5tYXAodGhpcy5wcm9wcy5jaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2NoaWxkfTwvZGl2PjtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtzaG93TGlua0JvdHRvbSAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnN0YW5kYWxvbmVMaW5rQm94fT5cbiAgICAgICAgICAgIDxMaW5rIGxpbms9e2xpbmt9IGxpbmtUZXh0PXtsaW5rVGV4dH0gaXNSdGw9e2lzUnRsfSBib3R0b209e3RydWV9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5jbGVhcn0gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgTGluayBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbGlua1RleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBsaW5rOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgaXNSdGw6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgYm90dG9tOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2xpbmssIGxpbmtUZXh0LCBpc1J0bCwgYm90dG9tfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IGxpbmtCb3hTdHlsZTtcbiAgICBpZiAoaXNSdGwpIHtcbiAgICAgIGxpbmtCb3hTdHlsZSA9IGJvdHRvbSA/IHN0eWxlcy5saW5rQm94UnRsQm90dG9tIDogc3R5bGVzLmxpbmtCb3hSdGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmtCb3hTdHlsZSA9IGJvdHRvbSA/IHN0eWxlcy5saW5rQm94Qm90dG9tIDogc3R5bGVzLmxpbmtCb3g7XG4gICAgfVxuICAgIGNvbnN0IGljb24gPSBpc1J0bCA/ICdjaGV2cm9uLWxlZnQnIDogJ2NoZXZyb24tcmlnaHQnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e2xpbmtCb3hTdHlsZX0+XG4gICAgICAgIDxhIHN0eWxlPXtzdHlsZXMubGlua1RhZ30gaHJlZj17bGlua30+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3tkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ319PlxuICAgICAgICAgICAge2lzUnRsICYmIDxGb250QXdlc29tZSBpY29uPXtpY29ufSBzdHlsZT17c3R5bGVzLmNoZXZyb25SdGx9IC8+fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMubGlua1RvVmlld0FsbH0+e2xpbmtUZXh0fTwvZGl2PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7ZGlzcGxheTogJ2lubGluZS1ibG9jayd9fT5cbiAgICAgICAgICAgIHshaXNSdGwgJiYgPEZvbnRBd2Vzb21lIGljb249e2ljb259IHN0eWxlPXtzdHlsZXMuY2hldnJvbn0gLz59XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYm94OiB7XG4gICAgd2lkdGg6IGNvbnRlbnRXaWR0aCxcbiAgfSxcbiAgYm94UmVzcG9uc2l2ZToge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGJvdHRvbU1hcmdpbjoge1xuICAgIG1hcmdpbkJvdHRvbTogNjAsXG4gIH0sXG4gIGhlYWRpbmdCb3g6IHtcbiAgICBwYWRkaW5nUmlnaHQ6IDEwLFxuICAgIHBhZGRpbmdUb3A6IDEwLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB6SW5kZXg6IDIsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIH0sXG4gIGhlYWRpbmdUZXh0OiB7XG4gICAgZm9udFNpemU6IDI0LFxuICAgIGxpbmVIZWlnaHQ6ICcyNnB4JyxcbiAgICBjb2xvcjogY29sb3IubmV1dHJhbF9kYXJrLFxuICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgcGFkZGluZ1JpZ2h0OiAyMCxcbiAgfSxcbiAgaGVhZGluZ1RleHRSdGw6IHtcbiAgICBmb250U2l6ZTogMjQsXG4gICAgbGluZUhlaWdodDogJzI2cHgnLFxuICAgIGNvbG9yOiBjb2xvci5uZXV0cmFsX2RhcmssXG4gICAgZmxvYXQ6ICdyaWdodCcsXG4gICAgcGFkZGluZ0xlZnQ6IDIwLFxuICB9LFxuICBzdGFuZGFsb25lTGlua0JveDoge1xuICAgIHBhZGRpbmdUb3A6IDEwLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGNsZWFyOiAnYm90aCcsXG4gIH0sXG4gIGxpbmtCb3g6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBib3R0b206IDIwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGxpbmVIZWlnaHQ6IGxpbmtCb3hMaW5lSGVpZ2h0LFxuICB9LFxuICBsaW5rQm94UnRsOiB7XG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICBwYWRkaW5nTGVmdDogMTAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgYm90dG9tOiAyMCxcbiAgICBsZWZ0OiAwLFxuICAgIGxpbmVIZWlnaHQ6IGxpbmtCb3hMaW5lSGVpZ2h0LFxuICB9LFxuICBsaW5rQm94Qm90dG9tOiB7XG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgbGVmdDogMCxcbiAgfSxcbiAgbGlua0JveFJ0bEJvdHRvbToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIHJpZ2h0OiAwLFxuICB9LFxuICBkZXNjcmlwdGlvbjoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBsaW5lSGVpZ2h0OiAnMjJweCcsXG4gICAgLi4uZm9udENvbnN0YW50c1snbWFpbi1mb250LXJlZ3VsYXInXSxcbiAgICB6SW5kZXg6IDIsXG4gICAgY29sb3I6IGNvbG9yLm5ldXRyYWxfZGFyayxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIG1hcmdpblRvcDogLTEwLFxuICAgIG1hcmdpbkJvdHRvbTogMTAsXG4gICAgY2xlYXI6ICdib3RoJyxcbiAgfSxcbiAgbGlua1RhZzoge1xuICAgIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIH0sXG4gIGxpbmtUb1ZpZXdBbGw6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgLi4uZm9udENvbnN0YW50c1snbWFpbi1mb250LXNlbWktYm9sZCddLFxuICAgIG1hcmdpblRvcDogLTIsXG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gIH0sXG4gIGNoZXZyb246IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgICBmb250U2l6ZTogMTAsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIG1hcmdpbkxlZnQ6IDE1LFxuICB9LFxuICBjaGV2cm9uUnRsOiB7XG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgY29sb3I6IGNvbG9yLm5ldXRyYWxfZGFyayxcbiAgICBmb250U2l6ZTogMTAsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIG1hcmdpblJpZ2h0OiAxNSxcbiAgfSxcbiAgY2hpbGRyZW46IHtcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gIH0sXG4gIGNsZWFyOiB7XG4gICAgY2xlYXI6ICdib3RoJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3Qoc3RhdGUgPT4gKHtcbiAgcmVzcG9uc2l2ZVNpemU6IHN0YXRlLnJlc3BvbnNpdmUucmVzcG9uc2l2ZVNpemUsXG4gIGlzUnRsOiBzdGF0ZS5pc1J0bCxcbn0pKShSYWRpdW0oQ29udGVudENvbnRhaW5lcikpO1xuIiwiaW1wb3J0IHtCdXR0b259IGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvYnV0dG9uJztcbmltcG9ydCB7XG4gIEhlYWRpbmczLFxuICBCb2R5VGhyZWVUZXh0LFxufSBmcm9tICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5L3R5cG9ncmFwaHknO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9ib3JkZXJlZENhbGxUb0FjdGlvbi5tb2R1bGUuc2Nzcyc7XG5cbmNvbnN0IEJvcmRlcmVkQ2FsbFRvQWN0aW9uID0gKHtcbiAgaGVhZGluZ1RleHQsXG4gIGRlc2NyaXB0aW9uVGV4dCxcbiAgY2xhc3NOYW1lLFxuICBidXR0b25UeXBlLFxuICBidXR0b25UZXh0LFxuICBidXR0b25VcmwsXG4gIGJ1dHRvbkNsYXNzLFxuICBidXR0b25Db2xvcixcbiAgYnV0dG9uRGlzYWJsZWQgPSBmYWxzZSxcbiAgb25DbGljayxcbiAgc29saWRCb3JkZXIsXG59KSA9PiB7XG4gIGlmICghYnV0dG9uVXJsICYmICFvbkNsaWNrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3QgYXQgbGVhc3Qgb25lIG9mIGJ1dHRvblVybCAvIG9uQ2xpY2snKTtcbiAgfVxuXG4gIGNvbnN0IGJvcmRlclN0eWxlID0gc29saWRCb3JkZXIgPyBzdHlsZXMuc29saWRCb3JkZXIgOiBzdHlsZXMuZGFzaGVkQm9yZGVyO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Ake3N0eWxlcy5vdXRlckJveH0gJHtib3JkZXJTdHlsZX0gJHtjbGFzc05hbWV9YH0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRleHRXcmFwcGVyfT5cbiAgICAgICAgPEhlYWRpbmczIHZpc3VhbEFwcGVhcmFuY2U9XCJoZWFkaW5nLXNtXCI+e2hlYWRpbmdUZXh0fTwvSGVhZGluZzM+XG4gICAgICAgIDxCb2R5VGhyZWVUZXh0PntkZXNjcmlwdGlvblRleHR9PC9Cb2R5VGhyZWVUZXh0PlxuICAgICAgPC9kaXY+XG4gICAgICA8QnV0dG9uXG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3N9XG4gICAgICAgIGNvbG9yPXtidXR0b25Db2xvcn1cbiAgICAgICAgc2l6ZT17J3MnfVxuICAgICAgICB0eXBlPXtidXR0b25UeXBlfVxuICAgICAgICB0ZXh0PXtidXR0b25UZXh0fVxuICAgICAgICBocmVmPXtidXR0b25Vcmx9XG4gICAgICAgIHVzZUFzTGluaz17ISFidXR0b25Vcmx9XG4gICAgICAgIGRpc2FibGVkPXtidXR0b25EaXNhYmxlZH1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Cb3JkZXJlZENhbGxUb0FjdGlvbi5wcm9wVHlwZXMgPSB7XG4gIGhlYWRpbmdUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGRlc2NyaXB0aW9uVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGJ1dHRvblR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGJ1dHRvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgYnV0dG9uVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidXR0b25DbGFzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgYnV0dG9uQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBzb2xpZEJvcmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIGJ1dHRvbkRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJvcmRlcmVkQ2FsbFRvQWN0aW9uO1xuIiwiaW1wb3J0IHtcbiAgQm9keVR3b1RleHQsXG4gIFN0cm9uZ1RleHQsXG59IGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvdHlwb2dyYXBoeSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtjb25uZWN0fSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCB7RVZFTlRTfSBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NDb25zdGFudHMnO1xuaW1wb3J0IGFuYWx5dGljc1JlcG9ydGVyIGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc1JlcG9ydGVyJztcbmltcG9ydCBOb3RpZmljYXRpb24sIHtcbiAgTm90aWZpY2F0aW9uVHlwZSxcbn0gZnJvbSAnQGNkby9hcHBzL3NoYXJlZENvbXBvbmVudHMvTm90aWZpY2F0aW9uJztcbmltcG9ydCB7XG4gIGFzeW5jTG9hZENvdGVhY2hlckludml0ZSxcbiAgYXN5bmNMb2FkU2VjdGlvbkRhdGEsXG59IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5pbXBvcnQgSHR0cENsaWVudCBmcm9tICdAY2RvL2FwcHMvdXRpbC9IdHRwQ2xpZW50JztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuY29uc3QgQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uID0gKHtcbiAgaXNGb3JQbCxcbiAgYXN5bmNMb2FkQ290ZWFjaGVySW52aXRlLFxuICBhc3luY0xvYWRTZWN0aW9uRGF0YSxcbiAgY290ZWFjaGVySW52aXRlLFxuICBjb3RlYWNoZXJJbnZpdGVGb3JQbCxcbn0pID0+IHtcbiAgY29uc3QgaW52aXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCEhY290ZWFjaGVySW52aXRlRm9yUGwgJiYgaXNGb3JQbCkge1xuICAgICAgcmV0dXJuIGNvdGVhY2hlckludml0ZUZvclBsO1xuICAgIH0gZWxzZSBpZiAoISFjb3RlYWNoZXJJbnZpdGUgJiYgIWlzRm9yUGwpIHtcbiAgICAgIHJldHVybiBjb3RlYWNoZXJJbnZpdGU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9LCBbY290ZWFjaGVySW52aXRlLCBjb3RlYWNoZXJJbnZpdGVGb3JQbCwgaXNGb3JQbF0pO1xuXG4gIGNvbnN0IGJ1dHRvbkFjdGlvbiA9IGFwaSA9PiB7XG4gICAgSHR0cENsaWVudC5wdXQoYXBpLCAnJywgdHJ1ZSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgYXN5bmNMb2FkQ290ZWFjaGVySW52aXRlKCk7XG4gICAgICAgIGFzeW5jTG9hZFNlY3Rpb25EYXRhKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuICB9O1xuXG4gIGNvbnN0IGFjY2VwdENvdGVhY2hlckludml0ZSA9IChpZCwgc2VjdGlvbklkKSA9PiB7XG4gICAgYW5hbHl0aWNzUmVwb3J0ZXIuc2VuZEV2ZW50KEVWRU5UUy5DT1RFQUNIRVJfSU5WSVRFX0FDQ0VQVEVELCB7XG4gICAgICBzZWN0aW9uSWQ6IHNlY3Rpb25JZCxcbiAgICB9KTtcbiAgICBidXR0b25BY3Rpb24oYC9hcGkvdjEvc2VjdGlvbl9pbnN0cnVjdG9ycy8ke2lkfS9hY2NlcHRgKTtcbiAgfTtcblxuICBjb25zdCBkZWNsaW5lQ290ZWFjaGVySW52aXRlID0gKGlkLCBzZWN0aW9uSWQpID0+IHtcbiAgICBhbmFseXRpY3NSZXBvcnRlci5zZW5kRXZlbnQoRVZFTlRTLkNPVEVBQ0hFUl9JTlZJVEVfREVDTElORUQsIHtcbiAgICAgIHNlY3Rpb25JZDogc2VjdGlvbklkLFxuICAgIH0pO1xuICAgIGJ1dHRvbkFjdGlvbihgL2FwaS92MS9zZWN0aW9uX2luc3RydWN0b3JzLyR7aWR9L2RlY2xpbmVgKTtcbiAgfTtcblxuICBpZiAoIWludml0ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiAoXG4gICAgPE5vdGlmaWNhdGlvblxuICAgICAgZGlzbWlzc2libGU9e2ZhbHNlfVxuICAgICAgdHlwZT17Tm90aWZpY2F0aW9uVHlwZS5jb2xsYWJvcmF0ZX1cbiAgICAgIGljb25TdHlsZXM9e3N0eWxlcy5pY29ufVxuICAgICAgbm90aWNlPXtpMThuLmNvdGVhY2hlckludml0ZSh7XG4gICAgICAgIGludml0ZWRCeU5hbWU6IGludml0ZS5pbnZpdGVkX2J5X25hbWUsXG4gICAgICB9KX1cbiAgICAgIGRldGFpbHM9e1xuICAgICAgICA8Qm9keVR3b1RleHQgc3R5bGU9e3ttYXJnaW5Cb3R0b206IDB9fT5cbiAgICAgICAgICB7aTE4bi5jb3RlYWNoZXJJbnZpdGVEZXNjcmlwdGlvbih7XG4gICAgICAgICAgICBpbnZpdGVkQnlFbWFpbDogaW52aXRlLmludml0ZWRfYnlfZW1haWwsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPFN0cm9uZ1RleHQ+e2ludml0ZS5zZWN0aW9uX25hbWV9PC9TdHJvbmdUZXh0PlxuICAgICAgICA8L0JvZHlUd29UZXh0PlxuICAgICAgfVxuICAgICAgdG9vbHRpcFRleHQ9e2kxOG4uY290ZWFjaGVyVG9vbHRpcCgpfVxuICAgICAgYnV0dG9uc1N0eWxlcz17c3R5bGVzLmJ1dHRvbnN9XG4gICAgICBidXR0b25zPXtbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnRGVjbGluZScsXG4gICAgICAgICAgb25DbGljazogKCkgPT4gZGVjbGluZUNvdGVhY2hlckludml0ZShpbnZpdGUuaWQsIGludml0ZS5zZWN0aW9uX2lkKSxcbiAgICAgICAgICBjb2xvcjogQnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrLFxuICAgICAgICAgIHN0eWxlOiBzdHlsZXMuZGVjbGluZUJ1dHRvbixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdBY2NlcHQnLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFjY2VwdENvdGVhY2hlckludml0ZShpbnZpdGUuaWQsIGludml0ZS5zZWN0aW9uX2lkKSxcbiAgICAgICAgICBjb2xvcjogQnV0dG9uLkJ1dHRvbkNvbG9yLmJyYW5kU2Vjb25kYXJ5RGVmYXVsdCxcbiAgICAgICAgICBzdHlsZTogc3R5bGVzLmFjY2VwdEJ1dHRvbixcbiAgICAgICAgfSxcbiAgICAgIF19XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZENvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbiA9XG4gIENvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbjtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcbiAgc3RhdGUgPT4gKHtcbiAgICBjb3RlYWNoZXJJbnZpdGU6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5jb3RlYWNoZXJJbnZpdGUsXG4gICAgY290ZWFjaGVySW52aXRlRm9yUGw6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5jb3RlYWNoZXJJbnZpdGVGb3JQbCxcbiAgfSksXG4gIHtcbiAgICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGUsXG4gICAgYXN5bmNMb2FkU2VjdGlvbkRhdGEsXG4gIH1cbikoQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uKTtcblxuQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uLnByb3BUeXBlcyA9IHtcbiAgaXNGb3JQbDogUHJvcFR5cGVzLmJvb2wsXG4gIGFzeW5jTG9hZENvdGVhY2hlckludml0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgYXN5bmNMb2FkU2VjdGlvbkRhdGE6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNvdGVhY2hlckludml0ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgY290ZWFjaGVySW52aXRlRm9yUGw6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG4vLyBUaGUgTm90aWZpY2F0aW9uIG9iamVjdCB1c2VzIHN0eWxlcyBpbnN0ZWFkIG9mIGNsYXNzTmFtZSBmb3IgbGVnYWN5IHJlYXNvbnMuXG5jb25zdCBzdHlsZXMgPSB7XG4gIGFjY2VwdEJ1dHRvbjoge1xuICAgIG1hcmdpbkxlZnQ6ICcyMHB4JyxcbiAgICBtYXJnaW5SaWdodDogJzBweCcsXG4gICAgbGluZUhlaWdodDogJzEwMCUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgZGVjbGluZUJ1dHRvbjoge1xuICAgIG1hcmdpblJpZ2h0OiAwLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgYnV0dG9uczoge1xuICAgIC8vIGNlbnRlciB2ZXJ0aWNhbGx5XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9LFxuICBpY29uOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbn07XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IHtFVkVOVFMsIFBMQVRGT1JNU30gZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzQ29uc3RhbnRzLmpzJztcbmltcG9ydCBhbmFseXRpY3NSZXBvcnRlciBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NSZXBvcnRlcic7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCB7YmVnaW5FZGl0aW5nU2VjdGlvbn0gZnJvbSAnLi4vdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5cbmltcG9ydCBCb3JkZXJlZENhbGxUb0FjdGlvbiBmcm9tICcuL0JvcmRlcmVkQ2FsbFRvQWN0aW9uJztcblxuY2xhc3MgU2V0VXBTZWN0aW9ucyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYmVnaW5FZGl0aW5nU2VjdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBoZWFkaW5nVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZXNjcmlwdGlvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc29saWRCb3JkZXI6IFByb3BUeXBlcy5ib29sLFxuICAgIGFzeW5jTG9hZENvbXBsZXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICAvLyBXcmFwcGVkIHRvIGF2b2lkIHBhc3NpbmcgZXZlbnQgYXJnc1xuICBiZWdpbkVkaXRpbmdTZWN0aW9uID0gKCkgPT4ge1xuICAgIHRoaXMucmVjb3JkU2VjdGlvblNldHVwU3RhcnRlZEV2ZW50KCk7XG4gICAgdGhpcy5wcm9wcy5iZWdpbkVkaXRpbmdTZWN0aW9uKCk7XG4gIH07XG5cbiAgcmVjb3JkU2VjdGlvblNldHVwU3RhcnRlZEV2ZW50ID0gKCkgPT4ge1xuICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChcbiAgICAgIEVWRU5UUy5TRUNUSU9OX1NFVFVQX1NUQVJURUQsXG4gICAgICB7fSxcbiAgICAgIFBMQVRGT1JNUy5CT1RIXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3JkZXJlZENhbGxUb0FjdGlvblxuICAgICAgICB0eXBlPVwic2VjdGlvbnNcIlxuICAgICAgICBoZWFkaW5nVGV4dD17dGhpcy5wcm9wcy5oZWFkaW5nVGV4dCB8fCBpMThuLm5ld1NlY3Rpb25BZGQoKX1cbiAgICAgICAgZGVzY3JpcHRpb25UZXh0PXtcbiAgICAgICAgICB0aGlzLnByb3BzLmRlc2NyaXB0aW9uVGV4dCB8fCBpMThuLmNyZWF0ZU5ld0NsYXNzcm9vbSgpXG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uVGV4dD17aTE4bi5jcmVhdGVTZWN0aW9uKCl9XG4gICAgICAgIGNsYXNzTmFtZT1cInVpdGVzdC1zZXQtdXAtc2VjdGlvbnNcIlxuICAgICAgICBidXR0b25DbGFzcz1cInVpdGVzdC1uZXdzZWN0aW9uXCJcbiAgICAgICAgYnV0dG9uRGlzYWJsZWQ9eyF0aGlzLnByb3BzLmFzeW5jTG9hZENvbXBsZXRlfVxuICAgICAgICBvbkNsaWNrPXt0aGlzLmJlZ2luRWRpdGluZ1NlY3Rpb259XG4gICAgICAgIHNvbGlkQm9yZGVyPXt0aGlzLnByb3BzLnNvbGlkQm9yZGVyIHx8IGZhbHNlfVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG5leHBvcnQgY29uc3QgVW5jb25uZWN0ZWRTZXRVcFNlY3Rpb25zID0gU2V0VXBTZWN0aW9ucztcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoXG4gIHN0YXRlID0+ICh7XG4gICAgYXN5bmNMb2FkQ29tcGxldGU6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5hc3luY0xvYWRDb21wbGV0ZSxcbiAgfSksXG4gIHtcbiAgICBiZWdpbkVkaXRpbmdTZWN0aW9uLFxuICB9XG4pKFNldFVwU2VjdGlvbnMpO1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgU3Bpbm5lciBmcm9tICdAY2RvL2FwcHMvc2hhcmVkQ29tcG9uZW50cy9TcGlubmVyJztcbmltcG9ydCB7QWdlR2F0ZWRTZWN0aW9uc0Jhbm5lcn0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvQWdlR2F0ZWRTZWN0aW9uc0Jhbm5lcic7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBDb250ZW50Q29udGFpbmVyIGZyb20gJy4uL0NvbnRlbnRDb250YWluZXInO1xuaW1wb3J0IEFkZFNlY3Rpb25EaWFsb2cgZnJvbSAnLi4vdGVhY2hlckRhc2hib2FyZC9BZGRTZWN0aW9uRGlhbG9nJztcbmltcG9ydCBPd25lZFNlY3Rpb25zIGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvT3duZWRTZWN0aW9ucyc7XG5pbXBvcnQgUm9zdGVyRGlhbG9nIGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvUm9zdGVyRGlhbG9nJztcbmltcG9ydCB7XG4gIGFzeW5jTG9hZENvdGVhY2hlckludml0ZSxcbiAgYXN5bmNMb2FkU2VjdGlvbkRhdGEsXG59IGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvdGVhY2hlclNlY3Rpb25zUmVkdXgnO1xuaW1wb3J0IHtcbiAgYXRSaXNrQWdlR2F0ZWRTZWN0aW9ucyxcbiAgaGlkZGVuU3R1ZGVudFNlY3Rpb25JZHMsXG59IGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMnO1xuXG5pbXBvcnQgQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uIGZyb20gJy4vQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uJztcbmltcG9ydCBTZXRVcFNlY3Rpb25zIGZyb20gJy4vU2V0VXBTZWN0aW9ucyc7XG5cbmZ1bmN0aW9uIFRlYWNoZXJTZWN0aW9ucyh7XG4gIGFzeW5jTG9hZFNlY3Rpb25EYXRhLFxuICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGUsXG4gIGNvdGVhY2hlckludml0ZSxcbiAgYWdlR2F0ZWRTZWN0aW9ucyxcbiAgc3R1ZGVudFNlY3Rpb25JZHMsXG4gIGhpZGRlblN0dWRlbnRTZWN0aW9uSWRzLFxuICBzZWN0aW9uc0FyZUxvYWRlZCxcbn0pIHtcbiAgY29uc3QgW21vZGFsT3Blbiwgc2V0TW9kYWxPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgdG9nZ2xlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0TW9kYWxPcGVuKCFtb2RhbE9wZW4pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXN5bmNMb2FkU2VjdGlvbkRhdGEoKTtcbiAgICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGUoKTtcbiAgfSwgW2FzeW5jTG9hZFNlY3Rpb25EYXRhLCBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGVdKTtcblxuICBjb25zdCBzaG91bGRSZW5kZXJTZWN0aW9ucyA9ICgpID0+IHtcbiAgICByZXR1cm4gc3R1ZGVudFNlY3Rpb25JZHM/Lmxlbmd0aCA+IDAgfHwgISFjb3RlYWNoZXJJbnZpdGU7XG4gIH07XG5cbiAgY29uc3Qgc2hvdWxkRGlzcGxheUF0Umlza0FnZUdhdGVkV2FybmluZyA9ICgpID0+IHtcbiAgICByZXR1cm4gYWdlR2F0ZWRTZWN0aW9ucz8ubGVuZ3RoID4gMDtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgaWQ9XCJjbGFzc3Jvb20tc2VjdGlvbnNcIj5cbiAgICAgIDxDb250ZW50Q29udGFpbmVyIGhlYWRpbmc9e2kxOG4uY3JlYXRlU2VjdGlvbigpfT5cbiAgICAgICAgPFNldFVwU2VjdGlvbnMgLz5cbiAgICAgICAgeyFzZWN0aW9uc0FyZUxvYWRlZCAmJiA8U3Bpbm5lciBzaXplPVwibGFyZ2VcIiBzdHlsZT17c3R5bGVzLnNwaW5uZXJ9IC8+fVxuICAgICAgPC9Db250ZW50Q29udGFpbmVyPlxuICAgICAge3Nob3VsZFJlbmRlclNlY3Rpb25zKCkgJiYgKFxuICAgICAgICA8Q29udGVudENvbnRhaW5lciBoZWFkaW5nPXtpMThuLnNlY3Rpb25zVGl0bGUoKX0+XG4gICAgICAgICAgPENvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbiBpc0ZvclBsPXtmYWxzZX0gLz5cbiAgICAgICAgICB7c2hvdWxkRGlzcGxheUF0Umlza0FnZUdhdGVkV2FybmluZygpICYmIChcbiAgICAgICAgICAgIDxBZ2VHYXRlZFNlY3Rpb25zQmFubmVyXG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsPXt0b2dnbGVNb2RhbH1cbiAgICAgICAgICAgICAgbW9kYWxPcGVuPXttb2RhbE9wZW59XG4gICAgICAgICAgICAgIGFnZUdhdGVkU2VjdGlvbnM9e2FnZUdhdGVkU2VjdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPE93bmVkU2VjdGlvbnNcbiAgICAgICAgICAgIHNlY3Rpb25JZHM9e3N0dWRlbnRTZWN0aW9uSWRzfVxuICAgICAgICAgICAgaGlkZGVuU2VjdGlvbklkcz17aGlkZGVuU3R1ZGVudFNlY3Rpb25JZHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db250ZW50Q29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIDxSb3N0ZXJEaWFsb2cgLz5cbiAgICAgIDxBZGRTZWN0aW9uRGlhbG9nIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblRlYWNoZXJTZWN0aW9ucy5wcm9wVHlwZXMgPSB7XG4gIGFzeW5jTG9hZFNlY3Rpb25EYXRhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNvdGVhY2hlckludml0ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgY290ZWFjaGVySW52aXRlRm9yUGw6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFnZUdhdGVkU2VjdGlvbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgc3R1ZGVudFNlY3Rpb25JZHM6IFByb3BUeXBlcy5hcnJheSxcbiAgcGxTZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGhpZGRlblN0dWRlbnRTZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKS5pc1JlcXVpcmVkLFxuICBzZWN0aW9uc0FyZUxvYWRlZDogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgY29uc3QgVW5jb25uZWN0ZWRUZWFjaGVyU2VjdGlvbnMgPSBUZWFjaGVyU2VjdGlvbnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoXG4gIHN0YXRlID0+ICh7XG4gICAgY290ZWFjaGVySW52aXRlOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMuY290ZWFjaGVySW52aXRlLFxuICAgIGFnZUdhdGVkU2VjdGlvbnM6IGF0Umlza0FnZUdhdGVkU2VjdGlvbnMoc3RhdGUpLFxuICAgIHN0dWRlbnRTZWN0aW9uSWRzOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMuc3R1ZGVudFNlY3Rpb25JZHMsXG4gICAgaGlkZGVuU3R1ZGVudFNlY3Rpb25JZHM6IGhpZGRlblN0dWRlbnRTZWN0aW9uSWRzKHN0YXRlKSxcbiAgICBzZWN0aW9uc0FyZUxvYWRlZDogc3RhdGUudGVhY2hlclNlY3Rpb25zLnNlY3Rpb25zQXJlTG9hZGVkLFxuICB9KSxcbiAge1xuICAgIGFzeW5jTG9hZENvdGVhY2hlckludml0ZSxcbiAgICBhc3luY0xvYWRTZWN0aW9uRGF0YSxcbiAgfVxuKShUZWFjaGVyU2VjdGlvbnMpO1xuXG5jb25zdCBzdHlsZXMgPSB7XG4gIHNwaW5uZXI6IHtcbiAgICBtYXJnaW5Ub3A6ICcxMHB4JyxcbiAgfSxcbn07XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IFNwaW5uZXIgZnJvbSAnQGNkby9hcHBzL3NoYXJlZENvbXBvbmVudHMvU3Bpbm5lcic7XG5pbXBvcnQge25hdmlnYXRlVG9IcmVmfSBmcm9tICdAY2RvL2FwcHMvdXRpbHMnO1xuaW1wb3J0IHtTZWN0aW9uTG9naW5UeXBlfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBCYXNlRGlhbG9nIGZyb20gJy4uL0Jhc2VEaWFsb2cnO1xuXG5pbXBvcnQge05PTl9MTVNfTE9HSU5fVFlQRVN9IGZyb20gJy4vTG9naW5UeXBlQ29uc3RhbnRzJztcbmltcG9ydCBMb2dpblR5cGVQaWNrZXIgZnJvbSAnLi9Mb2dpblR5cGVQaWNrZXInO1xuaW1wb3J0IFBhZEFuZENlbnRlciBmcm9tICcuL1BhZEFuZENlbnRlcic7XG5pbXBvcnQgUGFydGljaXBhbnRUeXBlUGlja2VyIGZyb20gJy4vUGFydGljaXBhbnRUeXBlUGlja2VyJztcbmltcG9ydCB7c2VjdGlvblNoYXBlfSBmcm9tICcuL3NoYXBlcyc7XG5pbXBvcnQge1xuICBiZWdpbkltcG9ydFJvc3RlckZsb3csXG4gIHNldFJvc3RlclByb3ZpZGVyLFxuICBlZGl0U2VjdGlvblByb3BlcnRpZXMsXG4gIGNhbmNlbEVkaXRpbmdTZWN0aW9uLFxufSBmcm9tICcuL3RlYWNoZXJTZWN0aW9uc1JlZHV4JztcbmltcG9ydCB7XG4gIGlzQWRkaW5nU2VjdGlvbixcbiAgYXNzaWduZWRDb3Vyc2VPZmZlcmluZyxcbn0gZnJvbSAnLi90ZWFjaGVyU2VjdGlvbnNSZWR1eFNlbGVjdG9ycyc7XG5cbi8vIE5hdmlnYXRlcyB0byB0aGUgbmV3IHNlY3Rpb24gc2V0dXAgcGFnZSBpZiBib3RoIHBhcmFtcyBhcmUgbm9uLW51bGwuXG5jb25zdCByZWRpcmVjdFRvTmV3U2VjdGlvblBhZ2UgPSAocGFydGljaXBhbnRUeXBlLCBsb2dpblR5cGUpID0+IHtcbiAgaWYgKCEhcGFydGljaXBhbnRUeXBlICYmICEhbG9naW5UeXBlKSB7XG4gICAgY29uc3QgY3JlYXRlU2VjdGlvbkZyb21NeVBsID0gcGFydGljaXBhbnRUeXBlICE9PSAnc3R1ZGVudCc7XG4gICAgY29uc3QgaHJlZk5hdiA9XG4gICAgICBgL3NlY3Rpb25zL25ldz9wYXJ0aWNpcGFudFR5cGU9JHtwYXJ0aWNpcGFudFR5cGV9JmxvZ2luVHlwZT0ke2xvZ2luVHlwZX1gICtcbiAgICAgIChjcmVhdGVTZWN0aW9uRnJvbU15UGwgPyAnJnJlZGlyZWN0VG9QYWdlPW15LXByb2Zlc3Npb25hbC1sZWFybmluZycgOiAnJyk7XG4gICAgbmF2aWdhdGVUb0hyZWYoaHJlZk5hdik7XG4gIH1cbn07XG5cbi8qKlxuICogVUkgZm9yIGEgdGVhY2hlciB0byBhZGQgYSBuZXcgY2xhc3Mgc2VjdGlvbi5cbiAqL1xuY29uc3QgQWRkU2VjdGlvbkRpYWxvZyA9ICh7XG4gIGlzT3BlbixcbiAgc2VjdGlvbixcbiAgYmVnaW5JbXBvcnRSb3N0ZXJGbG93LFxuICBzZXRSb3N0ZXJQcm92aWRlcixcbiAgc2V0TG9naW5UeXBlLFxuICBzZXRQYXJ0aWNpcGFudFR5cGUsXG4gIGhhbmRsZUNhbmNlbCxcbiAgYXZhaWxhYmxlUGFydGljaXBhbnRUeXBlcyxcbiAgYXNzaWduZWRDb3Vyc2VPZmZlcmluZyxcbiAgYXN5bmNMb2FkQ29tcGxldGUsXG59KSA9PiB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgYXNzaWduZWRDb3Vyc2VPZmZlcmluZyAmJlxuICAgICAgYXN5bmNMb2FkQ29tcGxldGUgJiZcbiAgICAgICFzZWN0aW9uPy5wYXJ0aWNpcGFudFR5cGVcbiAgICApIHtcbiAgICAgIHNldFBhcnRpY2lwYW50VHlwZShhc3NpZ25lZENvdXJzZU9mZmVyaW5nLnBhcnRpY2lwYW50X2F1ZGllbmNlKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbYXNzaWduZWRDb3Vyc2VPZmZlcmluZywgYXN5bmNMb2FkQ29tcGxldGUsIHNlY3Rpb24/LnBhcnRpY2lwYW50VHlwZV0pO1xuXG4gIGNvbnN0IHtsb2dpblR5cGUsIHBhcnRpY2lwYW50VHlwZX0gPSBzZWN0aW9uIHx8IHt9O1xuICBjb25zdCB0aXRsZSA9IGkxOG4ubmV3U2VjdGlvblVwZGF0ZWQoKTtcblxuICBjb25zdCBvblBhcnRpY2lwYW50VHlwZVNlbGVjdGlvbiA9IHBhcnRpY2lwYW50VHlwZSA9PiB7XG4gICAgaWYgKHBhcnRpY2lwYW50VHlwZSAhPT0gJ3N0dWRlbnQnKSB7XG4gICAgICByZWRpcmVjdFRvTmV3U2VjdGlvblBhZ2UocGFydGljaXBhbnRUeXBlLCBTZWN0aW9uTG9naW5UeXBlLmVtYWlsKTtcbiAgICB9XG4gICAgc2V0UGFydGljaXBhbnRUeXBlKHBhcnRpY2lwYW50VHlwZSk7XG4gIH07XG5cbiAgY29uc3Qgb25Mb2dpblR5cGVTZWxlY3Rpb24gPSBsb2dpblR5cGUgPT4ge1xuICAgIC8vIE9hdXRoIHNlY3Rpb24gdHlwZXMgc2hvdWxkIHVzZSB0aGUgcm9zdGVyIGRpYWxvZywgbm90IHRoZSBzZWN0aW9uIHNldHVwIHBhZ2VcbiAgICBpZiAoTk9OX0xNU19MT0dJTl9UWVBFUy5pbmNsdWRlcyhsb2dpblR5cGUpKSB7XG4gICAgICByZWRpcmVjdFRvTmV3U2VjdGlvblBhZ2UocGFydGljaXBhbnRUeXBlLCBsb2dpblR5cGUpO1xuICAgIH1cbiAgICBzZXRMb2dpblR5cGUobG9naW5UeXBlKTtcbiAgfTtcblxuICBjb25zdCBnZXREaWFsb2dDb250ZW50ID0gKCkgPT4ge1xuICAgIGlmICghYXN5bmNMb2FkQ29tcGxldGUpIHtcbiAgICAgIHJldHVybiA8U3Bpbm5lciBzaXplPVwibGFyZ2VcIiBzdHlsZT17e3BhZGRpbmc6IDUwfX0gLz47XG4gICAgfVxuICAgIC8qXG4gICAgVGhlIFBhcnRpY2lwYW50IFR5cGUgUGlja2VyIHdpbGwgYmUgc2tpcHBlZCBpZiBzb21lb25lIG9ubHkgaGF2ZSBwZXJtaXNzaW9ucyB0byBjcmVhdGUgc2VjdGlvbnMgZm9yIG9uZVxuICAgIHR5cGUgb2YgcGFydGljaXBhbnRzLiBTZWUgdGVhY2hlclNlY3Rpb25zUmVkdXggZm9yIG1vcmUgZGV0YWlscyBvbiBob3cgdGhpcyBpcyBzZXQgdXAuXG4gICAgKi9cbiAgICBpZiAoIXBhcnRpY2lwYW50VHlwZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFBhcnRpY2lwYW50VHlwZVBpY2tlclxuICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICBzZXRQYXJ0aWNpcGFudFR5cGU9e29uUGFydGljaXBhbnRUeXBlU2VsZWN0aW9ufVxuICAgICAgICAgIGhhbmRsZUNhbmNlbD17aGFuZGxlQ2FuY2VsfVxuICAgICAgICAgIGF2YWlsYWJsZVBhcnRpY2lwYW50VHlwZXM9e2F2YWlsYWJsZVBhcnRpY2lwYW50VHlwZXN9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWxvZ2luVHlwZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPExvZ2luVHlwZVBpY2tlclxuICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICBoYW5kbGVJbXBvcnRPcGVuPXtiZWdpbkltcG9ydFJvc3RlckZsb3d9XG4gICAgICAgICAgc2V0Um9zdGVyUHJvdmlkZXI9e3NldFJvc3RlclByb3ZpZGVyfVxuICAgICAgICAgIHNldExvZ2luVHlwZT17b25Mb2dpblR5cGVTZWxlY3Rpb259XG4gICAgICAgICAgaGFuZGxlQ2FuY2VsPXtoYW5kbGVDYW5jZWx9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBpZiAocGFydGljaXBhbnRUeXBlICYmIGxvZ2luVHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICA8QmFzZURpYWxvZ1xuICAgICAgICB1c2VVcGRhdGVkU3R5bGVzXG4gICAgICAgIGZpeGVkV2lkdGg9ezEwMTB9XG4gICAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICB1bmNsb3NlYWJsZVxuICAgICAgICBzdHlsZT17e292ZXJmbG93OiAnaGlkZGVuJ319XG4gICAgICA+XG4gICAgICAgIDxQYWRBbmRDZW50ZXI+e2dldERpYWxvZ0NvbnRlbnQoKX08L1BhZEFuZENlbnRlcj5cbiAgICAgIDwvQmFzZURpYWxvZz5cbiAgICApO1xuICB9XG59O1xuXG5BZGRTZWN0aW9uRGlhbG9nLnByb3BUeXBlcyA9IHtcbiAgLy8gUHJvdmlkZWQgYnkgUmVkdXhcbiAgaXNPcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBzZWN0aW9uOiBzZWN0aW9uU2hhcGUsXG4gIGJlZ2luSW1wb3J0Um9zdGVyRmxvdzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2V0Um9zdGVyUHJvdmlkZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldExvZ2luVHlwZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2V0UGFydGljaXBhbnRUeXBlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVDYW5jZWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGF2YWlsYWJsZVBhcnRpY2lwYW50VHlwZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLmlzUmVxdWlyZWQsXG4gIGFzc2lnbmVkQ291cnNlT2ZmZXJpbmc6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFzeW5jTG9hZENvbXBsZXRlOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZEFkZFNlY3Rpb25EaWFsb2cgPSBBZGRTZWN0aW9uRGlhbG9nO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KFxuICBzdGF0ZSA9PiAoe1xuICAgIGlzT3BlbjogaXNBZGRpbmdTZWN0aW9uKHN0YXRlLnRlYWNoZXJTZWN0aW9ucyksXG4gICAgc2VjdGlvbjogc3RhdGUudGVhY2hlclNlY3Rpb25zLnNlY3Rpb25CZWluZ0VkaXRlZCxcbiAgICBhdmFpbGFibGVQYXJ0aWNpcGFudFR5cGVzOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMuYXZhaWxhYmxlUGFydGljaXBhbnRUeXBlcyxcbiAgICBhc3NpZ25lZENvdXJzZU9mZmVyaW5nOiBhc3NpZ25lZENvdXJzZU9mZmVyaW5nKHN0YXRlKSxcbiAgICBhc3luY0xvYWRDb21wbGV0ZTogc3RhdGUudGVhY2hlclNlY3Rpb25zLmFzeW5jTG9hZENvbXBsZXRlLFxuICB9KSxcbiAgZGlzcGF0Y2ggPT4gKHtcbiAgICBiZWdpbkltcG9ydFJvc3RlckZsb3c6ICgpID0+IGRpc3BhdGNoKGJlZ2luSW1wb3J0Um9zdGVyRmxvdygpKSxcbiAgICBzZXRSb3N0ZXJQcm92aWRlcjogcHJvdmlkZXIgPT4gZGlzcGF0Y2goc2V0Um9zdGVyUHJvdmlkZXIocHJvdmlkZXIpKSxcbiAgICBzZXRMb2dpblR5cGU6IGxvZ2luVHlwZSA9PiBkaXNwYXRjaChlZGl0U2VjdGlvblByb3BlcnRpZXMoe2xvZ2luVHlwZX0pKSxcbiAgICBzZXRQYXJ0aWNpcGFudFR5cGU6IHBhcnRpY2lwYW50VHlwZSA9PlxuICAgICAgZGlzcGF0Y2goZWRpdFNlY3Rpb25Qcm9wZXJ0aWVzKHtwYXJ0aWNpcGFudFR5cGV9KSksXG4gICAgaGFuZGxlQ2FuY2VsOiAoKSA9PiBkaXNwYXRjaChjYW5jZWxFZGl0aW5nU2VjdGlvbigpKSxcbiAgfSlcbikoQWRkU2VjdGlvbkRpYWxvZyk7XG4iLCJpbXBvcnQge29yZGVyQnksIHJhbmRvbX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0ICogYXMgVGFibGUgZnJvbSAncmVhY3RhYnVsYXItdGFibGUnO1xuaW1wb3J0ICogYXMgc29ydCBmcm9tICdzb3J0YWJ1bGFyJztcblxuaW1wb3J0IHtPQXV0aFNlY3Rpb25UeXBlc30gZnJvbSAnQGNkby9hcHBzL2FjY291bnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BjZG8vYXBwcy9sZWdhY3lTaGFyZWRDb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQge3RlYWNoZXJEYXNoYm9hcmRVcmx9IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC91cmxIZWxwZXJzJztcbmltcG9ydCB7U2VjdGlvbkxvZ2luVHlwZX0gZnJvbSAnQGNkby9nZW5lcmF0ZWQtc2NyaXB0cy9zaGFyZWRDb25zdGFudHMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQge3N0cmluZ2lmeVF1ZXJ5UGFyYW1zfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge3BsVGFibGVMYXlvdXRTdHlsZXMsIHNvcnRhYmxlT3B0aW9uc30gZnJvbSAnLi4vdGFibGVzL3RhYmxlQ29uc3RhbnRzJztcbmltcG9ydCB3cmFwcGVkU29ydGFibGUgZnJvbSAnLi4vdGFibGVzL3dyYXBwZWRfc29ydGFibGUnO1xuXG5pbXBvcnQgU2VjdGlvbkFjdGlvbkRyb3Bkb3duIGZyb20gJy4vU2VjdGlvbkFjdGlvbkRyb3Bkb3duJztcbmltcG9ydCB7c29ydGFibGVTZWN0aW9uU2hhcGV9IGZyb20gJy4vc2hhcGVzJztcbmltcG9ydCB7Z2V0U2VjdGlvblJvd3N9IGZyb20gJy4vdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMnO1xuXG5pbXBvcnQgc2tlbGV0b25pemVDb250ZW50IGZyb20gJ0BjZG8vYXBwcy9zaGFyZWRDb21wb25lbnRzL3NrZWxldG9uaXplLWNvbnRlbnQubW9kdWxlLnNjc3MnO1xuXG4vKiogQGVudW0ge251bWJlcn0gKi9cbmV4cG9ydCBjb25zdCBDT0xVTU5TID0ge1xuICBJRDogMCxcbiAgU0VDVElPTl9OQU1FOiAxLFxuICBHUkFERTogMixcbiAgQ09VUlNFOiAzLFxuICBTVFVERU5UUzogNCxcbiAgTE9HSU5fSU5GTzogNSxcbiAgRURJVF9ERUxFVEU6IDYsXG59O1xuXG5jb25zdCBwYXJ0aWNpcGFudE5hbWVzID0ge1xuICBmYWNpbGl0YXRvcjogaTE4bi5wYXJ0aWNpcGFudFR5cGVGYWNpbGl0YXRvclRpdGxlKCksXG4gIHRlYWNoZXI6IGkxOG4ucGFydGljaXBhbnRUeXBlVGVhY2hlclRpdGxlKCksXG59O1xuXG4vLyBDZWxsIGZvcm1hdHRlcnMgZm9yIHNvcnRhYmxlIE93bmVkUGxTZWN0aW9uc1RhYmxlLlxuZXhwb3J0IGNvbnN0IHNlY3Rpb25MaW5rRm9ybWF0dGVyID0gZnVuY3Rpb24gKG5hbWUsIHtyb3dEYXRhfSkge1xuICByZXR1cm4gKFxuICAgIDxhIHN0eWxlPXtwbFRhYmxlTGF5b3V0U3R5bGVzLmxpbmt9IGhyZWY9e3RlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5pZCl9PlxuICAgICAge3Jvd0RhdGEubmFtZX1cbiAgICA8L2E+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY291cnNlTGlua0Zvcm1hdHRlciA9IGZ1bmN0aW9uIChjb3Vyc2UsIHtyb3dEYXRhfSkge1xuICBjb25zdCB7XG4gICAgYXNzaWdubWVudE5hbWVzLFxuICAgIGFzc2lnbm1lbnRQYXRocyxcbiAgICBjb3Vyc2VPZmZlcmluZ3NBcmVMb2FkZWQsXG4gICAgaXNBc3NpZ25lZFNpbmdsZVVuaXRDb3Vyc2UsXG4gIH0gPSByb3dEYXRhO1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICB7Y291cnNlT2ZmZXJpbmdzQXJlTG9hZGVkID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBocmVmPXtgJHthc3NpZ25tZW50UGF0aHNbMF19JHtzdHJpbmdpZnlRdWVyeVBhcmFtcyh7XG4gICAgICAgICAgICAgIHNlY3Rpb25faWQ6IHJvd0RhdGEuaWQsXG4gICAgICAgICAgICB9KX1gfVxuICAgICAgICAgICAgc3R5bGU9e3BsVGFibGVMYXlvdXRTdHlsZXMubGlua31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YXNzaWdubWVudE5hbWVzWzBdfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7YXNzaWdubWVudFBhdGhzLmxlbmd0aCA+IDEgJiYgIWlzQXNzaWduZWRTaW5nbGVVbml0Q291cnNlICYmIChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3BsVGFibGVMYXlvdXRTdHlsZXMuY3VycmVudFVuaXR9PlxuICAgICAgICAgICAgICA8ZGl2PntpMThuLmN1cnJlbnRVbml0KCl9PC9kaXY+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj17YCR7YXNzaWdubWVudFBhdGhzWzFdfSR7c3RyaW5naWZ5UXVlcnlQYXJhbXMoe1xuICAgICAgICAgICAgICAgICAgc2VjdGlvbl9pZDogcm93RGF0YS5pZCxcbiAgICAgICAgICAgICAgICB9KX1gfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtwbFRhYmxlTGF5b3V0U3R5bGVzLmxpbmt9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YXNzaWdubWVudE5hbWVzWzFdfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHthc3NpZ25tZW50UGF0aHMubGVuZ3RoIDwgMSAmJiAoXG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIF9fdXNlRGVwcmVjYXRlZFRhZ1xuICAgICAgICAgICAgICB0ZXh0PXtpMThuLmNvdXJzZXNDYXJkQWN0aW9uKCl9XG4gICAgICAgICAgICAgIGhyZWY9eycvY2F0YWxvZyd9XG4gICAgICAgICAgICAgIGNvbG9yPXtCdXR0b24uQnV0dG9uQ29sb3IubmV1dHJhbERhcmt9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IChcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzc05hbWU9e3NrZWxldG9uaXplQ29udGVudC5za2VsZXRvbml6ZUNvbnRlbnR9XG4gICAgICAgICAgc3R5bGU9e3t3aWR0aDogcmFuZG9tKDMwLCA5MCkgKyAnJSd9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2dpbkluZm9Gb3JtYXR0ZXIgPSBmdW5jdGlvbiAobG9naW5UeXBlLCB7cm93RGF0YX0pIHtcbiAgbGV0IHNlY3Rpb25Db2RlID0gJyc7XG5cbiAgLy8gRm9yIG1hbmFnZWQgbG9naW5zLCBqdXN0IHNob3cgdGhlIHByb3ZpZGVyIG5hbWUgcmF0aGVyIHRoYW4gdGhlIGxvZ2luIGNvZGUuXG4gIGlmIChyb3dEYXRhLmxvZ2luVHlwZSA9PT0gT0F1dGhTZWN0aW9uVHlwZXMuY2xldmVyKSB7XG4gICAgc2VjdGlvbkNvZGUgPSBpMThuLmxvZ2luVHlwZUNsZXZlcigpO1xuICB9IGVsc2UgaWYgKHJvd0RhdGEubG9naW5UeXBlID09PSBPQXV0aFNlY3Rpb25UeXBlcy5nb29nbGVfY2xhc3Nyb29tKSB7XG4gICAgc2VjdGlvbkNvZGUgPSBpMThuLmxvZ2luVHlwZUdvb2dsZUNsYXNzcm9vbSgpO1xuICB9IGVsc2UgaWYgKHJvd0RhdGEubG9naW5UeXBlID09PSBTZWN0aW9uTG9naW5UeXBlLmx0aV92MSkge1xuICAgIHNlY3Rpb25Db2RlID0gcm93RGF0YS5sb2dpblR5cGVOYW1lO1xuICB9IGVsc2Uge1xuICAgIHNlY3Rpb25Db2RlID0gcm93RGF0YS5jb2RlO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIHN0eWxlPXtwbFRhYmxlTGF5b3V0U3R5bGVzLnNlY3Rpb25Db2RlTGlua31cbiAgICAgIGhyZWY9e3RlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5pZCwgJy9sb2dpbl9pbmZvJyl9XG4gICAgPlxuICAgICAge3NlY3Rpb25Db2RlfVxuICAgIDwvYT5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHVkZW50c0Zvcm1hdHRlciA9IGZ1bmN0aW9uIChzdHVkZW50Q291bnQsIHtyb3dEYXRhfSkge1xuICBjb25zdCBtYW5hZ2VTdHVkZW50c1VybCA9IHRlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5pZCwgJy9tYW5hZ2Vfc3R1ZGVudHMnKTtcbiAgY29uc3Qgc3R1ZGVudEh0bWwgPVxuICAgIHJvd0RhdGEuc3R1ZGVudENvdW50IDw9IDAgPyAoXG4gICAgICA8QnV0dG9uXG4gICAgICAgIF9fdXNlRGVwcmVjYXRlZFRhZ1xuICAgICAgICB0ZXh0PXtpMThuLmFkZFN0dWRlbnRzKCl9XG4gICAgICAgIGhyZWY9e21hbmFnZVN0dWRlbnRzVXJsfVxuICAgICAgICBjb2xvcj17QnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgPGFcbiAgICAgICAgc3R5bGU9e3BsVGFibGVMYXlvdXRTdHlsZXMubGlua31cbiAgICAgICAgaHJlZj17bWFuYWdlU3R1ZGVudHNVcmx9XG4gICAgICAgIGFyaWEtbGFiZWw9e2kxOG4ubWFuYWdlU3R1ZGVudHNBcmlhTGFiZWwoe1xuICAgICAgICAgIG51bVN0dWRlbnRzOiBzdHVkZW50Q291bnQsXG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICB7cm93RGF0YS5zdHVkZW50Q291bnR9XG4gICAgICA8L2E+XG4gICAgKTtcbiAgcmV0dXJuIHN0dWRlbnRIdG1sO1xufTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgY29tcG9uZW50IHRoYXQgc2hvd3MgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFByb2Zlc3Npb25hbCBMZWFybmluZyBzZWN0aW9ucyB0aGF0XG4gKiBhIHRlYWNoZXIgb3ducywgYW5kIGFsbG93cyBmb3IgZWRpdGluZywgZGVsZXRpbmcgYW5kIHNvcnRpbmcgdGhlbS5cbiAqIEl0IHNob3dzIHNvbWUgb2YgdGhlIHNhbWUgaW5mb3JtYXRpb24gYXMgdGhlIFNlY3Rpb25zQXNTdHVkZW50VGFibGUgdXNlZCBvbiB0aGUgdGVhY2hlclxuICogaG9tZXBhZ2UuIEhvd2V2ZXIsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMgaXQgdW5mb3J0dW5hdGVseSBoYXMgYSBzb21ld2hhdFxuICogZGlmZmVyZW50IHNldC9zaGFwZSBvZiBpbnB1dCBkYXRhLiBUaGlzIGNvbXBvbmVudCBnZXRzIGl0cyBkYXRhIGZyb21cbiAqIHNlY3Rpb25fYXBpX2hlbHBlcnMgaW4gcGVnYXN1cyB2aWEgYW4gQUpBWCBjYWxsLCB3aGVyZWFzIHRoYXQgY29tcG9uZW50IGdldHNcbiAqIGl0cyBkYXRhIGZyb20gc2VjdGlvbi5zdW1tYXJpemUgb24gcGFnZSBsb2FkLlxuICogQm90aCB1bHRpbWF0ZWx5IHNvdXJjZSBkYXRhIGZyb20gdGhlIGRhc2hib2FyZCBkYi5cbiAqIExvbmcgdGVybSBpdCB3b3VsZCBiZSBpZGVhbCBpZiBzZWN0aW9uX2FwaV9oZWxwZXJzIHdlbnQgYXdheSBhbmQgYm90aCBjb21wb25lbnRzXG4gKiB1c2VkIGRhc2hib2FyZC5cbiAqL1xuY2xhc3MgT3duZWRQbFNlY3Rpb25zVGFibGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNlY3Rpb25JZHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5udW1iZXIpLmlzUmVxdWlyZWQsXG4gICAgb25FZGl0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuXG4gICAgLy9Qcm92aWRlZCBieSByZWR1eFxuICAgIHNlY3Rpb25Sb3dzOiBQcm9wVHlwZXMuYXJyYXlPZihzb3J0YWJsZVNlY3Rpb25TaGFwZSkuaXNSZXF1aXJlZCxcbiAgICBpc1J0bDogUHJvcFR5cGVzLmJvb2wsXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc29ydGluZ0NvbHVtbnM6IHtcbiAgICAgIFtDT0xVTU5TLklEXToge1xuICAgICAgICBkaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgcG9zaXRpb246IDAsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgcGFydGljaXBhbnROYW1lRm9ybWF0dGVyID0gKHBhcnRpY2lwYW50VHlwZSwge3Jvd0RhdGF9KSA9PiB7XG4gICAgcmV0dXJuIDxkaXY+e3BhcnRpY2lwYW50TmFtZXNbcm93RGF0YS5wYXJ0aWNpcGFudFR5cGVdfTwvZGl2PjtcbiAgfTtcblxuICBhY3Rpb25DZWxsRm9ybWF0dGVyID0gKHRlbXAsIHtyb3dEYXRhfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8U2VjdGlvbkFjdGlvbkRyb3Bkb3duXG4gICAgICAgIHNlY3Rpb25EYXRhPXtyb3dEYXRhfVxuICAgICAgICBoYW5kbGVFZGl0PXt0aGlzLnByb3BzLm9uRWRpdH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICAvLyBUaGUgdXNlciByZXF1ZXN0ZWQgYSBuZXcgc29ydGluZyBjb2x1bW4uIEFkanVzdCB0aGUgc3RhdGUgYWNjb3JkaW5nbHkuXG4gIG9uU29ydCA9IHNlbGVjdGVkQ29sdW1uID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNvcnRpbmdDb2x1bW5zOiBzb3J0LmJ5Q29sdW1uKHtcbiAgICAgICAgc29ydGluZ0NvbHVtbnM6IHRoaXMuc3RhdGUuc29ydGluZ0NvbHVtbnMsXG4gICAgICAgIC8vIEN1c3RvbSBzb3J0aW5nT3JkZXIgcmVtb3ZlcyAnbm8tc29ydCcgZnJvbSB0aGUgY3ljbGVcbiAgICAgICAgc29ydGluZ09yZGVyOiB7XG4gICAgICAgICAgRklSU1Q6ICdhc2MnLFxuICAgICAgICAgIGFzYzogJ2Rlc2MnLFxuICAgICAgICAgIGRlc2M6ICdhc2MnLFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RlZENvbHVtbixcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9O1xuXG4gIGdldFNvcnRpbmdDb2x1bW5zID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNvcnRpbmdDb2x1bW5zIHx8IHt9O1xuICB9O1xuXG4gIGdldENvbHVtbnMgPSBzb3J0YWJsZSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICduYW1lJyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgbGFiZWw6IGkxOG4uc2VjdGlvbigpLFxuICAgICAgICAgIHRyYW5zZm9ybXM6IFtzb3J0YWJsZV0sXG4gICAgICAgIH0sXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbc2VjdGlvbkxpbmtGb3JtYXR0ZXJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdwYXJ0aWNpcGFudFR5cGUnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5wYXJ0aWNpcGFudHMoKSxcbiAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndWl0ZXN0LXBhcnRpY2lwYW50LXR5cGUtaGVhZGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRyYW5zZm9ybXM6IFtzb3J0YWJsZV0sXG4gICAgICAgIH0sXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbdGhpcy5wYXJ0aWNpcGFudE5hbWVGb3JtYXR0ZXJdLFxuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IHBsVGFibGVMYXlvdXRTdHlsZXMucGFydGljaXBhbnRUeXBlQ2VsbH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ2NvdXJzZScsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLmNvdXJzZSgpLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW2NvdXJzZUxpbmtGb3JtYXR0ZXJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdzdHVkZW50Q291bnQnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5zdHVkZW50cygpLFxuICAgICAgICAgIHRyYW5zZm9ybXM6IFtzb3J0YWJsZV0sXG4gICAgICAgIH0sXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbc3R1ZGVudHNGb3JtYXR0ZXJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdsb2dpblR5cGUnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5sb2dpbkluZm8oKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFtsb2dpbkluZm9Gb3JtYXR0ZXJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdhY3Rpb25zJyxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFt0aGlzLmFjdGlvbkNlbGxGb3JtYXR0ZXJdLFxuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IHsuLi5wbFRhYmxlTGF5b3V0U3R5bGVzLmNvbEJ1dHRvbn19LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBzb3J0YWJsZSA9IHdyYXBwZWRTb3J0YWJsZShcbiAgICAgIHRoaXMuZ2V0U29ydGluZ0NvbHVtbnMsXG4gICAgICB0aGlzLm9uU29ydCxcbiAgICAgIHNvcnRhYmxlT3B0aW9uc1xuICAgICk7XG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZ2V0Q29sdW1ucyhzb3J0YWJsZSk7XG4gICAgY29uc3Qgc29ydGluZ0NvbHVtbnMgPSB0aGlzLmdldFNvcnRpbmdDb2x1bW5zKCk7XG5cbiAgICBjb25zdCBzb3J0ZWRSb3dzID0gc29ydC5zb3J0ZXIoe1xuICAgICAgY29sdW1ucyxcbiAgICAgIHNvcnRpbmdDb2x1bW5zLFxuICAgICAgc29ydDogKHgsIHksIHopID0+IHtcbiAgICAgICAgcmV0dXJuIG9yZGVyQnkoeCwgeSwgeik7XG4gICAgICB9LFxuICAgIH0pKHRoaXMucHJvcHMuc2VjdGlvblJvd3MpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYWJsZS5Qcm92aWRlciBjbGFzc05hbWU9XCJ1aXRlc3Qtb3duZWQtcGwtc2VjdGlvbnNcIiBjb2x1bW5zPXtjb2x1bW5zfT5cbiAgICAgICAgPFRhYmxlLkhlYWRlciAvPlxuICAgICAgICA8VGFibGUuQm9keVxuICAgICAgICAgIGNsYXNzTmFtZT1cInVpdGVzdC1zb3J0ZWQtcm93c1wiXG4gICAgICAgICAgcm93cz17c29ydGVkUm93c31cbiAgICAgICAgICByb3dLZXk9XCJpZFwiXG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlLlByb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFVuY29ubmVjdGVkT3duZWRQbFNlY3Rpb25zVGFibGUgPSBPd25lZFBsU2VjdGlvbnNUYWJsZTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdCgoc3RhdGUsIG93blByb3BzKSA9PiAoe1xuICBzZWN0aW9uUm93czogZ2V0U2VjdGlvblJvd3Moc3RhdGUsIG93blByb3BzLnNlY3Rpb25JZHMpLFxuICBpc1J0bDogc3RhdGUuaXNSdGwsXG59KSkoT3duZWRQbFNlY3Rpb25zVGFibGUpO1xuIiwiLyoqIEBmaWxlIFJldXNhYmxlIHdpZGdldCB0byBkaXNwbGF5IGFuZCBtYW5hZ2Ugc2VjdGlvbnMgb3duZWQgYnkgdGhlXG4gKiAgICAgICAgY3VycmVudCB1c2VyLiAqL1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtjb25uZWN0fSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCBMdGlGZWVkYmFja0Jhbm5lciBmcm9tICdAY2RvL2FwcHMvc2ltcGxlU2lnblVwL2x0aS9mZWVkYmFjay9MdGlGZWVkYmFja0Jhbm5lcic7XG5pbXBvcnQgc3R5bGVDb25zdGFudHMgZnJvbSAnQGNkby9hcHBzL3N0eWxlQ29uc3RhbnRzJztcbmltcG9ydCBHbG9iYWxFZGl0aW9uV3JhcHBlciBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL0dsb2JhbEVkaXRpb25XcmFwcGVyJztcbmltcG9ydCBjb2xvciBmcm9tICdAY2RvL2FwcHMvdXRpbC9jb2xvcic7XG5pbXBvcnQgZXhwZXJpbWVudHMgZnJvbSAnQGNkby9hcHBzL3V0aWwvZXhwZXJpbWVudHMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQge3JlY29yZEltcHJlc3Npb259IGZyb20gJy4vaW1wcmVzc2lvbkhlbHBlcnMnO1xuaW1wb3J0IE93bmVkUGxTZWN0aW9uc1RhYmxlIGZyb20gJy4vT3duZWRQbFNlY3Rpb25zVGFibGUnO1xuaW1wb3J0IE93bmVkU2VjdGlvbnNUYWJsZSBmcm9tICcuL093bmVkU2VjdGlvbnNUYWJsZSc7XG5pbXBvcnQge3JlY29yZE9wZW5FZGl0U2VjdGlvbkRldGFpbHN9IGZyb20gJy4vc2VjdGlvbkhlbHBlcnMnO1xuaW1wb3J0IHtiZWdpbkVkaXRpbmdTZWN0aW9ufSBmcm9tICcuL3RlYWNoZXJTZWN0aW9uc1JlZHV4JztcblxuY2xhc3MgT3duZWRTZWN0aW9ucyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQbFNlY3Rpb25zOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKS5pc1JlcXVpcmVkLFxuICAgIGhpZGRlblNlY3Rpb25JZHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5udW1iZXIpLmlzUmVxdWlyZWQsXG5cbiAgICAvLyByZWR1eCBwcm92aWRlZFxuICAgIGJlZ2luRWRpdGluZ1NlY3Rpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgdmlld0hpZGRlbjogZmFsc2UsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5vbkVkaXRTZWN0aW9uID0gdGhpcy5vbkVkaXRTZWN0aW9uLmJpbmQodGhpcyk7XG4gICAgaWYgKGV4cGVyaW1lbnRzLmlzRW5hYmxlZChleHBlcmltZW50cy5URUFDSEVSX0RBU0hCT0FSRF9TRUNUSU9OX0JVVFRPTlMpKSB7XG4gICAgICByZWNvcmRJbXByZXNzaW9uKCdvd25lZF9zZWN0aW9uc190YWJsZV93aXRoX2Rhc2hib2FyZF9oZWFkZXJfYnV0dG9ucycpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWNvcmRJbXByZXNzaW9uKCdvd25lZF9zZWN0aW9uc190YWJsZV93aXRob3V0X2Rhc2hib2FyZF9oZWFkZXJfYnV0dG9ucycpO1xuICAgIH1cbiAgfVxuXG4gIG9uRWRpdFNlY3Rpb24oaWQpIHtcbiAgICB0aGlzLnByb3BzLmJlZ2luRWRpdGluZ1NlY3Rpb24oaWQpO1xuICAgIGlmIChleHBlcmltZW50cy5pc0VuYWJsZWQoZXhwZXJpbWVudHMuVEVBQ0hFUl9EQVNIQk9BUkRfU0VDVElPTl9CVVRUT05TKSkge1xuICAgICAgcmVjb3JkT3BlbkVkaXRTZWN0aW9uRGV0YWlscyhcbiAgICAgICAgaWQsXG4gICAgICAgICdvd25lZF9zZWN0aW9uc190YWJsZV93aXRoX2Rhc2hib2FyZF9oZWFkZXJfYnV0dG9ucydcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlY29yZE9wZW5FZGl0U2VjdGlvbkRldGFpbHMoXG4gICAgICAgIGlkLFxuICAgICAgICAnb3duZWRfc2VjdGlvbnNfdGFibGVfd2l0aG91dF9kYXNoYm9hcmRfaGVhZGVyX2J1dHRvbnMnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZWQgdG8gYXZvaWQgcGFzc2luZyBldmVudCBhcmdzXG4gIGJlZ2luRWRpdGluZ1NlY3Rpb24gPSAoKSA9PiB0aGlzLnByb3BzLmJlZ2luRWRpdGluZ1NlY3Rpb24oKTtcblxuICB0b2dnbGVWaWV3SGlkZGVuID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgdmlld0hpZGRlbjogIXRoaXMuc3RhdGUudmlld0hpZGRlbixcbiAgICB9KTtcbiAgfTtcblxuICBvd25lZFNlY3Rpb25zVGFibGUgPSBzaG93SGlkZGVuID0+IHtcbiAgICBjb25zdCB7aXNQbFNlY3Rpb25zLCBzZWN0aW9uSWRzLCBoaWRkZW5TZWN0aW9uSWRzfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc2VjdGlvbnNUb1Nob3cgPSBzaG93SGlkZGVuXG4gICAgICA/IGhpZGRlblNlY3Rpb25JZHNcbiAgICAgIDogXy53aXRob3V0KHNlY3Rpb25JZHMsIC4uLmhpZGRlblNlY3Rpb25JZHMpO1xuXG4gICAgcmV0dXJuIGlzUGxTZWN0aW9ucyA/IChcbiAgICAgIDxPd25lZFBsU2VjdGlvbnNUYWJsZVxuICAgICAgICBzZWN0aW9uSWRzPXtzZWN0aW9uc1RvU2hvd31cbiAgICAgICAgb25FZGl0PXt0aGlzLm9uRWRpdFNlY3Rpb259XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICA8T3duZWRTZWN0aW9uc1RhYmxlXG4gICAgICAgIHNlY3Rpb25JZHM9e3NlY3Rpb25zVG9TaG93fVxuICAgICAgICBvbkVkaXQ9e3RoaXMub25FZGl0U2VjdGlvbn1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3NlY3Rpb25JZHMsIGhpZGRlblNlY3Rpb25JZHN9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7dmlld0hpZGRlbn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgaGFzU2VjdGlvbnMgPSBzZWN0aW9uSWRzLmxlbmd0aCA+IDA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge2hhc1NlY3Rpb25zICYmIChcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEdsb2JhbEVkaXRpb25XcmFwcGVyXG4gICAgICAgICAgICAgIGNvbXBvbmVudD17THRpRmVlZGJhY2tCYW5uZXJ9XG4gICAgICAgICAgICAgIGNvbXBvbmVudElkPVwiTHRpRmVlZGJhY2tCYW5uZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHt0aGlzLm93bmVkU2VjdGlvbnNUYWJsZShmYWxzZSl9XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuYnV0dG9uQ29udGFpbmVyfT5cbiAgICAgICAgICAgICAge2hpZGRlblNlY3Rpb25JZHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWktdGVzdC1zaG93LWhpZGVcIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy50b2dnbGVWaWV3SGlkZGVufVxuICAgICAgICAgICAgICAgICAgaWNvbj17dmlld0hpZGRlbiA/ICdjYXJldC11cCcgOiAnY2FyZXQtZG93bid9XG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgdmlld0hpZGRlblxuICAgICAgICAgICAgICAgICAgICAgID8gaTE4bi5oaWRlQXJjaGl2ZWRTZWN0aW9ucygpXG4gICAgICAgICAgICAgICAgICAgICAgOiBpMThuLnZpZXdBcmNoaXZlZFNlY3Rpb25zKClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtCdXR0b24uQnV0dG9uQ29sb3IuZ3JheX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7dmlld0hpZGRlbiAmJiBoaWRkZW5TZWN0aW9uSWRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5oaWRkZW5TZWN0aW9uTGFiZWx9PlxuICAgICAgICAgICAgICAgICAge2kxOG4uYXJjaGl2ZWRTZWN0aW9ucygpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5oaWRkZW5TZWN0aW9uRGVzY30+XG4gICAgICAgICAgICAgICAgICB7aTE4bi5hcmNoaXZlZFNlY3Rpb25zVGVhY2hlckRlc2NyaXB0aW9uKCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge3RoaXMub3duZWRTZWN0aW9uc1RhYmxlKHRydWUpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYnV0dG9uOiB7XG4gICAgbWFyZ2luQm90dG9tOiAyMCxcbiAgICBmbG9hdDogJ3JpZ2h0JyxcbiAgfSxcbiAgYnV0dG9uQ29udGFpbmVyOiB7XG4gICAgd2lkdGg6IHN0eWxlQ29uc3RhbnRzWydjb250ZW50LXdpZHRoJ10sXG4gICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgIHBhZGRpbmdUb3A6IDEwLFxuICAgIHBhZGRpbmdCb3R0b206IDEwLFxuICB9LFxuICBoaWRkZW5TZWN0aW9uTGFiZWw6IHtcbiAgICBmb250U2l6ZTogMTgsXG4gICAgcGFkZGluZ0JvdHRvbTogMTAsXG4gICAgY29sb3I6IGNvbG9yLmNoYXJjb2FsLFxuICB9LFxuICBoaWRkZW5TZWN0aW9uRGVzYzoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBsaW5lSGVpZ2h0OiAnMjJweCcsXG4gICAgcGFkZGluZ0JvdHRvbTogMTAsXG4gICAgY29sb3I6IGNvbG9yLmNoYXJjb2FsLFxuICB9LFxufTtcbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZE93bmVkU2VjdGlvbnMgPSBPd25lZFNlY3Rpb25zO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KCgpID0+ICh7fSksIHtcbiAgYmVnaW5FZGl0aW5nU2VjdGlvbixcbn0pKE93bmVkU2VjdGlvbnMpO1xuIiwiaW1wb3J0IHtvcmRlckJ5LCBzb3J0QnksIHJhbmRvbX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0ICogYXMgVGFibGUgZnJvbSAncmVhY3RhYnVsYXItdGFibGUnO1xuaW1wb3J0ICogYXMgc29ydCBmcm9tICdzb3J0YWJ1bGFyJztcblxuaW1wb3J0IHtPQXV0aFNlY3Rpb25UeXBlc30gZnJvbSAnQGNkby9hcHBzL2FjY291bnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BjZG8vYXBwcy9sZWdhY3lTaGFyZWRDb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQge3RlYWNoZXJEYXNoYm9hcmRVcmx9IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC91cmxIZWxwZXJzJztcbmltcG9ydCBjb2xvciBmcm9tICdAY2RvL2FwcHMvdXRpbC9jb2xvcic7XG5pbXBvcnQge1xuICBTdHVkZW50R3JhZGVMZXZlbHMsXG4gIFNlY3Rpb25Mb2dpblR5cGUsXG59IGZyb20gJ0BjZG8vZ2VuZXJhdGVkLXNjcmlwdHMvc2hhcmVkQ29uc3RhbnRzJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IHtzdHJpbmdpZnlRdWVyeVBhcmFtc30gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHt0YWJsZUxheW91dFN0eWxlcywgc29ydGFibGVPcHRpb25zfSBmcm9tICcuLi90YWJsZXMvdGFibGVDb25zdGFudHMnO1xuaW1wb3J0IHdyYXBwZWRTb3J0YWJsZSBmcm9tICcuLi90YWJsZXMvd3JhcHBlZF9zb3J0YWJsZSc7XG5pbXBvcnQge3Nob3dWMlRlYWNoZXJEYXNoYm9hcmR9IGZyb20gJy4uL3RlYWNoZXJOYXZpZ2F0aW9uL1RlYWNoZXJOYXZGbGFnVXRpbHMnO1xuXG5pbXBvcnQgU2VjdGlvbkFjdGlvbkRyb3Bkb3duIGZyb20gJy4vU2VjdGlvbkFjdGlvbkRyb3Bkb3duJztcbmltcG9ydCB7c29ydGFibGVTZWN0aW9uU2hhcGV9IGZyb20gJy4vc2hhcGVzJztcbmltcG9ydCB7Z2V0U2VjdGlvblJvd3N9IGZyb20gJy4vdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMnO1xuXG5pbXBvcnQgc2tlbGV0b25pemVDb250ZW50IGZyb20gJ0BjZG8vYXBwcy9zaGFyZWRDb21wb25lbnRzL3NrZWxldG9uaXplLWNvbnRlbnQubW9kdWxlLnNjc3MnO1xuXG4vKiogQGVudW0ge251bWJlcn0gKi9cbmV4cG9ydCBjb25zdCBDT0xVTU5TID0ge1xuICBJRDogMCxcbiAgU0VDVElPTl9OQU1FOiAxLFxuICBHUkFERTogMixcbiAgQ09VUlNFOiAzLFxuICBTVFVERU5UUzogNCxcbiAgTE9HSU5fSU5GTzogNSxcbiAgRURJVF9ERUxFVEU6IDYsXG59O1xuXG4vLyBDZWxsIGZvcm1hdHRlcnMgZm9yIHNvcnRhYmxlIE93bmVkU2VjdGlvbnNUYWJsZS5cbmV4cG9ydCBjb25zdCBzZWN0aW9uTGlua0Zvcm1hdHRlciA9IGZ1bmN0aW9uIChuYW1lLCB7cm93RGF0YX0pIHtcbiAgcmV0dXJuIChcbiAgICA8YSBzdHlsZT17dGFibGVMYXlvdXRTdHlsZXMubGlua30gaHJlZj17dGVhY2hlckRhc2hib2FyZFVybChyb3dEYXRhLmlkKX0+XG4gICAgICB7cm93RGF0YS5uYW1lfVxuICAgIDwvYT5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3Vyc2VMaW5rRm9ybWF0dGVyID0gZnVuY3Rpb24gKGNvdXJzZSwge3Jvd0RhdGF9KSB7XG4gIGNvbnN0IHtcbiAgICBhc3NpZ25tZW50TmFtZXMsXG4gICAgYXNzaWdubWVudFBhdGhzLFxuICAgIGNvdXJzZU9mZmVyaW5nc0FyZUxvYWRlZCxcbiAgICBpc0Fzc2lnbmVkU2luZ2xlVW5pdENvdXJzZSxcbiAgfSA9IHJvd0RhdGE7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAge2NvdXJzZU9mZmVyaW5nc0FyZUxvYWRlZCA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj17XG4gICAgICAgICAgICAgIHNob3dWMlRlYWNoZXJEYXNoYm9hcmQoKVxuICAgICAgICAgICAgICAgID8gYXNzaWdubWVudFBhdGhzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRQYXRoc1swXS5pbmNsdWRlcygnL3MvJylcbiAgICAgICAgICAgICAgICAgID8gdGVhY2hlckRhc2hib2FyZFVybChcbiAgICAgICAgICAgICAgICAgICAgICByb3dEYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRQYXRoc1swXS5yZXBsYWNlKCcvcy8nLCAnL3VuaXQvJylcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgOiB0ZWFjaGVyRGFzaGJvYXJkVXJsKHJvd0RhdGEuaWQsIGFzc2lnbm1lbnRQYXRoc1swXSlcbiAgICAgICAgICAgICAgICA6IGAke2Fzc2lnbm1lbnRQYXRoc1swXX0ke3N0cmluZ2lmeVF1ZXJ5UGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbl9pZDogcm93RGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgIH0pfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0eWxlPXt0YWJsZUxheW91dFN0eWxlcy5saW5rfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHthc3NpZ25tZW50TmFtZXNbMF19XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIHthc3NpZ25tZW50UGF0aHMubGVuZ3RoID4gMSAmJiAhaXNBc3NpZ25lZFNpbmdsZVVuaXRDb3Vyc2UgJiYgKFxuICAgICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmN1cnJlbnRVbml0fT5cbiAgICAgICAgICAgICAgPGRpdj57aTE4bi5jdXJyZW50VW5pdCgpfTwvZGl2PlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9e1xuICAgICAgICAgICAgICAgICAgc2hvd1YyVGVhY2hlckRhc2hib2FyZCgpXG4gICAgICAgICAgICAgICAgICAgID8gdGVhY2hlckRhc2hib2FyZFVybChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50UGF0aHNbMV0ucmVwbGFjZSgnL3MvJywgJy91bml0LycpXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IGAke2Fzc2lnbm1lbnRQYXRoc1sxXX0ke3N0cmluZ2lmeVF1ZXJ5UGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25faWQ6IHJvd0RhdGEuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgfSl9YFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGFibGVMYXlvdXRTdHlsZXMubGlua31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHthc3NpZ25tZW50TmFtZXNbMV19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgICAge2Fzc2lnbm1lbnRQYXRocy5sZW5ndGggPCAxICYmIChcbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgX191c2VEZXByZWNhdGVkVGFnXG4gICAgICAgICAgICAgIHRleHQ9e2kxOG4uY291cnNlc0NhcmRBY3Rpb24oKX1cbiAgICAgICAgICAgICAgaHJlZj17Jy9jYXRhbG9nJ31cbiAgICAgICAgICAgICAgY29sb3I9e0J1dHRvbi5CdXR0b25Db2xvci5uZXV0cmFsRGFya31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC8+XG4gICAgICApIDogKFxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzTmFtZT17c2tlbGV0b25pemVDb250ZW50LnNrZWxldG9uaXplQ29udGVudH1cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZm9yYmlkLWRvbS1wcm9wc1xuICAgICAgICAgIGRhdGEtdGVzdGlkPXsnc2tlbGV0b25pemUtY29udGVudCd9XG4gICAgICAgICAgc3R5bGU9e3t3aWR0aDogcmFuZG9tKDMwLCA5MCkgKyAnJSd9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2dpbkluZm9Gb3JtYXR0ZXIgPSBmdW5jdGlvbiAobG9naW5UeXBlLCB7cm93RGF0YX0pIHtcbiAgbGV0IHNlY3Rpb25Db2RlID0gJyc7XG5cbiAgLy8gRm9yIG1hbmFnZWQgbG9naW5zLCBqdXN0IHNob3cgdGhlIHByb3ZpZGVyIG5hbWUgcmF0aGVyIHRoYW4gdGhlIGxvZ2luIGNvZGUuXG4gIGlmIChyb3dEYXRhLmxvZ2luVHlwZSA9PT0gT0F1dGhTZWN0aW9uVHlwZXMuY2xldmVyKSB7XG4gICAgc2VjdGlvbkNvZGUgPSBpMThuLmxvZ2luVHlwZUNsZXZlcigpO1xuICB9IGVsc2UgaWYgKHJvd0RhdGEubG9naW5UeXBlID09PSBPQXV0aFNlY3Rpb25UeXBlcy5nb29nbGVfY2xhc3Nyb29tKSB7XG4gICAgc2VjdGlvbkNvZGUgPSBpMThuLmxvZ2luVHlwZUdvb2dsZUNsYXNzcm9vbSgpO1xuICB9IGVsc2UgaWYgKHJvd0RhdGEubG9naW5UeXBlID09PSBTZWN0aW9uTG9naW5UeXBlLmx0aV92MSkge1xuICAgIHNlY3Rpb25Db2RlID0gcm93RGF0YS5sb2dpblR5cGVOYW1lO1xuICB9IGVsc2Uge1xuICAgIHNlY3Rpb25Db2RlID0gcm93RGF0YS5jb2RlO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIHN0eWxlPXt0YWJsZUxheW91dFN0eWxlcy5saW5rfVxuICAgICAgaHJlZj17dGVhY2hlckRhc2hib2FyZFVybChyb3dEYXRhLmlkLCAnL2xvZ2luX2luZm8nKX1cbiAgICA+XG4gICAgICB7c2VjdGlvbkNvZGV9XG4gICAgPC9hPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHN0dWRlbnRzRm9ybWF0dGVyID0gZnVuY3Rpb24gKHN0dWRlbnRDb3VudCwge3Jvd0RhdGF9KSB7XG4gIGNvbnN0IG1hbmFnZVN0dWRlbnRzVXJsID0gc2hvd1YyVGVhY2hlckRhc2hib2FyZCgpXG4gICAgPyB0ZWFjaGVyRGFzaGJvYXJkVXJsKHJvd0RhdGEuaWQsICcvcm9zdGVyJylcbiAgICA6IHRlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5pZCwgJy9tYW5hZ2Vfc3R1ZGVudHMnKTtcbiAgY29uc3Qgc3R1ZGVudEh0bWwgPVxuICAgIHJvd0RhdGEuc3R1ZGVudENvdW50IDw9IDAgPyAoXG4gICAgICA8QnV0dG9uXG4gICAgICAgIF9fdXNlRGVwcmVjYXRlZFRhZ1xuICAgICAgICB0ZXh0PXtpMThuLmFkZFN0dWRlbnRzKCl9XG4gICAgICAgIGhyZWY9e21hbmFnZVN0dWRlbnRzVXJsfVxuICAgICAgICBjb2xvcj17QnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgPGFcbiAgICAgICAgc3R5bGU9e3RhYmxlTGF5b3V0U3R5bGVzLmxpbmt9XG4gICAgICAgIGhyZWY9e21hbmFnZVN0dWRlbnRzVXJsfVxuICAgICAgICBhcmlhLWxhYmVsPXtpMThuLm1hbmFnZVN0dWRlbnRzQXJpYUxhYmVsKHtcbiAgICAgICAgICBudW1TdHVkZW50czogc3R1ZGVudENvdW50LFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAge3Jvd0RhdGEuc3R1ZGVudENvdW50fVxuICAgICAgPC9hPlxuICAgICk7XG4gIHJldHVybiBzdHVkZW50SHRtbDtcbn07XG5cbi8vRGlzcGxheXMgbm90aGluZyBmb3IgaGlkZGVuIGNvbHVtblxuY29uc3QgaGlkZGVuRm9ybWF0dGVyID0gZnVuY3Rpb24gKGlkKSB7XG4gIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgY29tcG9uZW50IHRoYXQgc2hvd3MgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlY3Rpb25zIHRoYXQgYSB0ZWFjaGVyXG4gKiBvd25zLCBhbmQgYWxsb3dzIGZvciBlZGl0aW5nLCBkZWxldGluZyBhbmQgc29ydGluZyB0aGVtLlxuICogSXQgc2hvd3Mgc29tZSBvZiB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhcyB0aGUgU2VjdGlvbnNBc1N0dWRlbnRUYWJsZSB1c2VkIG9uIHRoZSB0ZWFjaGVyXG4gKiBob21lcGFnZS4gSG93ZXZlciwgZm9yIGhpc3RvcmljYWwgcmVhc29ucyBpdCB1bmZvcnR1bmF0ZWx5IGhhcyBhIHNvbWV3aGF0XG4gKiBkaWZmZXJlbnQgc2V0L3NoYXBlIG9mIGlucHV0IGRhdGEuIFRoaXMgY29tcG9uZW50IGdldHMgaXRzIGRhdGEgZnJvbVxuICogc2VjdGlvbl9hcGlfaGVscGVycyBpbiBwZWdhc3VzIHZpYSBhbiBBSkFYIGNhbGwsIHdoZXJlYXMgdGhhdCBjb21wb25lbnQgZ2V0c1xuICogaXRzIGRhdGEgZnJvbSBzZWN0aW9uLnN1bW1hcml6ZSBvbiBwYWdlIGxvYWQuXG4gKiBCb3RoIHVsdGltYXRlbHkgc291cmNlIGRhdGEgZnJvbSB0aGUgZGFzaGJvYXJkIGRiLlxuICogTG9uZyB0ZXJtIGl0IHdvdWxkIGJlIGlkZWFsIGlmIHNlY3Rpb25fYXBpX2hlbHBlcnMgd2VudCBhd2F5IGFuZCBib3RoIGNvbXBvbmVudHNcbiAqIHVzZWQgZGFzaGJvYXJkLlxuICovXG5jbGFzcyBPd25lZFNlY3Rpb25zVGFibGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNlY3Rpb25JZHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5udW1iZXIpLmlzUmVxdWlyZWQsXG4gICAgb25FZGl0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuXG4gICAgLy9Qcm92aWRlZCBieSByZWR1eFxuICAgIHNlY3Rpb25Sb3dzOiBQcm9wVHlwZXMuYXJyYXlPZihzb3J0YWJsZVNlY3Rpb25TaGFwZSkuaXNSZXF1aXJlZCxcbiAgICBpc1J0bDogUHJvcFR5cGVzLmJvb2wsXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc29ydGluZ0NvbHVtbnM6IHtcbiAgICAgIFtDT0xVTU5TLklEXToge1xuICAgICAgICBkaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgcG9zaXRpb246IDAsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgZGV0ZXJtaW5lU29ydGVyID0gKGRhdGEsIGFjdGl2ZUNvbHVtbiwgZGlyZWN0aW9uQXJyYXkpID0+IHtcbiAgICAvLyBJZiB3ZSBhcmUgc29ydGluZyBvbiBncmFkZVxuICAgIGNvbnN0IGdyYWRlQ29sID0gQ09MVU1OUy5HUkFERS50b1N0cmluZygpO1xuICAgIGlmICh0aGlzLnN0YXRlLnNvcnRpbmdDb2x1bW5zW2dyYWRlQ29sXSkge1xuICAgICAgY29uc3QgbXVsdCA9IGRpcmVjdGlvbkFycmF5WzBdID09PSAnYXNjJyA/IDEgOiAtMTtcbiAgICAgIHJldHVybiBzb3J0QnkoZGF0YSwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG11bHQgKlxuICAgICAgICAgIFN0dWRlbnRHcmFkZUxldmVscy5jb25jYXQobnVsbCkuaW5kZXhPZihcbiAgICAgICAgICAgIG9iai5ncmFkZXMgPyBvYmouZ3JhZGVzWzBdIDogbnVsbFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3JkZXJCeShkYXRhLCBhY3RpdmVDb2x1bW4sIGRpcmVjdGlvbkFycmF5KTtcbiAgICB9XG4gIH07XG5cbiAgZ3JhZGVGb3JtYXR0ZXIgPSAoZ3JhZGVzLCB7cm93RGF0YX0pID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRHcmFkZXMgPSByb3dEYXRhLmdyYWRlcyA/IHJvd0RhdGEuZ3JhZGVzLmpvaW4oJywgJykgOiBudWxsO1xuICAgIHJldHVybiA8ZGl2Pntmb3JtYXR0ZWRHcmFkZXN9PC9kaXY+O1xuICB9O1xuXG4gIGFjdGlvbkNlbGxGb3JtYXR0ZXIgPSAodGVtcCwge3Jvd0RhdGF9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTZWN0aW9uQWN0aW9uRHJvcGRvd25cbiAgICAgICAgc2VjdGlvbkRhdGE9e3Jvd0RhdGF9XG4gICAgICAgIGhhbmRsZUVkaXQ9e3RoaXMucHJvcHMub25FZGl0fVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIC8vIFRoZSB1c2VyIHJlcXVlc3RlZCBhIG5ldyBzb3J0aW5nIGNvbHVtbi4gQWRqdXN0IHRoZSBzdGF0ZSBhY2NvcmRpbmdseS5cbiAgb25Tb3J0ID0gc2VsZWN0ZWRDb2x1bW4gPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc29ydGluZ0NvbHVtbnM6IHNvcnQuYnlDb2x1bW4oe1xuICAgICAgICBzb3J0aW5nQ29sdW1uczogdGhpcy5zdGF0ZS5zb3J0aW5nQ29sdW1ucyxcbiAgICAgICAgLy8gQ3VzdG9tIHNvcnRpbmdPcmRlciByZW1vdmVzICduby1zb3J0JyBmcm9tIHRoZSBjeWNsZVxuICAgICAgICBzb3J0aW5nT3JkZXI6IHtcbiAgICAgICAgICBGSVJTVDogJ2FzYycsXG4gICAgICAgICAgYXNjOiAnZGVzYycsXG4gICAgICAgICAgZGVzYzogJ2FzYycsXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGVkQ29sdW1uLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH07XG5cbiAgZ2V0U29ydGluZ0NvbHVtbnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc29ydGluZ0NvbHVtbnMgfHwge307XG4gIH07XG5cbiAgZ2V0Q29sdW1ucyA9IHNvcnRhYmxlID0+IHtcbiAgICBjb25zdCBjb2xTdHlsZSA9IHsuLi50YWJsZUxheW91dFN0eWxlcy5jZWxsLCAuLi5zdHlsZXMuc2VjdGlvbkNvbH07XG4gICAgY29uc3QgdW5zb3J0YWJsZUhlYWRlclN0eWxlID0gdGhpcy5wcm9wcy5pc1J0bFxuICAgICAgPyBzdHlsZXMudW5zb3J0YWJsZUhlYWRlclJUTFxuICAgICAgOiBzdHlsZXMudW5zb3J0YWJsZUhlYWRlcjtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICAvL2Rpc3BsYXlzIG5vdGhpbmcsIGJ1dCB1c2VkIGFzIGluaXRpYWwgc29ydFxuICAgICAgICBwcm9wZXJ0eTogJ2lkJyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogc3R5bGVzLmhpZGRlbkNvbH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbaGlkZGVuRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiBzdHlsZXMuaGlkZGVuQ29sfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnbmFtZScsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLnNlY3Rpb24oKSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiB0YWJsZUxheW91dFN0eWxlcy5oZWFkZXJDZWxsfSxcbiAgICAgICAgICB0cmFuc2Zvcm1zOiBbc29ydGFibGVdLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3NlY3Rpb25MaW5rRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiB7Li4uY29sU3R5bGUsIC4uLnN0eWxlcy5sZWZ0SGlkZGVuQ29sfX0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ2dyYWRlcycsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLmdyYWRlKCksXG4gICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3VpdGVzdC1ncmFkZS1oZWFkZXInLFxuICAgICAgICAgICAgc3R5bGU6IHRhYmxlTGF5b3V0U3R5bGVzLmhlYWRlckNlbGwsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmFuc2Zvcm1zOiBbc29ydGFibGVdLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3RoaXMuZ3JhZGVGb3JtYXR0ZXJdLFxuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IGNvbFN0eWxlfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnY291cnNlJyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgbGFiZWw6IGkxOG4uY291cnNlKCksXG4gICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIHN0eWxlOiB7Li4udGFibGVMYXlvdXRTdHlsZXMuaGVhZGVyQ2VsbCwgLi4udW5zb3J0YWJsZUhlYWRlclN0eWxlfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW2NvdXJzZUxpbmtGb3JtYXR0ZXJdLFxuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IGNvbFN0eWxlfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnc3R1ZGVudENvdW50JyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgbGFiZWw6IGkxOG4uc3R1ZGVudHMoKSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiB0YWJsZUxheW91dFN0eWxlcy5oZWFkZXJDZWxsfSxcbiAgICAgICAgICB0cmFuc2Zvcm1zOiBbc29ydGFibGVdLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3N0dWRlbnRzRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiBjb2xTdHlsZX0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ2xvZ2luVHlwZScsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLmxvZ2luSW5mbygpLFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBzdHlsZTogey4uLnRhYmxlTGF5b3V0U3R5bGVzLmhlYWRlckNlbGwsIC4uLnVuc29ydGFibGVIZWFkZXJTdHlsZX0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFtsb2dpbkluZm9Gb3JtYXR0ZXJdLFxuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IGNvbFN0eWxlfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnYWN0aW9ucycsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IHRhYmxlTGF5b3V0U3R5bGVzLmhlYWRlckNlbGx9LFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3RoaXMuYWN0aW9uQ2VsbEZvcm1hdHRlcl0sXG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogey4uLnRhYmxlTGF5b3V0U3R5bGVzLmNlbGwsIC4uLnN0eWxlcy5jb2xCdXR0b259fSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc29ydGFibGUgPSB3cmFwcGVkU29ydGFibGUoXG4gICAgICB0aGlzLmdldFNvcnRpbmdDb2x1bW5zLFxuICAgICAgdGhpcy5vblNvcnQsXG4gICAgICBzb3J0YWJsZU9wdGlvbnNcbiAgICApO1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmdldENvbHVtbnMoc29ydGFibGUpO1xuICAgIGNvbnN0IHNvcnRpbmdDb2x1bW5zID0gdGhpcy5nZXRTb3J0aW5nQ29sdW1ucygpO1xuXG4gICAgY29uc3Qgc29ydGVkUm93cyA9IHNvcnQuc29ydGVyKHtcbiAgICAgIGNvbHVtbnMsXG4gICAgICBzb3J0aW5nQ29sdW1ucyxcbiAgICAgIHNvcnQ6ICh4LCB5LCB6KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRldGVybWluZVNvcnRlcih4LCB5LCB6KTtcbiAgICAgIH0sXG4gICAgfSkodGhpcy5wcm9wcy5zZWN0aW9uUm93cyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRhYmxlLlByb3ZpZGVyXG4gICAgICAgIGNsYXNzTmFtZT1cInVpdGVzdC1vd25lZC1zZWN0aW9uc1wiXG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIHN0eWxlPXt0YWJsZUxheW91dFN0eWxlcy50YWJsZX1cbiAgICAgID5cbiAgICAgICAgPFRhYmxlLkhlYWRlciAvPlxuICAgICAgICA8VGFibGUuQm9keVxuICAgICAgICAgIGNsYXNzTmFtZT1cInVpdGVzdC1zb3J0ZWQtcm93c1wiXG4gICAgICAgICAgcm93cz17c29ydGVkUm93c31cbiAgICAgICAgICByb3dLZXk9XCJpZFwiXG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlLlByb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0ge1xuICBjdXJyZW50VW5pdDoge1xuICAgIG1hcmdpblRvcDogMTAsXG4gIH0sXG4gIC8vSGlkZXMgYSBjb2x1bW4gc28gdGhhdCB3ZSBjYW4gc29ydCBieSBhIHZhbHVlIG5vdCBkaXNwbGF5ZWRcbiAgaGlkZGVuQ29sOiB7XG4gICAgd2lkdGg6IDAsXG4gICAgcGFkZGluZzogMCxcbiAgICBib3JkZXI6IDAsXG4gIH0sXG4gIC8vQXNzaWduZWQgdG8gYSBjb2x1bW4gd2l0aCB0aGUgaGlkZGVuIGNvbHVtbiB0byB0aGUgbGVmdFxuICBsZWZ0SGlkZGVuQ29sOiB7XG4gICAgYm9yZGVyTGVmdDogMCxcbiAgfSxcbiAgdW5zb3J0YWJsZUhlYWRlcjogdGFibGVMYXlvdXRTdHlsZXMudW5zb3J0YWJsZUhlYWRlcixcbiAgdW5zb3J0YWJsZUhlYWRlclJUTDogdGFibGVMYXlvdXRTdHlsZXMudW5zb3J0YWJsZUhlYWRlclJUTCxcbiAgY29sQnV0dG9uOiB7XG4gICAgcGFkZGluZ1RvcDogMjAsXG4gICAgcGFkZGluZ0xlZnQ6IDIwLFxuICAgIHBhZGRpbmdCb3R0b206IDIwLFxuICAgIHdpZHRoOiA0MCxcbiAgfSxcbiAgc2VjdGlvbkNvbDoge1xuICAgIHBhZGRpbmdMZWZ0OiAyMCxcbiAgfSxcbiAgc2VjdGlvbkNvZGVOb25lOiB7XG4gICAgY29sb3I6IGNvbG9yLmxpZ2h0X2dyYXksXG4gICAgZm9udFNpemU6IDE2LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFVuY29ubmVjdGVkT3duZWRTZWN0aW9uc1RhYmxlID0gT3duZWRTZWN0aW9uc1RhYmxlO1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KChzdGF0ZSwgb3duUHJvcHMpID0+ICh7XG4gIHNlY3Rpb25Sb3dzOiBnZXRTZWN0aW9uUm93cyhzdGF0ZSwgb3duUHJvcHMuc2VjdGlvbklkcyksXG4gIGlzUnRsOiBzdGF0ZS5pc1J0bCxcbn0pKShPd25lZFNlY3Rpb25zVGFibGUpO1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogQSBzaW1wbGUgY29tcG9uZW50IGZvciBjZW50ZXJpbmcgY29udGVudCB3aXRoaW4gYSBkaWFsb2cuXG4gKi9cbmNvbnN0IFBhZEFuZENlbnRlciA9ICh7Y2hpbGRyZW59KSA9PiAoXG4gIDxkaXZcbiAgICBzdHlsZT17e1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleEZsb3c6ICdyb3cnLFxuICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgbWFyZ2luVG9wOiAyMCxcbiAgICAgIG1hcmdpbkJvdHRvbTogMjAsXG4gICAgfX1cbiAgPlxuICAgIHtjaGlsZHJlbn1cbiAgPC9kaXY+XG4pO1xuUGFkQW5kQ2VudGVyLnByb3BUeXBlcyA9IHtjaGlsZHJlbjogUHJvcFR5cGVzLmFueX07XG5leHBvcnQgZGVmYXVsdCBQYWRBbmRDZW50ZXI7XG4iLCIvKipcbiAqIFZpZXcgc2hvd24gdG8gYW4gaW5zdHJ1Y3RvciBpZiB0aGV5IGNhbiBjcmVhdGUgc2VjdGlvbnMgd2l0aCBkaWZmZXJlbnQgcGFydGljaXBhbnQgdHlwZXNcbiAqIChzdHVkZW50cywgdGVhY2hlcnMsIGZhY2lsaXRhdG9ycykuIEFsbG93cyB1c2VyIHRvIHBpY2sgcGFydGljaXBhbnQgdHlwZSBmb3IgdGhpcyBzZWN0aW9uXG4gKi9cbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEJ1dHRvbiBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9CdXR0b24nO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQge0hlYWRpbmczfSBmcm9tICcuLi8uLi9sZWdhY3lTaGFyZWRDb21wb25lbnRzL0hlYWRpbmdzJztcbmltcG9ydCBzdHlsZUNvbnN0YW50cyBmcm9tICcuLi8uLi9zdHlsZUNvbnN0YW50cyc7XG5pbXBvcnQgY29sb3IgZnJvbSAnLi4vLi4vdXRpbC9jb2xvcic7XG5cbmltcG9ydCBDYXJkQ29udGFpbmVyIGZyb20gJy4vQ2FyZENvbnRhaW5lcic7XG5pbXBvcnQgTG9naW5UeXBlQ2FyZCBmcm9tICcuL0xvZ2luVHlwZUNhcmQnO1xuXG5jb25zdCBjYXJkSW5mb0J5QXVkaWVuY2UgPSB7XG4gIHN0dWRlbnQ6IHtcbiAgICB0aXRsZTogaTE4bi5wYXJ0aWNpcGFudFR5cGVTdHVkZW50VGl0bGUoKSxcbiAgICBkZXNjcmlwdGlvbjogaTE4bi5wYXJ0aWNpcGFudFR5cGVTdHVkZW50RGVzY3JpcHRpb24oKSxcbiAgfSxcbiAgdGVhY2hlcjoge1xuICAgIHRpdGxlOiBpMThuLnBhcnRpY2lwYW50VHlwZVRlYWNoZXJUaXRsZSgpLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuLnBhcnRpY2lwYW50VHlwZVRlYWNoZXJEZXNjcmlwdGlvbigpLFxuICB9LFxuICBmYWNpbGl0YXRvcjoge1xuICAgIHRpdGxlOiBpMThuLnBhcnRpY2lwYW50VHlwZUZhY2lsaXRhdG9yVGl0bGUoKSxcbiAgICBkZXNjcmlwdGlvbjogaTE4bi5wYXJ0aWNpcGFudFR5cGVGYWNpbGl0YXRvckRlc2NyaXB0aW9uKCksXG4gIH0sXG59O1xuXG4vKipcbiAqIFVJIGZvciBzZWxlY3RpbmcgdGhlIHBhcnRpY2lwYW50IHR5cGUgb2YgYSBjbGFzcyBzZWN0aW9uOlxuICogU3R1ZGVudCwgVGVhY2hlciBvciBGYWNpbGl0YXRvclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJ0aWNpcGFudFR5cGVQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgc2V0UGFydGljaXBhbnRUeXBlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGhhbmRsZUNhbmNlbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhdmFpbGFibGVQYXJ0aWNpcGFudFR5cGVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKS5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7dGl0bGUsIHNldFBhcnRpY2lwYW50VHlwZSwgaGFuZGxlQ2FuY2VsfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17c3R5bGUuY29udGFpbmVyfSBjbGFzc05hbWU9XCJ1aXRlc3QtcGFydGljaXBhbnQtdHlwZS1waWNrZXJcIj5cbiAgICAgICAgPEhlYWRpbmczIGlzUmVicmFuZGVkPnt0aXRsZX08L0hlYWRpbmczPlxuICAgICAgICA8cCBzdHlsZT17c3R5bGUuYm9keVRleHR9PlxuICAgICAgICAgIHtpMThuLnByb2Zlc3Npb25hbExlYXJuaW5nUGFydGljaXBhbnRRdWVzdGlvbigpfVxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlLnNjcm9sbH0+XG4gICAgICAgICAgPENhcmRDb250YWluZXI+XG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5hdmFpbGFibGVQYXJ0aWNpcGFudFR5cGVzLm1hcCh0eXBlID0+IChcbiAgICAgICAgICAgICAgPFBhcnRpY2lwYW50VHlwZUNhcmRcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzZXRQYXJ0aWNpcGFudFR5cGV9XG4gICAgICAgICAgICAgICAga2V5PXt0eXBlfVxuICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L0NhcmRDb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZS5mb290ZXJ9PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNhbmNlbH1cbiAgICAgICAgICAgIHRleHQ9e2kxOG4uZGlhbG9nQ2FuY2VsKCl9XG4gICAgICAgICAgICBjb2xvcj17QnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrfVxuICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW46IDB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBQYXJ0aWNpcGFudFR5cGVDYXJkID0gcHJvcHMgPT4gKFxuICA8TG9naW5UeXBlQ2FyZFxuICAgIGNsYXNzTmFtZT17YHVpdGVzdC0ke3Byb3BzLnR5cGV9LXR5cGVgfVxuICAgIHRpdGxlPXtjYXJkSW5mb0J5QXVkaWVuY2VbcHJvcHMudHlwZV0udGl0bGV9XG4gICAgc3VidGl0bGU9e2NhcmRJbmZvQnlBdWRpZW5jZVtwcm9wcy50eXBlXS5kZXNjcmlwdGlvbn1cbiAgICBvbkNsaWNrPXsoKSA9PiBwcm9wcy5vbkNsaWNrKHByb3BzLnR5cGUpfVxuICAvPlxuKTtcblBhcnRpY2lwYW50VHlwZUNhcmQucHJvcFR5cGVzID0ge1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuY29uc3Qgc3R5bGUgPSB7XG4gIGNvbnRhaW5lcjoge1xuICAgIHdpZHRoOiBzdHlsZUNvbnN0YW50c1snY29udGVudC13aWR0aCddLFxuICAgIGNvbG9yOiBjb2xvci5uZXV0cmFsX2RhcmssXG4gICAgaGVpZ2h0OiAnMzAwcHgnLFxuICAgIGxlZnQ6ICcyMHB4JyxcbiAgICByaWdodDogJzIwcHgnLFxuICB9LFxuICBib2R5VGV4dDoge1xuICAgIGZvbnRTaXplOiAnMWVtJyxcbiAgfSxcbiAgc2Nyb2xsOiB7XG4gICAgb3ZlcmZsb3dYOiAnaGlkZGVuJyxcbiAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICBoZWlnaHQ6ICdjYWxjKDgwdmggLSAyMDBweCknLFxuICB9LFxuICBmb290ZXI6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB3aWR0aDogc3R5bGVDb25zdGFudHNbJ2NvbnRlbnQtd2lkdGgnXSxcbiAgICBoZWlnaHQ6ICc1MHB4JyxcbiAgICBsZWZ0OiAwLFxuICAgIGJvdHRvbTogJy0yM3B4JyxcbiAgICBwYWRkaW5nOiAnMHB4IDIwcHggMjBweCAyMHB4JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICBib3JkZXJSYWRpdXM6ICc1cHgnLFxuICB9LFxufTtcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtjb25uZWN0fSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7T0F1dGhTZWN0aW9uVHlwZXN9IGZyb20gJ0BjZG8vYXBwcy9hY2NvdW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHtQTEFURk9STVN9IGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc0NvbnN0YW50cy5qcyc7XG5pbXBvcnQgYW5hbHl0aWNzUmVwb3J0ZXIgZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzUmVwb3J0ZXInO1xuaW1wb3J0IGxvY2FsZSBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBSYWlsc0F1dGhlbnRpY2l0eVRva2VuIGZyb20gJy4uLy4uL2xpYi91dGlsL1JhaWxzQXV0aGVudGljaXR5VG9rZW4nO1xuaW1wb3J0IGNvbG9yIGZyb20gJy4uLy4uL3V0aWwvY29sb3InO1xuaW1wb3J0IEJhc2VEaWFsb2cgZnJvbSAnLi4vQmFzZURpYWxvZyc7XG5cbmltcG9ydCB7Y2xhc3Nyb29tU2hhcGUsIGxvYWRFcnJvclNoYXBlfSBmcm9tICcuL3NoYXBlcyc7XG5pbXBvcnQge1xuICBjYW5jZWxJbXBvcnRSb3N0ZXJGbG93LFxuICBpbXBvcnRPclVwZGF0ZVJvc3RlcixcbiAgcm9zdGVySW1wb3J0RmFpbGVkLFxufSBmcm9tICcuL3RlYWNoZXJTZWN0aW9uc1JlZHV4JztcbmltcG9ydCB7aXNSb3N0ZXJEaWFsb2dPcGVufSBmcm9tICcuL3RlYWNoZXJTZWN0aW9uc1JlZHV4U2VsZWN0b3JzJztcblxuY29uc3QgQ09NUExFVEVEX0VWRU5UID0gJ1NlY3Rpb24gU2V0dXAgQ29tcGxldGVkJztcbmNvbnN0IENBTkNFTExFRF9FVkVOVCA9ICdTZWN0aW9uIFNldHVwIENhbmNlbGxlZCc7XG5cbmNvbnN0IEFSQ0hJVkVEX1NUQVRFID0gJ0FSQ0hJVkVEJztcblxuY29uc3QgY3RhQnV0dG9uU3R5bGUgPSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLm9yYW5nZSxcbiAgY29sb3I6IGNvbG9yLndoaXRlLFxuICBib3JkZXI6ICcxcHggc29saWQgI2IwNzIwMicsXG4gIGJvcmRlclJhZGl1czogMyxcbiAgYm94U2hhZG93OiAnaW5zZXQgMCAxcHggMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MyknLFxuICBmb250U2l6ZTogMTQsXG4gIHBhZGRpbmc6ICc4cHggMjBweCcsXG59O1xuXG5jb25zdCBDbGFzc3Jvb21MaXN0ID0gKHtjbGFzc3Jvb21zLCBvblNlbGVjdCwgc2VsZWN0ZWRJZCwgcm9zdGVyUHJvdmlkZXJ9KSA9PlxuICBjbGFzc3Jvb21zLmxlbmd0aCA/IChcbiAgICA8ZGl2PlxuICAgICAge2NsYXNzcm9vbXMubWFwKGNsYXNzcm9vbSA9PiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17T2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgc3R5bGVzLmNsYXNzcm9vbVJvdyxcbiAgICAgICAgICAgIHNlbGVjdGVkSWQgPT09IGNsYXNzcm9vbS5pZCAmJiBzdHlsZXMuaGlnaGxpZ2h0Um93XG4gICAgICAgICAgKX1cbiAgICAgICAgICBrZXk9e2NsYXNzcm9vbS5pZH1cbiAgICAgICAgICBvbkNsaWNrPXtvblNlbGVjdC5iaW5kKG51bGwsIGNsYXNzcm9vbS5pZCl9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2xhc3Nyb29tLm5hbWV9XG4gICAgICAgICAge2NsYXNzcm9vbS5zZWN0aW9uICYmIChcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7Y29sb3I6ICcjYWFhJ319PiAoe2NsYXNzcm9vbS5zZWN0aW9ufSk8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7Y2xhc3Nyb29tLmNvdXJzZV9zdGF0ZSA9PT0gQVJDSElWRURfU1RBVEUgJiYgKFxuICAgICAgICAgICAgPHNwYW4gaWQ9XCJjb3Vyc2Utc3RhdGVcIiBzdHlsZT17e2NvbG9yOiBjb2xvci5ib290c3RyYXBfZXJyb3JfdGV4dH19PlxuICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAtIHtjbGFzc3Jvb20uY291cnNlX3N0YXRlfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3tmbG9hdDogJ3JpZ2h0J319PlxuICAgICAgICAgICAge2xvY2FsZS5jb2RlKCl9XG4gICAgICAgICAgICA8c3BhbiBzdHlsZT17e2ZvbnRGYW1pbHk6ICdtb25vc3BhY2UnfX0+XG4gICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgIHtjbGFzc3Jvb20uZW5yb2xsbWVudF9jb2RlfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICA8Tm9DbGFzc3Jvb21zRm91bmQgcm9zdGVyUHJvdmlkZXI9e3Jvc3RlclByb3ZpZGVyfSAvPlxuICApO1xuQ2xhc3Nyb29tTGlzdC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzcm9vbXM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2VsZWN0ZWRJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcm9zdGVyUHJvdmlkZXI6IFByb3BUeXBlcy5vbmVPZihPYmplY3Qua2V5cyhPQXV0aFNlY3Rpb25UeXBlcykpLFxufTtcblxuY29uc3QgTm9DbGFzc3Jvb21zRm91bmQgPSAoe3Jvc3RlclByb3ZpZGVyfSkgPT4ge1xuICBzd2l0Y2ggKHJvc3RlclByb3ZpZGVyKSB7XG4gICAgY2FzZSBPQXV0aFNlY3Rpb25UeXBlcy5nb29nbGVfY2xhc3Nyb29tOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cD57bG9jYWxlLm5vQ2xhc3Nyb29tc0ZvdW5kKCl9PC9wPlxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2NsYXNzcm9vbS5nb29nbGUuY29tL1wiPlxuICAgICAgICAgICAge2xvY2FsZS5hZGRSZW1vdmVHb29nbGVDbGFzc3Jvb21zKCl9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgY2FzZSBPQXV0aFNlY3Rpb25UeXBlcy5jbGV2ZXI6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxwPntsb2NhbGUubm9DbGFzc3Jvb21zRm91bmQoKX08L3A+XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vY2xldmVyLmNvbS9cIj57bG9jYWxlLmFkZFJlbW92ZUNsZXZlckNsYXNzcm9vbXMoKX08L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgfVxufTtcbk5vQ2xhc3Nyb29tc0ZvdW5kLnByb3BUeXBlcyA9IHtcbiAgcm9zdGVyUHJvdmlkZXI6IFByb3BUeXBlcy5vbmVPZihPYmplY3Qua2V5cyhPQXV0aFNlY3Rpb25UeXBlcykpLFxufTtcblxuY29uc3QgR09PR0xFX0NMQVNTUk9PTVNfU1lOQ19TVVBQT1JUX1VSTCA9XG4gICdodHRwczovL3N1cHBvcnQuY29kZS5vcmcvaGMvZW4tdXMvYXJ0aWNsZXMvMTE1MDAxMzE5MzEyJztcbmNvbnN0IFJPU1RFUkVEX1NFQ1RJT05TX1NVUFBPUlRfVVJMID1cbiAgJ2h0dHBzOi8vc3VwcG9ydC5jb2RlLm9yZy9oYy9lbi11cy9hcnRpY2xlcy82NDk2NDk1MjEyNTU3JztcblxuY29uc3QgTG9hZEVycm9yID0gKHtyb3N0ZXJQcm92aWRlciwgbG9naW5UeXBlfSkgPT4ge1xuICBzd2l0Y2ggKHJvc3RlclByb3ZpZGVyKSB7XG4gICAgY2FzZSBPQXV0aFNlY3Rpb25UeXBlcy5nb29nbGVfY2xhc3Nyb29tOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cD57bG9jYWxlLmF1dGhvcml6ZUdvb2dsZUNsYXNzcm9vbXNUZXh0KCl9PC9wPlxuICAgICAgICAgIDxSZWF1dGhvcml6ZUdvb2dsZUNsYXNzcm9vbSAvPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj17R09PR0xFX0NMQVNTUk9PTVNfU1lOQ19TVVBQT1JUX1VSTH1cbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsb2NhbGUuZXJyb3JMb2FkaW5nUm9zdGVyZWRTZWN0aW9uc1N1cHBvcnQoKX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHA+XG4gICAgICAgICAge2xvY2FsZS5lcnJvckxvYWRpbmdSb3N0ZXJlZFNlY3Rpb25zKHt0eXBlOiBsb2dpblR5cGV9KX17JyAnfVxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBocmVmPXtST1NURVJFRF9TRUNUSU9OU19TVVBQT1JUX1VSTH1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bG9jYWxlLmVycm9yTG9hZGluZ1Jvc3RlcmVkU2VjdGlvbnNTdXBwb3J0KCl9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L3A+XG4gICAgICApO1xuICB9XG59O1xuTG9hZEVycm9yLnByb3BUeXBlcyA9IHtcbiAgcm9zdGVyUHJvdmlkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxvZ2luVHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmNvbnN0IFJFQVVUSE9SSVpFX1VSTCA9XG4gICcvdXNlcnMvYXV0aC9nb29nbGVfb2F1dGgyP3Njb3BlPXVzZXJpbmZvLmVtYWlsLHVzZXJpbmZvLnByb2ZpbGUsY2xhc3Nyb29tLmNvdXJzZXMucmVhZG9ubHksY2xhc3Nyb29tLnJvc3RlcnMucmVhZG9ubHknO1xuZnVuY3Rpb24gUmVhdXRob3JpemVHb29nbGVDbGFzc3Jvb20oKSB7XG4gIHJldHVybiAoXG4gICAgPGZvcm0gbWV0aG9kPVwiUE9TVFwiIGFjdGlvbj17UkVBVVRIT1JJWkVfVVJMfT5cbiAgICAgIDxSYWlsc0F1dGhlbnRpY2l0eVRva2VuIC8+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT17Y3RhQnV0dG9uU3R5bGV9PlxuICAgICAgICB7bG9jYWxlLmF1dGhvcml6ZUdvb2dsZUNsYXNzcm9vbXMoKX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZm9ybT5cbiAgKTtcbn1cblxuY2xhc3MgUm9zdGVyRGlhbG9nIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAvLyBQcm92aWRlZCBieSBSZWR1eFxuICAgIGhhbmRsZUltcG9ydDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaGFuZGxlQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBoYW5kbGVJbXBvcnRGYWlsdXJlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBpc09wZW46IFByb3BUeXBlcy5ib29sLFxuICAgIGNsYXNzcm9vbXM6IFByb3BUeXBlcy5hcnJheU9mKGNsYXNzcm9vbVNoYXBlKSxcbiAgICBsb2FkRXJyb3I6IGxvYWRFcnJvclNoYXBlLFxuICAgIHJvc3RlclByb3ZpZGVyOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LmtleXMoT0F1dGhTZWN0aW9uVHlwZXMpKSxcbiAgfTtcblxuICBzdGF0ZSA9IHtzZWxlY3RlZElkOiBudWxsfTtcblxuICBpbXBvcnRDbGFzc3Jvb20gPSAoKSA9PiB7XG4gICAgdGhpcy5yZWNvcmRTZWN0aW9uU2V0dXBFeGl0RXZlbnQoQ09NUExFVEVEX0VWRU5UKTtcbiAgICBjb25zdCBjbGFzc3Jvb21zID0gdGhpcy5wcm9wcy5jbGFzc3Jvb21zO1xuICAgIGNvbnN0IHNlbGVjdGVkTmFtZSA9XG4gICAgICBjbGFzc3Jvb21zICYmXG4gICAgICBjbGFzc3Jvb21zLmZpbmQoY2xhc3Nyb29tID0+IHtcbiAgICAgICAgcmV0dXJuIGNsYXNzcm9vbS5pZCA9PT0gdGhpcy5zdGF0ZS5zZWxlY3RlZElkO1xuICAgICAgfSkubmFtZTtcbiAgICB0aGlzLnByb3BzLmhhbmRsZUltcG9ydCh0aGlzLnN0YXRlLnNlbGVjdGVkSWQsIHNlbGVjdGVkTmFtZSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2VsZWN0ZWRJZDogbnVsbH0pO1xuICB9O1xuXG4gIC8vIGNyZWF0ZSBuZXcgZnVuY3Rpb24gZm9yIHJlZGlyZWN0IHRvIE5ld0VkaXRQYWdlXG4gIHJlZGlyZWN0VG9FZGl0U2VjdGlvblBhZ2UgPSBzZWN0aW9uSWQgPT4ge1xuICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gJy9zZWN0aW9ucy8nICsgc2VjdGlvbklkICsgJy9lZGl0JztcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0VXJsO1xuICB9O1xuXG4gIC8vIENyZWF0ZXMgdGhlIHNlY3Rpb24gYW5kIHJlZGlyZWN0cyB0byB0aGUgZWRpdCBwYWdlXG4gIGhhbmRsZVJlZGlyZWN0ID0gKCkgPT4ge1xuICAgIHRoaXMucmVjb3JkU2VjdGlvblNldHVwRXhpdEV2ZW50KENPTVBMRVRFRF9FVkVOVCk7XG4gICAgY29uc3QgY2xhc3Nyb29tcyA9IHRoaXMucHJvcHMuY2xhc3Nyb29tcztcbiAgICBjb25zdCBjb3Vyc2VOYW1lID1cbiAgICAgIGNsYXNzcm9vbXMgJiZcbiAgICAgIGNsYXNzcm9vbXMuZmluZChjbGFzc3Jvb20gPT4ge1xuICAgICAgICByZXR1cm4gY2xhc3Nyb29tLmlkID09PSB0aGlzLnN0YXRlLnNlbGVjdGVkSWQ7XG4gICAgICB9KS5uYW1lO1xuXG4gICAgY29uc3QgaW1wb3J0U2VjdGlvblVybCA9XG4gICAgICB0aGlzLnByb3BzLnJvc3RlclByb3ZpZGVyID09PSBPQXV0aFNlY3Rpb25UeXBlcy5nb29nbGVfY2xhc3Nyb29tXG4gICAgICAgID8gJy9kYXNoYm9hcmRhcGkvaW1wb3J0X2dvb2dsZV9jbGFzc3Jvb20nXG4gICAgICAgIDogJy9kYXNoYm9hcmRhcGkvaW1wb3J0X2NsZXZlcl9jbGFzc3Jvb20nO1xuICAgIGNvbnN0IGNvdXJzZUlkID0gdGhpcy5zdGF0ZS5zZWxlY3RlZElkO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICQuZ2V0SlNPTihpbXBvcnRTZWN0aW9uVXJsLCB7XG4gICAgICAgIGNvdXJzZUlkLFxuICAgICAgICBjb3Vyc2VOYW1lLFxuICAgICAgfSlcbiAgICAgICAgLmRvbmUocmVzb2x2ZSlcbiAgICAgICAgLmZhaWwoanF4aHIgPT4ge1xuICAgICAgICAgIHRoaXMucHJvcHMuaGFuZGxlSW1wb3J0RmFpbHVyZShqcXhocik7XG4gICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgbmV3IEVycm9yKGBcbiAgICAgICAgICAgIHVybDogJHtpbXBvcnRTZWN0aW9uVXJsfVxuICAgICAgICAgICAgc3RhdHVzOiAke2pxeGhyLnN0YXR1c31cbiAgICAgICAgICAgIHN0YXR1c1RleHQ6ICR7anF4aHIuc3RhdHVzVGV4dH1cbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dDogJHtqcXhoci5yZXNwb25zZVRleHR9XG4gICAgICAgICAgYClcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9KS50aGVuKG5ld1NlY3Rpb24gPT4gdGhpcy5yZWRpcmVjdFRvRWRpdFNlY3Rpb25QYWdlKG5ld1NlY3Rpb24uaWQpKTtcbiAgfTtcblxuICBjYW5jZWwgPSAoKSA9PiB7XG4gICAgdGhpcy5yZWNvcmRTZWN0aW9uU2V0dXBFeGl0RXZlbnQoQ0FOQ0VMTEVEX0VWRU5UKTtcbiAgICB0aGlzLnByb3BzLmhhbmRsZUNhbmNlbCgpO1xuICB9O1xuXG4gIG9uQ2xhc3Nyb29tU2VsZWN0ZWQgPSBpZCA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2VsZWN0ZWRJZDogaWR9KTtcbiAgfTtcblxuICAvLyB2YWxpZCBldmVudCBuYW1lczogJ1NlY3Rpb24gU2V0dXAgQ29tcGxldGVkJywgJ1NlY3Rpb24gU2V0dXAgQ2FuY2VsbGVkJy5cbiAgcmVjb3JkU2VjdGlvblNldHVwRXhpdEV2ZW50ID0gZXZlbnROYW1lID0+IHtcbiAgICBjb25zdCB7cm9zdGVyUHJvdmlkZXJ9ID0gdGhpcy5wcm9wcztcblxuICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChcbiAgICAgIGV2ZW50TmFtZSxcbiAgICAgIHtcbiAgICAgICAgb2F1dGhTb3VyY2U6IHJvc3RlclByb3ZpZGVyLFxuICAgICAgfSxcbiAgICAgIFBMQVRGT1JNUy5CT1RIXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHRpdGxlID0gJyc7XG4gICAgbGV0IGxvZ2luVHlwZSA9ICcnO1xuICAgIHN3aXRjaCAodGhpcy5wcm9wcy5yb3N0ZXJQcm92aWRlcikge1xuICAgICAgY2FzZSBPQXV0aFNlY3Rpb25UeXBlcy5nb29nbGVfY2xhc3Nyb29tOlxuICAgICAgICB0aXRsZSA9IGxvY2FsZS5zZWxlY3RHb29nbGVDbGFzc3Jvb20oKTtcbiAgICAgICAgbG9naW5UeXBlID0gbG9jYWxlLmxvZ2luVHlwZUdvb2dsZUNsYXNzcm9vbSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT0F1dGhTZWN0aW9uVHlwZXMuY2xldmVyOlxuICAgICAgICB0aXRsZSA9IGxvY2FsZS5zZWxlY3RDbGV2ZXJTZWN0aW9uKCk7XG4gICAgICAgIGxvZ2luVHlwZSA9IGxvY2FsZS5sb2dpblR5cGVDbGV2ZXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxCYXNlRGlhbG9nXG4gICAgICAgIHVzZVVwZGF0ZWRTdHlsZXNcbiAgICAgICAgZml4ZWRIZWlnaHQ9ezQ4MH1cbiAgICAgICAgaXNPcGVuPXt0aGlzLnByb3BzLmlzT3Blbn1cbiAgICAgICAgaGFuZGxlQ2xvc2U9e3RoaXMuY2FuY2VsfVxuICAgICAgICB7Li4udGhpcy5wcm9wc31cbiAgICAgID5cbiAgICAgICAgPGgyIHN0eWxlPXtzdHlsZXMudGl0bGV9Pnt0aXRsZX08L2gyPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuY29udGVudH0+XG4gICAgICAgICAge3RoaXMucHJvcHMubG9hZEVycm9yID8gKFxuICAgICAgICAgICAgPExvYWRFcnJvclxuICAgICAgICAgICAgICByb3N0ZXJQcm92aWRlcj17dGhpcy5wcm9wcy5yb3N0ZXJQcm92aWRlcn1cbiAgICAgICAgICAgICAgbG9naW5UeXBlPXtsb2dpblR5cGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiB0aGlzLnByb3BzLmNsYXNzcm9vbXMgPyAoXG4gICAgICAgICAgICA8Q2xhc3Nyb29tTGlzdFxuICAgICAgICAgICAgICBjbGFzc3Jvb21zPXt0aGlzLnByb3BzLmNsYXNzcm9vbXN9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uQ2xhc3Nyb29tU2VsZWN0ZWR9XG4gICAgICAgICAgICAgIHNlbGVjdGVkSWQ9e3RoaXMuc3RhdGUuc2VsZWN0ZWRJZH1cbiAgICAgICAgICAgICAgcm9zdGVyUHJvdmlkZXI9e3RoaXMucHJvcHMucm9zdGVyUHJvdmlkZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICBsb2NhbGUubG9hZGluZygpXG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5mb290ZXJ9PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiY2FuY2VsLWJ1dHRvblwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2FuY2VsfVxuICAgICAgICAgICAgc3R5bGU9e3suLi5zdHlsZXMuYnV0dG9uUHJpbWFyeSwgLi4uc3R5bGVzLmJ1dHRvblNlY29uZGFyeX19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xvY2FsZS5kaWFsb2dDYW5jZWwoKX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cImltcG9ydC1idXR0b24tYW5kLXJlZGlyZWN0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVSZWRpcmVjdH1cbiAgICAgICAgICAgIHN0eWxlPXtPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgc3R5bGVzLmJ1dHRvblByaW1hcnksXG4gICAgICAgICAgICAgICF0aGlzLnN0YXRlLnNlbGVjdGVkSWQgJiYge29wYWNpdHk6IDAuNX1cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBkaXNhYmxlZD17IXRoaXMuc3RhdGUuc2VsZWN0ZWRJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bG9jYWxlLmNob29zZVNlY3Rpb24oKX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0Jhc2VEaWFsb2c+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBzdHlsZXMgPSB7XG4gIHRpdGxlOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbGVmdDogMjAsXG4gICAgY29sb3I6IGNvbG9yLmRhcmtfY2hhcmNvYWwsXG4gICAgbWFyZ2luOiAnMTVweCAwJyxcbiAgfSxcbiAgY29udGVudDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGxlZnQ6IDIwLFxuICAgIHRvcDogNTAsXG4gICAgcmlnaHQ6IDIwLFxuICAgIGJvdHRvbTogNzAsXG4gICAgb3ZlcmZsb3dZOiAnc2Nyb2xsJyxcbiAgfSxcbiAgY2xhc3Nyb29tUm93OiB7XG4gICAgcGFkZGluZzogMTAsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gIH0sXG4gIGhpZ2hsaWdodFJvdzoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuZGVmYXVsdF9ibHVlLFxuICAgIGNvbG9yOiBjb2xvci53aGl0ZSxcbiAgfSxcbiAgZm9vdGVyOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgYm90dG9tOiAxNSxcbiAgICByaWdodDogMjAsXG4gICAgbGVmdDogMjAsXG4gIH0sXG4gIGJ1dHRvblByaW1hcnk6IHtcbiAgICAuLi5jdGFCdXR0b25TdHlsZSxcbiAgICBmbG9hdDogJ3JpZ2h0JyxcbiAgfSxcbiAgYnV0dG9uU2Vjb25kYXJ5OiB7XG4gICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICBiYWNrZ3JvdW5kOiAnI2VlZScsXG4gICAgY29sb3I6ICcjNWI2NzcwJyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2M1YzVjNScsXG4gIH0sXG59O1xuZXhwb3J0IGNvbnN0IFVuY29ubmVjdGVkUm9zdGVyRGlhbG9nID0gUm9zdGVyRGlhbG9nO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcbiAgc3RhdGUgPT4gKHtcbiAgICBpc09wZW46IGlzUm9zdGVyRGlhbG9nT3BlbihzdGF0ZSksXG4gICAgY2xhc3Nyb29tczogc3RhdGUudGVhY2hlclNlY3Rpb25zLmNsYXNzcm9vbXMsXG4gICAgbG9hZEVycm9yOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMubG9hZEVycm9yLFxuICAgIHJvc3RlclByb3ZpZGVyOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMucm9zdGVyUHJvdmlkZXIsXG4gIH0pLFxuICB7XG4gICAgaGFuZGxlSW1wb3J0OiBpbXBvcnRPclVwZGF0ZVJvc3RlcixcbiAgICBoYW5kbGVDYW5jZWw6IGNhbmNlbEltcG9ydFJvc3RlckZsb3csXG4gICAgaGFuZGxlSW1wb3J0RmFpbHVyZTogcm9zdGVySW1wb3J0RmFpbGVkLFxuICB9XG4pKFJvc3RlckRpYWxvZyk7XG4iLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtOYXZMaW5rfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcblxuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vdGVhY2hlci1kYXNoYm9hcmQubW9kdWxlLnNjc3MnO1xuXG5leHBvcnQgY29uc3QgVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMgPSB7XG4gIHByb2dyZXNzOiAnL3Byb2dyZXNzJyxcbiAgdGV4dFJlc3BvbnNlczogJy90ZXh0X3Jlc3BvbnNlcycsXG4gIGFzc2Vzc21lbnRzOiAnL2Fzc2Vzc21lbnRzJyxcbiAgcHJvamVjdHM6ICcvcHJvamVjdHMnLFxuICBzdGF0czogJy9zdGF0cycsXG4gIG1hbmFnZVN0dWRlbnRzOiAnL21hbmFnZV9zdHVkZW50cycsXG4gIGxvZ2luSW5mbzogJy9sb2dpbl9pbmZvJyxcbiAgc3RhbmRhcmRzUmVwb3J0OiAnL3N0YW5kYXJkc19yZXBvcnQnLFxuICBhaVR1dG9yQ2hhdE1lc3NhZ2VzOiAnL2FpX3R1dG9yJyxcbn07XG5cbmV4cG9ydCBjb25zdCBMQUJFTEVEX1RFQUNIRVJfREFTSEJPQVJEX1BBVEhTID0gW1xuICB7XG4gICAgbGFiZWw6IGkxOG4udGVhY2hlclRhYlByb2dyZXNzKCksXG4gICAgdXJsOiBURUFDSEVSX0RBU0hCT0FSRF9QQVRIUy5wcm9ncmVzcyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBpMThuLnRlYWNoZXJUYWJTdGF0c1RleHRSZXNwb25zZXMoKSxcbiAgICB1cmw6IFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTLnRleHRSZXNwb25zZXMsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogaTE4bi50ZWFjaGVyVGFiQXNzZXNzbWVudHMoKSxcbiAgICB1cmw6IFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTLmFzc2Vzc21lbnRzLFxuICB9LFxuICB7XG4gICAgbGFiZWw6IGkxOG4udGVhY2hlclRhYlByb2plY3RzKCksXG4gICAgdXJsOiBURUFDSEVSX0RBU0hCT0FSRF9QQVRIUy5wcm9qZWN0cyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBpMThuLnRlYWNoZXJUYWJTdGF0cygpLFxuICAgIHVybDogVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMuc3RhdHMsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogaTE4bi50ZWFjaGVyVGFiTWFuYWdlU3R1ZGVudHMoKSxcbiAgICB1cmw6IFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTLm1hbmFnZVN0dWRlbnRzLFxuICB9LFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gVGVhY2hlckRhc2hib2FyZE5hdmlnYXRpb24oe2xpbmtzLCBzaG93QUlUdXRvclRhYn0pIHtcbiAgY29uc3QgYWlUdXRvckxpbmtzID0gc2hvd0FJVHV0b3JUYWJcbiAgICA/IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiBpMThuLmFpVHV0b3IoKSxcbiAgICAgICAgICB1cmw6IFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTLmFpVHV0b3JDaGF0TWVzc2FnZXMsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgOiBbXTtcbiAgY29uc3QgcmVuZGVyZWRMaW5rcyA9IFtcbiAgICAuLi4obGlua3MgfHwgTEFCRUxFRF9URUFDSEVSX0RBU0hCT0FSRF9QQVRIUyksXG4gICAgLi4uYWlUdXRvckxpbmtzLFxuICBdO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBpZD1cInVpdGVzdC10ZWFjaGVyLWRhc2hib2FyZC1uYXZcIiBjbGFzc05hbWU9e3N0eWxlcy5uYXZDb250YWluZXJ9PlxuICAgICAge3JlbmRlcmVkTGlua3MubWFwKGxpbmsgPT4gKFxuICAgICAgICA8TmF2TGlua1xuICAgICAgICAgIGtleT17bGluay51cmx9XG4gICAgICAgICAgdG89e2xpbmsudXJsfVxuICAgICAgICAgIGNsYXNzTmFtZT17KHtpc0FjdGl2ZX0pID0+XG4gICAgICAgICAgICBjbGFzc05hbWVzKFxuICAgICAgICAgICAgICBzdHlsZXMubGlua0NvbnRhaW5lcixcbiAgICAgICAgICAgICAgaXNBY3RpdmUgJiYgc3R5bGVzLmFjdGl2ZUxpbmtDb250YWluZXJcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmxpbmt9PntsaW5rLmxhYmVsfTwvZGl2PlxuICAgICAgICA8L05hdkxpbms+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuVGVhY2hlckRhc2hib2FyZE5hdmlnYXRpb24ucHJvcFR5cGVzID0ge1xuICBzaG93QUlUdXRvclRhYjogUHJvcFR5cGVzLmJvb2wsXG4gIGxpbmtzOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIH0pXG4gICksXG59O1xuIiwiaW1wb3J0IGZpcmVob3NlQ2xpZW50IGZyb20gJy4uLy4uL21ldHJpY3MvZmlyZWhvc2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkSW1wcmVzc2lvbihzdHVkeV9ncm91cCkge1xuICBmaXJlaG9zZUNsaWVudC5wdXRSZWNvcmQoe1xuICAgIHN0dWR5OiAndGVhY2hlcl9kYXNoYm9hcmRfYWN0aW9ucycsXG4gICAgc3R1ZHlfZ3JvdXA6IHN0dWR5X2dyb3VwLFxuICAgIGV2ZW50OiAnbG9hZF9mZWF0dXJlJyxcbiAgICBkYXRhX2pzb246ICd7fScsXG4gIH0pO1xufVxuIiwiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtuYXZpZ2F0ZVRvSHJlZn0gZnJvbSAnQGNkby9hcHBzL3V0aWxzJztcblxuaW1wb3J0IGZpcmVob3NlQ2xpZW50IGZyb20gJy4uLy4uL21ldHJpY3MvZmlyZWhvc2UnO1xuXG5pbXBvcnQge1RFQUNIRVJfREFTSEJPQVJEX1BBVEhTfSBmcm9tICcuL1RlYWNoZXJEYXNoYm9hcmROYXZpZ2F0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFRvU2VjdGlvbih0b1NlY3Rpb25JZCwgZnJvbVNlY3Rpb25JZCkge1xuICBjb25zdCBiYXNlVXJsID0gYC90ZWFjaGVyX2Rhc2hib2FyZC9zZWN0aW9ucy8ke3RvU2VjdGlvbklkfS9gO1xuICBjb25zdCBjdXJyZW50VGFiID0gXy5sYXN0KF8uc3BsaXQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCAnLycpKTtcbiAgY29uc3QgdGVhY2hlck5hdmlnYXRpb25UYWJzID0gXy52YWx1ZXMoVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMpO1xuICBjb25zdCBzZWN0aW9uVXJsID0gdGVhY2hlck5hdmlnYXRpb25UYWJzLmluY2x1ZGVzKGAvJHtjdXJyZW50VGFifWApXG4gICAgPyBiYXNlVXJsLmNvbmNhdChjdXJyZW50VGFiKVxuICAgIDogYmFzZVVybDtcbiAgbmF2aWdhdGVUb0hyZWYoc2VjdGlvblVybCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWNvcmRTd2l0Y2hUb1NlY3Rpb24odG9TZWN0aW9uSWQsIGZyb21TZWN0aW9uSWQsIHN0dWR5R3JvdXApIHtcbiAgZmlyZWhvc2VDbGllbnQucHV0UmVjb3JkKFxuICAgIHtcbiAgICAgIHN0dWR5OiAndGVhY2hlcl9kYXNoYm9hcmRfYWN0aW9ucycsXG4gICAgICBzdHVkeV9ncm91cDogc3R1ZHlHcm91cCxcbiAgICAgIGV2ZW50OiAnY2hhbmdlX3NlY3Rpb24nLFxuICAgICAgZGF0YV9qc29uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHNlY3Rpb25faWQ6IGZyb21TZWN0aW9uSWQsXG4gICAgICAgIG9sZF9zZWN0aW9uX2lkOiBmcm9tU2VjdGlvbklkLFxuICAgICAgICBuZXdfc2VjdGlvbl9pZDogdG9TZWN0aW9uSWQsXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHtpbmNsdWRlVXNlcklkOiB0cnVlfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkT3BlbkVkaXRTZWN0aW9uRGV0YWlscyhzZWN0aW9uSWQsIHN0dWR5R3JvdXApIHtcbiAgZmlyZWhvc2VDbGllbnQucHV0UmVjb3JkKFxuICAgIHtcbiAgICAgIHN0dWR5OiAndGVhY2hlcl9kYXNoYm9hcmRfYWN0aW9ucycsXG4gICAgICBzdHVkeV9ncm91cDogc3R1ZHlHcm91cCxcbiAgICAgIGV2ZW50OiAnb3Blbl9lZGl0X3NlY3Rpb25fZGFzaGJvYXJkX2hlYWRlcicsXG4gICAgICBkYXRhX2pzb246IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgc2VjdGlvbl9pZDogc2VjdGlvbklkLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7aW5jbHVkZVVzZXJJZDogdHJ1ZX1cbiAgKTtcbn1cbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmZlZWRiYWNrLWJhbm5lcntiYWNrZ3JvdW5kLWNvbG9yOiNkY2VmZmI7Ym9yZGVyLWNvbG9yOiNkY2VmZmI7Y29sb3I6IzRkNTc1ZjtsaW5lLWhlaWdodDoycmVtfS5mZWVkYmFjay1iYW5uZXIgLnNoYXJlLW1vcmUsLmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2stdGl0bGV7Zm9udC1zaXplOjE2cHh9LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2stYmFubmVyLWdyZWV0aW5ne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxcmVtO2FuaW1hdGlvbi1uYW1lOndhdmUtYW5pbWF0aW9uO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO2FuaW1hdGlvbi1kdXJhdGlvbjouNzVzO3RyYW5zZm9ybS1vcmlnaW46NzAlIDcwJTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjJ9QGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbnswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTI1JXt0cmFuc2Zvcm06cm90YXRlKC0xMGRlZyl9NzUle3RyYW5zZm9ybTpyb3RhdGUoMTJkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2stYmFubmVyLWdyZWV0aW5nIC5mYS1oYW5kLXdhdmV7Zm9udC13ZWlnaHQ6NDAwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZmVlZGJhY2stYmFubmVyIC5mZWVkYmFjay1iYW5uZXItZ3JlZXRpbmcgLmZhLWhhbmQtd2F2ZTpob3ZlcnthbmltYXRpb24tbmFtZTpoaWdoLWZpdmUtYW5pbWF0aW9uO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLWR1cmF0aW9uOi41c31Aa2V5ZnJhbWVzIGhpZ2gtZml2ZS1hbmltYXRpb257MCV7Y3Vyc29yOmdyYWI7dHJhbnNmb3JtOnJvdGF0ZSgwKSBzY2FsZSgxKX0yNSV7Y3Vyc29yOmdyYWI7dHJhbnNmb3JtOnJvdGF0ZSg1MGRlZykgc2NhbGUoMSl9NTAle2N1cnNvcjpncmFiO3RyYW5zZm9ybTpyb3RhdGUoNTBkZWcpIHNjYWxlKDEuNSl9NzUle2N1cnNvcjpncmFiO3RyYW5zZm9ybTpyb3RhdGUoNTBkZWcpIHNjYWxlKDEpfTEwMCV7Y3Vyc29yOmluaXRpYWw7dHJhbnNmb3JtOnJvdGF0ZSgwKSBzY2FsZSgxKX19LmZlZWRiYWNrLWJhbm5lciBpe2NvbG9yOiMwZjBmMGY7Zm9udC1zaXplOjEuM3JlbX0uZmVlZGJhY2stYmFubmVyICNmZWVkYmFjay1iYW5uZXItc2hhcmUtbW9yZS1saW5re2ZvbnQtd2VpZ2h0Om5vcm1hbH0uZmVlZGJhY2stYmFubmVyIGJ1dHRvbi5jbG9zZXtib3JkZXI6dW5zZXQgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmU7Zm9udC1zaXplOjEuNnJlbTtmb250LXdlaWdodDpub3JtYWw7bGluZS1oZWlnaHQ6dW5zZXQ7bWFyZ2luOjA7dG9wOjB9LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2t7bWFyZ2luLWxlZnQ6MXJlbX0uZmVlZGJhY2stYmFubmVyIC5mZWVkYmFjayBidXR0b257YWxsOnVuc2V0O2JvcmRlcjp1bnNldCAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZTtjdXJzb3I6cG9pbnRlcn0uZmVlZGJhY2stYmFubmVyIC5mZWVkYmFjayBidXR0b246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjVyZW19LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2sgYnV0dG9uOmhhcyguZmEtdGh1bWJzLW8tZG93bil7dHJhbnNmb3JtOnNjYWxlWCgtMSl9LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2sgYnV0dG9uIGk6aG92ZXJ7YW5pbWF0aW9uLW5hbWU6YXBwcm92YWwtYW5pbWF0aW9uO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLWR1cmF0aW9uOi43NXM7dHJhbnNmb3JtLW9yaWdpbjotMTAlIDEwMCU7Y29sb3I6cmdiYSgwLDAsMCwuNil9QGtleWZyYW1lcyBhcHByb3ZhbC1hbmltYXRpb257MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDVkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3NoYXJlZENvbXBvbmVudHMvdXNlckZlZWRiYWNrL0ZlZWRiYWNrQmFubmVyLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uL3NoYXJlZC9jc3MvY29sb3Iuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9hbmltYXRpb25zLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBSUEsaUJBR0Usd0JDb09lLENEbk9mLG9CQ21PZSxDRGxPZixhQ0djLENERmQsZ0JBQUEsQ0FFQSw4REFFRSxjQUFBLENBR0YsMkNBQ0Usb0JBQUEsQ0FDQSxpQkFkTyxDRWlCVCw2QkFBQSxDQUNBLGdDQUFBLENBQ0EsdUJBQUEsQ0FDQSx3QkFBQSxDRkhFLDJCQUFBLENFUEYsMEJBQ0UsR0FBQSxzQkFBQSxDQUNBLElBQUEsd0JBQUEsQ0FDQSxJQUFBLHVCQUFBLENBQ0EsS0FBQSxzQkFBQSxDQUFBLENGS0EseURBQ0UsZUFBQSxDQUNBLHFCQUFBLENBRUEsK0RFU0osa0NBQUEsQ0FDQSxxQ0FBQSxDQUNBLHNCQUFBLENBVkEsK0JBQ0UsR0FBQSxXQUFBLENBQUEsNEJBQUEsQ0FDQSxJQUFBLFdBQUEsQ0FBQSxnQ0FBQSxDQUNBLElBQUEsV0FBQSxDQUFBLGtDQUFBLENBQ0EsSUFBQSxXQUFBLENBQUEsZ0NBQUEsQ0FDQSxLQUFBLGNBQUEsQ0FBQSw0QkFBQSxDQUFBLENBQUEsbUJGQ0EsYUFBQSxDQUNBLGdCQUFBLENBR0Ysa0RBQ0Usa0JBQUEsQ0FHRiw4QkFDRSx1QkFBQSxDQUNBLGVBQUEsQ0FDQSxnQkFBQSxDQUNBLGtCQUFBLENBQ0EsaUJBQUEsQ0FDQSxRQUFBLENBQ0EsS0FBQSxDQUdGLDJCQUNFLGdCQWpETyxDQW1EUCxrQ0FDRSxTQUFBLENBQ0EsdUJBQUEsQ0FDQSxlQUFBLENBQ0EsY0FBQSxDQUVBLG1EQUNFLGtCQUFBLENBR0YseURBQ0Usb0JBQUEsQ0FJQSwwQ0UvRE4saUNBQUEsQ0FDQSxxQ0FBQSxDQUNBLHVCQUFBLENBQ0EsMEJBQUEsQ0Y4RFEsb0JBQUEsQ0V4RVIsOEJBQ0UsR0FBQSxzQkFBQSxDQUNBLElBQUEsd0JBQUEsQ0FDQSxJQUFBLHNCQUFBLENBQ0EsS0FBQSxzQkFBQSxDQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgJ2FuaW1hdGlvbnMnO1xcbkBpbXBvcnQgJ2NvbG9yJztcXG5AaW1wb3J0ICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5LXN0eWxlcy9mb250JztcXG5cXG4uZmVlZGJhY2stYmFubmVyIHtcXG4gICRpbmRlbnQ6IDFyZW07XFxuXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRfaW5mb18xMDA7XFxuICBib3JkZXItY29sb3I6ICRsaWdodF9pbmZvXzEwMDtcXG4gIGNvbG9yOiAkZGFya19jaGFyY29hbDtcXG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xcblxcbiAgJiAuc2hhcmUtbW9yZSxcXG4gICYgLmZlZWRiYWNrLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgfVxcblxcbiAgJiAuZmVlZGJhY2stYmFubmVyLWdyZWV0aW5nIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tcmlnaHQ6ICRpbmRlbnQ7XFxuXFxuICAgIEBpbmNsdWRlIHdhdmUtYW5pbWF0aW9uO1xcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyO1xcblxcbiAgICAmIC5mYS1oYW5kLXdhdmUge1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIEBpbmNsdWRlIGhpZ2gtZml2ZS1hbmltYXRpb247XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAmIGkge1xcbiAgICBjb2xvcjogIzBmMGYwZjtcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICB9XFxuXFxuICAmICNmZWVkYmFjay1iYW5uZXItc2hhcmUtbW9yZS1saW5rIHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIH1cXG5cXG4gICYgYnV0dG9uLmNsb3NlIHtcXG4gICAgYm9yZGVyOiB1bnNldCAhaW1wb3J0YW50O1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgbGluZS1oZWlnaHQ6IHVuc2V0O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHRvcDogMDtcXG4gIH1cXG5cXG4gICYgLmZlZWRiYWNrIHtcXG4gICAgbWFyZ2luLWxlZnQ6ICRpbmRlbnQ7XFxuXFxuICAgICYgYnV0dG9uIHtcXG4gICAgICBhbGw6IHVuc2V0O1xcbiAgICAgIGJvcmRlcjogdW5zZXQgIWltcG9ydGFudDtcXG4gICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XFxuICAgICAgfVxcblxcbiAgICAgICY6aGFzKC5mYS10aHVtYnMtby1kb3duKSB7XFxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XFxuICAgICAgfVxcblxcbiAgICAgICYgaSB7XFxuICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgQGluY2x1ZGUgYXBwcm92YWwtYW5pbWF0aW9uO1xcbiAgICAgICAgICBjb2xvcjogcmdiKDAgMCAwIC8gMC42KTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCIvLyBjb2xvcnMgZnJvbSBodHRwczovL3d3dy5kcm9wYm94LmNvbS9zL3ljaml3dDh2eGxtdjJpaC9Db2RlLm9yZ19zdHlsZXNoZWV0X3YyXzA5LjA1LjEzLnBkZlxcblxcbi8vIFBsZWFzZSBrZWVwIHRoaXMgZmlsZSBzaW1wbGU7IGl0IHNob3VsZCBvbmx5IGNvbnRhaW4gY29sb3IgZGVmaW5pdGlvbnNcXG4vLyAgIGFuZCBhbGlhc2VzLiAgVmFyaWFibGVzIGRlZmluZWQgaW4gdGhpcyBmaWxlIGFyZSBleHBvcnRlZCB0b1xcbi8vICAgYXBwcy9zcmMvdXRpbC9jb2xvci5qcyBkdXJpbmcgdGhlIGFwcHMgYnVpbGQgcHJvY2Vzcy5cXG5cXG4kYmxhY2s6ICMwMDA7XFxuJGJhY2tncm91bmRfYmxhY2s6ICMxMjE0MTY7XFxuJGRhcmtfZ3JheTogIzJEMzEzOTtcXG4kZGFya2VzdF9ncmF5OiAjMjkyRjM2O1xcbiRkYXJrX3NsYXRlX2dyYXk6ICMyODJjMzQ7XFxuJGRhcmtlc3Rfc2xhdGVfZ3JheTogIzI1MjkyZDtcXG4kZGFya19jaGFyY29hbDogIzRkNTc1ZjtcXG4kY2hhcmNvYWw6ICM1YjY3NzA7XFxuJGxpZ2h0X2dyYXk6ICM5NDljYTI7XFxuJGxpZ2h0ZXJfZ3JheTogI2M2Y2FjZDtcXG4kbGlnaHRlc3RfZ3JheTogI2U3ZThlYTtcXG4kYmFja2dyb3VuZF9ncmF5OiAjZjJmMmYyO1xcbiRkaW1ncmF5OiAjNjk2OTY5O1xcbiR3aGl0ZTogI2ZmZjtcXG4kZGVmYXVsdF9ibHVlOiAjMzY3MGIzO1xcblxcbiRkYXJrX3RlYWw6ICMwMDk0YTM7XFxuJHRlYWw6ICMwMDkzYTQ7XFxuJGFwcGxhYl9idXR0b25fdGVhbDogIzFhYmM5YztcXG4kbGlnaHRfdGVhbDogIzU5Y2FkMztcXG4kbGlnaHRpc2hfdGVhbDogIzgwZDZkZTtcXG4kbGlnaHRlcl90ZWFsOiAjYTZlM2U4O1xcbiRsaWdodGVzdF90ZWFsOiAjZDlmM2Y1O1xcbiRhaV9ydWJyaWNfY3lhbjogIzNjZmZmODtcXG5cXG4kcHVycGxlOiAjOGM1MmJhO1xcbiRsaWdodF9wdXJwbGU6ICNhNjliYzE7XFxuJGxpZ2h0ZXJfcHVycGxlOiAjY2ZjOWRlO1xcbiRsaWdodGVzdF9wdXJwbGU6ICNlYmU4ZjE7XFxuXFxuJGN5YW46ICMwMDk0Y2E7XFxuJGxpZ2h0X2N5YW46ICM1OWI5ZGM7XFxuJGxpZ2h0ZXJfY3lhbjogI2E2ZGFlZDtcXG4kbGlnaHRlc3RfY3lhbjogI2Q5ZWZmNztcXG4kYWxtb3N0X3doaXRlX2N5YW46ICNmNWZjZmY7XFxuXFxuJG9yYW5nZTogI2ZmYTQwMDtcXG4kbGlnaHRfb3JhbmdlOiAjZmZjNDU5O1xcbiRsaWdodGVyX29yYW5nZTogI2ZmZTBhNjtcXG4kbGlnaHRlc3Rfb3JhbmdlOiAjZmZmMmQ5O1xcbiRkYXJrX29yYW5nZTogI2ZmODYwMDtcXG5cXG4kZ3JlZW46ICNiOWJmMTU7XFxuJGxpZ2h0X2dyZWVuOiAjZDFkNTY3O1xcbiRsaWdodGVyX2dyZWVuOiAjZTdlOWFkO1xcbiRsaWdodGVzdF9ncmVlbjogI2Y1ZjVkYztcXG4kaGlnaGxpZ2h0X2dyZWVuOiAjOGFmYzliO1xcblxcbiR5ZWxsb3c6ICNmZmI4MWQ7XFxuJGxpZ2h0X3llbGxvdzogI2ZmZGI3NDtcXG4kbGlnaHRlcl95ZWxsb3c6ICNmZmViYjU7XFxuJGxpZ2h0ZXN0X3llbGxvdzogI2ZmZjdkZjtcXG5cXG4kZ29sZGVucm9kOiAjZGFhNTIwO1xcblxcbiRoZWFkZXJfdGV4dDogJHdoaXRlO1xcbiRia2duZF9jb2xvcjogJHRlYWw7XFxuJGluc2V0X2NvbG9yOiAkbGlnaHRlcl9ncmF5O1xcbiRkYXJrX2NvbG9yOiAkcHVycGxlO1xcbiRoZHJfY29sb3I6ICRwdXJwbGU7XFxuXFxuLy8gU29tZSBleHRyYSBjb2xvcnMuXFxuJHJlZDogI2MwMDtcXG4kbGlnaHRlc3RfcmVkOiAjZmNjO1xcbiRkYXJrX3JlZDogI2Q2MjkxMTtcXG4kcmVhbGdyZWVuOiAjMDA4MDAwO1xcbiRyZWFseWVsbG93OiAjZmYwO1xcbiRtdXN0YXJkeWVsbG93OiAjZWZjZDFjO1xcbiR0d2l0dGVyX2JsdWU6ICMwMGFjZWQ7XFxuJGZhY2Vib29rX2JsdWU6ICMzYjU5OTg7XFxuJGxpbmtlZGluX2JsdWU6ICMwMDc3QjU7XFxuJGRhcmtfYmx1ZTogIzAwNjQ3ZjtcXG4kYmxvY2tseV9mbHlvdXRfZ3JheTogI2RkZDtcXG4kZGVmYXVsdF90ZXh0OiAjMzMzO1xcbiRib3JkZXJfZ3JheTogI2JiYjtcXG4kYm9yZGVyX2xpZ2h0X2dyYXk6ICNkOGQ4ZDg7XFxuJHRhYmxlX2hlYWRlcjogI2VjZWNlYztcXG4kdGFibGVfbGlnaHRfcm93OiAjZmNmY2ZjO1xcbiR0YWJsZV9kYXJrX3JvdzogI2Y0ZjRmNDtcXG5cXG4vLyBQcm9ncmVzcyBjb2xvcnMuXFxuJGxldmVsX3N1Ym1pdHRlZDogJHB1cnBsZTtcXG4kbGV2ZWxfcGVyZmVjdDogcmdiKDE0LCAxOTAsIDE0KTtcXG4kbGV2ZWxfcGFzc2VkOiByZ2IoMTU5LCAyMTIsIDE1OSk7XFxuJGxldmVsX2F0dGVtcHRlZDogJHJlYWx5ZWxsb3c7XFxuJGxldmVsX25vdF90cmllZDogI2ZlZmVmZTtcXG4kbGV2ZWxfY3VycmVudDogJG9yYW5nZTtcXG4kbGV2ZWxfcmV2aWV3X3JlamVjdGVkOiAkcmVkO1xcbiRsZXZlbF9yZXZpZXdfYWNjZXB0ZWQ6IHJnYigxMSwgMTQyLCAxMSk7IC8vIFRPRE86ICRsZXZlbF9wYXNzZWQ7XFxuJGFzc2Vzc21lbnQ6ICRjeWFuO1xcbiR3b3Jrc3BhY2VfcnVubmluZ19iYWNrZ3JvdW5kOiAjZTVlNWU1O1xcblxcbi8vIEV4cGVyaW1lbnRhbCBTcHJpdGUgTGFiIHZhbGlkYXRpb24gY29sb3JzLlxcbiRkYXJrX3B1cnBsZTogIzY4MkE3NztcXG4kYnJpZ2h0X2dyZWVuOiAjMGViZTBlO1xcbiRuZW9uX3Bpbms6ICNlOTExOGY7XFxuXFxuLy8gTGlua3MgKHVzZWQgaW4gYXBwcykuXFxuJGxpbmtfY29sb3I6ICMwNTk2Y2U7XFxuXFxuLy8gU2hhZG93LlxcbiRzaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG5cXG4vLyBDb2xvcnMgdGhhdCBhcmUgdGFrZW4gZnJvbSBib290c3RyYXAsIGFuZCBub3QgbmVjZXNzYXJpbHkgcGFydCBvZiBvdXIgY29yZSB0aGVtZS5cXG4kYm9vdHN0cmFwX2J1dHRvbl9ibHVlOiAjMzM3YWI3O1xcbiRib290c3RyYXBfYnV0dG9uX3JlZDogI2Q5NTM0ZjtcXG4kYm9vdHN0cmFwX2Vycm9yX2JhY2tncm91bmQ6ICNmMmRlZGU7XFxuJGJvb3RzdHJhcF9lcnJvcl90ZXh0OiAjYjk0YTQ4O1xcbiRib290c3RyYXBfdjNfZXJyb3JfdGV4dDogI2E5NDQ0MjtcXG4kYm9vdHN0cmFwX2Vycm9yX2JvcmRlcjogI2ViY2NkMTtcXG4kYm9vdHN0cmFwX3dhcm5pbmdfYmFja2dyb3VuZDogI2ZjZjhlMztcXG4kYm9vdHN0cmFwX3dhcm5pbmdfdGV4dDogI2MwOTg1MztcXG4kYm9vdHN0cmFwX3dhcm5pbmdfYm9yZGVyOiAjZmFlYmNjO1xcbiRib290c3RyYXBfYm9yZGVyX2NvbG9yOiAjY2NjY2NjO1xcbiRib290c3RyYXBfc3VjY2Vzc19iYWNrZ3JvdW5kOiAjZGZmMGQ4O1xcbiRib290c3RyYXBfc3VjY2Vzc190ZXh0OiAjNDY4ODQ3O1xcbiRib290c3RyYXBfc3VjY2Vzc19ib3JkZXI6ICNkNmU5YzY7XFxuXFxuLy8gQ29sb3JzIHRha2VuIGZyb20gZHJvcGxldCwgbm90IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGRyb3BsZXRfbGlnaHRfZ3JlZW46ICNkM2U5NjU7XFxuJGRyb3BsZXRfYmx1ZTogIzY0YjVmNjtcXG4kZHJvcGxldF9icmlnaHRfYmx1ZTogIzE5YzNlMTtcXG4kZHJvcGxldF95ZWxsb3c6ICNmZmYxNzY7XFxuJGRyb3BsZXRfb3JhbmdlOiAjZmZiNzRkO1xcbiRkcm9wbGV0X3JlZDogI2Y3ODE4MztcXG4kZHJvcGxldF9jeWFuOiAjNGRkMGUxO1xcbiRkcm9wbGV0X3Bpbms6ICNmNTdhYzY7XFxuJGRyb3BsZXRfcHVycGxlOiAjYmI3N2M3O1xcbiRkcm9wbGV0X2dyZWVuOiAjNjhkOTk1O1xcbiRkcm9wbGV0X3doaXRlOiAkd2hpdGU7XFxuXFxuLy8gT2NlYW5zOiBkZWVwIGJsdWUgYmFja2dyb3VuZC5cXG4kb2NlYW5zX2RlZXBfYmx1ZTogcmdiKDIsIDAsIDI4KTtcXG5cXG4vLyBEYXJrIHRoZW1lIGJhY2tncm91bmQgKHVzZWQgYnkgZGVmYXVsdCBpbiBNdXNpYyBMYWIpXFxuJGRhcmtfYmxhY2s6ICMxMjEyMTI7XFxuXFxuLy8gPT09LS0tLT09PS0tLS09PT0tLS0tIFBoYXNlIDEgQ29sb3JzOiAtLS0tPT09LS0tLT09PS0tLS09PT1cXG4vLyBCcmFuZFxcbiRicmFuZF9wcmltYXJ5X2xpZ2h0OiAjRTBGOEY5O1xcbiRicmFuZF9wcmltYXJ5X2RlZmF1bHQ6ICMwMDlFQjA7XFxuJGJyYW5kX3ByaW1hcnlfZGFyazogIzAwNzc4NTtcXG5cXG4kYnJhbmRfc2Vjb25kYXJ5X2xpZ2h0OiAjRTBEMUVDO1xcbiRicmFuZF9zZWNvbmRhcnlfZGVmYXVsdDogIzhDNTJCQTtcXG4kYnJhbmRfc2Vjb25kYXJ5X2Rhcms6ICM2QzQ2OEE7XFxuXFxuJGJyYW5kX2FjY2VudF9kZWZhdWx0OiAjRUQ2MDYwO1xcblxcbiRicmFuZF90ZWFsXzU6ICNERkYyRjQ7XFxuXFxuLy9Qcm9kdWN0XFxuJHByb2R1Y3RfYWZmaXJtYXRpdmVfZGVmYXVsdDogIzNFQTMzRTtcXG5cXG4kcHJvZHVjdF9uZWdhdGl2ZV9saWdodDogI0ZERUJFOTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kZWZhdWx0OiAjRTUzMTFBO1xcbiRwcm9kdWN0X25lZ2F0aXZlX2Rhcms6ICNBQTI1MTM7XFxuXFxuJHByb2R1Y3RfY2F1dGlvbl9kZWZhdWx0OiAjRjlDQjI4O1xcblxcbiRwcm9kdWN0X2luZm9ybWF0aW9uX2RlZmF1bHQ6ICMwMDdBQ0M7XFxuXFxuLy8gTmV1dHJhbFxcbiRuZXV0cmFsX3doaXRlOiAjRkZGRkZGO1xcbiRuZXV0cmFsX2xpZ2h0OiAjRjdGOEZBO1xcbiRuZXV0cmFsX2dyYXkxMDogI0VBRUJFQjtcXG4kbmV1dHJhbF9kYXJrMTA6ICNFQUVDRUY7XFxuJG5ldXRyYWxfZGFyazIwOiAjRDFENEQ4O1xcbiRuZXV0cmFsX2RhcmszMDogI0JFQzJDNztcXG4kbmV1dHJhbF9kYXJrNDA6ICNBQkIwQjY7XFxuJG5ldXRyYWxfZGFyazUwOiAjOTg5RUE1O1xcbiRuZXV0cmFsX2Rhcms2MDogIzg1OEM5NDtcXG4kbmV1dHJhbF9kYXJrNzA6ICM3MjdBODM7XFxuJG5ldXRyYWxfZGFyazgwOiAjNUY2ODcyO1xcbiRuZXV0cmFsX2Rhcms5MDogIzRDNTY2MTtcXG4kbmV1dHJhbF9kYXJrOiAjMjkyRjM2O1xcblxcbi8vQnJhbmRzXFxuJGdvb2dsZV9icmFuZF9jb2xvcjogIzBGOUQ1ODtcXG4kbWljcm9zb2Z0X2JyYW5kX2NvbG9yOiAjRkZCOTAwO1xcbiRmYWNlYm9va19icmFuZF9jb2xvcjogIzNCNTk5ODtcXG4kY2xldmVyX2JyYW5kX2NvbG9yOiAjMTQ2NEZGO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBEZXNpZ24gc3lzdGVtIGNvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuXFxuJGxpZ2h0X3ByaW1hcnlfMTAwOiAjQkZFNEU4O1xcbiRsaWdodF9wcmltYXJ5XzUwMDogIzAwOTNBNDtcXG4kbGlnaHRfcHJpbWFyeV83MDA6ICMwMDc3ODU7XFxuXFxuJGxpZ2h0X3NlY29uZGFyeV8xMDA6ICNFMkQ0RUU7XFxuJGxpZ2h0X3NlY29uZGFyeV81MDA6ICM4QzUyQkE7XFxuJGxpZ2h0X3NlY29uZGFyeV83MDA6ICM2QzQ2OEE7XFxuXFxuJGxpZ2h0X2dyYXlfNTA6ICNGN0Y4RkE7XFxuJGxpZ2h0X2dyYXlfMTAwOiAjRUFFQ0VGO1xcbiRsaWdodF9ncmF5XzIwMDogI0QxRDREODtcXG4kbGlnaHRfZ3JheV8zMDA6ICNCRUMyQzc7XFxuJGxpZ2h0X2dyYXlfNDAwOiAjQUJCMEI2O1xcbiRsaWdodF9ncmF5XzUwMDogIzk4OUVBNTtcXG4kbGlnaHRfZ3JheV82MDA6ICM4NThDOTQ7XFxuJGxpZ2h0X2dyYXlfNzAwOiAjNzI3QTgzO1xcbiRsaWdodF9ncmF5XzgwMDogIzVGNjg3MjtcXG4kbGlnaHRfZ3JheV85MDA6ICM0QzU2NjE7XFxuJGxpZ2h0X2dyYXlfOTUwOiAjMzk0NDUwO1xcblxcbiRsaWdodF9hZmZpcm1hdGl2ZV8xMDA6ICNFMkYxRTI7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzUwMDogIzNFQTMzRTtcXG4kbGlnaHRfYWZmaXJtYXRpdmVfNzAwOiAjMkQ3NDJEO1xcblxcbiRsaWdodF9uZWdhdGl2ZV8xMDA6ICNGQkUwREQ7XFxuJGxpZ2h0X25lZ2F0aXZlXzUwMDogI0U1MzExQTtcXG4kbGlnaHRfbmVnYXRpdmVfNzAwOiAjQjI0OTQ5O1xcblxcbiRsaWdodF9jYXV0aW9uXzEwMDogI0ZFRjdERjtcXG4kbGlnaHRfY2F1dGlvbl81MDA6ICNGOUNCMjg7XFxuJGxpZ2h0X2NhdXRpb25fNzAwOiAjQzdBMjIwO1xcblxcbiRsaWdodF9hY2NlbnRfMTAwOiAjRkFEN0Q3O1xcbiRsaWdodF9hY2NlbnRfNTAwOiAjRUQ2MDYwO1xcbiRsaWdodF9hY2NlbnRfNzAwOiAjRDg0QzRDO1xcblxcbiRsaWdodF9hcXVhXzEwMDogI0NFRkZGRDtcXG4kbGlnaHRfYXF1YV81MDA6ICMzQ0ZGRjg7XFxuJGxpZ2h0X2FxdWFfNzAwOiAjMzBDQ0M2O1xcblxcbiRsaWdodF9vcmFuZ2VfMTAwOiAjRkZFRENDO1xcbiRsaWdodF9vcmFuZ2VfNTAwOiAjRkZBNDAwO1xcbiRsaWdodF9vcmFuZ2VfNzAwOiAjQ0M4MzAwO1xcblxcbiRsaWdodF9pbmZvXzEwMDogI0RDRUZGQjtcXG4kbGlnaHRfaW5mb181MDA6ICMxODkyRTM7XFxuJGxpZ2h0X2luZm9fNzAwOiAjMTM3NUI2O1xcblxcbiRsaWdodF93aGl0ZTogI0ZGRkZGRjtcXG5cXG4kbGlnaHRfYmxhY2s6ICMyOTJGMzY7XFxuXFxuJGxpZ2h0X2JsYWNrX29wYWNpdHlfOTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC45MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktODA6IHJnYmEoNDEsIDQ3LCA1NCwgMC44MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNzA6IHJnYmEoNDEsIDQ3LCA1NCwgMC43MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNjA6IHJnYmEoNDEsIDQ3LCA1NCwgMC42MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC41MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNDA6IHJnYmEoNDEsIDQ3LCA1NCwgMC40MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMzA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4zMCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMjA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4yMCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4xMCk7XFxuXCIsXCJAbWl4aW4gYXBwcm92YWwtYW5pbWF0aW9uIHtcXG4gIEBrZXlmcmFtZXMgYXBwcm92YWwtYW5pbWF0aW9uIHtcXG4gICAgMCUgICB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIH1cXG4gICAgMjUlICB7IHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZykgfVxcbiAgICA1MCUgIHsgdHJhbnNmb3JtOiByb3RhdGUoNWRlZykgfVxcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgfVxcbiAgfVxcblxcbiAgYW5pbWF0aW9uLW5hbWU6IGFwcHJvdmFsLWFuaW1hdGlvbjtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogLTEwJSAxMDAlO1xcbn1cXG5cXG5AbWl4aW4gd2F2ZS1hbmltYXRpb24ge1xcbiAgQGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbiB7XFxuICAgIDAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB9XFxuICAgIDI1JSAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpIH1cXG4gICAgNzUlICB7IHRyYW5zZm9ybTogcm90YXRlKDEyZGVnKSB9XFxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB9XFxuICB9XFxuXFxuICBhbmltYXRpb24tbmFtZTogd2F2ZS1hbmltYXRpb247XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA3MCUgNzAlO1xcbn1cXG5cXG5AbWl4aW4gaGlnaC1maXZlLWFuaW1hdGlvbiB7XFxuICBAa2V5ZnJhbWVzIGhpZ2gtZml2ZS1hbmltYXRpb24ge1xcbiAgICAwJSAgIHsgY3Vyc29yOiBncmFiOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAgICAgc2NhbGUoMSk7IH1cXG4gICAgMjUlICB7IGN1cnNvcjogZ3JhYjsgICAgdHJhbnNmb3JtOiByb3RhdGUoNTBkZWcpIHNjYWxlKDEpOyB9XFxuICAgIDUwJSAgeyBjdXJzb3I6IGdyYWI7ICAgIHRyYW5zZm9ybTogcm90YXRlKDUwZGVnKSBzY2FsZSgxLjUpOyB9XFxuICAgIDc1JSAgeyBjdXJzb3I6IGdyYWI7ICAgIHRyYW5zZm9ybTogcm90YXRlKDUwZGVnKSBzY2FsZSgxKTsgfVxcbiAgICAxMDAlIHsgY3Vyc29yOiBpbml0aWFsOyB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAgICAgc2NhbGUoMSk7IH1cXG4gIH1cXG5cXG4gIGFuaW1hdGlvbi1uYW1lOiBoaWdoLWZpdmUtYW5pbWF0aW9uO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IC41cztcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmlHX1U3MTMzY2xySkdwOUV2SnUwIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy90ZW1wbGF0ZXMvY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQ0UsOEJBRUUsb0NBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmNvbnRlbnRDb250YWluZXJIZWFkaW5nIHtcXG4gIGE6aG92ZXIge1xcbiAgICAvL1dlIG5lZWQgIWltcG9ydGFudCB0byBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgc3RhdGUgaW5saW5lIHN0eWxlIChpbmxpbmUgaG92ZXIgc3RhdGUgaXMgbm90IHdvcmtpbmcsIHVuZm9ydHVuYXRlbHkpXFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ubG9jYWxzID0ge1xuXHRcImNvbnRlbnRDb250YWluZXJIZWFkaW5nXCI6IFwiaUdfVTcxMzNjbHJKR3A5RXZKdTBcIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIubThjd2huT212dVVOeXZVQU1jRjN7cGFkZGluZzoyMHB4fS5tOGN3aG5PbXZ1VU55dlVBTWNGMyBocntib3JkZXItY29sb3I6I2M2Y2FjZH0uUmdQcjhUd3N0VHRYcHp3NXJpSnd7Y29sb3I6IzAwMDtmb250LXdlaWdodDo2MDB9LklSVVBndzlqWk1HNUJ3R1R2MFZKe3RleHQtYWxpZ246ZW5kfS5JUlVQZ3c5alpNRzVCd0dUdjBWSiBidXR0b257YmFja2dyb3VuZC1jb2xvcjojOGM1MmJhO2JvcmRlci1jb2xvcjojOGM1MmJhO2NvbG9yOiNmZmZ9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsLm1vZHVsZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi9zaGFyZWQvY3NzL2NvbG9yLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBR0Esc0JBQ0UsWUFBQSxDQUVBLHlCQUNFLG9CQ1FXLENESmYsc0JBQ0UsVUNOTSxDRE9OLGVBQUEsQ0FHRixzQkFDRSxjQUFBLENBRUEsNkJBQ0Usd0JDa0lzQixDRGpJdEIsb0JDaUlzQixDRGhJdEIsVUNtSllcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQHVzZSAnc2FzczptYXRoJztcXG5AaW1wb3J0ICdjb2xvci5zY3NzJztcXG5cXG4ubW9kYWxDb250YWluZXIge1xcbiAgcGFkZGluZzogMjBweDtcXG5cXG4gIGhyIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAkbGlnaHRlcl9ncmF5O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWxIZWFkZXIge1xcbiAgY29sb3I6ICRibGFjaztcXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XFxufVxcblxcbi5tb2RhbEJ1dHRvbiB7XFxuICB0ZXh0LWFsaWduOiBlbmQ7XFxuXFxuICBidXR0b24ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmRfc2Vjb25kYXJ5X2RlZmF1bHQ7XFxuICAgIGJvcmRlci1jb2xvcjogJGJyYW5kX3NlY29uZGFyeV9kZWZhdWx0O1xcbiAgICBjb2xvcjogJG5ldXRyYWxfd2hpdGU7XFxuICB9XFxufVxcblwiLFwiLy8gY29sb3JzIGZyb20gaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy95Y2ppd3Q4dnhsbXYyaWgvQ29kZS5vcmdfc3R5bGVzaGVldF92Ml8wOS4wNS4xMy5wZGZcXG5cXG4vLyBQbGVhc2Uga2VlcCB0aGlzIGZpbGUgc2ltcGxlOyBpdCBzaG91bGQgb25seSBjb250YWluIGNvbG9yIGRlZmluaXRpb25zXFxuLy8gICBhbmQgYWxpYXNlcy4gIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoaXMgZmlsZSBhcmUgZXhwb3J0ZWQgdG9cXG4vLyAgIGFwcHMvc3JjL3V0aWwvY29sb3IuanMgZHVyaW5nIHRoZSBhcHBzIGJ1aWxkIHByb2Nlc3MuXFxuXFxuJGJsYWNrOiAjMDAwO1xcbiRiYWNrZ3JvdW5kX2JsYWNrOiAjMTIxNDE2O1xcbiRkYXJrX2dyYXk6ICMyRDMxMzk7XFxuJGRhcmtlc3RfZ3JheTogIzI5MkYzNjtcXG4kZGFya19zbGF0ZV9ncmF5OiAjMjgyYzM0O1xcbiRkYXJrZXN0X3NsYXRlX2dyYXk6ICMyNTI5MmQ7XFxuJGRhcmtfY2hhcmNvYWw6ICM0ZDU3NWY7XFxuJGNoYXJjb2FsOiAjNWI2NzcwO1xcbiRsaWdodF9ncmF5OiAjOTQ5Y2EyO1xcbiRsaWdodGVyX2dyYXk6ICNjNmNhY2Q7XFxuJGxpZ2h0ZXN0X2dyYXk6ICNlN2U4ZWE7XFxuJGJhY2tncm91bmRfZ3JheTogI2YyZjJmMjtcXG4kZGltZ3JheTogIzY5Njk2OTtcXG4kd2hpdGU6ICNmZmY7XFxuJGRlZmF1bHRfYmx1ZTogIzM2NzBiMztcXG5cXG4kZGFya190ZWFsOiAjMDA5NGEzO1xcbiR0ZWFsOiAjMDA5M2E0O1xcbiRhcHBsYWJfYnV0dG9uX3RlYWw6ICMxYWJjOWM7XFxuJGxpZ2h0X3RlYWw6ICM1OWNhZDM7XFxuJGxpZ2h0aXNoX3RlYWw6ICM4MGQ2ZGU7XFxuJGxpZ2h0ZXJfdGVhbDogI2E2ZTNlODtcXG4kbGlnaHRlc3RfdGVhbDogI2Q5ZjNmNTtcXG4kYWlfcnVicmljX2N5YW46ICMzY2ZmZjg7XFxuXFxuJHB1cnBsZTogIzhjNTJiYTtcXG4kbGlnaHRfcHVycGxlOiAjYTY5YmMxO1xcbiRsaWdodGVyX3B1cnBsZTogI2NmYzlkZTtcXG4kbGlnaHRlc3RfcHVycGxlOiAjZWJlOGYxO1xcblxcbiRjeWFuOiAjMDA5NGNhO1xcbiRsaWdodF9jeWFuOiAjNTliOWRjO1xcbiRsaWdodGVyX2N5YW46ICNhNmRhZWQ7XFxuJGxpZ2h0ZXN0X2N5YW46ICNkOWVmZjc7XFxuJGFsbW9zdF93aGl0ZV9jeWFuOiAjZjVmY2ZmO1xcblxcbiRvcmFuZ2U6ICNmZmE0MDA7XFxuJGxpZ2h0X29yYW5nZTogI2ZmYzQ1OTtcXG4kbGlnaHRlcl9vcmFuZ2U6ICNmZmUwYTY7XFxuJGxpZ2h0ZXN0X29yYW5nZTogI2ZmZjJkOTtcXG4kZGFya19vcmFuZ2U6ICNmZjg2MDA7XFxuXFxuJGdyZWVuOiAjYjliZjE1O1xcbiRsaWdodF9ncmVlbjogI2QxZDU2NztcXG4kbGlnaHRlcl9ncmVlbjogI2U3ZTlhZDtcXG4kbGlnaHRlc3RfZ3JlZW46ICNmNWY1ZGM7XFxuJGhpZ2hsaWdodF9ncmVlbjogIzhhZmM5YjtcXG5cXG4keWVsbG93OiAjZmZiODFkO1xcbiRsaWdodF95ZWxsb3c6ICNmZmRiNzQ7XFxuJGxpZ2h0ZXJfeWVsbG93OiAjZmZlYmI1O1xcbiRsaWdodGVzdF95ZWxsb3c6ICNmZmY3ZGY7XFxuXFxuJGdvbGRlbnJvZDogI2RhYTUyMDtcXG5cXG4kaGVhZGVyX3RleHQ6ICR3aGl0ZTtcXG4kYmtnbmRfY29sb3I6ICR0ZWFsO1xcbiRpbnNldF9jb2xvcjogJGxpZ2h0ZXJfZ3JheTtcXG4kZGFya19jb2xvcjogJHB1cnBsZTtcXG4kaGRyX2NvbG9yOiAkcHVycGxlO1xcblxcbi8vIFNvbWUgZXh0cmEgY29sb3JzLlxcbiRyZWQ6ICNjMDA7XFxuJGxpZ2h0ZXN0X3JlZDogI2ZjYztcXG4kZGFya19yZWQ6ICNkNjI5MTE7XFxuJHJlYWxncmVlbjogIzAwODAwMDtcXG4kcmVhbHllbGxvdzogI2ZmMDtcXG4kbXVzdGFyZHllbGxvdzogI2VmY2QxYztcXG4kdHdpdHRlcl9ibHVlOiAjMDBhY2VkO1xcbiRmYWNlYm9va19ibHVlOiAjM2I1OTk4O1xcbiRsaW5rZWRpbl9ibHVlOiAjMDA3N0I1O1xcbiRkYXJrX2JsdWU6ICMwMDY0N2Y7XFxuJGJsb2NrbHlfZmx5b3V0X2dyYXk6ICNkZGQ7XFxuJGRlZmF1bHRfdGV4dDogIzMzMztcXG4kYm9yZGVyX2dyYXk6ICNiYmI7XFxuJGJvcmRlcl9saWdodF9ncmF5OiAjZDhkOGQ4O1xcbiR0YWJsZV9oZWFkZXI6ICNlY2VjZWM7XFxuJHRhYmxlX2xpZ2h0X3JvdzogI2ZjZmNmYztcXG4kdGFibGVfZGFya19yb3c6ICNmNGY0ZjQ7XFxuXFxuLy8gUHJvZ3Jlc3MgY29sb3JzLlxcbiRsZXZlbF9zdWJtaXR0ZWQ6ICRwdXJwbGU7XFxuJGxldmVsX3BlcmZlY3Q6IHJnYigxNCwgMTkwLCAxNCk7XFxuJGxldmVsX3Bhc3NlZDogcmdiKDE1OSwgMjEyLCAxNTkpO1xcbiRsZXZlbF9hdHRlbXB0ZWQ6ICRyZWFseWVsbG93O1xcbiRsZXZlbF9ub3RfdHJpZWQ6ICNmZWZlZmU7XFxuJGxldmVsX2N1cnJlbnQ6ICRvcmFuZ2U7XFxuJGxldmVsX3Jldmlld19yZWplY3RlZDogJHJlZDtcXG4kbGV2ZWxfcmV2aWV3X2FjY2VwdGVkOiByZ2IoMTEsIDE0MiwgMTEpOyAvLyBUT0RPOiAkbGV2ZWxfcGFzc2VkO1xcbiRhc3Nlc3NtZW50OiAkY3lhbjtcXG4kd29ya3NwYWNlX3J1bm5pbmdfYmFja2dyb3VuZDogI2U1ZTVlNTtcXG5cXG4vLyBFeHBlcmltZW50YWwgU3ByaXRlIExhYiB2YWxpZGF0aW9uIGNvbG9ycy5cXG4kZGFya19wdXJwbGU6ICM2ODJBNzc7XFxuJGJyaWdodF9ncmVlbjogIzBlYmUwZTtcXG4kbmVvbl9waW5rOiAjZTkxMThmO1xcblxcbi8vIExpbmtzICh1c2VkIGluIGFwcHMpLlxcbiRsaW5rX2NvbG9yOiAjMDU5NmNlO1xcblxcbi8vIFNoYWRvdy5cXG4kc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuXFxuLy8gQ29sb3JzIHRoYXQgYXJlIHRha2VuIGZyb20gYm9vdHN0cmFwLCBhbmQgbm90IG5lY2Vzc2FyaWx5IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGJvb3RzdHJhcF9idXR0b25fYmx1ZTogIzMzN2FiNztcXG4kYm9vdHN0cmFwX2J1dHRvbl9yZWQ6ICNkOTUzNGY7XFxuJGJvb3RzdHJhcF9lcnJvcl9iYWNrZ3JvdW5kOiAjZjJkZWRlO1xcbiRib290c3RyYXBfZXJyb3JfdGV4dDogI2I5NGE0ODtcXG4kYm9vdHN0cmFwX3YzX2Vycm9yX3RleHQ6ICNhOTQ0NDI7XFxuJGJvb3RzdHJhcF9lcnJvcl9ib3JkZXI6ICNlYmNjZDE7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JhY2tncm91bmQ6ICNmY2Y4ZTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX3RleHQ6ICNjMDk4NTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JvcmRlcjogI2ZhZWJjYztcXG4kYm9vdHN0cmFwX2JvcmRlcl9jb2xvcjogI2NjY2NjYztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYmFja2dyb3VuZDogI2RmZjBkODtcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfdGV4dDogIzQ2ODg0NztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYm9yZGVyOiAjZDZlOWM2O1xcblxcbi8vIENvbG9ycyB0YWtlbiBmcm9tIGRyb3BsZXQsIG5vdCBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRkcm9wbGV0X2xpZ2h0X2dyZWVuOiAjZDNlOTY1O1xcbiRkcm9wbGV0X2JsdWU6ICM2NGI1ZjY7XFxuJGRyb3BsZXRfYnJpZ2h0X2JsdWU6ICMxOWMzZTE7XFxuJGRyb3BsZXRfeWVsbG93OiAjZmZmMTc2O1xcbiRkcm9wbGV0X29yYW5nZTogI2ZmYjc0ZDtcXG4kZHJvcGxldF9yZWQ6ICNmNzgxODM7XFxuJGRyb3BsZXRfY3lhbjogIzRkZDBlMTtcXG4kZHJvcGxldF9waW5rOiAjZjU3YWM2O1xcbiRkcm9wbGV0X3B1cnBsZTogI2JiNzdjNztcXG4kZHJvcGxldF9ncmVlbjogIzY4ZDk5NTtcXG4kZHJvcGxldF93aGl0ZTogJHdoaXRlO1xcblxcbi8vIE9jZWFuczogZGVlcCBibHVlIGJhY2tncm91bmQuXFxuJG9jZWFuc19kZWVwX2JsdWU6IHJnYigyLCAwLCAyOCk7XFxuXFxuLy8gRGFyayB0aGVtZSBiYWNrZ3JvdW5kICh1c2VkIGJ5IGRlZmF1bHQgaW4gTXVzaWMgTGFiKVxcbiRkYXJrX2JsYWNrOiAjMTIxMjEyO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBQaGFzZSAxIENvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuLy8gQnJhbmRcXG4kYnJhbmRfcHJpbWFyeV9saWdodDogI0UwRjhGOTtcXG4kYnJhbmRfcHJpbWFyeV9kZWZhdWx0OiAjMDA5RUIwO1xcbiRicmFuZF9wcmltYXJ5X2Rhcms6ICMwMDc3ODU7XFxuXFxuJGJyYW5kX3NlY29uZGFyeV9saWdodDogI0UwRDFFQztcXG4kYnJhbmRfc2Vjb25kYXJ5X2RlZmF1bHQ6ICM4QzUyQkE7XFxuJGJyYW5kX3NlY29uZGFyeV9kYXJrOiAjNkM0NjhBO1xcblxcbiRicmFuZF9hY2NlbnRfZGVmYXVsdDogI0VENjA2MDtcXG5cXG4kYnJhbmRfdGVhbF81OiAjREZGMkY0O1xcblxcbi8vUHJvZHVjdFxcbiRwcm9kdWN0X2FmZmlybWF0aXZlX2RlZmF1bHQ6ICMzRUEzM0U7XFxuXFxuJHByb2R1Y3RfbmVnYXRpdmVfbGlnaHQ6ICNGREVCRTk7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGVmYXVsdDogI0U1MzExQTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kYXJrOiAjQUEyNTEzO1xcblxcbiRwcm9kdWN0X2NhdXRpb25fZGVmYXVsdDogI0Y5Q0IyODtcXG5cXG4kcHJvZHVjdF9pbmZvcm1hdGlvbl9kZWZhdWx0OiAjMDA3QUNDO1xcblxcbi8vIE5ldXRyYWxcXG4kbmV1dHJhbF93aGl0ZTogI0ZGRkZGRjtcXG4kbmV1dHJhbF9saWdodDogI0Y3RjhGQTtcXG4kbmV1dHJhbF9ncmF5MTA6ICNFQUVCRUI7XFxuJG5ldXRyYWxfZGFyazEwOiAjRUFFQ0VGO1xcbiRuZXV0cmFsX2RhcmsyMDogI0QxRDREODtcXG4kbmV1dHJhbF9kYXJrMzA6ICNCRUMyQzc7XFxuJG5ldXRyYWxfZGFyazQwOiAjQUJCMEI2O1xcbiRuZXV0cmFsX2Rhcms1MDogIzk4OUVBNTtcXG4kbmV1dHJhbF9kYXJrNjA6ICM4NThDOTQ7XFxuJG5ldXRyYWxfZGFyazcwOiAjNzI3QTgzO1xcbiRuZXV0cmFsX2Rhcms4MDogIzVGNjg3MjtcXG4kbmV1dHJhbF9kYXJrOTA6ICM0QzU2NjE7XFxuJG5ldXRyYWxfZGFyazogIzI5MkYzNjtcXG5cXG4vL0JyYW5kc1xcbiRnb29nbGVfYnJhbmRfY29sb3I6ICMwRjlENTg7XFxuJG1pY3Jvc29mdF9icmFuZF9jb2xvcjogI0ZGQjkwMDtcXG4kZmFjZWJvb2tfYnJhbmRfY29sb3I6ICMzQjU5OTg7XFxuJGNsZXZlcl9icmFuZF9jb2xvcjogIzE0NjRGRjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gRGVzaWduIHN5c3RlbSBjb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcblxcbiRsaWdodF9wcmltYXJ5XzEwMDogI0JGRTRFODtcXG4kbGlnaHRfcHJpbWFyeV81MDA6ICMwMDkzQTQ7XFxuJGxpZ2h0X3ByaW1hcnlfNzAwOiAjMDA3Nzg1O1xcblxcbiRsaWdodF9zZWNvbmRhcnlfMTAwOiAjRTJENEVFO1xcbiRsaWdodF9zZWNvbmRhcnlfNTAwOiAjOEM1MkJBO1xcbiRsaWdodF9zZWNvbmRhcnlfNzAwOiAjNkM0NjhBO1xcblxcbiRsaWdodF9ncmF5XzUwOiAjRjdGOEZBO1xcbiRsaWdodF9ncmF5XzEwMDogI0VBRUNFRjtcXG4kbGlnaHRfZ3JheV8yMDA6ICNEMUQ0RDg7XFxuJGxpZ2h0X2dyYXlfMzAwOiAjQkVDMkM3O1xcbiRsaWdodF9ncmF5XzQwMDogI0FCQjBCNjtcXG4kbGlnaHRfZ3JheV81MDA6ICM5ODlFQTU7XFxuJGxpZ2h0X2dyYXlfNjAwOiAjODU4Qzk0O1xcbiRsaWdodF9ncmF5XzcwMDogIzcyN0E4MztcXG4kbGlnaHRfZ3JheV84MDA6ICM1RjY4NzI7XFxuJGxpZ2h0X2dyYXlfOTAwOiAjNEM1NjYxO1xcbiRsaWdodF9ncmF5Xzk1MDogIzM5NDQ1MDtcXG5cXG4kbGlnaHRfYWZmaXJtYXRpdmVfMTAwOiAjRTJGMUUyO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV81MDA6ICMzRUEzM0U7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzcwMDogIzJENzQyRDtcXG5cXG4kbGlnaHRfbmVnYXRpdmVfMTAwOiAjRkJFMEREO1xcbiRsaWdodF9uZWdhdGl2ZV81MDA6ICNFNTMxMUE7XFxuJGxpZ2h0X25lZ2F0aXZlXzcwMDogI0IyNDk0OTtcXG5cXG4kbGlnaHRfY2F1dGlvbl8xMDA6ICNGRUY3REY7XFxuJGxpZ2h0X2NhdXRpb25fNTAwOiAjRjlDQjI4O1xcbiRsaWdodF9jYXV0aW9uXzcwMDogI0M3QTIyMDtcXG5cXG4kbGlnaHRfYWNjZW50XzEwMDogI0ZBRDdENztcXG4kbGlnaHRfYWNjZW50XzUwMDogI0VENjA2MDtcXG4kbGlnaHRfYWNjZW50XzcwMDogI0Q4NEM0QztcXG5cXG4kbGlnaHRfYXF1YV8xMDA6ICNDRUZGRkQ7XFxuJGxpZ2h0X2FxdWFfNTAwOiAjM0NGRkY4O1xcbiRsaWdodF9hcXVhXzcwMDogIzMwQ0NDNjtcXG5cXG4kbGlnaHRfb3JhbmdlXzEwMDogI0ZGRURDQztcXG4kbGlnaHRfb3JhbmdlXzUwMDogI0ZGQTQwMDtcXG4kbGlnaHRfb3JhbmdlXzcwMDogI0NDODMwMDtcXG5cXG4kbGlnaHRfaW5mb18xMDA6ICNEQ0VGRkI7XFxuJGxpZ2h0X2luZm9fNTAwOiAjMTg5MkUzO1xcbiRsaWdodF9pbmZvXzcwMDogIzEzNzVCNjtcXG5cXG4kbGlnaHRfd2hpdGU6ICNGRkZGRkY7XFxuXFxuJGxpZ2h0X2JsYWNrOiAjMjkyRjM2O1xcblxcbiRsaWdodF9ibGFja19vcGFjaXR5XzkwOiByZ2JhKDQxLCA0NywgNTQsIDAuOTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTgwOiByZ2JhKDQxLCA0NywgNTQsIDAuODApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTcwOiByZ2JhKDQxLCA0NywgNTQsIDAuNzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTYwOiByZ2JhKDQxLCA0NywgNTQsIDAuNjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTUwOiByZ2JhKDQxLCA0NywgNTQsIDAuNTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTQwOiByZ2JhKDQxLCA0NywgNTQsIDAuNDApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTMwOiByZ2JhKDQxLCA0NywgNTQsIDAuMzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTIwOiByZ2JhKDQxLCA0NywgNTQsIDAuMjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTEwOiByZ2JhKDQxLCA0NywgNTQsIDAuMTApO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ubG9jYWxzID0ge1xuXHRcIm1vZGFsQ29udGFpbmVyXCI6IFwibThjd2huT212dVVOeXZVQU1jRjNcIixcblx0XCJtb2RhbEhlYWRlclwiOiBcIlJnUHI4VHdzdFR0WHB6dzVyaUp3XCIsXG5cdFwibW9kYWxCdXR0b25cIjogXCJJUlVQZ3c5alpNRzVCd0dUdjBWSlwiXG59O1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5qZVFFbHdlQVVfR3ROZUl5OUs5R3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkMWQ0ZDg7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbi1ib3R0b206MjBweDtwYWRkaW5nOjEuMjVyZW0gMS41cmVtO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1mbG93OnJvdyB3cmFwO2dhcDoxcmVtfUBtZWRpYShtYXgtd2lkdGg6IDc2OHB4KXsuamVRRWx3ZUFVX0d0TmVJeTlLOUd7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0YXJ0fX0uWF9rOENOOHY2RktXTWU3aDBRWll7ZmxleDoyfS5YX2s4Q044djZGS1dNZTdoMFFaWSBwe21hcmdpbi1ib3R0b206LjI1cmVtfS5DWGlyVnVJTDdKZGRCNEJqaFd3a3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweH0uZExSMUNScVJydHVDWmFvTmR4cHd7Ym9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItd2lkdGg6NXB4fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy90ZW1wbGF0ZXMvc3R1ZGlvSG9tZXBhZ2VzL2JvcmRlcmVkQ2FsbFRvQWN0aW9uLm1vZHVsZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi9zaGFyZWQvY3NzL2NvbG9yLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUEsc0JBQ0UscUJDNE9ZLENEM09aLG9CQ3FNZSxDRHBNZixxQkFBQSxDQUNBLGtCQUFBLENBQ0Esc0JBQUEsQ0FDQSxZQUFBLENBQ0EsNkJBQUEsQ0FDQSxrQkFBQSxDQUNBLGtCQUFBLENBQ0EsUUFBQSxDQUVBLHlCQVpGLHNCQWFJLHFCQUFBLENBQ0EsaUJBQUEsQ0FBQSxDQUlKLHNCQUNFLE1BQUEsQ0FFQSx3QkFDRSxvQkFBQSxDQUlKLHNCQUNFLGtCQUFBLENBQ0EsZ0JBQUEsQ0FHRixzQkFDRSxtQkFBQSxDQUNBLGdCQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgJ2NvbG9yJztcXG5cXG4ub3V0ZXJCb3gge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0X3doaXRlO1xcbiAgYm9yZGVyLWNvbG9yOiAkbGlnaHRfZ3JheV8yMDA7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgZ2FwOiAxcmVtO1xcblxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcXG4gIH1cXG59XFxuXFxuLnRleHRXcmFwcGVyIHtcXG4gIGZsZXg6IDI7XFxuXFxuICBwIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcXG4gIH1cXG59XFxuXFxuLnNvbGlkQm9yZGVyIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG59XFxuXFxuLmRhc2hlZEJvcmRlciB7XFxuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcXG4gIGJvcmRlci13aWR0aDogNXB4O1xcbn1cXG5cIixcIi8vIGNvbG9ycyBmcm9tIGh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3MveWNqaXd0OHZ4bG12MmloL0NvZGUub3JnX3N0eWxlc2hlZXRfdjJfMDkuMDUuMTMucGRmXFxuXFxuLy8gUGxlYXNlIGtlZXAgdGhpcyBmaWxlIHNpbXBsZTsgaXQgc2hvdWxkIG9ubHkgY29udGFpbiBjb2xvciBkZWZpbml0aW9uc1xcbi8vICAgYW5kIGFsaWFzZXMuICBWYXJpYWJsZXMgZGVmaW5lZCBpbiB0aGlzIGZpbGUgYXJlIGV4cG9ydGVkIHRvXFxuLy8gICBhcHBzL3NyYy91dGlsL2NvbG9yLmpzIGR1cmluZyB0aGUgYXBwcyBidWlsZCBwcm9jZXNzLlxcblxcbiRibGFjazogIzAwMDtcXG4kYmFja2dyb3VuZF9ibGFjazogIzEyMTQxNjtcXG4kZGFya19ncmF5OiAjMkQzMTM5O1xcbiRkYXJrZXN0X2dyYXk6ICMyOTJGMzY7XFxuJGRhcmtfc2xhdGVfZ3JheTogIzI4MmMzNDtcXG4kZGFya2VzdF9zbGF0ZV9ncmF5OiAjMjUyOTJkO1xcbiRkYXJrX2NoYXJjb2FsOiAjNGQ1NzVmO1xcbiRjaGFyY29hbDogIzViNjc3MDtcXG4kbGlnaHRfZ3JheTogIzk0OWNhMjtcXG4kbGlnaHRlcl9ncmF5OiAjYzZjYWNkO1xcbiRsaWdodGVzdF9ncmF5OiAjZTdlOGVhO1xcbiRiYWNrZ3JvdW5kX2dyYXk6ICNmMmYyZjI7XFxuJGRpbWdyYXk6ICM2OTY5Njk7XFxuJHdoaXRlOiAjZmZmO1xcbiRkZWZhdWx0X2JsdWU6ICMzNjcwYjM7XFxuXFxuJGRhcmtfdGVhbDogIzAwOTRhMztcXG4kdGVhbDogIzAwOTNhNDtcXG4kYXBwbGFiX2J1dHRvbl90ZWFsOiAjMWFiYzljO1xcbiRsaWdodF90ZWFsOiAjNTljYWQzO1xcbiRsaWdodGlzaF90ZWFsOiAjODBkNmRlO1xcbiRsaWdodGVyX3RlYWw6ICNhNmUzZTg7XFxuJGxpZ2h0ZXN0X3RlYWw6ICNkOWYzZjU7XFxuJGFpX3J1YnJpY19jeWFuOiAjM2NmZmY4O1xcblxcbiRwdXJwbGU6ICM4YzUyYmE7XFxuJGxpZ2h0X3B1cnBsZTogI2E2OWJjMTtcXG4kbGlnaHRlcl9wdXJwbGU6ICNjZmM5ZGU7XFxuJGxpZ2h0ZXN0X3B1cnBsZTogI2ViZThmMTtcXG5cXG4kY3lhbjogIzAwOTRjYTtcXG4kbGlnaHRfY3lhbjogIzU5YjlkYztcXG4kbGlnaHRlcl9jeWFuOiAjYTZkYWVkO1xcbiRsaWdodGVzdF9jeWFuOiAjZDllZmY3O1xcbiRhbG1vc3Rfd2hpdGVfY3lhbjogI2Y1ZmNmZjtcXG5cXG4kb3JhbmdlOiAjZmZhNDAwO1xcbiRsaWdodF9vcmFuZ2U6ICNmZmM0NTk7XFxuJGxpZ2h0ZXJfb3JhbmdlOiAjZmZlMGE2O1xcbiRsaWdodGVzdF9vcmFuZ2U6ICNmZmYyZDk7XFxuJGRhcmtfb3JhbmdlOiAjZmY4NjAwO1xcblxcbiRncmVlbjogI2I5YmYxNTtcXG4kbGlnaHRfZ3JlZW46ICNkMWQ1Njc7XFxuJGxpZ2h0ZXJfZ3JlZW46ICNlN2U5YWQ7XFxuJGxpZ2h0ZXN0X2dyZWVuOiAjZjVmNWRjO1xcbiRoaWdobGlnaHRfZ3JlZW46ICM4YWZjOWI7XFxuXFxuJHllbGxvdzogI2ZmYjgxZDtcXG4kbGlnaHRfeWVsbG93OiAjZmZkYjc0O1xcbiRsaWdodGVyX3llbGxvdzogI2ZmZWJiNTtcXG4kbGlnaHRlc3RfeWVsbG93OiAjZmZmN2RmO1xcblxcbiRnb2xkZW5yb2Q6ICNkYWE1MjA7XFxuXFxuJGhlYWRlcl90ZXh0OiAkd2hpdGU7XFxuJGJrZ25kX2NvbG9yOiAkdGVhbDtcXG4kaW5zZXRfY29sb3I6ICRsaWdodGVyX2dyYXk7XFxuJGRhcmtfY29sb3I6ICRwdXJwbGU7XFxuJGhkcl9jb2xvcjogJHB1cnBsZTtcXG5cXG4vLyBTb21lIGV4dHJhIGNvbG9ycy5cXG4kcmVkOiAjYzAwO1xcbiRsaWdodGVzdF9yZWQ6ICNmY2M7XFxuJGRhcmtfcmVkOiAjZDYyOTExO1xcbiRyZWFsZ3JlZW46ICMwMDgwMDA7XFxuJHJlYWx5ZWxsb3c6ICNmZjA7XFxuJG11c3RhcmR5ZWxsb3c6ICNlZmNkMWM7XFxuJHR3aXR0ZXJfYmx1ZTogIzAwYWNlZDtcXG4kZmFjZWJvb2tfYmx1ZTogIzNiNTk5ODtcXG4kbGlua2VkaW5fYmx1ZTogIzAwNzdCNTtcXG4kZGFya19ibHVlOiAjMDA2NDdmO1xcbiRibG9ja2x5X2ZseW91dF9ncmF5OiAjZGRkO1xcbiRkZWZhdWx0X3RleHQ6ICMzMzM7XFxuJGJvcmRlcl9ncmF5OiAjYmJiO1xcbiRib3JkZXJfbGlnaHRfZ3JheTogI2Q4ZDhkODtcXG4kdGFibGVfaGVhZGVyOiAjZWNlY2VjO1xcbiR0YWJsZV9saWdodF9yb3c6ICNmY2ZjZmM7XFxuJHRhYmxlX2Rhcmtfcm93OiAjZjRmNGY0O1xcblxcbi8vIFByb2dyZXNzIGNvbG9ycy5cXG4kbGV2ZWxfc3VibWl0dGVkOiAkcHVycGxlO1xcbiRsZXZlbF9wZXJmZWN0OiByZ2IoMTQsIDE5MCwgMTQpO1xcbiRsZXZlbF9wYXNzZWQ6IHJnYigxNTksIDIxMiwgMTU5KTtcXG4kbGV2ZWxfYXR0ZW1wdGVkOiAkcmVhbHllbGxvdztcXG4kbGV2ZWxfbm90X3RyaWVkOiAjZmVmZWZlO1xcbiRsZXZlbF9jdXJyZW50OiAkb3JhbmdlO1xcbiRsZXZlbF9yZXZpZXdfcmVqZWN0ZWQ6ICRyZWQ7XFxuJGxldmVsX3Jldmlld19hY2NlcHRlZDogcmdiKDExLCAxNDIsIDExKTsgLy8gVE9ETzogJGxldmVsX3Bhc3NlZDtcXG4kYXNzZXNzbWVudDogJGN5YW47XFxuJHdvcmtzcGFjZV9ydW5uaW5nX2JhY2tncm91bmQ6ICNlNWU1ZTU7XFxuXFxuLy8gRXhwZXJpbWVudGFsIFNwcml0ZSBMYWIgdmFsaWRhdGlvbiBjb2xvcnMuXFxuJGRhcmtfcHVycGxlOiAjNjgyQTc3O1xcbiRicmlnaHRfZ3JlZW46ICMwZWJlMGU7XFxuJG5lb25fcGluazogI2U5MTE4ZjtcXG5cXG4vLyBMaW5rcyAodXNlZCBpbiBhcHBzKS5cXG4kbGlua19jb2xvcjogIzA1OTZjZTtcXG5cXG4vLyBTaGFkb3cuXFxuJHNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjMpO1xcblxcbi8vIENvbG9ycyB0aGF0IGFyZSB0YWtlbiBmcm9tIGJvb3RzdHJhcCwgYW5kIG5vdCBuZWNlc3NhcmlseSBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRib290c3RyYXBfYnV0dG9uX2JsdWU6ICMzMzdhYjc7XFxuJGJvb3RzdHJhcF9idXR0b25fcmVkOiAjZDk1MzRmO1xcbiRib290c3RyYXBfZXJyb3JfYmFja2dyb3VuZDogI2YyZGVkZTtcXG4kYm9vdHN0cmFwX2Vycm9yX3RleHQ6ICNiOTRhNDg7XFxuJGJvb3RzdHJhcF92M19lcnJvcl90ZXh0OiAjYTk0NDQyO1xcbiRib290c3RyYXBfZXJyb3JfYm9yZGVyOiAjZWJjY2QxO1xcbiRib290c3RyYXBfd2FybmluZ19iYWNrZ3JvdW5kOiAjZmNmOGUzO1xcbiRib290c3RyYXBfd2FybmluZ190ZXh0OiAjYzA5ODUzO1xcbiRib290c3RyYXBfd2FybmluZ19ib3JkZXI6ICNmYWViY2M7XFxuJGJvb3RzdHJhcF9ib3JkZXJfY29sb3I6ICNjY2NjY2M7XFxuJGJvb3RzdHJhcF9zdWNjZXNzX2JhY2tncm91bmQ6ICNkZmYwZDg7XFxuJGJvb3RzdHJhcF9zdWNjZXNzX3RleHQ6ICM0Njg4NDc7XFxuJGJvb3RzdHJhcF9zdWNjZXNzX2JvcmRlcjogI2Q2ZTljNjtcXG5cXG4vLyBDb2xvcnMgdGFrZW4gZnJvbSBkcm9wbGV0LCBub3QgcGFydCBvZiBvdXIgY29yZSB0aGVtZS5cXG4kZHJvcGxldF9saWdodF9ncmVlbjogI2QzZTk2NTtcXG4kZHJvcGxldF9ibHVlOiAjNjRiNWY2O1xcbiRkcm9wbGV0X2JyaWdodF9ibHVlOiAjMTljM2UxO1xcbiRkcm9wbGV0X3llbGxvdzogI2ZmZjE3NjtcXG4kZHJvcGxldF9vcmFuZ2U6ICNmZmI3NGQ7XFxuJGRyb3BsZXRfcmVkOiAjZjc4MTgzO1xcbiRkcm9wbGV0X2N5YW46ICM0ZGQwZTE7XFxuJGRyb3BsZXRfcGluazogI2Y1N2FjNjtcXG4kZHJvcGxldF9wdXJwbGU6ICNiYjc3Yzc7XFxuJGRyb3BsZXRfZ3JlZW46ICM2OGQ5OTU7XFxuJGRyb3BsZXRfd2hpdGU6ICR3aGl0ZTtcXG5cXG4vLyBPY2VhbnM6IGRlZXAgYmx1ZSBiYWNrZ3JvdW5kLlxcbiRvY2VhbnNfZGVlcF9ibHVlOiByZ2IoMiwgMCwgMjgpO1xcblxcbi8vIERhcmsgdGhlbWUgYmFja2dyb3VuZCAodXNlZCBieSBkZWZhdWx0IGluIE11c2ljIExhYilcXG4kZGFya19ibGFjazogIzEyMTIxMjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gUGhhc2UgMSBDb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcbi8vIEJyYW5kXFxuJGJyYW5kX3ByaW1hcnlfbGlnaHQ6ICNFMEY4Rjk7XFxuJGJyYW5kX3ByaW1hcnlfZGVmYXVsdDogIzAwOUVCMDtcXG4kYnJhbmRfcHJpbWFyeV9kYXJrOiAjMDA3Nzg1O1xcblxcbiRicmFuZF9zZWNvbmRhcnlfbGlnaHQ6ICNFMEQxRUM7XFxuJGJyYW5kX3NlY29uZGFyeV9kZWZhdWx0OiAjOEM1MkJBO1xcbiRicmFuZF9zZWNvbmRhcnlfZGFyazogIzZDNDY4QTtcXG5cXG4kYnJhbmRfYWNjZW50X2RlZmF1bHQ6ICNFRDYwNjA7XFxuXFxuJGJyYW5kX3RlYWxfNTogI0RGRjJGNDtcXG5cXG4vL1Byb2R1Y3RcXG4kcHJvZHVjdF9hZmZpcm1hdGl2ZV9kZWZhdWx0OiAjM0VBMzNFO1xcblxcbiRwcm9kdWN0X25lZ2F0aXZlX2xpZ2h0OiAjRkRFQkU5O1xcbiRwcm9kdWN0X25lZ2F0aXZlX2RlZmF1bHQ6ICNFNTMxMUE7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGFyazogI0FBMjUxMztcXG5cXG4kcHJvZHVjdF9jYXV0aW9uX2RlZmF1bHQ6ICNGOUNCMjg7XFxuXFxuJHByb2R1Y3RfaW5mb3JtYXRpb25fZGVmYXVsdDogIzAwN0FDQztcXG5cXG4vLyBOZXV0cmFsXFxuJG5ldXRyYWxfd2hpdGU6ICNGRkZGRkY7XFxuJG5ldXRyYWxfbGlnaHQ6ICNGN0Y4RkE7XFxuJG5ldXRyYWxfZ3JheTEwOiAjRUFFQkVCO1xcbiRuZXV0cmFsX2RhcmsxMDogI0VBRUNFRjtcXG4kbmV1dHJhbF9kYXJrMjA6ICNEMUQ0RDg7XFxuJG5ldXRyYWxfZGFyazMwOiAjQkVDMkM3O1xcbiRuZXV0cmFsX2Rhcms0MDogI0FCQjBCNjtcXG4kbmV1dHJhbF9kYXJrNTA6ICM5ODlFQTU7XFxuJG5ldXRyYWxfZGFyazYwOiAjODU4Qzk0O1xcbiRuZXV0cmFsX2Rhcms3MDogIzcyN0E4MztcXG4kbmV1dHJhbF9kYXJrODA6ICM1RjY4NzI7XFxuJG5ldXRyYWxfZGFyazkwOiAjNEM1NjYxO1xcbiRuZXV0cmFsX2Rhcms6ICMyOTJGMzY7XFxuXFxuLy9CcmFuZHNcXG4kZ29vZ2xlX2JyYW5kX2NvbG9yOiAjMEY5RDU4O1xcbiRtaWNyb3NvZnRfYnJhbmRfY29sb3I6ICNGRkI5MDA7XFxuJGZhY2Vib29rX2JyYW5kX2NvbG9yOiAjM0I1OTk4O1xcbiRjbGV2ZXJfYnJhbmRfY29sb3I6ICMxNDY0RkY7XFxuXFxuLy8gPT09LS0tLT09PS0tLS09PT0tLS0tIERlc2lnbiBzeXN0ZW0gY29sb3JzOiAtLS0tPT09LS0tLT09PS0tLS09PT1cXG5cXG4kbGlnaHRfcHJpbWFyeV8xMDA6ICNCRkU0RTg7XFxuJGxpZ2h0X3ByaW1hcnlfNTAwOiAjMDA5M0E0O1xcbiRsaWdodF9wcmltYXJ5XzcwMDogIzAwNzc4NTtcXG5cXG4kbGlnaHRfc2Vjb25kYXJ5XzEwMDogI0UyRDRFRTtcXG4kbGlnaHRfc2Vjb25kYXJ5XzUwMDogIzhDNTJCQTtcXG4kbGlnaHRfc2Vjb25kYXJ5XzcwMDogIzZDNDY4QTtcXG5cXG4kbGlnaHRfZ3JheV81MDogI0Y3RjhGQTtcXG4kbGlnaHRfZ3JheV8xMDA6ICNFQUVDRUY7XFxuJGxpZ2h0X2dyYXlfMjAwOiAjRDFENEQ4O1xcbiRsaWdodF9ncmF5XzMwMDogI0JFQzJDNztcXG4kbGlnaHRfZ3JheV80MDA6ICNBQkIwQjY7XFxuJGxpZ2h0X2dyYXlfNTAwOiAjOTg5RUE1O1xcbiRsaWdodF9ncmF5XzYwMDogIzg1OEM5NDtcXG4kbGlnaHRfZ3JheV83MDA6ICM3MjdBODM7XFxuJGxpZ2h0X2dyYXlfODAwOiAjNUY2ODcyO1xcbiRsaWdodF9ncmF5XzkwMDogIzRDNTY2MTtcXG4kbGlnaHRfZ3JheV85NTA6ICMzOTQ0NTA7XFxuXFxuJGxpZ2h0X2FmZmlybWF0aXZlXzEwMDogI0UyRjFFMjtcXG4kbGlnaHRfYWZmaXJtYXRpdmVfNTAwOiAjM0VBMzNFO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV83MDA6ICMyRDc0MkQ7XFxuXFxuJGxpZ2h0X25lZ2F0aXZlXzEwMDogI0ZCRTBERDtcXG4kbGlnaHRfbmVnYXRpdmVfNTAwOiAjRTUzMTFBO1xcbiRsaWdodF9uZWdhdGl2ZV83MDA6ICNCMjQ5NDk7XFxuXFxuJGxpZ2h0X2NhdXRpb25fMTAwOiAjRkVGN0RGO1xcbiRsaWdodF9jYXV0aW9uXzUwMDogI0Y5Q0IyODtcXG4kbGlnaHRfY2F1dGlvbl83MDA6ICNDN0EyMjA7XFxuXFxuJGxpZ2h0X2FjY2VudF8xMDA6ICNGQUQ3RDc7XFxuJGxpZ2h0X2FjY2VudF81MDA6ICNFRDYwNjA7XFxuJGxpZ2h0X2FjY2VudF83MDA6ICNEODRDNEM7XFxuXFxuJGxpZ2h0X2FxdWFfMTAwOiAjQ0VGRkZEO1xcbiRsaWdodF9hcXVhXzUwMDogIzNDRkZGODtcXG4kbGlnaHRfYXF1YV83MDA6ICMzMENDQzY7XFxuXFxuJGxpZ2h0X29yYW5nZV8xMDA6ICNGRkVEQ0M7XFxuJGxpZ2h0X29yYW5nZV81MDA6ICNGRkE0MDA7XFxuJGxpZ2h0X29yYW5nZV83MDA6ICNDQzgzMDA7XFxuXFxuJGxpZ2h0X2luZm9fMTAwOiAjRENFRkZCO1xcbiRsaWdodF9pbmZvXzUwMDogIzE4OTJFMztcXG4kbGlnaHRfaW5mb183MDA6ICMxMzc1QjY7XFxuXFxuJGxpZ2h0X3doaXRlOiAjRkZGRkZGO1xcblxcbiRsaWdodF9ibGFjazogIzI5MkYzNjtcXG5cXG4kbGlnaHRfYmxhY2tfb3BhY2l0eV85MDogcmdiYSg0MSwgNDcsIDU0LCAwLjkwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS04MDogcmdiYSg0MSwgNDcsIDU0LCAwLjgwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS03MDogcmdiYSg0MSwgNDcsIDU0LCAwLjcwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS02MDogcmdiYSg0MSwgNDcsIDU0LCAwLjYwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS01MDogcmdiYSg0MSwgNDcsIDU0LCAwLjUwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS00MDogcmdiYSg0MSwgNDcsIDU0LCAwLjQwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS0zMDogcmdiYSg0MSwgNDcsIDU0LCAwLjMwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS0yMDogcmdiYSg0MSwgNDcsIDU0LCAwLjIwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS0xMDogcmdiYSg0MSwgNDcsIDU0LCAwLjEwKTtcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcblx0XCJvdXRlckJveFwiOiBcImplUUVsd2VBVV9HdE5lSXk5SzlHXCIsXG5cdFwidGV4dFdyYXBwZXJcIjogXCJYX2s4Q044djZGS1dNZTdoMFFaWVwiLFxuXHRcInNvbGlkQm9yZGVyXCI6IFwiQ1hpclZ1SUw3SmRkQjRCamhXd2tcIixcblx0XCJkYXNoZWRCb3JkZXJcIjogXCJkTFIxQ1JxUnJ0dUNaYW9OZHhwd1wiXG59O1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5yMTQ4R0w5cmN0TWk4aWMyUnh6YXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21pbi1oZWlnaHQ6MTAwJX0udmpjcWNzQzVVSG5IdTVmTmRDWE57ZmxleC1ncm93OjE7cGFkZGluZzoyMHB4O292ZXJmbG93LXk6YXV0b30uX3VmTWlSVDJySW1DbFpIVEhYc1l7YmFja2dyb3VuZC1jb2xvcjojMjkyZjM2O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWxlZnQ6NjRweDtvdmVyZmxvdy14OmF1dG99Ll91Zk1pUlQyckltQ2xaSFRIWHNZIGEuSzRiT2NiSHlueU42RE1fNFh4d1J7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzcyN2E4Mztjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MTBweCA4cHggMCAwO3BhZGRpbmc6MCAxMHB4O2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDB9Ll91Zk1pUlQyckltQ2xaSFRIWHNZIGEuaUZGRmxVbnd0N3dqa3UxQUg5bDh7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwMDc3ODV9Ll91Zk1pUlQyckltQ2xaSFRIWHNZIC5fRFF6UXVaTXFUUTRBYURqNmllQXtoZWlnaHQ6NDBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5YaGlHMUxIU0ZCcEZUWUlGcEVET3ttYXgtd2lkdGg6OTcwcHg7cGFkZGluZzoxMHB4IDY0cHggNjRweCA2NHB4fS5kWjFjTjIxZnRxd2R6Uk14REtXSntmb250LXN0eWxlOml0YWxpYzt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLXRvcDoxMHB4fS5SUkttOEhPYnFndmdMSURSbnJuSHt0ZXh0LWFsaWduOmNlbnRlcjttYXgtd2lkdGg6NTM4cHg7bWFyZ2luOjEwNHB4IGF1dG8gODJweCBhdXRvfS5MMnM3U3Jmc3RidU5QSlAyUjVFZ3t0ZXh0LWFsaWduOmNlbnRlcjttYXgtd2lkdGg6NTM4cHg7bWFyZ2luOmF1dG99Lk1Bd0dfcmhSS1BnMlFyM0FxNDhfe21hcmdpbjoyNHB4IDY0cHggODJweCA2NHB4O3RleHQtYWxpZ246Y2VudGVyfS5UQjIzMUZDdVF6aTYxZXdWUDEzcXtoZWlnaHQ6MjAwcHg7YWxpZ24taXRlbXM6ZW5kO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5PZlRHc1BnaHM2azlpc3FUYUJOV3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmQwS2RFdjhybjduYW9mQjlKd3FZe3BhZGRpbmc6MCA2NHB4fS5kMEtkRXY4cm43bmFvZkI5SndxWSBoMXtmb250LWZhbWlseTpcXFwiQmFybG93IFNlbWkgQ29uZGVuc2VkIE1lZGl1bVxcXCIsXFxcIk5vdG8gU2Fuc1xcXCIsXFxcIk5vdG8gU2FucyBNYXRoXFxcIixcXFwiTm90byBTYW5zIEFyYWJpY1xcXCIsXFxcIk5vdG8gU2FucyBBcm1lbmlhblxcXCIsXFxcIk5vdG8gU2FucyBCZW5nYWxpXFxcIixcXFwiTm90byBTYW5zIFNDXFxcIixcXFwiTm90byBTYW5zIFRDXFxcIixcXFwiTm90byBTYW5zIERldmFuYWdhcmlcXFwiLFxcXCJOb3RvIFNhbnMgR2VvcmdpYW5cXFwiLFxcXCJOb3RvIFNhbnMgSGVicmV3XFxcIixcXFwiTm90byBTYW5zIEpQXFxcIixcXFwiTm90byBTYW5zIEthbm5hZGFcXFwiLFxcXCJOb3RvIFNhbnMgS2htZXJcXFwiLFxcXCJOb3RvIFNhbnMgS1JcXFwiLFxcXCJOb3RvIFNhbnMgTXlhbm1hclxcXCIsXFxcIk5vdG8gU2FucyBTaW5oYWxhXFxcIixcXFwiTm90byBTYW5zIFRhbWlsXFxcIixcXFwiTm90byBTYW5zIFRlbHVndVxcXCIsXFxcIk5vdG8gU2FucyBUaGFpXFxcIixcXFwiTm90byBTYW5zIFRoYWFuYVxcXCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjM0cHg7Y29sb3I6IzI5MmYzNjtsaW5lLWhlaWdodDo0MnB4O21hcmdpbi10b3A6MThweH0ubjdycGRobkc2bUlaZk03MG5OalV7bWFyZ2luLXRvcDoxMnB4fS5sOGdZR0xBSDVmWVN5YXVhR0Q2anttYXJnaW4taW5saW5lLWVuZDo4cHg7Y29sb3I6IzhjNTJiYX0ubDhnWUdMQUg1ZllTeWF1YUdENmo6aG92ZXIsLmw4Z1lHTEFINWZZU3lhdWFHRDZqIDphY3RpdmUsLmw4Z1lHTEFINWZZU3lhdWFHRDZqIDp2aXNpdGVkLC5sOGdZR0xBSDVmWVN5YXVhR0Q2aiA6Zm9jdXMtdmlzaWJsZXtjb2xvcjojOGM1MmJhfS5fVmtjaWF3VzZpOGFGMktycWVrdnttYXJnaW4tYm90dG9tOjhweH0ucjVUV2tLeUNwS0d6QjdsUjJPUWl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5sMVpjTW44NldWRXRNZk10d3pCOHtkaXNwbGF5OmZsZXg7bWFyZ2luLWJvdHRvbTo1cHh9LkdzdFBIaGlfcFhNaldxNk9nVHdie2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6IzhjNTJiYTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4O3RleHQtZGVjb3JhdGlvbjpub25lO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC13ZWlnaHQ6NjAwfS5Hc3RQSGhpX3BYTWpXcTZPZ1R3Yjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2YzQ2OGE7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0uR3N0UEhoaV9wWE1qV3E2T2dUd2I6Zm9jdXN7b3V0bGluZTojMDA5ZWIwIHNvbGlkIDJweDtvdXRsaW5lLW9mZnNldDoycHg7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0ubk9RcmVuZHlYVW8wSzlyTUtnNzR7cGFkZGluZy10b3A6MjRweH0uUG9Zamc2T2dfZkVSZGVBdDI2b0d7dGV4dC1hbGlnbjpsZWZ0fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9jb2xvci5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi9zaGFyZWQvY3NzL3N0eWxlLWNvbnN0YW50cy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi9mcm9udGVuZC9wYWNrYWdlcy9jb21wb25lbnQtbGlicmFyeS1zdHlsZXMvZm9udC5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUlBLHNCQUNFLFlBQUEsQ0FDQSxrQkFBQSxDQUNBLGVBQUEsQ0FHRixzQkFDRSxXQUFBLENBQ0EsWUFBQSxDQUNBLGVBQUEsQ0FHRixzQkFDRSx3QkNvS2EsQ0RuS2IsWUFBQSxDQUNBLGlCQUFBLENBQ0EsaUJBQUEsQ0FDQSxlQUFBLENBRUEsNkNBQ0Usa0JBQUEsQ0FDQSxvQkFBQSxDQUNBLHdCQ3dKYSxDRHZKYixVQzhJWSxDRDdJWixjQUFBLENBQ0EsZUFBQSxDQUNBLG1CQUFBLENBQ0EsY0FBQSxDQUNBLHlCQUFBLENBR0YsNkNBQ0UscUJDcUlZLENEcElaLGFBQUEsQ0FHRiw0Q0FDRSxXQUFBLENBQ0EsWUFBQSxDQUNBLGtCQUFBLENBQ0EsaUJBQUEsQ0FJSixzQkFDRSxlRXBDYyxDRnFDZCwyQkFBQSxDQUdGLHNCQUNFLGlCQUFBLENBQ0EsaUJBQUEsQ0FDQSxnQkFBQSxDQUdGLHNCQUNFLGlCQUFBLENBQ0EsZUFBQSxDQUNBLDJCQUFBLENBR0Ysc0JBQ0UsaUJBQUEsQ0FDQSxlQUFBLENBQ0EsV0FBQSxDQUdGLHNCQUNFLDBCQUFBLENBQ0EsaUJBQUEsQ0FHRixzQkFDRSxZQUFBLENBQ0EsZUFBQSxDQUNBLFlBQUEsQ0FDQSxzQkFBQSxDQUdGLHNCQUNFLFlBQUEsQ0FDQSw2QkFBQSxDQUVBLHNCQUNFLGNBQUEsQ0FFQSx5QkFDRSxnYUdzQ3VCLENIckN2QixlQUFBLENBQ0EsY0FBQSxDQUNBLGFDckZTLENEc0ZULGdCQUFBLENBQ0EsZUFBQSxDQUlKLHNCQUNFLGVBQUEsQ0FFQSxzQkFDRSxxQkFBQSxDQUNBLGFDMkZnQixDRHpGaEIsOEhBSUUsYUNxRmMsQ0RoRnBCLHNCQUNFLGlCQUFBLENBR0Ysc0JBQ0UsWUFBQSxDQUNBLDZCQUFBLENBR0Ysc0JBQ0UsWUFBQSxDQUNBLGlCQUFBLENBSUosc0JBQ0Usb0JBQUEsQ0FDQSx3QkN0R08sQ0R1R1AsVUNuSE0sQ0RvSE4saUJBQUEsQ0FDQSxpQkFBQSxDQUNBLGlCQUFBLENBQ0Esb0JBQUEsQ0FDQSxXQUFBLENBQ0EsZ0JBQUEsQ0FDQSxlQUFBLENBRUEsNEJBQ0Usd0JDT21CLENETm5CLFVDOUhJLENEK0hKLG9CQUFBLENBR0YsNEJBQ0UseUJBQUEsQ0FDQSxrQkFBQSxDQUNBLFVDcklJLENEc0lKLG9CQUFBLENBSUosc0JBQ0UsZ0JBQUEsQ0FHRixzQkFDRSxlQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgJ2NvbG9yLnNjc3MnO1xcbkBpbXBvcnQgJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnktc3R5bGVzL2ZvbnQnO1xcbkBpbXBvcnQgJ3N0eWxlLWNvbnN0YW50cyc7XFxuXFxuLnBhZ2VDb250YWluZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG4uY29udGVudCB7XFxuICBmbGV4LWdyb3c6IDE7XFxuICBwYWRkaW5nOiAyMHB4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG59XFxuXFxuLm5hdkNvbnRhaW5lciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmV1dHJhbF9kYXJrO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxuXFxuICBhLmxpbmtDb250YWluZXIge1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZXV0cmFsX2Rhcms3MDtcXG4gICAgY29sb3I6ICRuZXV0cmFsX3doaXRlO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIG1hcmdpbjogMTBweCA4cHggMCAwO1xcbiAgICBwYWRkaW5nOiAwIDEwcHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xcbiAgfVxcblxcbiAgYS5hY3RpdmVMaW5rQ29udGFpbmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG5ldXRyYWxfd2hpdGU7XFxuICAgIGNvbG9yOiAjMDA3Nzg1O1xcbiAgfVxcblxcbiAgLmxpbmsge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIH1cXG59XFxuXFxuLmRhc2hib2FyZFBhZ2Uge1xcbiAgbWF4LXdpZHRoOiAkY29udGVudC13aWR0aDtcXG4gIHBhZGRpbmc6IDEwcHggNjRweCA2NHB4IDY0cHg7XFxufVxcblxcbi50ZXh0IHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xcbn1cXG5cXG4uZW1wdHlDbGFzc3Jvb20ge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgbWF4LXdpZHRoOiA1MzhweDtcXG4gIG1hcmdpbjogMTA0cHggYXV0byA4MnB4IGF1dG87XFxufVxcblxcbi5lbXB0eUNsYXNzcm9vbVByb2dyZXNzIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIG1heC13aWR0aDogNTM4cHg7XFxuICBtYXJnaW46IGF1dG87XFxufVxcblxcbi5lbXB0eUNsYXNzcm9vbURpdiB7XFxuICBtYXJnaW46IDI0cHggNjRweCA4MnB4IDY0cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblxcbi5lbXB0eUNsYXNzcm9vbUltYWdlIHtcXG4gIGhlaWdodDogMjAwcHg7XFxuICBhbGlnbi1pdGVtczogZW5kO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG5cXG4uaGVhZGVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuXFxuICAmQ29udGFpbmVyIHtcXG4gICAgcGFkZGluZzogMCA2NHB4O1xcblxcbiAgICAmIGgxIHtcXG4gICAgICBmb250LWZhbWlseTogJGJhcmxvd1NlbWlDb25kZW5zZWQtbWVkaXVtO1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgZm9udC1zaXplOiAzNHB4O1xcbiAgICAgIGNvbG9yOiAkZGFya2VzdF9ncmF5O1xcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDE4cHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZMaW5rIHtcXG4gICAgbWFyZ2luLXRvcDogMTJweDtcXG5cXG4gICAgJkNoZXZyb24ge1xcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxuICAgICAgY29sb3I6ICRsaWdodF9zZWNvbmRhcnlfNTAwO1xcblxcbiAgICAgICY6aG92ZXIsXFxuICAgICAgOmFjdGl2ZSxcXG4gICAgICA6dmlzaXRlZCxcXG4gICAgICA6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICBjb2xvcjogJGxpZ2h0X3NlY29uZGFyeV81MDA7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAmQ3VycmljdWx1bSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIH1cXG5cXG4gICZSaWdodENvbHVtbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gIH1cXG5cXG4gICZCdXR0b25TZWN0aW9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xcbiAgfVxcbn1cXG5cXG4ubmF2TGluayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlO1xcbiAgY29sb3I6ICR3aGl0ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGhlaWdodDogYXV0bztcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG5cXG4gICY6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmRfc2Vjb25kYXJ5X2Rhcms7XFxuICAgIGNvbG9yOiAkd2hpdGU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIH1cXG5cXG4gICY6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiAkYnJhbmRfcHJpbWFyeV9kZWZhdWx0IHNvbGlkIDJweDtcXG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcXG4gICAgY29sb3I6ICR3aGl0ZTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgfVxcbn1cXG5cXG4udG9wUGFkZGluZyB7XFxuICBwYWRkaW5nLXRvcDogMjRweDtcXG59XFxuXFxuLnByb2dyZXNzSGVhZGVyVjEge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuXCIsXCIvLyBjb2xvcnMgZnJvbSBodHRwczovL3d3dy5kcm9wYm94LmNvbS9zL3ljaml3dDh2eGxtdjJpaC9Db2RlLm9yZ19zdHlsZXNoZWV0X3YyXzA5LjA1LjEzLnBkZlxcblxcbi8vIFBsZWFzZSBrZWVwIHRoaXMgZmlsZSBzaW1wbGU7IGl0IHNob3VsZCBvbmx5IGNvbnRhaW4gY29sb3IgZGVmaW5pdGlvbnNcXG4vLyAgIGFuZCBhbGlhc2VzLiAgVmFyaWFibGVzIGRlZmluZWQgaW4gdGhpcyBmaWxlIGFyZSBleHBvcnRlZCB0b1xcbi8vICAgYXBwcy9zcmMvdXRpbC9jb2xvci5qcyBkdXJpbmcgdGhlIGFwcHMgYnVpbGQgcHJvY2Vzcy5cXG5cXG4kYmxhY2s6ICMwMDA7XFxuJGJhY2tncm91bmRfYmxhY2s6ICMxMjE0MTY7XFxuJGRhcmtfZ3JheTogIzJEMzEzOTtcXG4kZGFya2VzdF9ncmF5OiAjMjkyRjM2O1xcbiRkYXJrX3NsYXRlX2dyYXk6ICMyODJjMzQ7XFxuJGRhcmtlc3Rfc2xhdGVfZ3JheTogIzI1MjkyZDtcXG4kZGFya19jaGFyY29hbDogIzRkNTc1ZjtcXG4kY2hhcmNvYWw6ICM1YjY3NzA7XFxuJGxpZ2h0X2dyYXk6ICM5NDljYTI7XFxuJGxpZ2h0ZXJfZ3JheTogI2M2Y2FjZDtcXG4kbGlnaHRlc3RfZ3JheTogI2U3ZThlYTtcXG4kYmFja2dyb3VuZF9ncmF5OiAjZjJmMmYyO1xcbiRkaW1ncmF5OiAjNjk2OTY5O1xcbiR3aGl0ZTogI2ZmZjtcXG4kZGVmYXVsdF9ibHVlOiAjMzY3MGIzO1xcblxcbiRkYXJrX3RlYWw6ICMwMDk0YTM7XFxuJHRlYWw6ICMwMDkzYTQ7XFxuJGFwcGxhYl9idXR0b25fdGVhbDogIzFhYmM5YztcXG4kbGlnaHRfdGVhbDogIzU5Y2FkMztcXG4kbGlnaHRpc2hfdGVhbDogIzgwZDZkZTtcXG4kbGlnaHRlcl90ZWFsOiAjYTZlM2U4O1xcbiRsaWdodGVzdF90ZWFsOiAjZDlmM2Y1O1xcbiRhaV9ydWJyaWNfY3lhbjogIzNjZmZmODtcXG5cXG4kcHVycGxlOiAjOGM1MmJhO1xcbiRsaWdodF9wdXJwbGU6ICNhNjliYzE7XFxuJGxpZ2h0ZXJfcHVycGxlOiAjY2ZjOWRlO1xcbiRsaWdodGVzdF9wdXJwbGU6ICNlYmU4ZjE7XFxuXFxuJGN5YW46ICMwMDk0Y2E7XFxuJGxpZ2h0X2N5YW46ICM1OWI5ZGM7XFxuJGxpZ2h0ZXJfY3lhbjogI2E2ZGFlZDtcXG4kbGlnaHRlc3RfY3lhbjogI2Q5ZWZmNztcXG4kYWxtb3N0X3doaXRlX2N5YW46ICNmNWZjZmY7XFxuXFxuJG9yYW5nZTogI2ZmYTQwMDtcXG4kbGlnaHRfb3JhbmdlOiAjZmZjNDU5O1xcbiRsaWdodGVyX29yYW5nZTogI2ZmZTBhNjtcXG4kbGlnaHRlc3Rfb3JhbmdlOiAjZmZmMmQ5O1xcbiRkYXJrX29yYW5nZTogI2ZmODYwMDtcXG5cXG4kZ3JlZW46ICNiOWJmMTU7XFxuJGxpZ2h0X2dyZWVuOiAjZDFkNTY3O1xcbiRsaWdodGVyX2dyZWVuOiAjZTdlOWFkO1xcbiRsaWdodGVzdF9ncmVlbjogI2Y1ZjVkYztcXG4kaGlnaGxpZ2h0X2dyZWVuOiAjOGFmYzliO1xcblxcbiR5ZWxsb3c6ICNmZmI4MWQ7XFxuJGxpZ2h0X3llbGxvdzogI2ZmZGI3NDtcXG4kbGlnaHRlcl95ZWxsb3c6ICNmZmViYjU7XFxuJGxpZ2h0ZXN0X3llbGxvdzogI2ZmZjdkZjtcXG5cXG4kZ29sZGVucm9kOiAjZGFhNTIwO1xcblxcbiRoZWFkZXJfdGV4dDogJHdoaXRlO1xcbiRia2duZF9jb2xvcjogJHRlYWw7XFxuJGluc2V0X2NvbG9yOiAkbGlnaHRlcl9ncmF5O1xcbiRkYXJrX2NvbG9yOiAkcHVycGxlO1xcbiRoZHJfY29sb3I6ICRwdXJwbGU7XFxuXFxuLy8gU29tZSBleHRyYSBjb2xvcnMuXFxuJHJlZDogI2MwMDtcXG4kbGlnaHRlc3RfcmVkOiAjZmNjO1xcbiRkYXJrX3JlZDogI2Q2MjkxMTtcXG4kcmVhbGdyZWVuOiAjMDA4MDAwO1xcbiRyZWFseWVsbG93OiAjZmYwO1xcbiRtdXN0YXJkeWVsbG93OiAjZWZjZDFjO1xcbiR0d2l0dGVyX2JsdWU6ICMwMGFjZWQ7XFxuJGZhY2Vib29rX2JsdWU6ICMzYjU5OTg7XFxuJGxpbmtlZGluX2JsdWU6ICMwMDc3QjU7XFxuJGRhcmtfYmx1ZTogIzAwNjQ3ZjtcXG4kYmxvY2tseV9mbHlvdXRfZ3JheTogI2RkZDtcXG4kZGVmYXVsdF90ZXh0OiAjMzMzO1xcbiRib3JkZXJfZ3JheTogI2JiYjtcXG4kYm9yZGVyX2xpZ2h0X2dyYXk6ICNkOGQ4ZDg7XFxuJHRhYmxlX2hlYWRlcjogI2VjZWNlYztcXG4kdGFibGVfbGlnaHRfcm93OiAjZmNmY2ZjO1xcbiR0YWJsZV9kYXJrX3JvdzogI2Y0ZjRmNDtcXG5cXG4vLyBQcm9ncmVzcyBjb2xvcnMuXFxuJGxldmVsX3N1Ym1pdHRlZDogJHB1cnBsZTtcXG4kbGV2ZWxfcGVyZmVjdDogcmdiKDE0LCAxOTAsIDE0KTtcXG4kbGV2ZWxfcGFzc2VkOiByZ2IoMTU5LCAyMTIsIDE1OSk7XFxuJGxldmVsX2F0dGVtcHRlZDogJHJlYWx5ZWxsb3c7XFxuJGxldmVsX25vdF90cmllZDogI2ZlZmVmZTtcXG4kbGV2ZWxfY3VycmVudDogJG9yYW5nZTtcXG4kbGV2ZWxfcmV2aWV3X3JlamVjdGVkOiAkcmVkO1xcbiRsZXZlbF9yZXZpZXdfYWNjZXB0ZWQ6IHJnYigxMSwgMTQyLCAxMSk7IC8vIFRPRE86ICRsZXZlbF9wYXNzZWQ7XFxuJGFzc2Vzc21lbnQ6ICRjeWFuO1xcbiR3b3Jrc3BhY2VfcnVubmluZ19iYWNrZ3JvdW5kOiAjZTVlNWU1O1xcblxcbi8vIEV4cGVyaW1lbnRhbCBTcHJpdGUgTGFiIHZhbGlkYXRpb24gY29sb3JzLlxcbiRkYXJrX3B1cnBsZTogIzY4MkE3NztcXG4kYnJpZ2h0X2dyZWVuOiAjMGViZTBlO1xcbiRuZW9uX3Bpbms6ICNlOTExOGY7XFxuXFxuLy8gTGlua3MgKHVzZWQgaW4gYXBwcykuXFxuJGxpbmtfY29sb3I6ICMwNTk2Y2U7XFxuXFxuLy8gU2hhZG93LlxcbiRzaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG5cXG4vLyBDb2xvcnMgdGhhdCBhcmUgdGFrZW4gZnJvbSBib290c3RyYXAsIGFuZCBub3QgbmVjZXNzYXJpbHkgcGFydCBvZiBvdXIgY29yZSB0aGVtZS5cXG4kYm9vdHN0cmFwX2J1dHRvbl9ibHVlOiAjMzM3YWI3O1xcbiRib290c3RyYXBfYnV0dG9uX3JlZDogI2Q5NTM0ZjtcXG4kYm9vdHN0cmFwX2Vycm9yX2JhY2tncm91bmQ6ICNmMmRlZGU7XFxuJGJvb3RzdHJhcF9lcnJvcl90ZXh0OiAjYjk0YTQ4O1xcbiRib290c3RyYXBfdjNfZXJyb3JfdGV4dDogI2E5NDQ0MjtcXG4kYm9vdHN0cmFwX2Vycm9yX2JvcmRlcjogI2ViY2NkMTtcXG4kYm9vdHN0cmFwX3dhcm5pbmdfYmFja2dyb3VuZDogI2ZjZjhlMztcXG4kYm9vdHN0cmFwX3dhcm5pbmdfdGV4dDogI2MwOTg1MztcXG4kYm9vdHN0cmFwX3dhcm5pbmdfYm9yZGVyOiAjZmFlYmNjO1xcbiRib290c3RyYXBfYm9yZGVyX2NvbG9yOiAjY2NjY2NjO1xcbiRib290c3RyYXBfc3VjY2Vzc19iYWNrZ3JvdW5kOiAjZGZmMGQ4O1xcbiRib290c3RyYXBfc3VjY2Vzc190ZXh0OiAjNDY4ODQ3O1xcbiRib290c3RyYXBfc3VjY2Vzc19ib3JkZXI6ICNkNmU5YzY7XFxuXFxuLy8gQ29sb3JzIHRha2VuIGZyb20gZHJvcGxldCwgbm90IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGRyb3BsZXRfbGlnaHRfZ3JlZW46ICNkM2U5NjU7XFxuJGRyb3BsZXRfYmx1ZTogIzY0YjVmNjtcXG4kZHJvcGxldF9icmlnaHRfYmx1ZTogIzE5YzNlMTtcXG4kZHJvcGxldF95ZWxsb3c6ICNmZmYxNzY7XFxuJGRyb3BsZXRfb3JhbmdlOiAjZmZiNzRkO1xcbiRkcm9wbGV0X3JlZDogI2Y3ODE4MztcXG4kZHJvcGxldF9jeWFuOiAjNGRkMGUxO1xcbiRkcm9wbGV0X3Bpbms6ICNmNTdhYzY7XFxuJGRyb3BsZXRfcHVycGxlOiAjYmI3N2M3O1xcbiRkcm9wbGV0X2dyZWVuOiAjNjhkOTk1O1xcbiRkcm9wbGV0X3doaXRlOiAkd2hpdGU7XFxuXFxuLy8gT2NlYW5zOiBkZWVwIGJsdWUgYmFja2dyb3VuZC5cXG4kb2NlYW5zX2RlZXBfYmx1ZTogcmdiKDIsIDAsIDI4KTtcXG5cXG4vLyBEYXJrIHRoZW1lIGJhY2tncm91bmQgKHVzZWQgYnkgZGVmYXVsdCBpbiBNdXNpYyBMYWIpXFxuJGRhcmtfYmxhY2s6ICMxMjEyMTI7XFxuXFxuLy8gPT09LS0tLT09PS0tLS09PT0tLS0tIFBoYXNlIDEgQ29sb3JzOiAtLS0tPT09LS0tLT09PS0tLS09PT1cXG4vLyBCcmFuZFxcbiRicmFuZF9wcmltYXJ5X2xpZ2h0OiAjRTBGOEY5O1xcbiRicmFuZF9wcmltYXJ5X2RlZmF1bHQ6ICMwMDlFQjA7XFxuJGJyYW5kX3ByaW1hcnlfZGFyazogIzAwNzc4NTtcXG5cXG4kYnJhbmRfc2Vjb25kYXJ5X2xpZ2h0OiAjRTBEMUVDO1xcbiRicmFuZF9zZWNvbmRhcnlfZGVmYXVsdDogIzhDNTJCQTtcXG4kYnJhbmRfc2Vjb25kYXJ5X2Rhcms6ICM2QzQ2OEE7XFxuXFxuJGJyYW5kX2FjY2VudF9kZWZhdWx0OiAjRUQ2MDYwO1xcblxcbiRicmFuZF90ZWFsXzU6ICNERkYyRjQ7XFxuXFxuLy9Qcm9kdWN0XFxuJHByb2R1Y3RfYWZmaXJtYXRpdmVfZGVmYXVsdDogIzNFQTMzRTtcXG5cXG4kcHJvZHVjdF9uZWdhdGl2ZV9saWdodDogI0ZERUJFOTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kZWZhdWx0OiAjRTUzMTFBO1xcbiRwcm9kdWN0X25lZ2F0aXZlX2Rhcms6ICNBQTI1MTM7XFxuXFxuJHByb2R1Y3RfY2F1dGlvbl9kZWZhdWx0OiAjRjlDQjI4O1xcblxcbiRwcm9kdWN0X2luZm9ybWF0aW9uX2RlZmF1bHQ6ICMwMDdBQ0M7XFxuXFxuLy8gTmV1dHJhbFxcbiRuZXV0cmFsX3doaXRlOiAjRkZGRkZGO1xcbiRuZXV0cmFsX2xpZ2h0OiAjRjdGOEZBO1xcbiRuZXV0cmFsX2dyYXkxMDogI0VBRUJFQjtcXG4kbmV1dHJhbF9kYXJrMTA6ICNFQUVDRUY7XFxuJG5ldXRyYWxfZGFyazIwOiAjRDFENEQ4O1xcbiRuZXV0cmFsX2RhcmszMDogI0JFQzJDNztcXG4kbmV1dHJhbF9kYXJrNDA6ICNBQkIwQjY7XFxuJG5ldXRyYWxfZGFyazUwOiAjOTg5RUE1O1xcbiRuZXV0cmFsX2Rhcms2MDogIzg1OEM5NDtcXG4kbmV1dHJhbF9kYXJrNzA6ICM3MjdBODM7XFxuJG5ldXRyYWxfZGFyazgwOiAjNUY2ODcyO1xcbiRuZXV0cmFsX2Rhcms5MDogIzRDNTY2MTtcXG4kbmV1dHJhbF9kYXJrOiAjMjkyRjM2O1xcblxcbi8vQnJhbmRzXFxuJGdvb2dsZV9icmFuZF9jb2xvcjogIzBGOUQ1ODtcXG4kbWljcm9zb2Z0X2JyYW5kX2NvbG9yOiAjRkZCOTAwO1xcbiRmYWNlYm9va19icmFuZF9jb2xvcjogIzNCNTk5ODtcXG4kY2xldmVyX2JyYW5kX2NvbG9yOiAjMTQ2NEZGO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBEZXNpZ24gc3lzdGVtIGNvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuXFxuJGxpZ2h0X3ByaW1hcnlfMTAwOiAjQkZFNEU4O1xcbiRsaWdodF9wcmltYXJ5XzUwMDogIzAwOTNBNDtcXG4kbGlnaHRfcHJpbWFyeV83MDA6ICMwMDc3ODU7XFxuXFxuJGxpZ2h0X3NlY29uZGFyeV8xMDA6ICNFMkQ0RUU7XFxuJGxpZ2h0X3NlY29uZGFyeV81MDA6ICM4QzUyQkE7XFxuJGxpZ2h0X3NlY29uZGFyeV83MDA6ICM2QzQ2OEE7XFxuXFxuJGxpZ2h0X2dyYXlfNTA6ICNGN0Y4RkE7XFxuJGxpZ2h0X2dyYXlfMTAwOiAjRUFFQ0VGO1xcbiRsaWdodF9ncmF5XzIwMDogI0QxRDREODtcXG4kbGlnaHRfZ3JheV8zMDA6ICNCRUMyQzc7XFxuJGxpZ2h0X2dyYXlfNDAwOiAjQUJCMEI2O1xcbiRsaWdodF9ncmF5XzUwMDogIzk4OUVBNTtcXG4kbGlnaHRfZ3JheV82MDA6ICM4NThDOTQ7XFxuJGxpZ2h0X2dyYXlfNzAwOiAjNzI3QTgzO1xcbiRsaWdodF9ncmF5XzgwMDogIzVGNjg3MjtcXG4kbGlnaHRfZ3JheV85MDA6ICM0QzU2NjE7XFxuJGxpZ2h0X2dyYXlfOTUwOiAjMzk0NDUwO1xcblxcbiRsaWdodF9hZmZpcm1hdGl2ZV8xMDA6ICNFMkYxRTI7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzUwMDogIzNFQTMzRTtcXG4kbGlnaHRfYWZmaXJtYXRpdmVfNzAwOiAjMkQ3NDJEO1xcblxcbiRsaWdodF9uZWdhdGl2ZV8xMDA6ICNGQkUwREQ7XFxuJGxpZ2h0X25lZ2F0aXZlXzUwMDogI0U1MzExQTtcXG4kbGlnaHRfbmVnYXRpdmVfNzAwOiAjQjI0OTQ5O1xcblxcbiRsaWdodF9jYXV0aW9uXzEwMDogI0ZFRjdERjtcXG4kbGlnaHRfY2F1dGlvbl81MDA6ICNGOUNCMjg7XFxuJGxpZ2h0X2NhdXRpb25fNzAwOiAjQzdBMjIwO1xcblxcbiRsaWdodF9hY2NlbnRfMTAwOiAjRkFEN0Q3O1xcbiRsaWdodF9hY2NlbnRfNTAwOiAjRUQ2MDYwO1xcbiRsaWdodF9hY2NlbnRfNzAwOiAjRDg0QzRDO1xcblxcbiRsaWdodF9hcXVhXzEwMDogI0NFRkZGRDtcXG4kbGlnaHRfYXF1YV81MDA6ICMzQ0ZGRjg7XFxuJGxpZ2h0X2FxdWFfNzAwOiAjMzBDQ0M2O1xcblxcbiRsaWdodF9vcmFuZ2VfMTAwOiAjRkZFRENDO1xcbiRsaWdodF9vcmFuZ2VfNTAwOiAjRkZBNDAwO1xcbiRsaWdodF9vcmFuZ2VfNzAwOiAjQ0M4MzAwO1xcblxcbiRsaWdodF9pbmZvXzEwMDogI0RDRUZGQjtcXG4kbGlnaHRfaW5mb181MDA6ICMxODkyRTM7XFxuJGxpZ2h0X2luZm9fNzAwOiAjMTM3NUI2O1xcblxcbiRsaWdodF93aGl0ZTogI0ZGRkZGRjtcXG5cXG4kbGlnaHRfYmxhY2s6ICMyOTJGMzY7XFxuXFxuJGxpZ2h0X2JsYWNrX29wYWNpdHlfOTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC45MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktODA6IHJnYmEoNDEsIDQ3LCA1NCwgMC44MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNzA6IHJnYmEoNDEsIDQ3LCA1NCwgMC43MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNjA6IHJnYmEoNDEsIDQ3LCA1NCwgMC42MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC41MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNDA6IHJnYmEoNDEsIDQ3LCA1NCwgMC40MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMzA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4zMCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMjA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4yMCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4xMCk7XFxuXCIsXCIvLyBDb21tb24gc3R5bGVzIGFuZCBtZWFzdXJlcyBhY2Nlc3NpYmxlIGZyb20gYWxsIHN0eWxlc2hlZXRzXFxuXFxuLy8gSGVpZ2h0IG9mIHdvcmtzcGFjZSBoZWFkZXJzIChhYm92ZSBhY3R1YWwgYmxvY2tseS9kcm9wbGV0IHNwYWNlLCBiZW5lYXRoXFxuLy8gc2l0ZSBoZWFkZXIpXFxuJHdvcmtzcGFjZS1oZWFkZXJzLWhlaWdodDogMzBweDtcXG5cXG4vLyBXaWR0aCBvZiBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCByZXNpemUgYmFyc1xcbiRyZXNpemUtYmFyLXdpZHRoOiAxM3B4O1xcblxcbi8vIE9wYWNpdHkgb2YgZWxlbWVudHMgdGhhdCBhcmUgZHJhZ2dlZCBvdXQgdG8gYmUgZGVsZXRlZFxcbiRkZWxldGUtb3BhY2l0eTogMC41O1xcblxcbi8vIFdpZHRoIG9mIHBlZ2FzdXMgY29udGVudCBhcyBvZiAyMDE3IHJlZGVzaWduXFxuJGNvbnRlbnQtd2lkdGg6IDk3MHB4O1xcblwiLFwiLy8gQ29tbW9uIHNpdGUtd2lkZSBmb250cywgcHV0IGhlcmUgZm9yIGVhc3kgYWNjZXNzIGZyb20gYWxsIHNjc3MgZmlsZXNcXG5cXG4vLyBQbGVhc2Ugbm90ZSAoISk6IHVzZSBvbmx5IHNpbmdsZSBxdW90ZXMgKCcgJykgZm9yIHN0cmluZ3MgKCEpIHRvIGFsbG93IG91ciBjdXN0b20gY29udmVydGVyIHRvIHdvcmsgcHJvcGVybHkuXFxuLy8gVGhpcyBmaWxlIGlzIGJlaW5nIHRyYW5zcGlsZWQgdG8ganMgb2JqZWN0Llxcbi8vIChTbyBpdCBjYW4gYmUgdXNlZCBpbiBqc3gvdHN4IGZpbGVzIGZvciBpbmxpbmUgc3R5bGVzLiBUaGlzIGlzIG1hZGUgbW9zdGx5IGZvciBsZWdhY3kuXFxuLy8gVHJ5IHRvIGF2b2lkIHVzZSBvZiBpbmxpbmUgc3R5bGVzIGlmIHlvdSdyZSBjcmVhdGluZyBuZXcgY29tcG9uZW50KS5cXG4vLyBLZWVwaW5nIHRoYXQgaW4gbWluZCAtXFxuXFxuLyogc3R5bGVsaW50LWRpc2FibGUgaW1wb3J0LW5vdGF0aW9uICovXFxuXFxuJGZpZ3RyZWUtZm9udDogJ0ZpZ3RyZWUnO1xcbiRub3RvLXNhbnMtZm9udHM6ICdOb3RvIFNhbnMnLCAnTm90byBTYW5zIE1hdGgnLCAnTm90byBTYW5zIEFyYWJpYycsXFxuICAnTm90byBTYW5zIEFybWVuaWFuJywgJ05vdG8gU2FucyBCZW5nYWxpJywgJ05vdG8gU2FucyBTQycsICdOb3RvIFNhbnMgVEMnLFxcbiAgJ05vdG8gU2FucyBEZXZhbmFnYXJpJywgJ05vdG8gU2FucyBHZW9yZ2lhbicsICdOb3RvIFNhbnMgSGVicmV3JyxcXG4gICdOb3RvIFNhbnMgSlAnLCAnTm90byBTYW5zIEthbm5hZGEnLCAnTm90byBTYW5zIEtobWVyJywgJ05vdG8gU2FucyBLUicsXFxuICAnTm90byBTYW5zIE15YW5tYXInLCAnTm90byBTYW5zIFNpbmhhbGEnLCAnTm90byBTYW5zIFRhbWlsJyxcXG4gICdOb3RvIFNhbnMgVGVsdWd1JywgJ05vdG8gU2FucyBUaGFpJywgJ05vdG8gU2FucyBUaGFhbmEnO1xcbiRtYWluLWZvbnQ6ICRmaWd0cmVlLWZvbnQsICRub3RvLXNhbnMtZm9udHMsIHNhbnMtc2VyaWY7XFxuJHRoaW4tZm9udC13ZWlnaHQ6IDEwMDtcXG4kZXh0cmEtbGlnaHQtZm9udC13ZWlnaHQ6IDIwMDtcXG4kbGlnaHQtZm9udC13ZWlnaHQ6IDMwMDtcXG4kcmVndWxhci1mb250LXdlaWdodDogNDAwO1xcbiRtZWRpdW0tZm9udC13ZWlnaHQ6IDUwMDtcXG4kc2VtaS1ib2xkLWZvbnQtd2VpZ2h0OiA2MDA7XFxuJGJvbGQtZm9udC13ZWlnaHQ6IDcwMDtcXG4kZXh0cmEtYm9sZC1mb250LXdlaWdodDogODAwO1xcbiRibGFjay1mb250LXdlaWdodDogOTAwO1xcblxcbkBtaXhpbiBtYWluLWZvbnQtdGhpbiB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkdGhpbi1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC10aGluLWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtdGhpbjtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1leHRyYS1saWdodCB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkZXh0cmEtbGlnaHQtZm9udC13ZWlnaHQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtZXh0cmEtbGlnaHQtaXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1leHRyYS1saWdodDtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1saWdodCB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkbGlnaHQtZm9udC13ZWlnaHQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtbGlnaHQtaXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1saWdodDtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1yZWd1bGFyIHtcXG4gIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xcbiAgZm9udC13ZWlnaHQ6ICRyZWd1bGFyLWZvbnQtd2VpZ2h0O1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LXJlZ3VsYXItaXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1yZWd1bGFyO1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LW1lZGl1bSB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLWZvbnQtd2VpZ2h0O1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LW1lZGl1bS1pdGFsaWMge1xcbiAgQGluY2x1ZGUgbWFpbi1mb250LW1lZGl1bTtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1zZW1pLWJvbGQge1xcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XFxuICBmb250LXdlaWdodDogJHNlbWktYm9sZC1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1zZW1pLWJvbGQtaXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1zZW1pLWJvbGQ7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtYm9sZCB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkYm9sZC1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1ib2xkLWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtYm9sZDtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1leHRyYS1ib2xkIHtcXG4gIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xcbiAgZm9udC13ZWlnaHQ6ICRleHRyYS1ib2xkLWZvbnQtd2VpZ2h0O1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LWV4dHJhLWJvbGQtaXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1leHRyYS1ib2xkO1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LWJsYWNrIHtcXG4gIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xcbiAgZm9udC13ZWlnaHQ6ICRibGFjay1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1ibGFjay1pdGFsaWMge1xcbiAgQGluY2x1ZGUgbWFpbi1mb250LWJsYWNrO1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5cXG4kYmFybG93U2VtaUNvbmRlbnNlZC1zZW1pYm9sZDogJ0JhcmxvdyBTZW1pIENvbmRlbnNlZCBTZW1pYm9sZCcsXFxuICAkbm90by1zYW5zLWZvbnRzLCBzYW5zLXNlcmlmO1xcbiRiYXJsb3dTZW1pQ29uZGVuc2VkLW1lZGl1bTogJ0JhcmxvdyBTZW1pIENvbmRlbnNlZCBNZWRpdW0nLCAkbm90by1zYW5zLWZvbnRzLFxcbiAgc2Fucy1zZXJpZjtcXG5cXG4vKlxcbiAgIEZvbnQgQXdlc29tZSBTMyBCdWNrZXQgVVJMc1xcbiAgIEN1cnJlbnQgdmVyc2lvbjogNi42LjBcXG4gICBJZiB5b3UgYXJlIGNoYW5naW5nIHRoZSBsb2NhdGlvbiBvZiB0aGVzZSBmaWxlcyxcXG4gICBzZWUgdGhlIHJlYWRtZSBpbiB0aGlzIGRpcmVjdG9yeSBmb3IgbW9yZSBkZXRhaWwgb24gbWFudWFsIHN0ZXBzIHRvIHRha2Ugd2hlbiB1cGxvYWRpbmcgbmV3IGZpbGVzLlxcbiAqL1xcbiRmb250LWF3ZXNvbWUtY29yZS11cmw6ICdodHRwczovL2RzY28uY29kZS5vcmcvYXNzZXRzL2ZvbnQtYXdlc29tZS1wcm8vMTcyODQyMTM1NC9jc3MvZm9udGF3ZXNvbWUubWluLmNzcyc7XFxuJGZvbnQtYXdlc29tZS1icmFuZHMtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL2JyYW5kcy5taW4uY3NzJztcXG4kZm9udC1hd2Vzb21lLXNvbGlkLXVybDogJ2h0dHBzOi8vZHNjby5jb2RlLm9yZy9hc3NldHMvZm9udC1hd2Vzb21lLXByby8xNzI4NDIxMzU0L2Nzcy9zb2xpZC5taW4uY3NzJztcXG4kZm9udC1hd2Vzb21lLXJlZ3VsYXItdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL3JlZ3VsYXIubWluLmNzcyc7XFxuJGZvbnQtYXdlc29tZS12NC1mb250cy11cmw6ICdodHRwczovL2RzY28uY29kZS5vcmcvYXNzZXRzL2ZvbnQtYXdlc29tZS1wcm8vMTcyODQyMTM1NC9jc3MvdjQtZm9udC1mYWNlLm1pbi5jc3MnO1xcbiRmb250LWF3ZXNvbWUtdjQtc2hpbXMtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL3Y0LXNoaW1zLm1pbi5jc3MnO1xcbiRmb250LWF3ZXNvbWUtdjQtc2hpbXMtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL3Y0LXNoaW1zLm1pbi5jc3MnO1xcbiRmb250LWF3ZXNvbWUtZHVvdG9uZS11cmw6ICdodHRwczovL2RzY28uY29kZS5vcmcvYXNzZXRzL2ZvbnQtYXdlc29tZS1wcm8vMTcyODQyMTM1NC9jc3MvZHVvdG9uZS5taW4uY3NzJztcXG4kZm9udC1hd2Vzb21lLWN1c3RvbS1pY29ucy11cmw6ICdodHRwczovL2RzY28uY29kZS5vcmcvYXNzZXRzL2ZvbnQtYXdlc29tZS1wcm8vMTcyODQyMTM1NC9jc3MvY3VzdG9tLWljb25zLm1pbi5jc3MnO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ubG9jYWxzID0ge1xuXHRcInBhZ2VDb250YWluZXJcIjogXCJyMTQ4R0w5cmN0TWk4aWMyUnh6YVwiLFxuXHRcImNvbnRlbnRcIjogXCJ2amNxY3NDNVVIbkh1NWZOZENYTlwiLFxuXHRcIm5hdkNvbnRhaW5lclwiOiBcIl91Zk1pUlQyckltQ2xaSFRIWHNZXCIsXG5cdFwibGlua0NvbnRhaW5lclwiOiBcIks0Yk9jYkh5bnlONkRNXzRYeHdSXCIsXG5cdFwiYWN0aXZlTGlua0NvbnRhaW5lclwiOiBcImlGRkZsVW53dDd3amt1MUFIOWw4XCIsXG5cdFwibGlua1wiOiBcIl9EUXpRdVpNcVRRNEFhRGo2aWVBXCIsXG5cdFwiZGFzaGJvYXJkUGFnZVwiOiBcIlhoaUcxTEhTRkJwRlRZSUZwRURPXCIsXG5cdFwidGV4dFwiOiBcImRaMWNOMjFmdHF3ZHpSTXhES1dKXCIsXG5cdFwiZW1wdHlDbGFzc3Jvb21cIjogXCJSUkttOEhPYnFndmdMSURSbnJuSFwiLFxuXHRcImVtcHR5Q2xhc3Nyb29tUHJvZ3Jlc3NcIjogXCJMMnM3U3Jmc3RidU5QSlAyUjVFZ1wiLFxuXHRcImVtcHR5Q2xhc3Nyb29tRGl2XCI6IFwiTUF3R19yaFJLUGcyUXIzQXE0OF9cIixcblx0XCJlbXB0eUNsYXNzcm9vbUltYWdlXCI6IFwiVEIyMzFGQ3VRemk2MWV3VlAxM3FcIixcblx0XCJoZWFkZXJcIjogXCJPZlRHc1BnaHM2azlpc3FUYUJOV1wiLFxuXHRcImhlYWRlckNvbnRhaW5lclwiOiBcImQwS2RFdjhybjduYW9mQjlKd3FZXCIsXG5cdFwiaGVhZGVyTGlua1wiOiBcIm43cnBkaG5HNm1JWmZNNzBuTmpVXCIsXG5cdFwiaGVhZGVyTGlua0NoZXZyb25cIjogXCJsOGdZR0xBSDVmWVN5YXVhR0Q2alwiLFxuXHRcImhlYWRlckN1cnJpY3VsdW1cIjogXCJfVmtjaWF3VzZpOGFGMktycWVrdlwiLFxuXHRcImhlYWRlclJpZ2h0Q29sdW1uXCI6IFwicjVUV2tLeUNwS0d6QjdsUjJPUWlcIixcblx0XCJoZWFkZXJCdXR0b25TZWN0aW9uXCI6IFwibDFaY01uODZXVkV0TWZNdHd6QjhcIixcblx0XCJuYXZMaW5rXCI6IFwiR3N0UEhoaV9wWE1qV3E2T2dUd2JcIixcblx0XCJ0b3BQYWRkaW5nXCI6IFwibk9RcmVuZHlYVW8wSzlyTUtnNzRcIixcblx0XCJwcm9ncmVzc0hlYWRlclYxXCI6IFwiUG9Zamc2T2dfZkVSZGVBdDI2b0dcIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiZnVuY3Rpb24gd2VicGFja0VtcHR5Q29udGV4dChyZXEpIHtcblx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRlLmNvZGUgPSAnTU9EVUxFX05PVF9GT1VORCc7XG5cdHRocm93IGU7XG59XG53ZWJwYWNrRW1wdHlDb250ZXh0LmtleXMgPSAoKSA9PiAoW10pO1xud2VicGFja0VtcHR5Q29udGV4dC5yZXNvbHZlID0gd2VicGFja0VtcHR5Q29udGV4dDtcbndlYnBhY2tFbXB0eUNvbnRleHQuaWQgPSBcIi4vbm9kZV9tb2R1bGVzL25pc2Ugc3luYyByZWN1cnNpdmVcIjtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0VtcHR5Q29udGV4dDsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vRmVlZGJhY2tCYW5uZXIuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vRmVlZGJhY2tCYW5uZXIuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi9jb250ZW50LWNvbnRhaW5lci5tb2R1bGUuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsLm1vZHVsZS5zY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi9hZ2UtZ2F0ZWQtc2VjdGlvbnMtbW9kYWwubW9kdWxlLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vYm9yZGVyZWRDYWxsVG9BY3Rpb24ubW9kdWxlLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL2JvcmRlcmVkQ2FsbFRvQWN0aW9uLm1vZHVsZS5zY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL3RlYWNoZXItZGFzaGJvYXJkLm1vZHVsZS5zY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7RGlzcGF0Y2h9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtnZXRBdXRoZW50aWNpdHlUb2tlbn0gZnJvbSAnQGNkby9hcHBzL3V0aWwvQXV0aGVudGljaXR5VG9rZW5TdG9yZSc7XG5cbmNvbnN0IExUSV9GRUVEQkFDS19VUkwgPSAnL2x0aS92MS9mZWVkYmFjayc7XG5jb25zdCBMVElfRkVFREJBQ0tfRkVUQ0hfUkVRVUVTVCA9ICdsdGkvZmVlZGJhY2svZmV0Y2hSZXF1ZXN0JztcbmNvbnN0IExUSV9GRUVEQkFDS19GRVRDSF9TVUNDRVNTID0gJ2x0aS9mZWVkYmFjay9mZXRjaFN1Y2Nlc3MnO1xuY29uc3QgTFRJX0ZFRURCQUNLX0ZFVENIX0ZBSUxVUkUgPSAnbHRpL2ZlZWRiYWNrL2ZldGNoRmFpbHVyZSc7XG5jb25zdCBMVElfRkVFREJBQ0tfQ1JFQVRFX1JFUVVFU1QgPSAnbHRpL2ZlZWRiYWNrL2NyZWF0ZVJlcXVlc3QnO1xuY29uc3QgTFRJX0ZFRURCQUNLX0NSRUFURV9TVUNDRVNTID0gJ2x0aS9mZWVkYmFjay9jcmVhdGVTdWNjZXNzJztcbmNvbnN0IExUSV9GRUVEQkFDS19DUkVBVEVfRkFJTFVSRSA9ICdsdGkvZmVlZGJhY2svY3JlYXRlRmFpbHVyZSc7XG5cbnR5cGUgTHRpRmVlZGJhY2tBY3Rpb24gPVxuICB8IHt0eXBlOiB0eXBlb2YgTFRJX0ZFRURCQUNLX0ZFVENIX1JFUVVFU1R9XG4gIHwge3R5cGU6IHR5cGVvZiBMVElfRkVFREJBQ0tfRkVUQ0hfU1VDQ0VTUzsgbHRpRmVlZGJhY2s6IEx0aUZlZWRiYWNrIHwgbnVsbH1cbiAgfCB7dHlwZTogdHlwZW9mIExUSV9GRUVEQkFDS19GRVRDSF9GQUlMVVJFOyBlcnJvcjogc3RyaW5nfVxuICB8IHt0eXBlOiB0eXBlb2YgTFRJX0ZFRURCQUNLX0NSRUFURV9SRVFVRVNUfVxuICB8IHt0eXBlOiB0eXBlb2YgTFRJX0ZFRURCQUNLX0NSRUFURV9TVUNDRVNTOyBsdGlGZWVkYmFjazogTHRpRmVlZGJhY2t9XG4gIHwge3R5cGU6IHR5cGVvZiBMVElfRkVFREJBQ0tfQ1JFQVRFX0ZBSUxVUkU7IGVycm9yOiBzdHJpbmd9O1xuXG5pbnRlcmZhY2UgTHRpRmVlZGJhY2sge1xuICBpZD86IG51bWJlcjtcbiAgc2F0aXNmaWVkOiBib29sZWFuO1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIGVhcmx5X2FjY2Vzcz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBMdGlGZWVkYmFja1N0YXRlIHtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBsdGlGZWVkYmFjaz86IEx0aUZlZWRiYWNrIHwgbnVsbDtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsdGlGZWVkYmFja1JlZHVjZXIoXG4gIHN0YXRlOiBMdGlGZWVkYmFja1N0YXRlLFxuICBhY3Rpb246IEx0aUZlZWRiYWNrQWN0aW9uXG4pOiBMdGlGZWVkYmFja1N0YXRlIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgTFRJX0ZFRURCQUNLX0ZFVENIX1JFUVVFU1Q6XG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBpc0xvYWRpbmc6IHRydWV9O1xuICAgIGNhc2UgTFRJX0ZFRURCQUNLX0ZFVENIX1NVQ0NFU1M6XG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBpc0xvYWRpbmc6IGZhbHNlLCBsdGlGZWVkYmFjazogYWN0aW9uLmx0aUZlZWRiYWNrfTtcbiAgICBjYXNlIExUSV9GRUVEQkFDS19GRVRDSF9GQUlMVVJFOlxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiBmYWxzZSwgZXJyb3I6IGFjdGlvbi5lcnJvcn07XG4gICAgY2FzZSBMVElfRkVFREJBQ0tfQ1JFQVRFX1JFUVVFU1Q6XG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBpc0xvYWRpbmc6IHRydWV9O1xuICAgIGNhc2UgTFRJX0ZFRURCQUNLX0NSRUFURV9TVUNDRVNTOlxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiBmYWxzZSwgbHRpRmVlZGJhY2s6IGFjdGlvbi5sdGlGZWVkYmFja307XG4gICAgY2FzZSBMVElfRkVFREJBQ0tfQ1JFQVRFX0ZBSUxVUkU6XG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBpc0xvYWRpbmc6IGZhbHNlLCBlcnJvcjogYWN0aW9uLmVycm9yfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBmZXRjaEx0aUZlZWRiYWNrID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxMdGlGZWVkYmFja0FjdGlvbj4pID0+IHtcbiAgZGlzcGF0Y2goe3R5cGU6IExUSV9GRUVEQkFDS19GRVRDSF9SRVFVRVNUfSk7XG5cbiAgZmV0Y2goTFRJX0ZFRURCQUNLX1VSTCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB9LFxuICB9KVxuICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIGZlZWRiYWNrJyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgIH0pXG4gICAgLnRoZW4obHRpRmVlZGJhY2sgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBMVElfRkVFREJBQ0tfRkVUQ0hfU1VDQ0VTUyxcbiAgICAgICAgbHRpRmVlZGJhY2ssXG4gICAgICB9KTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IExUSV9GRUVEQkFDS19GRVRDSF9GQUlMVVJFLFxuICAgICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQW4gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTHRpRmVlZGJhY2sgPSBhc3luYyAoXG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxMdGlGZWVkYmFja0FjdGlvbj4sXG4gIGx0aUZlZWRiYWNrOiBMdGlGZWVkYmFja1xuKSA9PiB7XG4gIGRpc3BhdGNoKHt0eXBlOiBMVElfRkVFREJBQ0tfQ1JFQVRFX1JFUVVFU1R9KTtcblxuICBmZXRjaChMVElfRkVFREJBQ0tfVVJMLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdYLUNTUkYtVG9rZW4nOiBhd2FpdCBnZXRBdXRoZW50aWNpdHlUb2tlbigpLFxuICAgIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe2x0aV9mZWVkYmFjazogbHRpRmVlZGJhY2t9KSxcbiAgfSlcbiAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgZmVlZGJhY2snKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfSlcbiAgICAudGhlbihsdGlGZWVkYmFjayA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IExUSV9GRUVEQkFDS19DUkVBVEVfU1VDQ0VTUyxcbiAgICAgICAgbHRpRmVlZGJhY2ssXG4gICAgICB9KTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IExUSV9GRUVEQkFDS19DUkVBVEVfRkFJTFVSRSxcbiAgICAgICAgZXJyb3I6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0FuIGVycm9yIG9jY3VycmVkJyxcbiAgICAgIH0pO1xuICAgIH0pO1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0FsZXJ0LCBGYWRlfSBmcm9tICdyZWFjdC1ib290c3RyYXAnOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuXG5pbXBvcnQgRm9udEF3ZXNvbWUgZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvRm9udEF3ZXNvbWUnO1xuXG5pbXBvcnQgJy4vRmVlZGJhY2tCYW5uZXIuc2Nzcyc7XG5cbmV4cG9ydCBjb25zdCBCQU5ORVJfU1RBVFVTID0gT2JqZWN0LmZyZWV6ZSh7XG4gIC8vIFRoZSBpbml0aWFsIHN0YXR1cyBvZiB0aGUgYmFubmVyLiBJdCBtZWFucyB0aGF0IHRoZSBzdGF0dXMgaGFzIG5vdCBiZWVuIHNldCB5ZXQuXG4gIFVOU0VUOiAnJyxcbiAgLy8gVGhlIHN0YXR1cyB3aGVuIHRoZSBiYW5uZXIgaXMgbm90IGF2YWlsYWJsZS4gVGhpcyBpcyB0eXBpY2FsbHkgd2hlbiB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgZmVhdHVyZS5cbiAgLy8gZS5nLiB0aGUgdGVhY2hlciBpcyBub3QgYW4gTFRJIHRlYWNoZXIuXG4gIFVOQVZBSUxBQkxFOiAndW5hdmFpbGFibGUnLFxuICAvLyBUaGUgc3RhdHVzIHdoZW4gdGhlIGJhbm5lciBpcyBkaXNwbGF5ZWQgYnV0IHRoZSB1c2VyIGhhcyBub3QgeWV0IHByb3ZpZGVkIGZlZWRiYWNrLlxuICBVTkFOU1dFUkVEOiAndW5hbnN3ZXJlZCcsXG4gIC8vIFRoZSBzdGF0dXMgd2hlbiB0aGUgdXNlciBoYXMgcHJvdmlkZWQgZmVlZGJhY2suXG4gIEFOU1dFUkVEOiAnYW5zd2VyZWQnLFxuICAvLyBUaGUgc3RhdHVzIHdoZW4gdGhlIHVzZXIgaGFzIHByZXZpb3VzbHkgc3VibWl0dGVkIGZlZWRiYWNrIGFuZCB0aGUgYmFubmVyIGlzIG5vdCBzaG93bi5cbiAgUFJFVklPVVNMWV9BTlNXRVJFRDogJ3ByZXZpb3VzbHlfYW5zd2VyZWQnLFxuICAvLyBUaGUgc3RhdHVzIHdoZW4gdGhlIGJhbm5lciBoYXMgYmVlbiBjbG9zZWQgYnkgdGhlIHVzZXIuXG4gIENMT1NFRDogJ2Nsb3NlZCcsXG59KTtcblxuaW50ZXJmYWNlIEZlZWRiYWNrQmFubmVyUHJvcHMge1xuICBhbGVydEtleTogc3RyaW5nO1xuICBhbnN3ZXJTdGF0dXM6IHN0cmluZztcbiAgYW5zd2VyOiAoc2F0aXNmaWVkOiBib29sZWFuKSA9PiB2b2lkO1xuICBjbG9zZTogKCkgPT4gdm9pZDtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBjbG9zZUxhYmVsOiBzdHJpbmc7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIHBvc2l0aXZlQW5zd2VyOiBzdHJpbmc7XG4gIG5lZ2F0aXZlQW5zd2VyOiBzdHJpbmc7XG4gIHNoYXJlTW9yZTogc3RyaW5nO1xuICBzaGFyZU1vcmVMaW5rOiBzdHJpbmc7XG4gIHNoYXJlTW9yZUxpbmtUZXh0OiBzdHJpbmc7XG59XG5cbmNvbnN0IEZlZWRiYWNrQmFubmVyOiBSZWFjdC5GQzxGZWVkYmFja0Jhbm5lclByb3BzPiA9ICh7XG4gIGFsZXJ0S2V5LFxuICBhbnN3ZXJTdGF0dXMsXG4gIGFuc3dlcixcbiAgY2xvc2UsXG4gIGlzTG9hZGluZyxcbiAgY2xvc2VMYWJlbCxcbiAgcXVlc3Rpb24sXG4gIHBvc2l0aXZlQW5zd2VyLFxuICBuZWdhdGl2ZUFuc3dlcixcbiAgc2hhcmVNb3JlLFxuICBzaGFyZU1vcmVMaW5rLFxuICBzaGFyZU1vcmVMaW5rVGV4dCxcbn0pID0+IHtcbiAgY29uc3QgaXNCYW5uZXJWaXNpYmxlID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgKFtCQU5ORVJfU1RBVFVTLlVOQU5TV0VSRUQsIEJBTk5FUl9TVEFUVVMuQU5TV0VSRURdIGFzIHN0cmluZ1tdKS5pbmNsdWRlcyhcbiAgICAgICAgYW5zd2VyU3RhdHVzXG4gICAgICApLFxuICAgIFthbnN3ZXJTdGF0dXNdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmFkZSBpbj17aXNCYW5uZXJWaXNpYmxlfSB1bm1vdW50T25FeGl0PXt0cnVlfT5cbiAgICAgIDxBbGVydFxuICAgICAgICBrZXk9e2FsZXJ0S2V5fVxuICAgICAgICBic1N0eWxlPVwiaW5mb1wiXG4gICAgICAgIGNsYXNzTmFtZT17J2ZlZWRiYWNrLWJhbm5lcid9XG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImZlZWRiYWNrLWJhbm5lci10aXRsZVwiXG4gICAgICAgIGNsb3NlTGFiZWw9e2Nsb3NlTGFiZWx9XG4gICAgICAgIG9uRGlzbWlzcz17YW5zd2VyU3RhdHVzID09PSBCQU5ORVJfU1RBVFVTLkFOU1dFUkVEID8gY2xvc2UgOiB1bmRlZmluZWR9XG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZlZWRiYWNrLWJhbm5lci1ncmVldGluZ1wiPlxuICAgICAgICAgIDxGb250QXdlc29tZVxuICAgICAgICAgICAgaWNvbj1cImhhbmQtd2F2ZVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmYS1md1wiXG4gICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8RmFkZSBpbj17IWlzTG9hZGluZ30+XG4gICAgICAgICAge2Fuc3dlclN0YXR1cyA9PT0gQkFOTkVSX1NUQVRVUy5VTkFOU1dFUkVEID8gKFxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgaWQ9XCJmZWVkYmFjay1iYW5uZXItdGl0bGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZlZWRiYWNrLXRpdGxlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3F1ZXN0aW9ufVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmVlZGJhY2tcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtwb3NpdGl2ZUFuc3dlcn1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFuc3dlcih0cnVlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWVcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInRodW1icy1vLXVwXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmEtZndcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICB0aXRsZT17bmVnYXRpdmVBbnN3ZXJ9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhbnN3ZXIoZmFsc2UpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxGb250QXdlc29tZVxuICAgICAgICAgICAgICAgICAgICBpY29uPVwidGh1bWJzLW8tZG93blwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZhLWZ3XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzaGFyZS1tb3JlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGlkPVwiZmVlZGJhY2stYmFubmVyLXRpdGxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3NoYXJlTW9yZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBpZD1cImZlZWRiYWNrLWJhbm5lci1zaGFyZS1tb3JlLWxpbmtcIlxuICAgICAgICAgICAgICAgIGhyZWY9e3NoYXJlTW9yZUxpbmt9XG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtzaGFyZU1vcmVMaW5rVGV4dH1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRmFkZT5cbiAgICAgIDwvQWxlcnQ+XG4gICAgPC9GYWRlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRmVlZGJhY2tCYW5uZXI7XG4iLCJpbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZVNlbGVjdG9yfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7XG4gIGx0aUZlZWRiYWNrUmVkdWNlcixcbiAgZmV0Y2hMdGlGZWVkYmFjayxcbiAgY3JlYXRlTHRpRmVlZGJhY2ssXG59IGZyb20gJ0BjZG8vYXBwcy9yZWR1eC9sdGkvbHRpRmVlZGJhY2tSZWR1Y2VyJztcbmltcG9ydCB7Um9vdFN0YXRlfSBmcm9tICdAY2RvL2FwcHMvdHlwZXMvcmVkdXgnO1xuaW1wb3J0IHt0cnlTZXRMb2NhbFN0b3JhZ2UsIHRyeUdldExvY2FsU3RvcmFnZX0gZnJvbSAnQGNkby9hcHBzL3V0aWxzJztcbmltcG9ydCB7TG1zTGlua3N9IGZyb20gJ0BjZG8vZ2VuZXJhdGVkLXNjcmlwdHMvc2hhcmVkQ29uc3RhbnRzJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IEZlZWRiYWNrQmFubmVyLCB7XG4gIEJBTk5FUl9TVEFUVVMsXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZENvbXBvbmVudHMvdXNlckZlZWRiYWNrL0ZlZWRiYWNrQmFubmVyJztcblxuLyoqXG4gKiBMdGlGZWVkYmFja0Jhbm5lciBjb21wb25lbnRcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIGZvciBkaXNwbGF5aW5nIHRoZSBMTVMgRmVlZGJhY2sgYmFubmVyIGZvciBMVEkgdGVhY2hlcnMuXG4gKiBUaGUgYmFubmVyIGFza3MgdGhlIHRlYWNoZXIgZm9yIGZlZWRiYWNrIGFuZCBwcm92aWRlcyBvcHRpb25zIHRvIHJlc3BvbmQuXG4gKiBUaGUgYmFubmVyJ3MgdmlzaWJpbGl0eSBhbmQgc3RhdGUgYXJlIG1hbmFnZWQgdGhyb3VnaCBsb2NhbCBzdG9yYWdlIGFuZCBzdGF0ZSB2YXJpYWJsZXMuXG4gKlxuICogQGNvbXBvbmVudFxuICovXG5jb25zdCBMdGlGZWVkYmFja0Jhbm5lcjogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRVc2VyID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmN1cnJlbnRVc2VyKTtcbiAgY29uc3Qga2V5ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoY3VycmVudFVzZXIgPyBgbHRpLWZiLSR7Y3VycmVudFVzZXIudXVpZH1gIDogJycpLFxuICAgIFtjdXJyZW50VXNlcl1cbiAgKTtcblxuICAvKipcbiAgICogUmVkdWNlciBmb3IgbWFuYWdpbmcgdGhlIHN0YXRlIG9mIHRoZSBMVEkgZmVlZGJhY2suXG4gICAqL1xuICBjb25zdCBbe2lzTG9hZGluZywgZXJyb3IsIGx0aUZlZWRiYWNrfSwgbHRpRmVlZGJhY2tBY3Rpb25dID0gdXNlUmVkdWNlcihcbiAgICBsdGlGZWVkYmFja1JlZHVjZXIsXG4gICAge1xuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICB9XG4gICk7XG5cbiAgLyoqXG4gICAqIFN0YXRlIHZhcmlhYmxlIGZvciBtYW5hZ2luZyB0aGUgc3RhdHVzIG9mIHRoZSBiYW5uZXIuXG4gICAqIFRoZSBzdGF0dXMgaXMgc3RvcmVkIGluIGxvY2FsIHN0b3JhZ2UgdG8gcGVyc2lzdCBhY3Jvc3Mgc2Vzc2lvbnMuXG4gICAqL1xuICBjb25zdCBbc3RhdHVzLCBzZXRTdGF0dXNdID0gdXNlU3RhdGU8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIEJBTk5FUl9TVEFUVVMuVU5TRVQ7XG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjdXJyZW50VXNlciB8fCAhY3VycmVudFVzZXIuaXNMdGkgfHwgIWN1cnJlbnRVc2VyLmlzVGVhY2hlcilcbiAgICAgIHNldFN0YXR1cyhCQU5ORVJfU1RBVFVTLlVOQVZBSUxBQkxFKTtcblxuICAgIGxldCBzdGF0dXMgPSB0cnlHZXRMb2NhbFN0b3JhZ2Uoa2V5LCBCQU5ORVJfU1RBVFVTLlVOU0VUKTtcbiAgICBpZiAoc3RhdHVzID09PSBCQU5ORVJfU1RBVFVTLlVOQVZBSUxBQkxFKSBzdGF0dXMgPSBCQU5ORVJfU1RBVFVTLlVOU0VUO1xuXG4gICAgIXN0YXR1cyAmJiBmZXRjaEx0aUZlZWRiYWNrKGx0aUZlZWRiYWNrQWN0aW9uKTtcblxuICAgIHNldFN0YXR1cyhzdGF0dXMpO1xuICB9LCBbY3VycmVudFVzZXIsIGtleV0pO1xuXG4gIC8qKlxuICAgKiBFZmZlY3QgZm9yIHVwZGF0aW5nIHRoZSBsb2NhbCBzdG9yYWdlIHdoZW5ldmVyIHRoZSBzdGF0dXMgY2hhbmdlcy5cbiAgICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGtleSkge1xuICAgICAgdHJ5U2V0TG9jYWxTdG9yYWdlKGtleSwgc3RhdHVzKTtcbiAgICB9XG4gIH0sIFtrZXksIHN0YXR1c10pO1xuXG4gIC8qKlxuICAgKiBFZmZlY3QgZm9yIHVwZGF0aW5nIHRoZSBzdGF0dXMgYmFzZWQgb24gdGhlIExUSSBmZWVkYmFjay5cbiAgICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGx0aUZlZWRiYWNrID09PSBudWxsKSB7XG4gICAgICBzZXRTdGF0dXMoQkFOTkVSX1NUQVRVUy5VTkFOU1dFUkVEKTtcbiAgICB9IGVsc2UgaWYgKGx0aUZlZWRiYWNrKSB7XG4gICAgICBzZXRTdGF0dXMoQkFOTkVSX1NUQVRVUy5BTlNXRVJFRCk7XG4gICAgfVxuICB9LCBbbHRpRmVlZGJhY2tdKTtcblxuICAvKipcbiAgICogRWZmZWN0IGZvciBoYW5kbGluZyBlcnJvcnMuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGVycm9yICYmIHNldFN0YXR1cyhCQU5ORVJfU1RBVFVTLlVOU0VUKTtcbiAgfSwgW2Vycm9yXSk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBoYW5kbGluZyB1c2VyIGZlZWRiYWNrLlxuICAgKi9cbiAgY29uc3QgYW5zd2VyID0gKHNhdGlzZmllZDogYm9vbGVhbikgPT5cbiAgICBjcmVhdGVMdGlGZWVkYmFjayhsdGlGZWVkYmFja0FjdGlvbiwge3NhdGlzZmllZH0pO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBmb3IgY2xvc2luZyB0aGUgYmFubmVyLlxuICAgKi9cbiAgY29uc3QgY2xvc2UgPSAoKSA9PiBzZXRTdGF0dXMoQkFOTkVSX1NUQVRVUy5DTE9TRUQpO1xuXG4gIHJldHVybiAoXG4gICAgPEZlZWRiYWNrQmFubmVyXG4gICAgICBhbGVydEtleT17a2V5fVxuICAgICAgYW5zd2VyU3RhdHVzPXtzdGF0dXN9XG4gICAgICBhbnN3ZXI9e2Fuc3dlcn1cbiAgICAgIGNsb3NlPXtjbG9zZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgY2xvc2VMYWJlbD17aTE4bi5jbG9zZURpYWxvZygpfVxuICAgICAgcXVlc3Rpb249e2kxOG4ubHRpX2ZlZWRiYWNrQmFubmVyX3F1ZXN0aW9uKCl9XG4gICAgICBwb3NpdGl2ZUFuc3dlcj17aTE4bi5sdGlfZmVlZGJhY2tCYW5uZXJfYW5zd2VyX3Bvc2l0aXZlKCl9XG4gICAgICBuZWdhdGl2ZUFuc3dlcj17aTE4bi5sdGlfZmVlZGJhY2tCYW5uZXJfYW5zd2VyX25lZ2F0aXZlKCl9XG4gICAgICBzaGFyZU1vcmU9e2kxOG4ubHRpX2ZlZWRiYWNrQmFubmVyX3NoYXJlTW9yZV90ZXh0KCl9XG4gICAgICBzaGFyZU1vcmVMaW5rPXtMbXNMaW5rcy5BRERJVElPTkFMX0ZFRURCQUNLX1VSTH1cbiAgICAgIHNoYXJlTW9yZUxpbmtUZXh0PXtpMThuLmx0aV9mZWVkYmFja0Jhbm5lcl9zaGFyZU1vcmVfbGluaygpfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMdGlGZWVkYmFja0Jhbm5lcjtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIGN1cnJlbnRHbG9iYWxDb25maWd1cmF0aW9uLFxuICBSZWdpb25Db25maWd1cmF0aW9uUGFnZU9iamVjdCxcbn0gZnJvbSAnQGNkby9hcHBzL3V0aWwvZ2xvYmFsRWRpdGlvbic7XG5cbmludGVyZmFjZSBHbG9iYWxFZGl0aW9uV3JhcHBlclByb3BzIHtcbiAgY29tcG9uZW50OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDtcbiAgY29tcG9uZW50SWQ6IHN0cmluZztcbiAgcHJvcHM6IG9iamVjdDtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kIGFuIGV4aXN0aW5nIGNvbXBvbmVudCB0aGF0IGFsbG93cyBpdCB0byBiZVxuICogY29uZmlndXJlZCB2aWEgYSBHbG9iYWwgRWRpdGlvbiBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBnbG9iYWwgZWRpdGlvbiBjb25maWd1cmF0aW9ucyBhcmUgaW4gdGhlIGNvbmZpZyBkaXJlY3RvcnkgYXQgdGhlXG4gKiByb290IG9mIHRoZSByZXBvc2l0b3J5LiBGb3IgaW5zdGFuY2U6IGNvbmZpZy9nbG9iYWxfZWRpdGlvbnMvZmEueW1sXG4gKlxuICogRXNzZW50aWFsbHkgeW91IGNhbiB0YWtlIGFuIGV4aXN0aW5nIGNvbXBvbmVudCBsaWtlIDxGb28+IGFuZCB0aGVuIHdyYXAgaXRcbiAqIGFzIHN1Y2g6XG4gKlxuICogPEdsb2JhbEVkaXRpb25XcmFwcGVyXG4gKiAgIGNvbXBvbmVudD17Rm9vfVxuICogICBjb21wb25lbnRJZD1cIkZvb1wiXG4gKiAgIHByb3BzPXt7XG4gKiAgICAgYmFyOiBcImJhelwiLFxuICogICB9fVxuICogLz5cbiAqXG4gKiBXaGVyZSB0aGUgcHJvcHMgZ28gaW50byB0aGUgcHJvcHMgcHJvcGVydHkgb2YgdGhlIHdyYXBwZXIuIFRoZSBgY29tcG9uZW50SWRgXG4gKiBpcyB0aGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IHdoaWNoIGlzIHRoZW4gdXNlZCB0byByZWZlciB0byBpdCBpbiB0aGVcbiAqIHJlZ2lvbmFsIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogRm9yIGluc3RhbmNlLCBpbiB0aGUgY29uZmlnL2dsb2JhbF9lZGl0aW9ucy9pbmRpYS55bWwgKGxldCdzIHNheSkgd2UgY291bGRcbiAqIGhhdmU6XG4gKlxuICogYGBgXG4gKiAgIHBhZ2VzOlxuICogICAgIC0gcGF0aDogL1xuICogICAgICAgY29tcG9uZW50czpcbiAqICAgICAgICAgRm9vOiBmYWxzZVxuICogYGBgXG4gKlxuICogV2hpY2ggd2lsbCByZW5kZXIgYW4gXCJFbXB0eUNvbXBvbmVudFwiIGFuZCBlc3NlbnRpYWxseSBoaWRlIHRoZSBjb21wb25lbnQgd2hlblxuICogdmlld2luZyBhbnkgcGFnZSBpbiB0aGUgXCJpbmRpYVwiIHJlZ2lvbi5cbiAqXG4gKiBXZSBjYW4sIGluc3RlYWQsIGp1c3Qgb3ZlcnJpZGUgcHJvcGVydGllczpcbiAqXG4gKiBgYGBcbiAqICAgcGFnZXM6XG4gKiAgICAgLSBwYXRoOiAvXG4gKiAgICAgICBjb21wb25lbnRzOlxuICogICAgICAgICBGb286XG4gKiAgICAgICAgICAgYmFyOiBjaGF6XG4gKiBgYGBcbiAqXG4gKiBUaGlzIG1lYW5zLCBpbiB0aGlzIHJlZ2lvbiAoYXMgb3Bwb3NlZCB0byBhbnkgb3RoZXIpLCB0aGUgY29tcG9uZW50IHdpbGwgYmVcbiAqIHJlbmRlcmVkIGFuZCB2aXNpYmxlLCBidXQgd2l0aCB0aGUgJ2JhcicgcHJvcGVydHkgb3ZlcnJpZGVuLlxuICpcbiAqIFNlZSB0aGUgJ3BhZ2VzJyBzZWN0aW9uIG9mIGFuIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb25cbiAqIG9uIHRoZSBmb3JtYXQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGl0cyB1c2UgaGVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdsb2JhbEVkaXRpb25XcmFwcGVyOiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxcbiAgR2xvYmFsRWRpdGlvbldyYXBwZXJQcm9wc1xuPiA9ICh7Y29tcG9uZW50LCBjb21wb25lbnRJZCwgcHJvcHMgPSB7fX0pID0+IHtcbiAgY29uc3QgRW1wdHlDb21wb25lbnQgPSAoKSA9PiBudWxsO1xuXG4gIC8vIEdldCB0aGUgJ3BhZ2VzJyBvYmplY3QgZnJvbSB0aGUgY3VycmVudCBnbG9iYWwgcmVnaW9uIGNvbmZpZ3VyYXRpb25cbiAgY29uc3QgcGFnZXMgPSBjdXJyZW50R2xvYmFsQ29uZmlndXJhdGlvbigpLnBhZ2VzIHx8IFtdO1xuXG4gIC8vIEZpbHRlcnMgdGhlIGNvbmZpZyBkb3duIHRvIHRoZSBmaXJzdCBtYXRjaGluZyBwYWdlIHdpdGggYSBzZXR0aW5nIGZvclxuICAvLyB0aGUgZ2l2ZW4gY29tcG9uZW50XG4gIGNvbnN0IHBhZ2VDb25maWc6IFJlZ2lvbkNvbmZpZ3VyYXRpb25QYWdlT2JqZWN0IHwgdW5kZWZpbmVkID0gcGFnZXNcbiAgICAuZmlsdGVyKFxuICAgICAgZmlsdGVySW5mbyA9PlxuICAgICAgICBSZWdFeHAoJ14vZ2xvYmFsLy4qJyArIGZpbHRlckluZm8ucGF0aCArICcoPzovLiopPycpLnRlc3QoXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lXG4gICAgICAgICkgJiYgY29tcG9uZW50SWQgaW4gZmlsdGVySW5mby5jb21wb25lbnRzXG4gICAgKVxuICAgIC5zbGljZSgtMSlbMF07XG5cbiAgLy8gVGhlIGNvbXBvbmVudCBpcyB2aXNpYmxlIGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3Qgb3IgdGhlIHZhbHVlIGZvciB0aGF0XG4gIC8vIGNvbXBvbmVudCBpcyBOT1QgZXhwbGljaXRseSBzZXQgdG8gJ2ZhbHNlJ1xuICBjb25zdCB2aXNpYmxlOiBib29sZWFuID1cbiAgICAhcGFnZUNvbmZpZyB8fCBwYWdlQ29uZmlnLmNvbXBvbmVudHNbY29tcG9uZW50SWRdICE9PSBmYWxzZTtcblxuICAvLyBJZiBpdCBpcyBub3QgdmlzaWJsZSwgd2UgdXNlIGFuIFwiRW1wdHlDb21wb25lbnRcIiBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgb25lXG4gIC8vIGFuZCBpZ25vcmUgdGhlIGdpdmVuIHByb3BlcnRpZXMuXG4gIGNvbnN0IEdsb2JhbFdyYXBwZWRDb21wb25lbnQ6IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50ID0gdmlzaWJsZVxuICAgID8gY29tcG9uZW50XG4gICAgOiBFbXB0eUNvbXBvbmVudDtcblxuICAvLyBXZSB0aGVuIGFsbG93IG92ZXJyaWRpbmcgcHJvcGVydGllcyB3aXRoIHRoZSBvbmVzIGdpdmVuIGluIHRoZSByZWdpb25cbiAgLy8gY29uZmlndXJhdGlvbiBpZiBpdCBpcyBnaXZlblxuICBjb25zdCB3cmFwcGVkUHJvcHMgPSB2aXNpYmxlXG4gICAgPyBwYWdlQ29uZmlnICYmIHBhZ2VDb25maWcuY29tcG9uZW50c1tjb21wb25lbnRJZF1cbiAgICAgID8gey4uLnByb3BzLCAuLi4ocGFnZUNvbmZpZy5jb21wb25lbnRzW2NvbXBvbmVudElkXSBhcyBvYmplY3QpfVxuICAgICAgOiBwcm9wc1xuICAgIDoge307XG5cbiAgLy8gUmV0dXJuIHRoZSBjb21wb25lbnRcbiAgcmV0dXJuIDxHbG9iYWxXcmFwcGVkQ29tcG9uZW50IHsuLi53cmFwcGVkUHJvcHN9IC8+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmFsRWRpdGlvbldyYXBwZXI7XG4iLCJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlU2VsZWN0b3J9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IHtFVkVOVFN9IGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc0NvbnN0YW50cyc7XG5pbXBvcnQgYW5hbHl0aWNzUmVwb3J0ZXIgZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzUmVwb3J0ZXInO1xuaW1wb3J0IHtTZWN0aW9ufSBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvdHlwZXMvdGVhY2hlclNlY3Rpb25UeXBlcyc7XG5pbXBvcnQge1Jvb3RTdGF0ZX0gZnJvbSAnQGNkby9hcHBzL3R5cGVzL3JlZHV4JztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IE5vdGlmaWNhdGlvbiwge1xuICBOb3RpZmljYXRpb25UeXBlLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL05vdGlmaWNhdGlvbic7XG5cbmltcG9ydCB7QWdlR2F0ZWRTZWN0aW9uc01vZGFsfSBmcm9tICcuL0FnZUdhdGVkU2VjdGlvbnNNb2RhbCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIHRvZ2dsZU1vZGFsOiAoKSA9PiB2b2lkO1xuICBtb2RhbE9wZW46IGJvb2xlYW47XG4gIGFnZUdhdGVkU2VjdGlvbnM6IFNlY3Rpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZUdhdGVkU2VjdGlvbnNCYW5uZXI6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIHRvZ2dsZU1vZGFsLFxuICBtb2RhbE9wZW4sXG4gIGFnZUdhdGVkU2VjdGlvbnMsXG59KSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRVc2VyID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmN1cnJlbnRVc2VyKTtcbiAgY29uc3QgcmVwb3J0RXZlbnQgPSAoZXZlbnROYW1lOiBzdHJpbmcsIHBheWxvYWQ6IG9iamVjdCA9IHt9KSA9PiB7XG4gICAgYW5hbHl0aWNzUmVwb3J0ZXIuc2VuZEV2ZW50KGV2ZW50TmFtZSwgcGF5bG9hZCk7XG4gIH07XG5cbiAgY29uc3QgdXNlcklkID0gY3VycmVudFVzZXIudXNlcklkO1xuICBjb25zdCB1c1N0YXRlID0gYWdlR2F0ZWRTZWN0aW9uc1swXT8uYXRSaXNrQWdlR2F0ZWRVc1N0YXRlO1xuICBjb25zdCBudW1iZXJPZkFnZUdhdGVkU2VjdGlvbnMgPSBhZ2VHYXRlZFNlY3Rpb25zLmxlbmd0aDtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXBvcnRFdmVudChFVkVOVFMuQ0FQX0FHRV9HQVRFRF9TRUNUSU9OU19CQU5ORVJfU0hPV04sIHtcbiAgICAgIHVzZXJfaWQ6IHVzZXJJZCxcbiAgICAgIG51bWJlcl9vZl9hZ2VfZ2F0ZWRfc2VjdGlvbnM6IG51bWJlck9mQWdlR2F0ZWRTZWN0aW9ucyxcbiAgICAgIHVzX3N0YXRlOiB1c1N0YXRlLFxuICAgIH0pO1xuICB9LCBbdXNlcklkLCBudW1iZXJPZkFnZUdhdGVkU2VjdGlvbnMsIHVzU3RhdGVdKTtcblxuICBjb25zdCBzdGFydERhdGUgPSBhZ2VHYXRlZFNlY3Rpb25zWzBdPy5hdFJpc2tBZ2VHYXRlZERhdGU7XG4gIGNvbnN0IGRhdGVPcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgfTtcbiAgY29uc3Qgc3RhcnREYXRlVGV4dCA9XG4gICAgc3RhcnREYXRlPy50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgZGF0ZU9wdGlvbnMpIHx8ICc/Pz8nO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBpZD1cInVpdGVzdC1hZ2UtZ2F0ZWQtc2VjdGlvbnMtYmFubmVyXCI+XG4gICAgICA8Tm90aWZpY2F0aW9uXG4gICAgICAgIHR5cGU9e05vdGlmaWNhdGlvblR5cGUud2FybmluZ31cbiAgICAgICAgbm90aWNlPXtpMThuLmhlYWRzVXAoKX1cbiAgICAgICAgZGV0YWlscz17aTE4bi5jaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc1dhcm5pbmcoe1xuICAgICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlVGV4dCxcbiAgICAgICAgfSl9XG4gICAgICAgIGJ1dHRvblRleHQ9e2kxOG4uY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNXYXJuaW5nX2J1dHRvbigpfVxuICAgICAgICBidXR0b25MaW5rPXsnIyd9XG4gICAgICAgIG9uQnV0dG9uQ2xpY2s9e3RvZ2dsZU1vZGFsfVxuICAgICAgICBkaXNtaXNzaWJsZT17ZmFsc2V9XG4gICAgICAvPlxuICAgICAge21vZGFsT3BlbiAmJiAoXG4gICAgICAgIDxBZ2VHYXRlZFNlY3Rpb25zTW9kYWxcbiAgICAgICAgICBpc09wZW49e21vZGFsT3Blbn1cbiAgICAgICAgICBvbkNsb3NlPXt0b2dnbGVNb2RhbH1cbiAgICAgICAgICBhZ2VHYXRlZFNlY3Rpb25zPXthZ2VHYXRlZFNlY3Rpb25zfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iLCJpbXBvcnQgTGluayBmcm9tICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5L2xpbmsnO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQGNvZGUtZG90LW9yZy9jb21wb25lbnQtbGlicmFyeS90eXBvZ3JhcGh5JztcbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VTZWxlY3Rvcn0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQge0VWRU5UU30gZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzQ29uc3RhbnRzJztcbmltcG9ydCBhbmFseXRpY3NSZXBvcnRlciBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NSZXBvcnRlcic7XG5pbXBvcnQge0FnZUdhdGVkU2VjdGlvbnNUYWJsZX0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvQWdlR2F0ZWRTZWN0aW9uc1RhYmxlJztcbmltcG9ydCB7Um9vdFN0YXRlfSBmcm9tICdAY2RvL2FwcHMvdHlwZXMvcmVkdXgnO1xuaW1wb3J0IHtDYXBMaW5rc30gZnJvbSAnQGNkby9nZW5lcmF0ZWQtc2NyaXB0cy9zaGFyZWRDb25zdGFudHMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQgQmFzZURpYWxvZyBmcm9tICcuLi8uLi9CYXNlRGlhbG9nJztcbmltcG9ydCB7U2VjdGlvbn0gZnJvbSAnLi4vLi4vdGVhY2hlckRhc2hib2FyZC90eXBlcy90ZWFjaGVyU2VjdGlvblR5cGVzJztcblxuaW1wb3J0IHN0eWxlcyBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3BvbGljeV9jb21wbGlhbmNlL0FnZUdhdGVkU2VjdGlvbnNNb2RhbC9hZ2UtZ2F0ZWQtc2VjdGlvbnMtbW9kYWwubW9kdWxlLnNjc3MnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBpc09wZW46IGJvb2xlYW47XG4gIGFnZUdhdGVkU2VjdGlvbnM6IFNlY3Rpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZUdhdGVkU2VjdGlvbnNNb2RhbDogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgaXNPcGVuLFxuICBvbkNsb3NlLFxuICBhZ2VHYXRlZFNlY3Rpb25zLFxufSkgPT4ge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50VXNlcik7XG4gIGNvbnN0IHJlcG9ydEV2ZW50ID0gKGV2ZW50TmFtZTogc3RyaW5nLCBwYXlsb2FkOiBvYmplY3QgPSB7fSkgPT4ge1xuICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChldmVudE5hbWUsIHBheWxvYWQpO1xuICB9O1xuXG4gIGNvbnN0IGhlbHBEb2NzVXJsID0gQ2FwTGlua3MuUEFSRU5UQUxfQ09OU0VOVF9HVUlERV9VUkw7XG5cbiAgY29uc3QgdXNlcklkID0gY3VycmVudFVzZXIudXNlcklkO1xuICBjb25zdCB1c1N0YXRlID0gYWdlR2F0ZWRTZWN0aW9uc1swXT8uYXRSaXNrQWdlR2F0ZWRVc1N0YXRlO1xuICBjb25zdCBtb2RhbERvY3VtZW50YXRpb25DbGlja2VkID0gKCkgPT4ge1xuICAgIHJlcG9ydEV2ZW50KEVWRU5UUy5DQVBfU1RVREVOVF9XQVJOSU5HX0xJTktfQ0xJQ0tFRCwge1xuICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgdXNfc3RhdGU6IHVzU3RhdGUsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgbW9kYWxDbG9zZWQgPSAoKSA9PiB7XG4gICAgcmVwb3J0RXZlbnQoRVZFTlRTLkNBUF9BR0VfR0FURURfU0VDVElPTlNfTU9EQUxfQ0xPU0VELCB7XG4gICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICB1c19zdGF0ZTogdXNTdGF0ZSxcbiAgICB9KTtcbiAgICBvbkNsb3NlKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXBvcnRFdmVudChFVkVOVFMuQ0FQX0FHRV9HQVRFRF9TRUNUSU9OU19NT0RBTF9TSE9XTiwge1xuICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgdXNfc3RhdGU6IHVzU3RhdGUsXG4gICAgfSk7XG4gIH0sIFt1c2VySWQsIHVzU3RhdGVdKTtcblxuICBjb25zdCBzdGFydERhdGUgPSBhZ2VHYXRlZFNlY3Rpb25zLmZpbmQoXG4gICAgc2VjdGlvbiA9PiBzZWN0aW9uLmF0Umlza0FnZUdhdGVkRGF0ZVxuICApPy5hdFJpc2tBZ2VHYXRlZERhdGU7XG5cbiAgY29uc3QgZGF0ZU9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgIHllYXI6ICdudW1lcmljJyxcbiAgICBtb250aDogJzItZGlnaXQnLFxuICAgIGRheTogJzItZGlnaXQnLFxuICB9O1xuICBjb25zdCBzdGFydERhdGVUZXh0ID1cbiAgICBzdGFydERhdGU/LnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCBkYXRlT3B0aW9ucykgfHwgJz8/Pyc7XG5cbiAgcmV0dXJuIChcbiAgICA8QmFzZURpYWxvZ1xuICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICBoYW5kbGVDbG9zZT17bW9kYWxDbG9zZWR9XG4gICAgICB1c2VVcGRhdGVkU3R5bGVzPXt0cnVlfVxuICAgICAgZml4ZWRXaWR0aD17ODAwfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxDb250YWluZXJ9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9mb3JiaWQtZG9tLXByb3BzXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsXCJcbiAgICAgICAgaWQ9XCJ1aXRlc3QtYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsXCJcbiAgICAgID5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8VHlwb2dyYXBoeVxuICAgICAgICAgICAgc2VtYW50aWNUYWc9XCJoMlwiXG4gICAgICAgICAgICB2aXN1YWxBcHBlYXJhbmNlPVwiaGVhZGluZy1tZFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEhlYWRlcn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aTE4bi5jaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX2hlYWRlcigpfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICA8VHlwb2dyYXBoeSBzZW1hbnRpY1RhZz1cInBcIiB2aXN1YWxBcHBlYXJhbmNlPVwiYm9keS10d29cIj5cbiAgICAgICAgICAgIHtpMThuLmNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zTW9kYWxfbm90aWNlKHtcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiBzdGFydERhdGVUZXh0LFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgIDxUeXBvZ3JhcGh5IHNlbWFudGljVGFnPVwicFwiIHZpc3VhbEFwcGVhcmFuY2U9XCJib2R5LXR3b1wiPlxuICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAge2kxOG4uY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNNb2RhbF9hY3Rpb24oKX1cbiAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICA8VHlwb2dyYXBoeSBzZW1hbnRpY1RhZz1cInBcIiB2aXN1YWxBcHBlYXJhbmNlPVwiYm9keS10d29cIj5cbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGhyZWY9e2hlbHBEb2NzVXJsfVxuICAgICAgICAgICAgICBvbkNsaWNrPXttb2RhbERvY3VtZW50YXRpb25DbGlja2VkfVxuICAgICAgICAgICAgICBvcGVuSW5OZXdUYWI9e3RydWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtpMThuLmNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zTW9kYWxfcmVhZE1vcmUoKX1cbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgPEFnZUdhdGVkU2VjdGlvbnNUYWJsZSBhZ2VHYXRlZFNlY3Rpb25zPXthZ2VHYXRlZFNlY3Rpb25zfSAvPlxuICAgICAgICAgIDxociAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b259PlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17bW9kYWxDbG9zZWR9PlxuICAgICAgICAgICAgICB7aTE4bi5jbG9zZURpYWxvZygpfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9CYXNlRGlhbG9nPlxuICApO1xufTtcbiIsImltcG9ydCBMaW5rIGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvbGluayc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5L3R5cG9ncmFwaHknO1xuaW1wb3J0IHtvcmRlckJ5fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFRhYmxlIGZyb20gJ3JlYWN0YWJ1bGFyLXRhYmxlJztcbi8vIEB0cy1leHBlY3QtZXJyb3Igc29ydGFidWxhciBkb2Vzbid0IGRlZmluZSBpdCdzIHR5cGVzLlxuaW1wb3J0ICogYXMgc29ydCBmcm9tICdzb3J0YWJ1bGFyJztcblxuaW1wb3J0IHtFVkVOVFN9IGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc0NvbnN0YW50cyc7XG5pbXBvcnQgYW5hbHl0aWNzUmVwb3J0ZXIgZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzUmVwb3J0ZXInO1xuaW1wb3J0IHtcbiAgc29ydGFibGVPcHRpb25zLFxuICB0YWJsZUxheW91dFN0eWxlcyxcbn0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy90YWJsZXMvdGFibGVDb25zdGFudHMnO1xuaW1wb3J0IHdyYXBwZWRTb3J0YWJsZSBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3RhYmxlcy93cmFwcGVkX3NvcnRhYmxlJztcbmltcG9ydCB7U2VjdGlvbn0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL3R5cGVzL3RlYWNoZXJTZWN0aW9uVHlwZXMnO1xuaW1wb3J0IHt0ZWFjaGVyRGFzaGJvYXJkVXJsfSBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvdXJsSGVscGVycyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmludGVyZmFjZSBSb3dEYXRhIHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbn1cblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgYWdlR2F0ZWRTZWN0aW9uczogU2VjdGlvbltdO1xufVxuXG5leHBvcnQgY29uc3QgQWdlR2F0ZWRTZWN0aW9uc1RhYmxlOiBSZWFjdC5GQzxQcm9wcz4gPSAoe2FnZUdhdGVkU2VjdGlvbnN9KSA9PiB7XG4gIGNvbnN0IHJlcG9ydEV2ZW50ID0gKGV2ZW50TmFtZTogc3RyaW5nLCBwYXlsb2FkOiBvYmplY3QgPSB7fSkgPT4ge1xuICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChldmVudE5hbWUsIHBheWxvYWQpO1xuICB9O1xuICBjb25zdCBnZXRDb2x1bW5zID0gKCkgPT4ge1xuICAgIHJldHVybiBbc2VjdGlvbkNvbHVtbigpLCBncmFkZXNDb2x1bW4oKV07XG4gIH07XG5cbiAgY29uc3QgaW5pdGlhbFNvcnRpbmdDb2x1bW5zID0ge1xuICAgIDA6IHtcbiAgICAgIGRpcmVjdGlvbjogJ2FzYycsXG4gICAgICBwb3NpdGlvbjogMCxcbiAgICB9LFxuICB9O1xuICBjb25zdCBbc29ydGluZ0NvbHVtbnMsIHNldFNvcnRpbmdDb2x1bW5zXSA9IFJlYWN0LnVzZVN0YXRlKFxuICAgIGluaXRpYWxTb3J0aW5nQ29sdW1uc1xuICApO1xuICBjb25zdCBvblNvcnQgPSAoc2VsZWN0ZWRDb2x1bW46IG51bWJlcikgPT4ge1xuICAgIHNldFNvcnRpbmdDb2x1bW5zKFxuICAgICAgc29ydC5ieUNvbHVtbih7XG4gICAgICAgIHNvcnRpbmdDb2x1bW5zOiBzb3J0aW5nQ29sdW1ucyxcbiAgICAgICAgLy8gQ3VzdG9tIHNvcnRpbmdPcmRlciByZW1vdmVzICduby1zb3J0JyBmcm9tIHRoZSBjeWNsZVxuICAgICAgICBzb3J0aW5nT3JkZXI6IHtcbiAgICAgICAgICBGSVJTVDogJ2FzYycsXG4gICAgICAgICAgYXNjOiAnZGVzYycsXG4gICAgICAgICAgZGVzYzogJ2FzYycsXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGVkQ29sdW1uLFxuICAgICAgfSlcbiAgICApO1xuICB9O1xuICBjb25zdCBzb3J0YWJsZSA9IHdyYXBwZWRTb3J0YWJsZShcbiAgICAoKSA9PiBzb3J0aW5nQ29sdW1ucyxcbiAgICBvblNvcnQsXG4gICAgc29ydGFibGVPcHRpb25zXG4gICk7XG4gIGNvbnN0IHNlY3Rpb25Gb3JtYXR0ZXIgPSAobmFtZTogc3RyaW5nLCB7cm93RGF0YX06IHtyb3dEYXRhOiBSb3dEYXRhfSkgPT4gKFxuICAgIDxUeXBvZ3JhcGh5IHNlbWFudGljVGFnPVwicFwiIHZpc3VhbEFwcGVhcmFuY2U9XCJib2R5LXR3b1wiPlxuICAgICAgPExpbmtcbiAgICAgICAgaHJlZj17dGVhY2hlckRhc2hib2FyZFVybChyb3dEYXRhLnNlY3Rpb24uaWQpfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgcmVwb3J0RXZlbnQoXG4gICAgICAgICAgICBFVkVOVFMuQ0FQX0FHRV9HQVRFRF9TRUNUSU9OU19UQUJMRV9TRUNUSU9OX05BTUVfTElOS19DTElDS0VELFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZWN0aW9uX2lkOiByb3dEYXRhLnNlY3Rpb24uaWQsXG4gICAgICAgICAgICAgIHVzX3N0YXRlOiByb3dEYXRhLnNlY3Rpb24uYXRSaXNrQWdlR2F0ZWRVc1N0YXRlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH19XG4gICAgICAgIG9wZW5Jbk5ld1RhYj17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge25hbWV9XG4gICAgICA8L0xpbms+XG4gICAgPC9UeXBvZ3JhcGh5PlxuICApO1xuXG4gIGNvbnN0IHNlY3Rpb25Db2x1bW4gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3BlcnR5OiAnbmFtZScsXG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgbGFiZWw6IGkxOG4uY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNUYWJsZV9zZWN0aW9uSGVhZGVyKCksXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIC4uLnRhYmxlTGF5b3V0U3R5bGVzLmhlYWRlckNlbGwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNmb3JtczogW3NvcnRhYmxlXSxcbiAgICAgIH0sXG4gICAgICBjZWxsOiB7XG4gICAgICAgIGZvcm1hdHRlcnM6IFtzZWN0aW9uRm9ybWF0dGVyXSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgLi4udGFibGVMYXlvdXRTdHlsZXMuY2VsbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9O1xuICBjb25zdCBncmFkZXNGb3JtYXR0ZXIgPSAoZ3JhZGVzOiBzdHJpbmdbXSkgPT4gKFxuICAgIDxUeXBvZ3JhcGh5IHNlbWFudGljVGFnPVwicFwiIHZpc3VhbEFwcGVhcmFuY2U9XCJib2R5LXR3b1wiPlxuICAgICAge2dyYWRlcyAmJiBncmFkZXMuam9pbignLCAnKX1cbiAgICA8L1R5cG9ncmFwaHk+XG4gICk7XG5cbiAgY29uc3QgZ3JhZGVzQ29sdW1uID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBwcm9wZXJ0eTogJ2dyYWRlcycsXG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgbGFiZWw6IGkxOG4uY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNUYWJsZV9ncmFkZXNIZWFkZXIoKSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgLi4udGFibGVMYXlvdXRTdHlsZXMuaGVhZGVyQ2VsbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNlbGw6IHtcbiAgICAgICAgZm9ybWF0dGVyczogW2dyYWRlc0Zvcm1hdHRlcl0sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIC4uLnRhYmxlTGF5b3V0U3R5bGVzLmNlbGwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gZ2V0Q29sdW1ucygpO1xuICBjb25zdCBzZWN0aW9uRGF0YTogUm93RGF0YVtdID0gYWdlR2F0ZWRTZWN0aW9ucy5tYXAoc2VjdGlvbiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBzZWN0aW9uLmlkLFxuICAgICAgc2VjdGlvbjogc2VjdGlvbixcbiAgICAgIGdyYWRlczogc2VjdGlvbi5ncmFkZXMsXG4gICAgICBuYW1lOiBzZWN0aW9uLm5hbWUsXG4gICAgfTtcbiAgfSk7XG4gIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0LnNvcnRlcih7XG4gICAgY29sdW1ucyxcbiAgICBzb3J0aW5nQ29sdW1ucyxcbiAgICBzb3J0OiBvcmRlckJ5LFxuICB9KShzZWN0aW9uRGF0YSk7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtzb3J0ZWREYXRhICYmIHNvcnRlZERhdGEubGVuZ3RoICE9PSAwICYmIChcbiAgICAgICAgPFRhYmxlLlByb3ZpZGVyXG4gICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICBzdHlsZT17dGFibGVMYXlvdXRTdHlsZXMudGFibGV9XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2ZvcmJpZC1jb21wb25lbnQtcHJvcHNcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cInVpdGVzdC1hZ2UtZ2F0ZWQtc2VjdGlvbnMtdGFibGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPFRhYmxlLkhlYWRlciAvPlxuICAgICAgICAgIDxUYWJsZS5Cb2R5IHJvd3M9e3NvcnRlZERhdGF9IHJvd0tleT1cImlkXCIgLz5cbiAgICAgICAgPC9UYWJsZS5Qcm92aWRlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIiwiaW1wb3J0IHtTZWN0aW9uTG9naW5UeXBlfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBOT05fTE1TX0xPR0lOX1RZUEVTID0gW1xuICBTZWN0aW9uTG9naW5UeXBlLndvcmQsXG4gIFNlY3Rpb25Mb2dpblR5cGUucGljdHVyZSxcbiAgU2VjdGlvbkxvZ2luVHlwZS5lbWFpbCxcbl07XG5leHBvcnQgY29uc3QgTE9HSU5fVFlQRVNfV0lUSF9QQVNTV09SRF9DT0xVTU4gPSBOT05fTE1TX0xPR0lOX1RZUEVTO1xuXG5leHBvcnQgY29uc3QgTE9HSU5fVFlQRVNfV0lUSF9BQ1RJT05TX0NPTFVNTiA9IFtcbiAgU2VjdGlvbkxvZ2luVHlwZS53b3JkLFxuICBTZWN0aW9uTG9naW5UeXBlLnBpY3R1cmUsXG4gIFNlY3Rpb25Mb2dpblR5cGUuZW1haWwsXG4gIFNlY3Rpb25Mb2dpblR5cGUuZ29vZ2xlX2NsYXNzcm9vbSxcbiAgU2VjdGlvbkxvZ2luVHlwZS5jbGV2ZXIsXG4gIFNlY3Rpb25Mb2dpblR5cGUubHRpX3YxLFxuXTtcblxuZXhwb3J0IGNvbnN0IFBJQ1RVUkVfT1JfV09SRF9MT0dJTl9UWVBFUyA9IFtcbiAgU2VjdGlvbkxvZ2luVHlwZS53b3JkLFxuICBTZWN0aW9uTG9naW5UeXBlLnBpY3R1cmUsXG5dO1xuZXhwb3J0IGNvbnN0IExPR0lOX1RZUEVTX1dJVEhfR0VOREVSX0NPTFVNTiA9IFBJQ1RVUkVfT1JfV09SRF9MT0dJTl9UWVBFUztcblxuZXhwb3J0IGNvbnN0IExPR0lOX1RZUEVTX1dJVEhfTk9fU0VDVElPTl9DT0RFID0gW1xuICBTZWN0aW9uTG9naW5UeXBlLmdvb2dsZV9jbGFzc3Jvb20sXG4gIFNlY3Rpb25Mb2dpblR5cGUuY2xldmVyLFxuXTtcbiJdLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwiciIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwidCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9yZWFjdFJlZHV4IiwiX3JlYWN0VG9vbHRpcCIsIl9mb250Q29uc3RhbnRzIiwiX0J1dHRvbiIsIl9Gb250QXdlc29tZSIsIl9maXJlaG9zZSIsIl9jb2xvciIsIldlYWtNYXAiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJBcnJheSIsImlzQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJsIiwiaXRlcmF0b3IiLCJmIiwibmV4dCIsImRvbmUiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJOb3RpZmljYXRpb25UeXBlIiwiZXhwb3J0cyIsImRlZmF1bHQiLCJpbmZvcm1hdGlvbiIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwid2FybmluZyIsImNvdXJzZSIsImJ1bGxob3JuIiwiZmVlZGJhY2siLCJidWxsaG9ybl95ZWxsb3ciLCJjb2xsYWJvcmF0ZSIsIk5vdGlmaWNhdGlvbiIsIl9yZWYiLCJidXR0b25DbGFzc05hbWUiLCJidXR0b25MaW5rIiwiYnV0dG9ucyIsImJ1dHRvbnNTdHlsZXMiLCJidXR0b25UZXh0IiwiYnV0dG9uQ29sb3IiLCJjaGlsZHJlbiIsImRldGFpbHMiLCJkZXRhaWxzTGluayIsImRldGFpbHNMaW5rTmV3V2luZG93IiwiZGV0YWlsc0xpbmtUZXh0IiwiZGlzbWlzc2libGUiLCJmaXJlaG9zZUFuYWx5dGljc0RhdGEiLCJpY29uU3R5bGVzIiwiaXNSdGwiLCJuZXdXaW5kb3ciLCJub3RpY2UiLCJvbkRpc21pc3MiLCJvbkJ1dHRvbkNsaWNrIiwicmVzcG9uc2l2ZVNpemUiLCJ0eXBlIiwidG9vbHRpcFRleHQiLCJ3aWR0aCIsImNvbG9ycyIsIl91c2VTdGF0ZTIiLCJ1c2VTdGF0ZSIsIm9wZW4iLCJzZXRPcGVuIiwiZGVza3RvcCIsInVuZGVmaW5lZCIsImljb25zIiwibWFpblN0eWxlIiwic3R5bGVzIiwibWFpbiIsImRpcmVjdGlvbiIsImNvbG9yU3R5bGVzIiwidG9vbHRpcElkIiwiXyIsInVuaXF1ZUlkIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwiaWNvbkJveCIsImljb24iLCJjb250ZW50Qm94Iiwid29yZEJveCIsInRvb2x0aXAiLCJpZCIsImVmZmVjdCIsImhyZWYiLCJ0YXJnZXQiLCJyZWwiLCJidXR0b25zTW9iaWxlIiwiX191c2VEZXByZWNhdGVkVGFnIiwiY29sb3IiLCJCdXR0b24iLCJCdXR0b25Db2xvciIsImdyYXkiLCJ0ZXh0IiwiYnV0dG9uIiwib25DbGljayIsIm9uQW5ub3VuY2VtZW50Q2xpY2siLCJsb2dBbm5vdW5jZW1lbnRDbGlja1RvRmlyZWhvc2UiLCJyZWNvcmQiLCJmaXJlaG9zZU1ldGFkYXRhS2V5Iiwic3R1ZHkiLCJldmVudCIsImRhdGFfanNvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJmaXJlaG9zZUNsaWVudCIsInB1dFJlY29yZCIsImluY2x1ZGVVc2VySWQiLCJtYXAiLCJpbmRleCIsImtleSIsImxpbmsiLCJkaXNtaXNzIiwiaGFuZGxlRGlzbWlzcyIsImNsZWFyIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwib25lT2ZUeXBlIiwib2JqZWN0IiwiYm9vbCIsImZ1bmMiLCJhcnJheU9mIiwic2hhcGUiLCJub2RlIiwibnVtYmVyIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyQ29sb3IiLCJkZWZhdWx0UHJvcHMiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwibWluSGVpZ2h0Iiwid2hpdGUiLCJtYXJnaW5Cb3R0b20iLCJkaXNwbGF5IiwiZmxleEZsb3ciLCJib3hTaXppbmciLCJmb250Q29uc3RhbnRzIiwiZm9udFNpemUiLCJsZXR0ZXJTcGFjaW5nIiwibGluZUhlaWdodCIsIm1hcmdpblRvcCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiY2hhcmNvYWwiLCJ0ZWFsIiwiZmxleCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImxpZ2h0ZXJfZ3JheSIsImN1cnNvciIsImxpZ2h0ZXN0X2dyYXkiLCJ0ZXh0QWxpZ24iLCJmbG9hdCIsImxldmVsX3BlcmZlY3QiLCJyZWQiLCJtdXN0YXJkeWVsbG93IiwiYm9yZGVyX2dyYXkiLCJ5ZWxsb3ciLCJwdXJwbGUiLCJsaWdodF9zZWNvbmRhcnlfNTAwIiwidmVydGljYWxBbGlnbiIsImxpZ2h0X2dyYXlfNTAwIiwibWFyZ2luIiwiY29ubmVjdCIsInN0YXRlIiwicmVzcG9uc2l2ZSIsIl9sb2NhbGUiLCJwcm90b3R5cGUiLCJfc2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfUmVhY3QkQ29tcG9uZW50IiwiU3Bpbm5lciIsIl9pbmhlcml0c0xvb3NlIiwiY3JlYXRlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJ0aGlzIiwicHJvcHMiLCJzaXplIiwiZGlzcGxheVNpemUiLCJjb25jYXQiLCJ0aXRsZSIsImkxOG4iLCJsb2FkaW5nIiwiUmVhY3QiLCJDb21wb25lbnQiLCJtb2R1bGUiLCJfcmFkaXVtIiwiX3N0eWxlQ29uc3RhbnRzIiwiX2NvbnRlbnRDb250YWluZXJNb2R1bGUiLCJjb250ZW50V2lkdGgiLCJzdHlsZUNvbnN0YW50cyIsIkNvbnRlbnRDb250YWluZXIiLCJfQ29tcG9uZW50IiwiaGVhZGluZyIsImxpbmtUZXh0IiwiZGVzY3JpcHRpb24iLCJoaWRlQm90dG9tTWFyZ2luIiwic2hvd0xpbmtUb3AiLCJzaG93TGlua0JvdHRvbSIsImJveFN0eWxlcyIsImJveFJlc3BvbnNpdmUiLCJib3R0b21NYXJnaW4iLCJtb2R1bGVTdHlsZXMiLCJjb250ZW50Q29udGFpbmVySGVhZGluZyIsImhlYWRpbmdCb3giLCJoZWFkaW5nVGV4dFJ0bCIsImhlYWRpbmdUZXh0IiwiTGluayIsIkNoaWxkcmVuIiwiY2hpbGQiLCJzdGFuZGFsb25lTGlua0JveCIsImJvdHRvbSIsIl9Db21wb25lbnQyIiwibGlua0JveFN0eWxlIiwiX3RoaXMkcHJvcHMyIiwibGlua0JveFJ0bEJvdHRvbSIsImxpbmtCb3hSdGwiLCJsaW5rQm94Qm90dG9tIiwibGlua0JveCIsImxpbmtUYWciLCJjaGV2cm9uUnRsIiwibGlua1RvVmlld0FsbCIsImNoZXZyb24iLCJib3giLCJwYWRkaW5nUmlnaHQiLCJvdmVyZmxvdyIsInpJbmRleCIsInBvc2l0aW9uIiwibmV1dHJhbF9kYXJrIiwicGFkZGluZ0xlZnQiLCJyaWdodCIsImxlZnQiLCJ0ZXh0RGVjb3JhdGlvbiIsImZvbnRXZWlnaHQiLCJqdXN0aWZ5Q29udGVudCIsImZsZXhXcmFwIiwiUmFkaXVtIiwiX2J1dHRvbiIsIl90eXBvZ3JhcGh5IiwiX2JvcmRlcmVkQ2FsbFRvQWN0aW9uTW9kdWxlIiwiQm9yZGVyZWRDYWxsVG9BY3Rpb24iLCJkZXNjcmlwdGlvblRleHQiLCJidXR0b25UeXBlIiwiYnV0dG9uVXJsIiwiYnV0dG9uQ2xhc3MiLCJfcmVmJGJ1dHRvbkRpc2FibGVkIiwiYnV0dG9uRGlzYWJsZWQiLCJzb2xpZEJvcmRlciIsIkVycm9yIiwiZGFzaGVkQm9yZGVyIiwib3V0ZXJCb3giLCJ0ZXh0V3JhcHBlciIsIkhlYWRpbmczIiwidmlzdWFsQXBwZWFyYW5jZSIsIkJvZHlUaHJlZVRleHQiLCJ1c2VBc0xpbmsiLCJkaXNhYmxlZCIsIl9BbmFseXRpY3NDb25zdGFudHMiLCJfQW5hbHl0aWNzUmVwb3J0ZXIiLCJfTm90aWZpY2F0aW9uIiwiX3RlYWNoZXJTZWN0aW9uc1JlZHV4IiwiX0h0dHBDbGllbnQiLCJDb3RlYWNoZXJJbnZpdGVOb3RpZmljYXRpb24iLCJpc0ZvclBsIiwiYXN5bmNMb2FkQ290ZWFjaGVySW52aXRlIiwiYXN5bmNMb2FkU2VjdGlvbkRhdGEiLCJjb3RlYWNoZXJJbnZpdGUiLCJjb3RlYWNoZXJJbnZpdGVGb3JQbCIsImludml0ZSIsInVzZU1lbW8iLCJidXR0b25BY3Rpb24iLCJhcGkiLCJIdHRwQ2xpZW50IiwicHV0IiwidGhlbiIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImludml0ZWRCeU5hbWUiLCJpbnZpdGVkX2J5X25hbWUiLCJCb2R5VHdvVGV4dCIsImNvdGVhY2hlckludml0ZURlc2NyaXB0aW9uIiwiaW52aXRlZEJ5RW1haWwiLCJpbnZpdGVkX2J5X2VtYWlsIiwiU3Ryb25nVGV4dCIsInNlY3Rpb25fbmFtZSIsImNvdGVhY2hlclRvb2x0aXAiLCJkZWNsaW5lQ290ZWFjaGVySW52aXRlIiwic2VjdGlvbklkIiwiYW5hbHl0aWNzUmVwb3J0ZXIiLCJzZW5kRXZlbnQiLCJFVkVOVFMiLCJDT1RFQUNIRVJfSU5WSVRFX0RFQ0xJTkVEIiwic2VjdGlvbl9pZCIsIm5ldXRyYWxEYXJrIiwiZGVjbGluZUJ1dHRvbiIsImFjY2VwdENvdGVhY2hlckludml0ZSIsIkNPVEVBQ0hFUl9JTlZJVEVfQUNDRVBURUQiLCJicmFuZFNlY29uZGFyeURlZmF1bHQiLCJhY2NlcHRCdXR0b24iLCJ0ZWFjaGVyU2VjdGlvbnMiLCJhbGlnbkl0ZW1zIiwiX0JvcmRlcmVkQ2FsbFRvQWN0aW9uIiwiU2V0VXBTZWN0aW9ucyIsIl90aGlzIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwicmVjb3JkU2VjdGlvblNldHVwU3RhcnRlZEV2ZW50IiwiYmVnaW5FZGl0aW5nU2VjdGlvbiIsIlNFQ1RJT05fU0VUVVBfU1RBUlRFRCIsIlBMQVRGT1JNUyIsIkJPVEgiLCJuZXdTZWN0aW9uQWRkIiwiY3JlYXRlTmV3Q2xhc3Nyb29tIiwiY3JlYXRlU2VjdGlvbiIsImFzeW5jTG9hZENvbXBsZXRlIiwiX1NwaW5uZXIiLCJfQWdlR2F0ZWRTZWN0aW9uc0Jhbm5lciIsIl9Db250ZW50Q29udGFpbmVyIiwiX0FkZFNlY3Rpb25EaWFsb2ciLCJfT3duZWRTZWN0aW9ucyIsIl9Sb3N0ZXJEaWFsb2ciLCJfdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMiLCJfQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uIiwiX1NldFVwU2VjdGlvbnMiLCJUZWFjaGVyU2VjdGlvbnMiLCJhZ2VHYXRlZFNlY3Rpb25zIiwic3R1ZGVudFNlY3Rpb25JZHMiLCJoaWRkZW5TdHVkZW50U2VjdGlvbklkcyIsInNlY3Rpb25zQXJlTG9hZGVkIiwibW9kYWxPcGVuIiwic2V0TW9kYWxPcGVuIiwidXNlRWZmZWN0Iiwic3Bpbm5lciIsInNob3VsZFJlbmRlclNlY3Rpb25zIiwic2VjdGlvbnNUaXRsZSIsInNob3VsZERpc3BsYXlBdFJpc2tBZ2VHYXRlZFdhcm5pbmciLCJBZ2VHYXRlZFNlY3Rpb25zQmFubmVyIiwidG9nZ2xlTW9kYWwiLCJzZWN0aW9uSWRzIiwiaGlkZGVuU2VjdGlvbklkcyIsImFycmF5IiwicGxTZWN0aW9uSWRzIiwiYXRSaXNrQWdlR2F0ZWRTZWN0aW9ucyIsIl91dGlscyIsIl9zaGFyZWRDb25zdGFudHMiLCJfQmFzZURpYWxvZyIsIl9Mb2dpblR5cGVDb25zdGFudHMiLCJfTG9naW5UeXBlUGlja2VyIiwiX1BhZEFuZENlbnRlciIsIl9QYXJ0aWNpcGFudFR5cGVQaWNrZXIiLCJfc2hhcGVzIiwicmVkaXJlY3RUb05ld1NlY3Rpb25QYWdlIiwicGFydGljaXBhbnRUeXBlIiwibG9naW5UeXBlIiwiY3JlYXRlU2VjdGlvbkZyb21NeVBsIiwiaHJlZk5hdiIsIm5hdmlnYXRlVG9IcmVmIiwiQWRkU2VjdGlvbkRpYWxvZyIsImlzT3BlbiIsInNlY3Rpb24iLCJiZWdpbkltcG9ydFJvc3RlckZsb3ciLCJzZXRSb3N0ZXJQcm92aWRlciIsInNldExvZ2luVHlwZSIsInNldFBhcnRpY2lwYW50VHlwZSIsImhhbmRsZUNhbmNlbCIsImF2YWlsYWJsZVBhcnRpY2lwYW50VHlwZXMiLCJhc3NpZ25lZENvdXJzZU9mZmVyaW5nIiwicGFydGljaXBhbnRfYXVkaWVuY2UiLCJfcmVmMiIsIm5ld1NlY3Rpb25VcGRhdGVkIiwib25QYXJ0aWNpcGFudFR5cGVTZWxlY3Rpb24iLCJTZWN0aW9uTG9naW5UeXBlIiwiZW1haWwiLCJvbkxvZ2luVHlwZVNlbGVjdGlvbiIsIk5PTl9MTVNfTE9HSU5fVFlQRVMiLCJpbmNsdWRlcyIsInVzZVVwZGF0ZWRTdHlsZXMiLCJmaXhlZFdpZHRoIiwidW5jbG9zZWFibGUiLCJnZXREaWFsb2dDb250ZW50IiwiaGFuZGxlSW1wb3J0T3BlbiIsInBhZGRpbmciLCJzZWN0aW9uU2hhcGUiLCJpc0FkZGluZ1NlY3Rpb24iLCJzZWN0aW9uQmVpbmdFZGl0ZWQiLCJkaXNwYXRjaCIsInByb3ZpZGVyIiwiZWRpdFNlY3Rpb25Qcm9wZXJ0aWVzIiwiY2FuY2VsRWRpdGluZ1NlY3Rpb24iLCJUYWJsZSIsInNvcnQiLCJfY29uc3RhbnRzIiwiX3VybEhlbHBlcnMiLCJfdGFibGVDb25zdGFudHMiLCJfd3JhcHBlZF9zb3J0YWJsZSIsIl9TZWN0aW9uQWN0aW9uRHJvcGRvd24iLCJfc2tlbGV0b25pemVDb250ZW50TW9kdWxlIiwiQ09MVU1OUyIsIklEIiwiU0VDVElPTl9OQU1FIiwiR1JBREUiLCJDT1VSU0UiLCJTVFVERU5UUyIsIkxPR0lOX0lORk8iLCJFRElUX0RFTEVURSIsInBhcnRpY2lwYW50TmFtZXMiLCJmYWNpbGl0YXRvciIsInBhcnRpY2lwYW50VHlwZUZhY2lsaXRhdG9yVGl0bGUiLCJ0ZWFjaGVyIiwicGFydGljaXBhbnRUeXBlVGVhY2hlclRpdGxlIiwic2VjdGlvbkxpbmtGb3JtYXR0ZXIiLCJyb3dEYXRhIiwicGxUYWJsZUxheW91dFN0eWxlcyIsInRlYWNoZXJEYXNoYm9hcmRVcmwiLCJjb3Vyc2VMaW5rRm9ybWF0dGVyIiwiYXNzaWdubWVudE5hbWVzIiwiYXNzaWdubWVudFBhdGhzIiwiY291cnNlT2ZmZXJpbmdzQXJlTG9hZGVkIiwiaXNBc3NpZ25lZFNpbmdsZVVuaXRDb3Vyc2UiLCJGcmFnbWVudCIsInN0cmluZ2lmeVF1ZXJ5UGFyYW1zIiwiY3VycmVudFVuaXQiLCJjb3Vyc2VzQ2FyZEFjdGlvbiIsInNrZWxldG9uaXplQ29udGVudCIsInJhbmRvbSIsImxvZ2luSW5mb0Zvcm1hdHRlciIsIl9yZWYzIiwic2VjdGlvbkNvZGUiLCJPQXV0aFNlY3Rpb25UeXBlcyIsImNsZXZlciIsImxvZ2luVHlwZUNsZXZlciIsImdvb2dsZV9jbGFzc3Jvb20iLCJsb2dpblR5cGVHb29nbGVDbGFzc3Jvb20iLCJsdGlfdjEiLCJsb2dpblR5cGVOYW1lIiwiY29kZSIsInNlY3Rpb25Db2RlTGluayIsInN0dWRlbnRzRm9ybWF0dGVyIiwic3R1ZGVudENvdW50IiwiX3JlZjQiLCJtYW5hZ2VTdHVkZW50c1VybCIsImFkZFN0dWRlbnRzIiwibWFuYWdlU3R1ZGVudHNBcmlhTGFiZWwiLCJudW1TdHVkZW50cyIsIk93bmVkUGxTZWN0aW9uc1RhYmxlIiwic29ydGluZ0NvbHVtbnMiLCJfcmVmNSIsInRlbXAiLCJfcmVmNiIsInNlY3Rpb25EYXRhIiwiaGFuZGxlRWRpdCIsIm9uRWRpdCIsInNlbGVjdGVkQ29sdW1uIiwic2V0U3RhdGUiLCJieUNvbHVtbiIsInNvcnRpbmdPcmRlciIsIkZJUlNUIiwiYXNjIiwiZGVzYyIsInNvcnRhYmxlIiwicHJvcGVydHkiLCJoZWFkZXIiLCJsYWJlbCIsInRyYW5zZm9ybXMiLCJjZWxsIiwiZm9ybWF0dGVycyIsInBhcnRpY2lwYW50cyIsInBhcnRpY2lwYW50TmFtZUZvcm1hdHRlciIsInBhcnRpY2lwYW50VHlwZUNlbGwiLCJzdHVkZW50cyIsImxvZ2luSW5mbyIsImFjdGlvbkNlbGxGb3JtYXR0ZXIiLCJjb2xCdXR0b24iLCJ3cmFwcGVkU29ydGFibGUiLCJnZXRTb3J0aW5nQ29sdW1ucyIsIm9uU29ydCIsInNvcnRhYmxlT3B0aW9ucyIsImNvbHVtbnMiLCJnZXRDb2x1bW5zIiwic29ydGVkUm93cyIsInNvcnRlciIsIngiLCJ5IiwieiIsIm9yZGVyQnkiLCJzZWN0aW9uUm93cyIsIlByb3ZpZGVyIiwiSGVhZGVyIiwiQm9keSIsInJvd3MiLCJyb3dLZXkiLCJzb3J0YWJsZVNlY3Rpb25TaGFwZSIsIm93blByb3BzIiwiZ2V0U2VjdGlvblJvd3MiLCJfTHRpRmVlZGJhY2tCYW5uZXIiLCJfR2xvYmFsRWRpdGlvbldyYXBwZXIiLCJfZXhwZXJpbWVudHMiLCJfaW1wcmVzc2lvbkhlbHBlcnMiLCJfT3duZWRQbFNlY3Rpb25zVGFibGUiLCJfT3duZWRTZWN0aW9uc1RhYmxlIiwiX3NlY3Rpb25IZWxwZXJzIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIk93bmVkU2VjdGlvbnMiLCJ2aWV3SGlkZGVuIiwic2hvd0hpZGRlbiIsImlzUGxTZWN0aW9ucyIsInNlY3Rpb25zVG9TaG93Iiwid2l0aG91dCIsIm9uRWRpdFNlY3Rpb24iLCJleHBlcmltZW50cyIsImlzRW5hYmxlZCIsIlRFQUNIRVJfREFTSEJPQVJEX1NFQ1RJT05fQlVUVE9OUyIsInJlY29yZEltcHJlc3Npb24iLCJfcHJvdG8iLCJyZWNvcmRPcGVuRWRpdFNlY3Rpb25EZXRhaWxzIiwiaGFzU2VjdGlvbnMiLCJjb21wb25lbnQiLCJMdGlGZWVkYmFja0Jhbm5lciIsImNvbXBvbmVudElkIiwib3duZWRTZWN0aW9uc1RhYmxlIiwiYnV0dG9uQ29udGFpbmVyIiwidG9nZ2xlVmlld0hpZGRlbiIsImhpZGVBcmNoaXZlZFNlY3Rpb25zIiwidmlld0FyY2hpdmVkU2VjdGlvbnMiLCJoaWRkZW5TZWN0aW9uTGFiZWwiLCJhcmNoaXZlZFNlY3Rpb25zIiwiaGlkZGVuU2VjdGlvbkRlc2MiLCJhcmNoaXZlZFNlY3Rpb25zVGVhY2hlckRlc2NyaXB0aW9uIiwiX1RlYWNoZXJOYXZGbGFnVXRpbHMiLCJ0YWJsZUxheW91dFN0eWxlcyIsInNob3dWMlRlYWNoZXJEYXNoYm9hcmQiLCJyZXBsYWNlIiwiaGlkZGVuRm9ybWF0dGVyIiwiT3duZWRTZWN0aW9uc1RhYmxlIiwiZGF0YSIsImFjdGl2ZUNvbHVtbiIsImRpcmVjdGlvbkFycmF5IiwiZ3JhZGVDb2wiLCJtdWx0Iiwic29ydEJ5Iiwib2JqIiwiU3R1ZGVudEdyYWRlTGV2ZWxzIiwiaW5kZXhPZiIsImdyYWRlcyIsImZvcm1hdHRlZEdyYWRlcyIsImpvaW4iLCJjb2xTdHlsZSIsInNlY3Rpb25Db2wiLCJ1bnNvcnRhYmxlSGVhZGVyU3R5bGUiLCJ1bnNvcnRhYmxlSGVhZGVyUlRMIiwidW5zb3J0YWJsZUhlYWRlciIsImhpZGRlbkNvbCIsImhlYWRlckNlbGwiLCJsZWZ0SGlkZGVuQ29sIiwiZ3JhZGUiLCJncmFkZUZvcm1hdHRlciIsIl90aGlzMiIsImRldGVybWluZVNvcnRlciIsInRhYmxlIiwiYm9yZGVyIiwiYm9yZGVyTGVmdCIsInNlY3Rpb25Db2RlTm9uZSIsImxpZ2h0X2dyYXkiLCJQYWRBbmRDZW50ZXIiLCJhbnkiLCJfSGVhZGluZ3MiLCJfQ2FyZENvbnRhaW5lciIsIl9Mb2dpblR5cGVDYXJkIiwiY2FyZEluZm9CeUF1ZGllbmNlIiwic3R1ZGVudCIsInBhcnRpY2lwYW50VHlwZVN0dWRlbnRUaXRsZSIsInBhcnRpY2lwYW50VHlwZVN0dWRlbnREZXNjcmlwdGlvbiIsInBhcnRpY2lwYW50VHlwZVRlYWNoZXJEZXNjcmlwdGlvbiIsInBhcnRpY2lwYW50VHlwZUZhY2lsaXRhdG9yRGVzY3JpcHRpb24iLCJQYXJ0aWNpcGFudFR5cGVQaWNrZXIiLCJjb250YWluZXIiLCJpc1JlYnJhbmRlZCIsImJvZHlUZXh0IiwicHJvZmVzc2lvbmFsTGVhcm5pbmdQYXJ0aWNpcGFudFF1ZXN0aW9uIiwic2Nyb2xsIiwiUGFydGljaXBhbnRUeXBlQ2FyZCIsImZvb3RlciIsImRpYWxvZ0NhbmNlbCIsInN1YnRpdGxlIiwiaGVpZ2h0Iiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIiwiYm9yZGVyUmFkaXVzIiwiX1JhaWxzQXV0aGVudGljaXR5VG9rZW4iLCJfZXh0ZW5kcyIsImFzc2lnbiIsImN0YUJ1dHRvblN0eWxlIiwiYmFja2dyb3VuZCIsIm9yYW5nZSIsImJveFNoYWRvdyIsIkNsYXNzcm9vbUxpc3QiLCJjbGFzc3Jvb21zIiwib25TZWxlY3QiLCJzZWxlY3RlZElkIiwicm9zdGVyUHJvdmlkZXIiLCJjbGFzc3Jvb20iLCJjbGFzc3Jvb21Sb3ciLCJoaWdobGlnaHRSb3ciLCJjb3Vyc2Vfc3RhdGUiLCJib290c3RyYXBfZXJyb3JfdGV4dCIsImxvY2FsZSIsImZvbnRGYW1pbHkiLCJlbnJvbGxtZW50X2NvZGUiLCJOb0NsYXNzcm9vbXNGb3VuZCIsIm5vQ2xhc3Nyb29tc0ZvdW5kIiwiYWRkUmVtb3ZlR29vZ2xlQ2xhc3Nyb29tcyIsImFkZFJlbW92ZUNsZXZlckNsYXNzcm9vbXMiLCJMb2FkRXJyb3IiLCJhdXRob3JpemVHb29nbGVDbGFzc3Jvb21zVGV4dCIsIlJlYXV0aG9yaXplR29vZ2xlQ2xhc3Nyb29tIiwiZXJyb3JMb2FkaW5nUm9zdGVyZWRTZWN0aW9uc1N1cHBvcnQiLCJlcnJvckxvYWRpbmdSb3N0ZXJlZFNlY3Rpb25zIiwiUkVBVVRIT1JJWkVfVVJMIiwibWV0aG9kIiwiYWN0aW9uIiwiYXV0aG9yaXplR29vZ2xlQ2xhc3Nyb29tcyIsIlJvc3RlckRpYWxvZyIsInJlY29yZFNlY3Rpb25TZXR1cEV4aXRFdmVudCIsInNlbGVjdGVkTmFtZSIsImZpbmQiLCJoYW5kbGVJbXBvcnQiLCJyZWRpcmVjdFVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwiY291cnNlTmFtZSIsImltcG9ydFNlY3Rpb25VcmwiLCJjb3Vyc2VJZCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiJCIsImdldEpTT04iLCJmYWlsIiwianF4aHIiLCJoYW5kbGVJbXBvcnRGYWlsdXJlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInJlc3BvbnNlVGV4dCIsIm5ld1NlY3Rpb24iLCJyZWRpcmVjdFRvRWRpdFNlY3Rpb25QYWdlIiwiZXZlbnROYW1lIiwib2F1dGhTb3VyY2UiLCJzZWxlY3RHb29nbGVDbGFzc3Jvb20iLCJzZWxlY3RDbGV2ZXJTZWN0aW9uIiwiZml4ZWRIZWlnaHQiLCJoYW5kbGVDbG9zZSIsImNhbmNlbCIsImNvbnRlbnQiLCJsb2FkRXJyb3IiLCJvbkNsYXNzcm9vbVNlbGVjdGVkIiwiYnV0dG9uUHJpbWFyeSIsImJ1dHRvblNlY29uZGFyeSIsImhhbmRsZVJlZGlyZWN0Iiwib3BhY2l0eSIsImNob29zZVNlY3Rpb24iLCJjbGFzc3Jvb21TaGFwZSIsImxvYWRFcnJvclNoYXBlIiwiZGFya19jaGFyY29hbCIsInRvcCIsImRlZmF1bHRfYmx1ZSIsImlzUm9zdGVyRGlhbG9nT3BlbiIsImltcG9ydE9yVXBkYXRlUm9zdGVyIiwiY2FuY2VsSW1wb3J0Um9zdGVyRmxvdyIsInJvc3RlckltcG9ydEZhaWxlZCIsIl9jbGFzc25hbWVzIiwiX3JlYWN0Um91dGVyRG9tIiwiX3RlYWNoZXJEYXNoYm9hcmRNb2R1bGUiLCJURUFDSEVSX0RBU0hCT0FSRF9QQVRIUyIsInByb2dyZXNzIiwidGV4dFJlc3BvbnNlcyIsImFzc2Vzc21lbnRzIiwicHJvamVjdHMiLCJzdGF0cyIsIm1hbmFnZVN0dWRlbnRzIiwic3RhbmRhcmRzUmVwb3J0IiwiYWlUdXRvckNoYXRNZXNzYWdlcyIsIkxBQkVMRURfVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMiLCJ0ZWFjaGVyVGFiUHJvZ3Jlc3MiLCJ1cmwiLCJ0ZWFjaGVyVGFiU3RhdHNUZXh0UmVzcG9uc2VzIiwidGVhY2hlclRhYkFzc2Vzc21lbnRzIiwidGVhY2hlclRhYlByb2plY3RzIiwidGVhY2hlclRhYlN0YXRzIiwidGVhY2hlclRhYk1hbmFnZVN0dWRlbnRzIiwiVGVhY2hlckRhc2hib2FyZE5hdmlnYXRpb24iLCJsaW5rcyIsImFpVHV0b3JMaW5rcyIsInNob3dBSVR1dG9yVGFiIiwiYWlUdXRvciIsInJlbmRlcmVkTGlua3MiLCJuYXZDb250YWluZXIiLCJOYXZMaW5rIiwidG8iLCJpc0FjdGl2ZSIsImNsYXNzTmFtZXMiLCJsaW5rQ29udGFpbmVyIiwiYWN0aXZlTGlua0NvbnRhaW5lciIsInN0dWR5X2dyb3VwIiwic3R1ZHlHcm91cCIsInJlY29yZFN3aXRjaFRvU2VjdGlvbiIsInRvU2VjdGlvbklkIiwiZnJvbVNlY3Rpb25JZCIsIm9sZF9zZWN0aW9uX2lkIiwibmV3X3NlY3Rpb25faWQiLCJzd2l0Y2hUb1NlY3Rpb24iLCJiYXNlVXJsIiwiY3VycmVudFRhYiIsImxhc3QiLCJzcGxpdCIsInBhdGhuYW1lIiwic2VjdGlvblVybCIsInZhbHVlcyIsIl9UZWFjaGVyRGFzaGJvYXJkTmF2aWdhdGlvbiIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwibG9jYWxzIiwid2VicGFja0VtcHR5Q29udGV4dCIsInJlcSIsIm9wdGlvbnMiLCJzdHlsZVRhZ1RyYW5zZm9ybSIsInNldEF0dHJpYnV0ZXMiLCJpbnNlcnQiLCJkb21BUEkiLCJpbnNlcnRTdHlsZUVsZW1lbnQiLCJsdGlGZWVkYmFja1JlZHVjZXIiLCJMVElfRkVFREJBQ0tfRkVUQ0hfUkVRVUVTVCIsImlzTG9hZGluZyIsIkxUSV9GRUVEQkFDS19GRVRDSF9TVUNDRVNTIiwibHRpRmVlZGJhY2siLCJMVElfRkVFREJBQ0tfRkVUQ0hfRkFJTFVSRSIsIkxUSV9GRUVEQkFDS19DUkVBVEVfUkVRVUVTVCIsIkxUSV9GRUVEQkFDS19DUkVBVEVfU1VDQ0VTUyIsIkxUSV9GRUVEQkFDS19DUkVBVEVfRkFJTFVSRSIsImZldGNoTHRpRmVlZGJhY2siLCJmZXRjaCIsImhlYWRlcnMiLCJyZXNwb25zZSIsIm9rIiwianNvbiIsImNhdGNoIiwibWVzc2FnZSIsImNyZWF0ZUx0aUZlZWRiYWNrIiwiZ2V0QXV0aGVudGljaXR5VG9rZW4iLCJib2R5IiwibHRpX2ZlZWRiYWNrIiwiQkFOTkVSX1NUQVRVUyIsImZyZWV6ZSIsIlVOU0VUIiwiVU5BVkFJTEFCTEUiLCJVTkFOU1dFUkVEIiwiQU5TV0VSRUQiLCJQUkVWSU9VU0xZX0FOU1dFUkVEIiwiQ0xPU0VEIiwiRmVlZGJhY2tCYW5uZXIiLCJhbGVydEtleSIsImFuc3dlclN0YXR1cyIsImFuc3dlciIsImNsb3NlIiwiY2xvc2VMYWJlbCIsInF1ZXN0aW9uIiwicG9zaXRpdmVBbnN3ZXIiLCJuZWdhdGl2ZUFuc3dlciIsInNoYXJlTW9yZSIsInNoYXJlTW9yZUxpbmsiLCJzaGFyZU1vcmVMaW5rVGV4dCIsImlzQmFubmVyVmlzaWJsZSIsIkZhZGUiLCJpbiIsInVubW91bnRPbkV4aXQiLCJBbGVydCIsImJzU3R5bGUiLCJjdXJyZW50VXNlciIsInVzZVNlbGVjdG9yIiwidXVpZCIsInVzZVJlZHVjZXIiLCJsdGlGZWVkYmFja0FjdGlvbiIsInNldFN0YXR1cyIsImlzTHRpIiwiaXNUZWFjaGVyIiwidHJ5R2V0TG9jYWxTdG9yYWdlIiwidHJ5U2V0TG9jYWxTdG9yYWdlIiwic2F0aXNmaWVkIiwiY2xvc2VEaWFsb2ciLCJsdGlfZmVlZGJhY2tCYW5uZXJfcXVlc3Rpb24iLCJsdGlfZmVlZGJhY2tCYW5uZXJfYW5zd2VyX3Bvc2l0aXZlIiwibHRpX2ZlZWRiYWNrQmFubmVyX2Fuc3dlcl9uZWdhdGl2ZSIsImx0aV9mZWVkYmFja0Jhbm5lcl9zaGFyZU1vcmVfdGV4dCIsIkxtc0xpbmtzIiwiQURESVRJT05BTF9GRUVEQkFDS19VUkwiLCJsdGlfZmVlZGJhY2tCYW5uZXJfc2hhcmVNb3JlX2xpbmsiLCJHbG9iYWxFZGl0aW9uV3JhcHBlciIsInBhZ2VDb25maWciLCJjdXJyZW50R2xvYmFsQ29uZmlndXJhdGlvbiIsInBhZ2VzIiwiZmlsdGVySW5mbyIsIlJlZ0V4cCIsInBhdGgiLCJjb21wb25lbnRzIiwidmlzaWJsZSIsIkdsb2JhbFdyYXBwZWRDb21wb25lbnQiLCJ3cmFwcGVkUHJvcHMiLCJ1c2VySWQiLCJ1c1N0YXRlIiwiYXRSaXNrQWdlR2F0ZWRVc1N0YXRlIiwibnVtYmVyT2ZBZ2VHYXRlZFNlY3Rpb25zIiwicGF5bG9hZCIsIkNBUF9BR0VfR0FURURfU0VDVElPTlNfQkFOTkVSX1NIT1dOIiwidXNlcl9pZCIsIm51bWJlcl9vZl9hZ2VfZ2F0ZWRfc2VjdGlvbnMiLCJ1c19zdGF0ZSIsInN0YXJ0RGF0ZSIsImF0Umlza0FnZUdhdGVkRGF0ZSIsInN0YXJ0RGF0ZVRleHQiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJoZWFkc1VwIiwiY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNXYXJuaW5nIiwiY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNXYXJuaW5nX2J1dHRvbiIsIkFnZUdhdGVkU2VjdGlvbnNNb2RhbCIsIm9uQ2xvc2UiLCJyZXBvcnRFdmVudCIsImhlbHBEb2NzVXJsIiwiQ2FwTGlua3MiLCJQQVJFTlRBTF9DT05TRU5UX0dVSURFX1VSTCIsIm1vZGFsQ2xvc2VkIiwiQ0FQX0FHRV9HQVRFRF9TRUNUSU9OU19NT0RBTF9DTE9TRUQiLCJDQVBfQUdFX0dBVEVEX1NFQ1RJT05TX01PREFMX1NIT1dOIiwibW9kYWxDb250YWluZXIiLCJzZW1hbnRpY1RhZyIsIm1vZGFsSGVhZGVyIiwiY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNNb2RhbF9oZWFkZXIiLCJjaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX25vdGljZSIsImNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zTW9kYWxfYWN0aW9uIiwiQ0FQX1NUVURFTlRfV0FSTklOR19MSU5LX0NMSUNLRUQiLCJvcGVuSW5OZXdUYWIiLCJjaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX3JlYWRNb3JlIiwiQWdlR2F0ZWRTZWN0aW9uc1RhYmxlIiwibW9kYWxCdXR0b24iLCJzZXRTb3J0aW5nQ29sdW1ucyIsInNlY3Rpb25Gb3JtYXR0ZXIiLCJDQVBfQUdFX0dBVEVEX1NFQ1RJT05TX1RBQkxFX1NFQ1RJT05fTkFNRV9MSU5LX0NMSUNLRUQiLCJncmFkZXNGb3JtYXR0ZXIiLCJncmFkZXNDb2x1bW4iLCJjaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc1RhYmxlX2dyYWRlc0hlYWRlciIsImNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zVGFibGVfc2VjdGlvbkhlYWRlciIsInNlY3Rpb25Db2x1bW4iLCJzb3J0ZWREYXRhIiwid29yZCIsInBpY3R1cmUiLCJMT0dJTl9UWVBFU19XSVRIX1BBU1NXT1JEX0NPTFVNTiIsIkxPR0lOX1RZUEVTX1dJVEhfQUNUSU9OU19DT0xVTU4iLCJQSUNUVVJFX09SX1dPUkRfTE9HSU5fVFlQRVMiLCJMT0dJTl9UWVBFU19XSVRIX0dFTkRFUl9DT0xVTU4iLCJMT0dJTl9UWVBFU19XSVRIX05PX1NFQ1RJT05fQ09ERSJdLCJzb3VyY2VSb290IjoiIn0=