Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

boundless-image

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boundless-image - npm Package Compare versions

Comparing version 1.0.0-beta.4 to 1.0.0-beta.5

4

build/index.js

@@ -1,2 +0,2 @@

module.exports=function(e){function t(r){if(s[r])return s[r].exports;var a=s[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var s={};return t.m=e,t.c=s,t.i=function(e){return e},t.d=function(e,s,r){t.o(e,s)||Object.defineProperty(e,s,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var s=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(s,"a",s),s},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,s){"use strict";function r(){}t.a=r},function(e,t,s){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(s,r){return t.indexOf(r)===-1&&(s[r]=e[r]),s},{})}t.a=r},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("classnames")},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(2),a=s.n(r),o=s(3),n=s.n(o),i=s(0),l=s(1),u=function(e){function t(){var e,s,r,a;babelHelpers.classCallCheck(this,t);for(var o=arguments.length,n=Array(o),i=0;i<o;i++)n[i]=arguments[i];return s=r=babelHelpers.possibleConstructorReturn(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(n))),r.state={status:t.status.LOADING},a=s,babelHelpers.possibleConstructorReturn(r,a)}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"componentWillReceiveProps",value:function(e){e.src!==this.props.src&&(this.resetPreloader(),this.setState({status:t.status.LOADING}))}},{key:"componentDidMount",value:function(){this.preload()}},{key:"componentDidUpdate",value:function(){this.preload()}},{key:"componentWillUnmount",value:function(){this.resetPreloader()}},{key:"resetPreloader",value:function(){this.loader.onload=null,this.loader.onerror=null,this.loader=null}},{key:"preload",value:function(){var e=this;this.loader||(this.loader=document.createElement("img"),this.loader.onload=function(){return e.setState({status:t.status.LOADED})},this.loader.onerror=function(){return e.setState({status:t.status.ERROR})},this.loader.src=this.props.src)}},{key:"renderImage",value:function(){return this.props.displayAsBackgroundImage?a.a.createElement("div",babelHelpers.extends({},this.props.imageProps,{ref:"image",className:n()("b-image",this.props.imageProps.className),title:this.props.alt,style:babelHelpers.extends({},this.props.imageProps.style,{backgroundImage:"url("+this.props.src+")"})})):a.a.createElement("img",babelHelpers.extends({},this.props.imageProps,{ref:"image",className:n()("b-image",this.props.imageProps.className),src:this.props.src,alt:this.props.alt,onLoad:i.a,onError:i.a}))}},{key:"renderStatus",value:function(){return a.a.createElement("div",babelHelpers.extends({},this.props.statusProps,{ref:"status",className:n()("b-image-status",this.props.statusProps.className,{"b-image-loading":this.state.status===t.status.LOADING,"b-image-loaded":this.state.status===t.status.LOADED,"b-image-error":this.state.status===t.status.ERROR}),role:"presentation"}))}},{key:"render",value:function(){return a.a.createElement("div",babelHelpers.extends({},s.i(l.a)(this.props,t.internalKeys),{ref:"wrapper",className:n()("b-image-wrapper",this.props.className)}),this.renderImage(),this.renderStatus())}}]),t}(a.a.PureComponent);u.status={LOADING:"LOADING",LOADED:"LOADED",ERROR:"ERROR"},u.propTypes={alt:r.PropTypes.string,displayAsBackgroundImage:r.PropTypes.bool,imageProps:r.PropTypes.object,src:r.PropTypes.string.isRequired,statusProps:r.PropTypes.object},u.defaultProps={alt:null,displayAsBackgroundImage:!1,imageProps:{},src:"about:blank",statusProps:{}},u.internalKeys=Object.keys(u.defaultProps),t.default=u}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGZmZDZiYjQ1N2Y0OWYyODUyYjQ2Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4LmpzIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImFtZFwiOlwicmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcInJvb3RcIjpcIlJlYWN0XCJ9Iiwid2VicGFjazovLy9leHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn0iLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLWltYWdlL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaW5zdGFsbGVkTW9kdWxlcyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwidmFsdWUiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJnZXQiLCJuIiwiX19lc01vZHVsZSIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsIl9fd2VicGFja19leHBvcnRzX18iLCJub29wIiwib21pdEtleXNGcm9tU291cmNlT2JqZWN0Iiwic291cmNlIiwib21pdHRlZEtleXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJrZXlzIiwicmVkdWNlIiwiaGFzaCIsImtleSIsImluZGV4T2YiLCJyZXF1aXJlIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fIiwiSW1hZ2UiLCJfUmVhY3QkUHVyZUNvbXBvbmVudCIsIl9yZWYiLCJfdGVtcCIsIl90aGlzIiwiX3JldCIsImJhYmVsSGVscGVycyIsImNsYXNzQ2FsbENoZWNrIiwidGhpcyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwicG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9fcHJvdG9fXyIsImdldFByb3RvdHlwZU9mIiwiYXBwbHkiLCJjb25jYXQiLCJzdGF0ZSIsInN0YXR1cyIsIkxPQURJTkciLCJpbmhlcml0cyIsImNyZWF0ZUNsYXNzIiwibmV4dFByb3BzIiwic3JjIiwicHJvcHMiLCJyZXNldFByZWxvYWRlciIsInNldFN0YXRlIiwicHJlbG9hZCIsImxvYWRlciIsIm9ubG9hZCIsIm9uZXJyb3IiLCJfdGhpczIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJMT0FERUQiLCJFUlJPUiIsImRpc3BsYXlBc0JhY2tncm91bmRJbWFnZSIsImEiLCJleHRlbmRzIiwiaW1hZ2VQcm9wcyIsInJlZiIsImNsYXNzTmFtZSIsInRpdGxlIiwiYWx0Iiwic3R5bGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJvbkxvYWQiLCJvbkVycm9yIiwic3RhdHVzUHJvcHMiLCJiLWltYWdlLWxvYWRpbmciLCJiLWltYWdlLWxvYWRlZCIsImItaW1hZ2UtZXJyb3IiLCJyb2xlIiwiaW50ZXJuYWxLZXlzIiwicmVuZGVySW1hZ2UiLCJyZW5kZXJTdGF0dXMiLCJQdXJlQ29tcG9u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LEVBQUEsVUFBVXBCLE9BS3RCa0QsSUFBSzlCLEVBQUEsVUFBVWlFLE9BQU9FLFdBS3RCWixZQUFhdkQsRUFBQSxVQUFVcEIsUUEvQlYwQixFQWtDVjhELGNBQ0hsQixJQUFLLEtBQ0xQLDBCQUEwQixFQUMxQkcsY0FDQWhCLElBQUssY0FDTHlCLGdCQXZDYWpELEVBMENWc0QsYUFBZXZGLE9BQU9xQixLQUFLWSxFQUFNOEQsY055RHcySGxGLEVBQTZCLFFNbkc1NUhvQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID1cbi8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4vKioqKioqLyBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbi8qKioqKiovIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuLyoqKioqKi8gXHRcdHJldHVybiBnZXR0ZXI7XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IG5vb3A7XG5mdW5jdGlvbiBub29wKCl7fVxuXG4vKioqLyB9KSxcbi8qIDEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdDtcbmZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2Upe3ZhciBvbWl0dGVkS2V5cz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMV06W107cmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uIHJlbG9jYXRlQWNjZXB0ZWRLZXlzKGhhc2gsa2V5KXtpZihvbWl0dGVkS2V5cy5pbmRleE9mKGtleSk9PT0tMSl7aGFzaFtrZXldPXNvdXJjZVtrZXldO31yZXR1cm4gaGFzaDt9LHt9KTt9XG5cbi8qKiovIH0pLFxuLyogMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3dlYnBhY2tfZXhwb3J0c19fLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xudmFyIEltYWdlPWZ1bmN0aW9uKF9SZWFjdCRQdXJlQ29tcG9uZW50KXtiYWJlbEhlbHBlcnMuaW5oZXJpdHMoSW1hZ2UsX1JlYWN0JFB1cmVDb21wb25lbnQpO2Z1bmN0aW9uIEltYWdlKCl7dmFyIF9yZWY7dmFyIF90ZW1wLF90aGlzLF9yZXQ7YmFiZWxIZWxwZXJzLmNsYXNzQ2FsbENoZWNrKHRoaXMsSW1hZ2UpO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5Kyspe2FyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO31yZXR1cm4gX3JldD0oX3RlbXA9KF90aGlzPWJhYmVsSGVscGVycy5wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKF9yZWY9SW1hZ2UuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW1hZ2UpKS5jYWxsLmFwcGx5KF9yZWYsW3RoaXNdLmNvbmNhdChhcmdzKSkpLF90aGlzKSxfdGhpcy5zdGF0ZT17c3RhdHVzOkltYWdlLnN0YXR1cy5MT0FESU5HfSxfdGVtcCksYmFiZWxIZWxwZXJzLnBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fWJhYmVsSGVscGVycy5jcmVhdGVDbGFzcyhJbWFnZSxbe2tleTonY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpe2lmKG5leHRQcm9wcy5zcmMhPT10aGlzLnByb3BzLnNyYyl7dGhpcy5yZXNldFByZWxvYWRlcigpO3RoaXMuc2V0U3RhdGUoe3N0YXR1czpJbWFnZS5zdGF0dXMuTE9BRElOR30pO319fSx7a2V5Oidjb21wb25lbnREaWRNb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByZWxvYWQoKTt9fSx7a2V5Oidjb21wb25lbnREaWRVcGRhdGUnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMucHJlbG9hZCgpO319LHtrZXk6J2NvbXBvbmVudFdpbGxVbm1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucmVzZXRQcmVsb2FkZXIoKTt9fSx7a2V5OidyZXNldFByZWxvYWRlcicsdmFsdWU6ZnVuY3Rpb24gcmVzZXRQcmVsb2FkZXIoKXt0aGlzLmxvYWRlci5vbmxvYWQ9bnVsbDt0aGlzLmxvYWRlci5vbmVycm9yPW51bGw7dGhpcy5sb2FkZXI9bnVsbDt9fSx7a2V5OidwcmVsb2FkJyx2YWx1ZTpmdW5jdGlvbiBwcmVsb2FkKCl7dmFyIF90aGlzMj10aGlzO2lmKHRoaXMubG9hZGVyKXtyZXR1cm47fXRoaXMubG9hZGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO3RoaXMubG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBfdGhpczIuc2V0U3RhdGUoe3N0YXR1czpJbWFnZS5zdGF0dXMuTE9BREVEfSk7fTt0aGlzLmxvYWRlci5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIF90aGlzMi5zZXRTdGF0ZSh7c3RhdHVzOkltYWdlLnN0YXR1cy5FUlJPUn0pO307dGhpcy5sb2FkZXIuc3JjPXRoaXMucHJvcHMuc3JjO319LHtrZXk6J3JlbmRlckltYWdlJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJJbWFnZSgpe2lmKHRoaXMucHJvcHMuZGlzcGxheUFzQmFja2dyb3VuZEltYWdlKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sdGhpcy5wcm9wcy5pbWFnZVByb3BzLHtyZWY6J2ltYWdlJyxjbGFzc05hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0KCkoJ2ItaW1hZ2UnLHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5jbGFzc05hbWUpLHRpdGxlOnRoaXMucHJvcHMuYWx0LHN0eWxlOmJhYmVsSGVscGVycy5leHRlbmRzKHt9LHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5zdHlsZSx7YmFja2dyb3VuZEltYWdlOid1cmwoJyt0aGlzLnByb3BzLnNyYysnKSd9KX0pKTt9cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KCdpbWcnLGJhYmVsSGVscGVycy5leHRlbmRzKHt9LHRoaXMucHJvcHMuaW1hZ2VQcm9wcyx7cmVmOidpbWFnZScsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWltYWdlJyx0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKSxzcmM6dGhpcy5wcm9wcy5zcmMsYWx0OnRoaXMucHJvcHMuYWx0LG9uTG9hZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10sb25FcnJvcjpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL119KSk7fX0se2tleToncmVuZGVyU3RhdHVzJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJTdGF0dXMoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sdGhpcy5wcm9wcy5zdGF0dXNQcm9wcyx7cmVmOidzdGF0dXMnLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQoKSgnYi1pbWFnZS1zdGF0dXMnLHRoaXMucHJvcHMuc3RhdHVzUHJvcHMuY2xhc3NOYW1lLHsnYi1pbWFnZS1sb2FkaW5nJzp0aGlzLnN0YXRlLnN0YXR1cz09PUltYWdlLnN0YXR1cy5MT0FESU5HLCdiLWltYWdlLWxvYWRlZCc6dGhpcy5zdGF0ZS5zdGF0dXM9PT1JbWFnZS5zdGF0dXMuTE9BREVELCdiLWltYWdlLWVycm9yJzp0aGlzLnN0YXRlLnN0YXR1cz09PUltYWdlLnN0YXR1cy5FUlJPUn0pLHJvbGU6J3ByZXNlbnRhdGlvbid9KSk7fX0se2tleToncmVuZGVyJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLEltYWdlLmludGVybmFsS2V5cykse3JlZjond3JhcHBlcicsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWltYWdlLXdyYXBwZXInLHRoaXMucHJvcHMuY2xhc3NOYW1lKX0pLHRoaXMucmVuZGVySW1hZ2UoKSx0aGlzLnJlbmRlclN0YXR1cygpKTt9fV0pO3JldHVybiBJbWFnZTt9KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5QdXJlQ29tcG9uZW50KTtJbWFnZS5zdGF0dXM9e0xPQURJTkc6J0xPQURJTkcnLExPQURFRDonTE9BREVEJyxFUlJPUjonRVJST1InfTtJbWFnZS5wcm9wVHlwZXM9e2FsdDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmJvb2wsaW1hZ2VQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5vYmplY3Qsc3JjOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZy5pc1JlcXVpcmVkLHN0YXR1c1Byb3BzOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm9iamVjdH07SW1hZ2UuZGVmYXVsdFByb3BzPXthbHQ6bnVsbCxkaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2U6ZmFsc2UsaW1hZ2VQcm9wczp7fSxzcmM6J2Fib3V0OmJsYW5rJyxzdGF0dXNQcm9wczp7fX07SW1hZ2UuaW50ZXJuYWxLZXlzPU9iamVjdC5rZXlzKEltYWdlLmRlZmF1bHRQcm9wcyk7LyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiZGVmYXVsdFwiXSA9IEltYWdlO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgZmZkNmJiNDU3ZjQ5ZjI4NTJiNDYiLCIvKipcbiAqIEEgZHVtbXkgZnVuY3Rpb24gd2l0aCBubyBzaWRlIGVmZmVjdHMuIENvbW1vbmx5IHVzZWQgd2hlbiBtb2NraW5nIGludGVyZmFjZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXguanMiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiYW1kXCI6XCJyZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwicm9vdFwiOlwiUmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn1cbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBub29wIGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4JztcbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuXG4vKipcbiMgSW1hZ2Vcbl9fQW4gaW1hZ2UgYmxvY2sgd2l0aCBwbGFjZWhvbGRlciBzdXBwb3J0IGZvciBsb2FkaW5nIGFuZCBmYWxsYmFjayBzY2VuYXJpb3MuX19cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW1hZ2UgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgc3RhdHVzID0ge1xuICAgICAgICBMT0FESU5HOiAnTE9BRElORycsXG4gICAgICAgIExPQURFRDogJ0xPQURFRCcsXG4gICAgICAgIEVSUk9SOiAnRVJST1InLFxuICAgIH1cblxuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhIHdyaXR0ZW4gZGVzY3JpcHRpb24gb2YgdGhlIGltYWdlIGZvciBzZWFyY2ggZW5naW5lcywgaG92ZXJ0ZXh0IGFuZCB0aG9zZSB1c2luZyBhY2Nlc3NpYmlsaXR5IHRlY2hub2xvZ2llczsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlYCBhcyB0aGUgSFRNTCBhdHRyaWJ1dGVzIGBhbHRgIG9yIGB0aXRsZWAsIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiByZW5kZXJlZCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGVtaXRzIHRoZSBpbWFnZSBhcyBhIGA8ZGl2PmAgd2l0aCBgYmFja2dyb3VuZC1pbWFnZWAgY3NzIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIGA8aW1nPmBcbiAgICAgICAgICovXG4gICAgICAgIGRpc3BsYXlBc0JhY2tncm91bmRJbWFnZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBbUmVhY3Qtc3VwcG9ydGVkIGF0dHJpYnV0ZV0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90YWdzLWFuZC1hdHRyaWJ1dGVzLmh0bWwjaHRtbC1hdHRyaWJ1dGVzKTsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlYCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBpbWFnZVByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhIHZhbGlkIHBhdGggdG8gdGhlIGRlc2lyZWQgaW1hZ2VcbiAgICAgICAgICovXG4gICAgICAgIHNyYzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbnkgW1JlYWN0LXN1cHBvcnRlZCBhdHRyaWJ1dGVdKGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdGFncy1hbmQtYXR0cmlidXRlcy5odG1sI2h0bWwtYXR0cmlidXRlcyk7IGFwcGxpZWQgdG8gdGhlIGAuYi1pbWFnZS1zdGF0dXNgIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIHN0YXR1c1Byb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGFsdDogbnVsbCxcbiAgICAgICAgZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOiBmYWxzZSxcbiAgICAgICAgaW1hZ2VQcm9wczoge30sXG4gICAgICAgIHNyYzogJ2Fib3V0OmJsYW5rJyxcbiAgICAgICAgc3RhdHVzUHJvcHM6IHt9LFxuICAgIH1cblxuICAgIHN0YXRpYyBpbnRlcm5hbEtleXMgPSBPYmplY3Qua2V5cyhJbWFnZS5kZWZhdWx0UHJvcHMpXG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgICAgc3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BRElORyxcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAobmV4dFByb3BzLnNyYyAhPT0gdGhpcy5wcm9wcy5zcmMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRQcmVsb2FkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3N0YXR1czogSW1hZ2Uuc3RhdHVzLkxPQURJTkd9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnByZWxvYWQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnJlc2V0UHJlbG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcmVzZXRQcmVsb2FkZXIoKSB7XG4gICAgICAgIHRoaXMubG9hZGVyLm9ubG9hZCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9hZGVyLm9uZXJyb3IgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRlciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJlbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9hZGVyKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMubG9hZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG5cbiAgICAgICAgdGhpcy5sb2FkZXIub25sb2FkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BREVEfSk7XG4gICAgICAgIHRoaXMubG9hZGVyLm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzdGF0dXM6IEltYWdlLnN0YXR1cy5FUlJPUn0pO1xuXG4gICAgICAgIHRoaXMubG9hZGVyLnNyYyA9IHRoaXMucHJvcHMuc3JjO1xuICAgIH1cblxuICAgIHJlbmRlckltYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5pbWFnZVByb3BzfVxuICAgICAgICAgICAgICAgICAgICByZWY9J2ltYWdlJ1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdiLWltYWdlJywgdGhpcy5wcm9wcy5pbWFnZVByb3BzLmNsYXNzTmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXt0aGlzLnByb3BzLmFsdH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucHJvcHMuaW1hZ2VQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYHVybCgke3RoaXMucHJvcHMuc3JjfSlgLFxuICAgICAgICAgICAgICAgICAgICB9fSAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuaW1hZ2VQcm9wc31cbiAgICAgICAgICAgICAgICByZWY9J2ltYWdlJ1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2UnLCB0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgICAgICAgICAgICBzcmM9e3RoaXMucHJvcHMuc3JjfVxuICAgICAgICAgICAgICAgIGFsdD17dGhpcy5wcm9wcy5hbHR9XG4gICAgICAgICAgICAgICAgb25Mb2FkPXtub29wfVxuICAgICAgICAgICAgICAgIG9uRXJyb3I9e25vb3B9IC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyU3RhdHVzKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiB7Li4udGhpcy5wcm9wcy5zdGF0dXNQcm9wc31cbiAgICAgICAgICAgICAgICAgcmVmPSdzdGF0dXMnXG4gICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2Utc3RhdHVzJywgdGhpcy5wcm9wcy5zdGF0dXNQcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtbG9hZGluZyc6IHRoaXMuc3RhdGUuc3RhdHVzID09PSBJbWFnZS5zdGF0dXMuTE9BRElORyxcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtbG9hZGVkJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5MT0FERUQsXG4gICAgICAgICAgICAgICAgICAgICdiLWltYWdlLWVycm9yJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5FUlJPUixcbiAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgIHJvbGU9J3ByZXNlbnRhdGlvbicgLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgey4uLm9taXQodGhpcy5wcm9wcywgSW1hZ2UuaW50ZXJuYWxLZXlzKX1cbiAgICAgICAgICAgICAgICByZWY9J3dyYXBwZXInXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1pbWFnZS13cmFwcGVyJywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJJbWFnZSgpfVxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlclN0YXR1cygpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLWltYWdlL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==
module.exports=function(e){function t(s){if(r[s])return r[s].exports;var o=r[s]={i:s,l:!1,exports:{}};return e[s].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,s){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:s})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,r){"use strict";function s(){}t.a=s},function(e,t,r){"use strict";function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(r,s){return t.indexOf(s)===-1&&(r[s]=e[s]),r},{})}t.a=s},function(e,t){e.exports=require("classnames")},function(e,t){e.exports=require("react")},function(e,t,r){"use strict";function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function n(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=r(3),i=r.n(a),u=r(2),p=r.n(u),l=r(0),c=r(1),f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},d=function(){function e(e,t){for(var r=0;r<t.length;r++){var s=t[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,r,s){return r&&e(t.prototype,r),s&&e(t,s),t}}(),m=function(e){function t(){var e,r,n,a;s(this,t);for(var i=arguments.length,u=Array(i),p=0;p<i;p++)u[p]=arguments[p];return r=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.state={status:t.status.LOADING},a=r,o(n,a)}return n(t,e),d(t,[{key:"componentWillReceiveProps",value:function(e){e.src!==this.props.src&&(this.resetPreloader(),this.setState({status:t.status.LOADING}))}},{key:"componentDidMount",value:function(){this.preload()}},{key:"componentDidUpdate",value:function(){this.preload()}},{key:"componentWillUnmount",value:function(){this.resetPreloader()}},{key:"resetPreloader",value:function(){this.loader.onload=null,this.loader.onerror=null,this.loader=null}},{key:"preload",value:function(){var e=this;this.loader||(this.loader=document.createElement("img"),this.loader.onload=function(){return e.setState({status:t.status.LOADED})},this.loader.onerror=function(){return e.setState({status:t.status.ERROR})},this.loader.src=this.props.src)}},{key:"renderImage",value:function(){return this.props.displayAsBackgroundImage?i.a.createElement("div",f({},this.props.imageProps,{ref:"image",className:p()("b-image",this.props.imageProps.className),title:this.props.alt,style:f({},this.props.imageProps.style,{backgroundImage:"url("+this.props.src+")"})})):i.a.createElement("img",f({},this.props.imageProps,{ref:"image",className:p()("b-image",this.props.imageProps.className),src:this.props.src,alt:this.props.alt,onLoad:l.a,onError:l.a}))}},{key:"renderStatus",value:function(){return i.a.createElement("div",f({},this.props.statusProps,{ref:"status",className:p()("b-image-status",this.props.statusProps.className,{"b-image-loading":this.state.status===t.status.LOADING,"b-image-loaded":this.state.status===t.status.LOADED,"b-image-error":this.state.status===t.status.ERROR}),role:"presentation"}))}},{key:"render",value:function(){return i.a.createElement("div",f({},r.i(c.a)(this.props,t.internalKeys),{ref:"wrapper",className:p()("b-image-wrapper",this.props.className)}),this.renderImage(),this.renderStatus())}}]),t}(i.a.PureComponent);m.status={LOADING:"LOADING",LOADED:"LOADED",ERROR:"ERROR"},m.propTypes={alt:a.PropTypes.string,displayAsBackgroundImage:a.PropTypes.bool,imageProps:a.PropTypes.object,src:a.PropTypes.string.isRequired,statusProps:a.PropTypes.object},m.defaultProps={alt:null,displayAsBackgroundImage:!1,imageProps:{},src:"about:blank",statusProps:{}},m.internalKeys=Object.keys(m.defaultProps),t.default=m}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGFmNWFiMDc2MGI4MDIxYjBiYTE2Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4LmpzIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwiY2xhc3NuYW1lc1wifSIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtaW1hZ2UvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpbnN0YWxsZWRNb2R1bGVzIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJ2YWx1ZSIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm4iLCJfX2VzTW9kdWxlIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIm5vb3AiLCJvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3QiLCJzb3VyY2UiLCJvbWl0dGVkS2V5cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImtleXMiLCJyZWR1Y2UiLCJoYXNoIiwia2V5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJzZWxmIiwiUmVmZXJlbmNlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsIndyaXRhYmxlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfbm9vcF9pbmRleF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18iLCJfZXh0ZW5kcyIsImFzc2lnbiIsInRhcmdldCIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJJbWFnZSIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwidGhpcyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsInN0YXRlIiwic3RhdHVzIiwiTE9BRElORyIsIm5leHRQcm9wcyIsInNyYyIsInJlc2V0UHJlbG9hZGVyIiwic2V0U3RhdGUiLCJwcmVsb2FkIiwibG9hZGVyIiwib25sb2FkIiwib25lcnJvciIsIl90aGlzMiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIkxPQURFRCIsIkVSUk9SIiwiZGlzcGxheUFzQmFja2dyb3VuZEltYWdlIiwiYSIsImltYWdlUHJvcHMiLCJyZWYiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImFsdCIsInN0eWxlIiwiYmFja2dyb3VuZEltYWdlIiwib25Mb2FkIiwib25FcnJvciIsInN0YXR1c1Byb3BzIiwiYi1pbWFnZS1sb2FkaW5nIiwiYi1pbWFnZS1sb2FkZWQiLCJiLWltYWdlLWVycm9yIiwicm9sZSIsImludGVybmFsS2V5cyIsInJlbmRlckltYWdlIiwicmVuZGVyU3RhdHVzIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJpc1JlcXVpcmVkIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBT0MsUUFDRSxTQUFVQyxHQ0duQixRQUFBQyxHQUFBQyxHQUdBLEdBQUFDLEVBQUFELEdBQ0EsTUFBQUMsR0FBQUQsR0FBQUgsT0FHQSxJQUFBRCxHQUFBSyxFQUFBRCxJQUNBRSxFQUFBRixFQUNBRyxHQUFBLEVBQ0FOLFdBVUEsT0FOQUMsR0FBQUUsR0FBQUksS0FBQVIsRUFBQUMsUUFBQUQsSUFBQUMsUUFBQUUsR0FHQUgsRUFBQU8sR0FBQSxFQUdBUCxFQUFBQyxRQXZCQSxHQUFBSSxLQStEQSxPQW5DQUYsR0FBQU0sRUFBQVAsRUFHQUMsRUFBQU8sRUFBQUwsRUFHQUYsRUFBQUcsRUFBQSxTQUFBSyxHQUEyQyxNQUFBQSxJQUczQ1IsRUFBQVMsRUFBQSxTQUFBWCxFQUFBWSxFQUFBQyxHQUNBWCxFQUFBWSxFQUFBZCxFQUFBWSxJQUNBRyxPQUFBQyxlQUFBaEIsRUFBQVksR0FDQUssY0FBQSxFQUNBQyxZQUFBLEVBQ0FDLElBQUFOLEtBTUFYLEVBQUFrQixFQUFBLFNBQUFyQixHQUNBLEdBQUFjLEdBQUFkLEtBQUFzQixXQUNBLFdBQTJCLE1BQUF0QixHQUFBLFNBQzNCLFdBQWlDLE1BQUFBLEdBRWpDLE9BREFHLEdBQUFTLEVBQUFFLEVBQUEsSUFBQUEsR0FDQUEsR0FJQVgsRUFBQVksRUFBQSxTQUFBUSxFQUFBQyxHQUFzRCxNQUFBUixRQUFBUyxVQUFBQyxlQUFBbEIsS0FBQWUsRUFBQUMsSUFHdERyQixFQUFBd0IsRUFBQSxHQUdBeEIsSUFBQXlCLEVBQUEsS0RPTSxTQUFVNUIsRUFBUTZCLEVBQXFCMUIsR0FFN0MsWUV0RWUsU0FBUzJCLE1GdUVTRCxFQUF1QixFQUFJQyxHQUt0RCxTQUFVOUIsRUFBUTZCLEVBQXFCMUIsR0FFN0MsWUc5RWUsU0FBUzRCLEdBQXlCQyxHQUEwQixHQUFsQkMsR0FBa0JDLFVBQUFDLE9BQUEsR0FBQUMsU0FBQUYsVUFBQSxHQUFBQSxVQUFBLEtBQ3ZFLE9BQU9sQixRQUFPcUIsS0FBS0wsR0FBUU0sT0FBTyxTQUE4QkMsRUFBTUMsR0FLbEUsTUFKSVAsR0FBWVEsUUFBUUQsTUFBUyxJQUM3QkQsRUFBS0MsR0FBT1IsRUFBT1EsSUFHaEJELE9IeUVrQlYsRUFBdUIsRUFBSUUsR0FLdEQsU0FBVS9CLEVBQVFDLEdJdkZ4QkQsRUFBQUMsUUFBQXlDLFFBQUEsZUo2Rk0sU0FBVTFDLEVBQVFDLEdLN0Z4QkQsRUFBQUMsUUFBQXlDLFFBQUEsVUxtR00sU0FBVTFDLEVBQVE2QixFQUFxQjFCLEdBRTdDLFlBUTh0QixTQUFTd0MsR0FBZ0JDLEVBQVNDLEdBQWEsS0FBS0QsWUFBb0JDLElBQWMsS0FBTSxJQUFJQyxXQUFVLHFDQUF1QyxRQUFTQyxHQUEyQkMsRUFBS3hDLEdBQU0sSUFBSXdDLEVBQU0sS0FBTSxJQUFJQyxnQkFBZSw0REFBOEQsUUFBT3pDLEdBQXFCLGdCQUFQQSxJQUErQixrQkFBUEEsR0FBd0J3QyxFQUFMeEMsRUFBVyxRQUFTMEMsR0FBVUMsRUFBU0MsR0FBWSxHQUF1QixrQkFBYkEsSUFBc0MsT0FBYkEsRUFBbUIsS0FBTSxJQUFJTixXQUFVLGlFQUFrRU0sR0FBYUQsR0FBUzFCLFVBQVVULE9BQU9xQyxPQUFPRCxHQUFZQSxFQUFXM0IsV0FBVzZCLGFBQWEzQyxNQUFNd0MsRUFBU2hDLFlBQVcsRUFBTW9DLFVBQVMsRUFBS3JDLGNBQWEsS0FBV2tDLElBQVdwQyxPQUFPd0MsZUFBZXhDLE9BQU93QyxlQUFlTCxFQUFTQyxHQUFZRCxFQUFTTSxVQUFVTCxHQVBoZ0RwQyxPQUFPQyxlQUFlWSxFQUFxQixjQUFnQmxCLE9BQU8sR0FDN0MsSUFBSStDLEdBQXNDdkQsRUFBb0IsR0FDMUR3RCxFQUE4Q3hELEVBQW9Ca0IsRUFBRXFDLEdBQ3BFRSxFQUEyQ3pELEVBQW9CLEdBQy9EMEQsRUFBbUQxRCxFQUFvQmtCLEVBQUV1QyxHQUN6RUUsRUFBNEQzRCxFQUFvQixHQUNoRjRELEVBQWlFNUQsRUFBb0IsR0FDMUc2RCxFQUFTaEQsT0FBT2lELFFBQVEsU0FBU0MsR0FBUSxJQUFJLEdBQUk1RCxHQUFFLEVBQUVBLEVBQUU0QixVQUFVQyxPQUFPN0IsSUFBSSxDQUFDLEdBQUkwQixHQUFPRSxVQUFVNUIsRUFBRyxLQUFJLEdBQUlrQyxLQUFPUixHQUFXaEIsT0FBT1MsVUFBVUMsZUFBZWxCLEtBQUt3QixFQUFPUSxLQUFNMEIsRUFBTzFCLEdBQUtSLEVBQU9RLElBQVEsTUFBTzBCLElBQWFDLEVBQWEsV0FBVyxRQUFTQyxHQUFpQkYsRUFBT0csR0FBTyxJQUFJLEdBQUkvRCxHQUFFLEVBQUVBLEVBQUUrRCxFQUFNbEMsT0FBTzdCLElBQUksQ0FBQyxHQUFJZ0UsR0FBV0QsRUFBTS9ELEVBQUdnRSxHQUFXbkQsV0FBV21ELEVBQVduRCxhQUFZLEVBQU1tRCxFQUFXcEQsY0FBYSxFQUFRLFNBQVVvRCxLQUFXQSxFQUFXZixVQUFTLEdBQUt2QyxPQUFPQyxlQUFlaUQsRUFBT0ksRUFBVzlCLElBQUk4QixJQUFjLE1BQU8sVUFBU3pCLEVBQVkwQixFQUFXQyxHQUF1SSxNQUF2SEQsSUFBV0gsRUFBaUJ2QixFQUFZcEIsVUFBVThDLEdBQWVDLEdBQVlKLEVBQWlCdkIsRUFBWTJCLEdBQW9CM0IsTU1uR3ZyQjRCLEVObUdpZ0QsU0FBU0MsR0FBNEQsUUFBU0QsS0FBUSxHQUFJRSxHQUFTQyxFQUFNQyxFQUFNQyxDQUFLbkMsR0FBZ0JvQyxLQUFLTixFQUFPLEtBQUksR0FBSU8sR0FBSzlDLFVBQVVDLE9BQU84QyxFQUFLQyxNQUFNRixHQUFNRyxFQUFLLEVBQUVBLEVBQUtILEVBQUtHLElBQVFGLEVBQUtFLEdBQU1qRCxVQUFVaUQsRUFBTyxPQUFhUCxHQUFPQyxFQUFNOUIsRUFBMkJnQyxNQUFNSixFQUFLRixFQUFNaEIsV0FBV3pDLE9BQU9vRSxlQUFlWCxJQUFRakUsS0FBSzZFLE1BQU1WLEdBQU1JLE1BQU1PLE9BQU9MLEtBQWVKLEVNdkRsNkRVLE9BQ0lDLE9BQVFmLEVBQU1lLE9BQU9DLFNOc0RvdkRYLEVBQStMRixFQUFPN0IsRUFBMkI4QixFQUFNQyxHQUE4bkYsTUFBamtHNUIsR0FBVXVCLEVBQU1DLEdBQTBiUCxFQUFhTSxJQUFRakMsSUFBSSw0QkFBNEI3QixNQUFNLFNNbkQ1aEUrRSxHQUNsQkEsRUFBVUMsTUFBUVosS0FBS1YsTUFBTXNCLE1BQzdCWixLQUFLYSxpQkFDTGIsS0FBS2MsVUFBVUwsT0FBUWYsRUFBTWUsT0FBT0MsY05nRG1xRWpELElBQUksb0JBQW9CN0IsTUFBTSxXTTNDenVFb0UsS0FBS2UsYU4yQ294RXRELElBQUkscUJBQXFCN0IsTUFBTSxXTXZDeHpFb0UsS0FBS2UsYU51Q28yRXRELElBQUksdUJBQXVCN0IsTUFBTSxXTW5DMTRFb0UsS0FBS2Esb0JObUMrN0VwRCxJQUFJLGlCQUFpQjdCLE1BQU0sV00vQi85RW9FLEtBQUtnQixPQUFPQyxPQUFTLEtBQ3JCakIsS0FBS2dCLE9BQU9FLFFBQVUsS0FDdEJsQixLQUFLZ0IsT0FBUyxRTjZCaWpGdkQsSUFBSSxVQUFVN0IsTUFBTSxXTTFCN2tGLEdBQUF1RixHQUFBbkIsSUFDRkEsTUFBS2dCLFNBRVRoQixLQUFLZ0IsT0FBU0ksU0FBU0MsY0FBYyxPQUVyQ3JCLEtBQUtnQixPQUFPQyxPQUFTLGlCQUFNRSxHQUFLTCxVQUFVTCxPQUFRZixFQUFNZSxPQUFPYSxVQUMvRHRCLEtBQUtnQixPQUFPRSxRQUFVLGlCQUFNQyxHQUFLTCxVQUFVTCxPQUFRZixFQUFNZSxPQUFPYyxTQUVoRXZCLEtBQUtnQixPQUFPSixJQUFNWixLQUFLVixNQUFNc0IsUU5rQncyRm5ELElBQUksY0FBYzdCLE1BQU0sV01kNzVGLE1BQUlvRSxNQUFLVixNQUFNa0MseUJBRVA1QyxFQUFBNkMsRUFBQUosY0FBQSxNQUFBcEMsS0FDUWUsS0FBS1YsTUFBTW9DLFlBQ2ZDLElBQUksUUFDSkMsVUFBVzlDLElBQUcsVUFBV2tCLEtBQUtWLE1BQU1vQyxXQUFXRSxXQUMvQ0MsTUFBTzdCLEtBQUtWLE1BQU13QyxJQUNsQkMsTUFBQTlDLEtBQ09lLEtBQUtWLE1BQU1vQyxXQUFXSyxPQUN6QkMsdUJBQXdCaEMsS0FBS1YsTUFBTXNCLElBQW5DLFNBTVpoQyxFQUFBNkMsRUFBQUosY0FBQSxNQUFBcEMsS0FDUWUsS0FBS1YsTUFBTW9DLFlBQ2ZDLElBQUksUUFDSkMsVUFBVzlDLElBQUcsVUFBV2tCLEtBQUtWLE1BQU1vQyxXQUFXRSxXQUMvQ2hCLElBQUtaLEtBQUtWLE1BQU1zQixJQUNoQmtCLElBQUs5QixLQUFLVixNQUFNd0MsSUFDaEJHLE9BQVFsRCxFQUFBLEVBQ1JtRCxRQUFTbkQsRUFBQSxRTlJxdEh0QixJQUFJLGVBQWU3QixNQUFNLFdNYS92SCxNQUNJZ0QsR0FBQTZDLEVBQUFKLGNBQUEsTUFBQXBDLEtBQVNlLEtBQUtWLE1BQU02QyxhQUNmUixJQUFJLFNBQ0pDLFVBQVc5QyxJQUFHLGlCQUFrQmtCLEtBQUtWLE1BQU02QyxZQUFZUCxXQUNwRFEsa0JBQW1CcEMsS0FBS1EsTUFBTUMsU0FBV2YsRUFBTWUsT0FBT0MsUUFDdEQyQixpQkFBa0JyQyxLQUFLUSxNQUFNQyxTQUFXZixFQUFNZSxPQUFPYSxPQUNyRGdCLGdCQUFpQnRDLEtBQUtRLE1BQU1DLFNBQVdmLEVBQU1lLE9BQU9jLFFBRXZEZ0IsS0FBSyxxQk5yQjJySTlFLElBQUksU0FBUzdCLE1BQU0sV00wQjV0SSxNQUNJZ0QsR0FBQTZDLEVBQUFKLGNBQUEsTUFBQXBDLEtBQ1E3RCxFQUFBRyxFQUFBeUQsRUFBQSxHQUFLZ0IsS0FBS1YsTUFBT0ksRUFBTThDLGVBQzNCYixJQUFJLFVBQ0pDLFVBQVc5QyxJQUFHLGtCQUFtQmtCLEtBQUtWLE1BQU1zQyxhQUMzQzVCLEtBQUt5QyxjQUNMekMsS0FBSzBDLG9CTmhDdW1KaEQsR01uRzFsSmQsRUFBQTZDLEVBQU1rQixjQUFwQmpELEdBQ1ZlLFFBQ0hDLFFBQVMsVUFDVFksT0FBUSxTQUNSQyxNQUFPLFNBSk03QixFQU9Wa0QsV0FJSGQsSUFBS25ELEVBQUEsVUFBVWtFLE9BS2ZyQix5QkFBMEI3QyxFQUFBLFVBQVVtRSxLQUtwQ3BCLFdBQVkvQyxFQUFBLFVBQVVuQyxPQUt0Qm9FLElBQUtqQyxFQUFBLFVBQVVrRSxPQUFPRSxXQUt0QlosWUFBYXhELEVBQUEsVUFBVW5DLFFBL0JWa0QsRUFrQ1ZzRCxjQUNIbEIsSUFBSyxLQUNMTiwwQkFBMEIsRUFDMUJFLGNBQ0FkLElBQUssY0FDTHVCLGdCQXZDYXpDLEVBMENWOEMsYUFBZXZHLE9BQU9xQixLQUFLb0MsRUFBTXNELGNOeUQ0dktsRyxFQUE2QixRTW5HaHpLNEMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9XG4vKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRpOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGw6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge31cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cbi8qKioqKiovXG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG4vKioqKioqLyB9KVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIChbXG4vKiAwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSBub29wO1xuZnVuY3Rpb24gbm9vcCgpe31cblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSBvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3Q7XG5mdW5jdGlvbiBvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3Qoc291cmNlKXt2YXIgb21pdHRlZEtleXM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzFdOltdO3JldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLGtleSl7aWYob21pdHRlZEtleXMuaW5kZXhPZihrZXkpPT09LTEpe2hhc2hba2V5XT1zb3VyY2Vba2V5XTt9cmV0dXJuIGhhc2g7fSx7fSk7fVxuXG4vKioqLyB9KSxcbi8qIDIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG4vKioqLyB9KSxcbi8qIDQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbnZhciBfZXh0ZW5kcz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9YXJndW1lbnRzW2ldO2Zvcih2YXIga2V5IGluIHNvdXJjZSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSxrZXkpKXt0YXJnZXRba2V5XT1zb3VyY2Vba2V5XTt9fX1yZXR1cm4gdGFyZ2V0O307dmFyIF9jcmVhdGVDbGFzcz1mdW5jdGlvbigpe2Z1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LHByb3BzKXtmb3IodmFyIGk9MDtpPHByb3BzLmxlbmd0aDtpKyspe3ZhciBkZXNjcmlwdG9yPXByb3BzW2ldO2Rlc2NyaXB0b3IuZW51bWVyYWJsZT1kZXNjcmlwdG9yLmVudW1lcmFibGV8fGZhbHNlO2Rlc2NyaXB0b3IuY29uZmlndXJhYmxlPXRydWU7aWYoXCJ2YWx1ZVwiaW4gZGVzY3JpcHRvcilkZXNjcmlwdG9yLndyaXRhYmxlPXRydWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxkZXNjcmlwdG9yLmtleSxkZXNjcmlwdG9yKTt9fXJldHVybiBmdW5jdGlvbihDb25zdHJ1Y3Rvcixwcm90b1Byb3BzLHN0YXRpY1Byb3BzKXtpZihwcm90b1Byb3BzKWRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLHByb3RvUHJvcHMpO2lmKHN0YXRpY1Byb3BzKWRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3Isc3RhdGljUHJvcHMpO3JldHVybiBDb25zdHJ1Y3Rvcjt9O30oKTtmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsQ29uc3RydWN0b3Ipe2lmKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3Rvcikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7fX1mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLGNhbGwpe2lmKCFzZWxmKXt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7fXJldHVybiBjYWxsJiYodHlwZW9mIGNhbGw9PT1cIm9iamVjdFwifHx0eXBlb2YgY2FsbD09PVwiZnVuY3Rpb25cIik/Y2FsbDpzZWxmO31mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3Msc3VwZXJDbGFzcyl7aWYodHlwZW9mIHN1cGVyQ2xhc3MhPT1cImZ1bmN0aW9uXCImJnN1cGVyQ2xhc3MhPT1udWxsKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2Ygc3VwZXJDbGFzcyk7fXN1YkNsYXNzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MmJnN1cGVyQ2xhc3MucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6c3ViQ2xhc3MsZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfX0pO2lmKHN1cGVyQ2xhc3MpT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcyxzdXBlckNsYXNzKTpzdWJDbGFzcy5fX3Byb3RvX189c3VwZXJDbGFzczt9dmFyIEltYWdlPWZ1bmN0aW9uKF9SZWFjdCRQdXJlQ29tcG9uZW50KXtfaW5oZXJpdHMoSW1hZ2UsX1JlYWN0JFB1cmVDb21wb25lbnQpO2Z1bmN0aW9uIEltYWdlKCl7dmFyIF9yZWY7dmFyIF90ZW1wLF90aGlzLF9yZXQ7X2NsYXNzQ2FsbENoZWNrKHRoaXMsSW1hZ2UpO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5Kyspe2FyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO31yZXR1cm4gX3JldD0oX3RlbXA9KF90aGlzPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKF9yZWY9SW1hZ2UuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW1hZ2UpKS5jYWxsLmFwcGx5KF9yZWYsW3RoaXNdLmNvbmNhdChhcmdzKSkpLF90aGlzKSxfdGhpcy5zdGF0ZT17c3RhdHVzOkltYWdlLnN0YXR1cy5MT0FESU5HfSxfdGVtcCksX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fV9jcmVhdGVDbGFzcyhJbWFnZSxbe2tleTonY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpe2lmKG5leHRQcm9wcy5zcmMhPT10aGlzLnByb3BzLnNyYyl7dGhpcy5yZXNldFByZWxvYWRlcigpO3RoaXMuc2V0U3RhdGUoe3N0YXR1czpJbWFnZS5zdGF0dXMuTE9BRElOR30pO319fSx7a2V5Oidjb21wb25lbnREaWRNb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByZWxvYWQoKTt9fSx7a2V5Oidjb21wb25lbnREaWRVcGRhdGUnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMucHJlbG9hZCgpO319LHtrZXk6J2NvbXBvbmVudFdpbGxVbm1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucmVzZXRQcmVsb2FkZXIoKTt9fSx7a2V5OidyZXNldFByZWxvYWRlcicsdmFsdWU6ZnVuY3Rpb24gcmVzZXRQcmVsb2FkZXIoKXt0aGlzLmxvYWRlci5vbmxvYWQ9bnVsbDt0aGlzLmxvYWRlci5vbmVycm9yPW51bGw7dGhpcy5sb2FkZXI9bnVsbDt9fSx7a2V5OidwcmVsb2FkJyx2YWx1ZTpmdW5jdGlvbiBwcmVsb2FkKCl7dmFyIF90aGlzMj10aGlzO2lmKHRoaXMubG9hZGVyKXtyZXR1cm47fXRoaXMubG9hZGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO3RoaXMubG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBfdGhpczIuc2V0U3RhdGUoe3N0YXR1czpJbWFnZS5zdGF0dXMuTE9BREVEfSk7fTt0aGlzLmxvYWRlci5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIF90aGlzMi5zZXRTdGF0ZSh7c3RhdHVzOkltYWdlLnN0YXR1cy5FUlJPUn0pO307dGhpcy5sb2FkZXIuc3JjPXRoaXMucHJvcHMuc3JjO319LHtrZXk6J3JlbmRlckltYWdlJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJJbWFnZSgpe2lmKHRoaXMucHJvcHMuZGlzcGxheUFzQmFja2dyb3VuZEltYWdlKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsX2V4dGVuZHMoe30sdGhpcy5wcm9wcy5pbWFnZVByb3BzLHtyZWY6J2ltYWdlJyxjbGFzc05hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0KCkoJ2ItaW1hZ2UnLHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5jbGFzc05hbWUpLHRpdGxlOnRoaXMucHJvcHMuYWx0LHN0eWxlOl9leHRlbmRzKHt9LHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5zdHlsZSx7YmFja2dyb3VuZEltYWdlOid1cmwoJyt0aGlzLnByb3BzLnNyYysnKSd9KX0pKTt9cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KCdpbWcnLF9leHRlbmRzKHt9LHRoaXMucHJvcHMuaW1hZ2VQcm9wcyx7cmVmOidpbWFnZScsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWltYWdlJyx0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKSxzcmM6dGhpcy5wcm9wcy5zcmMsYWx0OnRoaXMucHJvcHMuYWx0LG9uTG9hZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10sb25FcnJvcjpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL119KSk7fX0se2tleToncmVuZGVyU3RhdHVzJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJTdGF0dXMoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsX2V4dGVuZHMoe30sdGhpcy5wcm9wcy5zdGF0dXNQcm9wcyx7cmVmOidzdGF0dXMnLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQoKSgnYi1pbWFnZS1zdGF0dXMnLHRoaXMucHJvcHMuc3RhdHVzUHJvcHMuY2xhc3NOYW1lLHsnYi1pbWFnZS1sb2FkaW5nJzp0aGlzLnN0YXRlLnN0YXR1cz09PUltYWdlLnN0YXR1cy5MT0FESU5HLCdiLWltYWdlLWxvYWRlZCc6dGhpcy5zdGF0ZS5zdGF0dXM9PT1JbWFnZS5zdGF0dXMuTE9BREVELCdiLWltYWdlLWVycm9yJzp0aGlzLnN0YXRlLnN0YXR1cz09PUltYWdlLnN0YXR1cy5FUlJPUn0pLHJvbGU6J3ByZXNlbnRhdGlvbid9KSk7fX0se2tleToncmVuZGVyJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsX2V4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLEltYWdlLmludGVybmFsS2V5cykse3JlZjond3JhcHBlcicsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWltYWdlLXdyYXBwZXInLHRoaXMucHJvcHMuY2xhc3NOYW1lKX0pLHRoaXMucmVuZGVySW1hZ2UoKSx0aGlzLnJlbmRlclN0YXR1cygpKTt9fV0pO3JldHVybiBJbWFnZTt9KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5QdXJlQ29tcG9uZW50KTtJbWFnZS5zdGF0dXM9e0xPQURJTkc6J0xPQURJTkcnLExPQURFRDonTE9BREVEJyxFUlJPUjonRVJST1InfTtJbWFnZS5wcm9wVHlwZXM9e2FsdDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmJvb2wsaW1hZ2VQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5vYmplY3Qsc3JjOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZy5pc1JlcXVpcmVkLHN0YXR1c1Byb3BzOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm9iamVjdH07SW1hZ2UuZGVmYXVsdFByb3BzPXthbHQ6bnVsbCxkaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2U6ZmFsc2UsaW1hZ2VQcm9wczp7fSxzcmM6J2Fib3V0OmJsYW5rJyxzdGF0dXNQcm9wczp7fX07SW1hZ2UuaW50ZXJuYWxLZXlzPU9iamVjdC5rZXlzKEltYWdlLmRlZmF1bHRQcm9wcyk7LyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiZGVmYXVsdFwiXSA9IEltYWdlO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgYWY1YWIwNzYwYjgwMjFiMGJhMTYiLCIvKipcbiAqIEEgZHVtbXkgZnVuY3Rpb24gd2l0aCBubyBzaWRlIGVmZmVjdHMuIENvbW1vbmx5IHVzZWQgd2hlbiBtb2NraW5nIGludGVyZmFjZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXguanMiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJyZWFjdFwifVxuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJpbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IG5vb3AgZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXgnO1xuaW1wb3J0IG9taXQgZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLW9taXQta2V5cy9pbmRleCc7XG5cbi8qKlxuIyBJbWFnZVxuX19BbiBpbWFnZSBibG9jayB3aXRoIHBsYWNlaG9sZGVyIHN1cHBvcnQgZm9yIGxvYWRpbmcgYW5kIGZhbGxiYWNrIHNjZW5hcmlvcy5fX1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbWFnZSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBzdGF0dXMgPSB7XG4gICAgICAgIExPQURJTkc6ICdMT0FESU5HJyxcbiAgICAgICAgTE9BREVEOiAnTE9BREVEJyxcbiAgICAgICAgRVJST1I6ICdFUlJPUicsXG4gICAgfVxuXG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGEgd3JpdHRlbiBkZXNjcmlwdGlvbiBvZiB0aGUgaW1hZ2UgZm9yIHNlYXJjaCBlbmdpbmVzLCBob3ZlcnRleHQgYW5kIHRob3NlIHVzaW5nIGFjY2Vzc2liaWxpdHkgdGVjaG5vbG9naWVzOyBhcHBsaWVkIHRvIHRoZSBgLmItaW1hZ2VgIGFzIHRoZSBIVE1MIGF0dHJpYnV0ZXMgYGFsdGAgb3IgYHRpdGxlYCwgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHJlbmRlcmVkIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogZW1pdHMgdGhlIGltYWdlIGFzIGEgYDxkaXY+YCB3aXRoIGBiYWNrZ3JvdW5kLWltYWdlYCBjc3MgcHJvcGVydHkgc2V0IGluc3RlYWQgb2YgYDxpbWc+YFxuICAgICAgICAgKi9cbiAgICAgICAgZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOiBQcm9wVHlwZXMuYm9vbCxcblxuICAgICAgICAvKipcbiAgICAgICAgICogYW55IFtSZWFjdC1zdXBwb3J0ZWQgYXR0cmlidXRlXShodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC9kb2NzL3RhZ3MtYW5kLWF0dHJpYnV0ZXMuaHRtbCNodG1sLWF0dHJpYnV0ZXMpOyBhcHBsaWVkIHRvIHRoZSBgLmItaW1hZ2VgIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIGltYWdlUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGEgdmFsaWQgcGF0aCB0byB0aGUgZGVzaXJlZCBpbWFnZVxuICAgICAgICAgKi9cbiAgICAgICAgc3JjOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBbUmVhY3Qtc3VwcG9ydGVkIGF0dHJpYnV0ZV0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90YWdzLWFuZC1hdHRyaWJ1dGVzLmh0bWwjaHRtbC1hdHRyaWJ1dGVzKTsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlLXN0YXR1c2Agbm9kZVxuICAgICAgICAgKi9cbiAgICAgICAgc3RhdHVzUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgfVxuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgYWx0OiBudWxsLFxuICAgICAgICBkaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2U6IGZhbHNlLFxuICAgICAgICBpbWFnZVByb3BzOiB7fSxcbiAgICAgICAgc3JjOiAnYWJvdXQ6YmxhbmsnLFxuICAgICAgICBzdGF0dXNQcm9wczoge30sXG4gICAgfVxuXG4gICAgc3RhdGljIGludGVybmFsS2V5cyA9IE9iamVjdC5rZXlzKEltYWdlLmRlZmF1bHRQcm9wcylcblxuICAgIHN0YXRlID0ge1xuICAgICAgICBzdGF0dXM6IEltYWdlLnN0YXR1cy5MT0FESU5HLFxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcHMuc3JjICE9PSB0aGlzLnByb3BzLnNyYykge1xuICAgICAgICAgICAgdGhpcy5yZXNldFByZWxvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BRElOR30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5wcmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIHRoaXMucmVzZXRQcmVsb2FkZXIoKTtcbiAgICB9XG5cbiAgICByZXNldFByZWxvYWRlcigpIHtcbiAgICAgICAgdGhpcy5sb2FkZXIub25sb2FkID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2FkZXIub25lcnJvciA9IG51bGw7XG4gICAgICAgIHRoaXMubG9hZGVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcmVsb2FkKCkge1xuICAgICAgICBpZiAodGhpcy5sb2FkZXIpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5sb2FkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcblxuICAgICAgICB0aGlzLmxvYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzdGF0dXM6IEltYWdlLnN0YXR1cy5MT0FERUR9KTtcbiAgICAgICAgdGhpcy5sb2FkZXIub25lcnJvciA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe3N0YXR1czogSW1hZ2Uuc3RhdHVzLkVSUk9SfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkZXIuc3JjID0gdGhpcy5wcm9wcy5zcmM7XG4gICAgfVxuXG4gICAgcmVuZGVySW1hZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRpc3BsYXlBc0JhY2tncm91bmRJbWFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLmltYWdlUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj0naW1hZ2UnXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2UnLCB0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9e3RoaXMucHJvcHMuYWx0fVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5wcm9wcy5pbWFnZVByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7dGhpcy5wcm9wcy5zcmN9KWAsXG4gICAgICAgICAgICAgICAgICAgIH19IC8+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5pbWFnZVByb3BzfVxuICAgICAgICAgICAgICAgIHJlZj0naW1hZ2UnXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1pbWFnZScsIHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5jbGFzc05hbWUpfVxuICAgICAgICAgICAgICAgIHNyYz17dGhpcy5wcm9wcy5zcmN9XG4gICAgICAgICAgICAgICAgYWx0PXt0aGlzLnByb3BzLmFsdH1cbiAgICAgICAgICAgICAgICBvbkxvYWQ9e25vb3B9XG4gICAgICAgICAgICAgICAgb25FcnJvcj17bm9vcH0gLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXJTdGF0dXMoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IHsuLi50aGlzLnByb3BzLnN0YXR1c1Byb3BzfVxuICAgICAgICAgICAgICAgICByZWY9J3N0YXR1cydcbiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1pbWFnZS1zdGF0dXMnLCB0aGlzLnByb3BzLnN0YXR1c1Byb3BzLmNsYXNzTmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAnYi1pbWFnZS1sb2FkaW5nJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5MT0FESU5HLFxuICAgICAgICAgICAgICAgICAgICAnYi1pbWFnZS1sb2FkZWQnOiB0aGlzLnN0YXRlLnN0YXR1cyA9PT0gSW1hZ2Uuc3RhdHVzLkxPQURFRCxcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtZXJyb3InOiB0aGlzLnN0YXRlLnN0YXR1cyA9PT0gSW1hZ2Uuc3RhdHVzLkVSUk9SLFxuICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgcm9sZT0ncHJlc2VudGF0aW9uJyAvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICB7Li4ub21pdCh0aGlzLnByb3BzLCBJbWFnZS5pbnRlcm5hbEtleXMpfVxuICAgICAgICAgICAgICAgIHJlZj0nd3JhcHBlcidcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdiLWltYWdlLXdyYXBwZXInLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9PlxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckltYWdlKCl9XG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyU3RhdHVzKCl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtaW1hZ2UvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9
{
"name": "boundless-image",
"version": "1.0.0-beta.4",
"version": "1.0.0-beta.5",
"description": "An image block with placeholder support for loading and fallback scenarios.",
"main": "build/index.js",
"browser": "build/index.js",
"repository": {

@@ -16,3 +16,3 @@ "type": "git",

"contributors": [
"Evan Scott <evan.scott@enigma.io>",
"Evan Scott <glitterbyte@gmail.com> (http://yaycmyk.com)",
"Abe Rubenstein <abe.rubenstein@enigma.io>",

@@ -27,6 +27,8 @@ "Jenn Creighton <jenn.creighton@enigma.io>"

"dependencies": {
"boundless-utils-noop": "^1.0.0",
"boundless-utils-omit-keys": "^1.0.0-beta.3",
"classnames": "^2.1.5"
},
"devDependencies": {
"boundless-utils-noop": "^1.0.0",
"boundless-utils-omit-keys": "^1.0.0-beta.3"
},
"peerDependencies": {

@@ -33,0 +35,0 @@ "react": ">= 15.3",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc