(()=>{var t={686:t=>{var r,n;Fraction=function(t,r){if(void 0!==t&&r)"number"==typeof t&&"number"==typeof r?(this.numerator=t,this.denominator=r):"string"==typeof t&&"string"==typeof r&&(this.numerator=parseInt(t),this.denominator=parseInt(r));else if(void 0===r)if(num=t,"number"==typeof num)this.numerator=num,this.denominator=1;else if("string"==typeof num){var n,o,e=num.split(" ");if(e[0]&&(n=e[0]),e[1]&&(o=e[1]),n%1==0&&o&&o.match("/"))return new Fraction(n).add(new Fraction(o));if(!n||o)return;if("string"==typeof n&&n.match("/")){var i=n.split("/");this.numerator=i[0],this.denominator=i[1]}else{if("string"==typeof n&&n.match("."))return new Fraction(parseFloat(n));this.numerator=parseInt(n),this.denominator=1}}this.normalize()},Fraction.prototype.clone=function(){return new Fraction(this.numerator,this.denominator)},Fraction.prototype.toString=function(){if("NaN"===this.denominator)return"NaN";var t=this.numerator/this.denominator>0?Math.floor(this.numerator/this.denominator):Math.ceil(this.numerator/this.denominator),r=this.numerator%this.denominator,n=this.denominator,o=[];return 0!=t&&o.push(t),0!=r&&o.push((0===t?r:Math.abs(r))+"/"+n),o.length>0?o.join(" "):0},Fraction.prototype.rescale=function(t){return this.numerator*=t,this.denominator*=t,this},Fraction.prototype.add=function(t){var r=this.clone();return t=t instanceof Fraction?t.clone():new Fraction(t),td=r.denominator,r.rescale(t.denominator),t.rescale(td),r.numerator+=t.numerator,r.normalize()},Fraction.prototype.subtract=function(t){var r=this.clone();return t=t instanceof Fraction?t.clone():new Fraction(t),td=r.denominator,r.rescale(t.denominator),t.rescale(td),r.numerator-=t.numerator,r.normalize()},Fraction.prototype.multiply=function(t){var r=this.clone();if(t instanceof Fraction)r.numerator*=t.numerator,r.denominator*=t.denominator;else{if("number"!=typeof t)return r.multiply(new Fraction(t));r.numerator*=t}return r.normalize()},Fraction.prototype.divide=function(t){var r=this.clone();if(t instanceof Fraction)r.numerator*=t.denominator,r.denominator*=t.numerator;else{if("number"!=typeof t)return r.divide(new Fraction(t));r.denominator*=t}return r.normalize()},Fraction.prototype.equals=function(t){t instanceof Fraction||(t=new Fraction(t));var r=this.clone().normalize();return t=t.clone().normalize(),r.numerator===t.numerator&&r.denominator===t.denominator},Fraction.prototype.normalize=(r=function(t){return"number"==typeof t&&(t>0&&t%1>0&&t%1<1||t<0&&t%-1<0&&t%-1>-1)},n=function(t,r){if(r){var n=Math.pow(10,r);return Math.round(t*n)/n}return Math.round(t)},function(){if(r(this.denominator)){var t=n(this.denominator,9),o=Math.pow(10,t.toString().split(".")[1].length);this.denominator=Math.round(this.denominator*o),this.numerator*=o}r(this.numerator)&&(t=n(this.numerator,9),o=Math.pow(10,t.toString().split(".")[1].length),this.numerator=Math.round(this.numerator*o),this.denominator*=o);var e=Fraction.gcf(this.numerator,this.denominator);return this.numerator/=e,this.denominator/=e,(this.numerator<0&&this.denominator<0||this.numerator>0&&this.denominator<0)&&(this.numerator*=-1,this.denominator*=-1),this}),Fraction.gcf=function(t,r){var n=[],o=Fraction.primeFactors(t),e=Fraction.primeFactors(r);return o.forEach((function(t){var r=e.indexOf(t);r>=0&&(n.push(t),e.splice(r,1))})),0===n.length?1:function(){var t,r=n[0];for(t=1;t{"use strict";var t=n(686);t.i.prototype.snap=function(r,n){n||(n=1e-4),r||(r=100);for(var o=this.numerator<0,e=this.numerator/this.denominator,i=Math.abs(e%1),a=o?Math.ceil(e):Math.floor(e),s=1;s<=r;++s)for(var c=0;c<=r;++c){var u=Math.abs(c/s);if(Math.abs(u-i){},o={categorizer:(t,r)=>{const n=r.values;t.props.onChange({values:n},null,!1)},dropdown:(t,r)=>{const n=r.choices.find((t=>t.correct));t.props.onChange({selected:r.choices.indexOf(n)+1},null,!1)},explanation:r,expression:(t,r)=>{const n=r.answerForms.find((t=>"correct"===t.considered));t.setInputValue("",n.value)},grapher:(t,r)=>{const n=r.correct;t.props.onChange({plot:n},null,!1)},image:r,"input-number":(r,n)=>{let o=n.value;if("required"===n.simplify){const r=new t.i(o).snap(100,n.inExact);r.denominator>1&&(o=r)}r.setInputValue("",o.toString())},"interactive-graph":(t,r)=>{const n=r.correct;t.props.onChange({graph:n},(()=>{t.resetGraphie()}),!1)},"lights-puzzle":t=>{const r=t.props.cells.map((t=>t.map((()=>!0))));t.props.onChange({cells:r},null,!1)},matcher:(t,r)=>{const n=t.refs.left,o=Object.assign({},n.props,{options:r.left});n.setState({items:n.itemsFromProps(o)});const e=t.refs.right,i=Object.assign({},e.props,{options:r.right});e.setState({items:e.itemsFromProps(i)})},matrix:(t,r)=>{const n=r.answers.map((t=>t.map((t=>"number"==typeof t?t.toString():""))));t.props.onChange({answers:n},null,!1)},measurer:r,"number-line":(r,n)=>{const o={};if(n.rel&&(o.rel=n.rel),n.correctX){const e=n.correctX,i=n.range[0],a=n.range[1],s=new t.i(e-i,a-i).denominator;o.numLinePosition=e,o.numDivisions=Math.min(s,r.props.divisionRange[1])}r.props.onChange(o,r._renderGraphie,!1)},"numeric-input":(t,r)=>{let n;n=t.props.multInput?{currentMultipleValues:r.answers.filter((t=>"correct"===t.status)).sort(((t,r)=>t.value>r.value?1:-1)).join(",")}:{currentValue:r.answers.find((t=>"correct"===t.status)).value.toString()},t.props.onChange(n,null,!1)},orderer:(t,r)=>{t.setState({current:r.correctOptions.map(((t,r)=>Object.assign(t,{key:r})))})},passage:r,plotter:(t,r)=>{t.setState({values:r.correct},t.componentDidMount)},radio:t=>{const r=t.props.choices.map((t=>({correctnessShown:!1,rationaleShown:!1,readOnly:!1,selected:t.correct,highlighted:!0})));t.props.onChange({choiceStates:r},null,!1)},sorter:(t,r)=>{const n=t.refs.sortable,o=Object.assign({},n.props,{options:r.correct});n.setState({items:n.itemsFromProps(o)})},table:(t,r)=>{const n=r.answers;t.props.onChange({answers:n},null,!1)},transformer:(t,r)=>{const n=r.correct.transformations;t.setTransformationProps(n,(()=>{t.setTransformations(n)}))},unit:(t,r)=>{const n=r.value;t.props.onChange({value:n},null,!1)}};window.WidgetSolver=(t,r,n)=>{if(!o[r])throw new ReferenceError(`No solver available for widget type: ${r}`);try{o[r](t,n);const e=t.blurInputPath;e&&e("")}catch(t){logging.debug("An error occurred while solving a problem",t)}}})()})();